From 93489529a337e74537f5fdc7542c0bde6227bf42 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 22 Apr 2025 10:50:20 -0700 Subject: [PATCH] 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 1e713c2791..299a14c6c6 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -771,6 +771,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 f8d2b48aca..11370cfcdf 100644 --- a/app/View/Label.php +++ b/app/View/Label.php @@ -190,9 +190,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 5d41074652..37cfb0de94 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')