From 7c2c5ea98de249df4587f799f105e94d0025b699 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 22 Apr 2025 10:50:20 -0700 Subject: [PATCH 1/3] adds Field offset option to labels --- app/Http/Controllers/SettingsController.php | 1 + app/View/Label.php | 23 +++++++++++++++++-- ..._add_empty_row_count_to_settings_table.php | 21 +++++++++++++++++ .../lang/en-US/admin/settings/general.php | 2 ++ resources/views/settings/labels.blade.php | 22 ++++++++++++++++++ 5 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 database/migrations/2025_04_22_170731_add_empty_row_count_to_settings_table.php diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index a6de4466dd..7007398094 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -772,6 +772,7 @@ class SettingsController extends Controller $setting->label2_2d_type = $request->input('label2_2d_type'); $setting->label2_2d_target = $request->input('label2_2d_target'); $setting->label2_fields = $request->input('label2_fields'); + $setting->label2_empty_row_count = $request->input('label2_empty_row_count'); $setting->labels_per_page = $request->input('labels_per_page'); $setting->labels_width = $request->input('labels_width'); $setting->labels_height = $request->input('labels_height'); diff --git a/app/View/Label.php b/app/View/Label.php index 6dbad39a34..e3b7b714d6 100644 --- a/app/View/Label.php +++ b/app/View/Label.php @@ -191,9 +191,28 @@ class Label implements View return $toAdd ? $myFields->push($toAdd) : $myFields; }, new Collection()); - $assetData->put('fields', $fields->take($template->getSupportFields())); + $emptyRowsCount = $settings->label2_empty_row_count; + if($emptyRowsCount) { + // Create empty rows + $emptyRows = collect(range(1, $emptyRowsCount))->map(function () { + return [ + 'label' => '', + 'value' => '', + 'dataSource' => null, + ]; + }); + + // Prepend empty rows to the existing fields + $fieldsWithEmpty = $emptyRows->merge($fields); + + $assetData->put('fields', $fieldsWithEmpty->take($template->getSupportFields())); + return $assetData; + } + else{ + $assetData->put('fields', $fields->take($template->getSupportFields())); + return $assetData; + } - return $assetData; }); if ($template instanceof Sheet) { diff --git a/database/migrations/2025_04_22_170731_add_empty_row_count_to_settings_table.php b/database/migrations/2025_04_22_170731_add_empty_row_count_to_settings_table.php new file mode 100644 index 0000000000..49b228b42d --- /dev/null +++ b/database/migrations/2025_04_22_170731_add_empty_row_count_to_settings_table.php @@ -0,0 +1,21 @@ +unsignedInteger('label2_empty_row_count')->default(0)->after('label2_fields'); + }); + } + + public function down(): void + { + Schema::table('settings', function (Blueprint $table) { + $table->dropColumn('label2_empty_row_count'); + }); + } +}; diff --git a/resources/lang/en-US/admin/settings/general.php b/resources/lang/en-US/admin/settings/general.php index 61bc0c5f76..1063ba4009 100644 --- a/resources/lang/en-US/admin/settings/general.php +++ b/resources/lang/en-US/admin/settings/general.php @@ -64,6 +64,8 @@ return [ 'enabled' => 'Enabled', 'eula_settings' => 'EULA Settings', 'eula_markdown' => 'This EULA allows Github flavored markdown.', + 'empty_row_count' => 'Field Start Offset (Empty Rows)', + 'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.', 'favicon' => 'Favicon', 'favicon_format' => 'Accepted filetypes are ico, png, and gif. Other image formats may not work in all browsers.', 'favicon_size' => 'Favicons should be square images, 16x16 pixels.', diff --git a/resources/views/settings/labels.blade.php b/resources/views/settings/labels.blade.php index 6b3442420b..ae79c061a8 100644 --- a/resources/views/settings/labels.blade.php +++ b/resources/views/settings/labels.blade.php @@ -313,6 +313,28 @@

{{ trans('admin/settings/general.label2_2d_target_help') }}

+ +
+
+ +
+
+
+ +
+
+ {!! $errors->first('empty_row_count', '') !!} +

{!! trans('admin/settings/general.empty_row_count_help') !!}

+
+
+
@include('partials.label2-preview')
From d871c529d189157a2aa27b254f9d9abd6e5bc830 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 22 Apr 2025 11:59:19 -0700 Subject: [PATCH 2/3] fix input max, and help block position --- app/Http/Controllers/SettingsController.php | 2 ++ resources/views/settings/labels.blade.php | 20 +++++++++----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 7007398094..77f0be83c7 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -14,6 +14,7 @@ use App\Http\Requests\StoreLabelSettings; use App\Http\Requests\StoreSecuritySettings; use App\Models\CustomField; use App\Models\Group; +use App\Models\Labels\Label as LabelModel; use App\Models\Setting; use App\Models\Asset; use App\Models\User; @@ -750,6 +751,7 @@ class SettingsController extends Controller return view('settings.labels') ->with('setting', Setting::getSettings()) ->with('is_gd_installed', $is_gd_installed) + ->with('template', LabelModel::find(Setting::getSettings()->label2_template)) ->with('customFields', CustomField::where('field_encrypted', '=', 0)->get()); } diff --git a/resources/views/settings/labels.blade.php b/resources/views/settings/labels.blade.php index ae79c061a8..fdc6313bd2 100644 --- a/resources/views/settings/labels.blade.php +++ b/resources/views/settings/labels.blade.php @@ -313,26 +313,24 @@

{{ trans('admin/settings/general.label2_2d_target_help') }}

- +
- +
-
-
+
-
-
- {!! $errors->first('empty_row_count', '') !!} -

{!! trans('admin/settings/general.empty_row_count_help') !!}

-
+ max="{{ $template->getSupportFields() }}" + value="{{ old('label2_empty_row_count', $setting->label2_empty_row_count) }}" + > + {!! $errors->first('label2_empty_row_count', '') !!} +

{!! trans('admin/settings/general.empty_row_count_help') !!}

From 5da492cbf51670003089bc29f0cf457c0d1d6416 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 22 Apr 2025 12:07:02 -0700 Subject: [PATCH 3/3] set max to 5 --- app/Http/Controllers/SettingsController.php | 1 - resources/views/settings/labels.blade.php | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 77f0be83c7..fa1ea85e93 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -751,7 +751,6 @@ class SettingsController extends Controller return view('settings.labels') ->with('setting', Setting::getSettings()) ->with('is_gd_installed', $is_gd_installed) - ->with('template', LabelModel::find(Setting::getSettings()->label2_template)) ->with('customFields', CustomField::where('field_encrypted', '=', 0)->get()); } diff --git a/resources/views/settings/labels.blade.php b/resources/views/settings/labels.blade.php index fdc6313bd2..d890c2a454 100644 --- a/resources/views/settings/labels.blade.php +++ b/resources/views/settings/labels.blade.php @@ -326,7 +326,7 @@ type="number" id="label2_empty_row_count" min="0" - max="{{ $template->getSupportFields() }}" + max="5" value="{{ old('label2_empty_row_count', $setting->label2_empty_row_count) }}" > {!! $errors->first('label2_empty_row_count', '') !!}