From 552f90ae2c32270c60d6b38628f2d20b63386acd Mon Sep 17 00:00:00 2001 From: akemidx Date: Thu, 1 Aug 2024 16:06:47 -0400 Subject: [PATCH 01/29] required, but not optional --- resources/views/hardware/checkin.blade.php | 2 +- resources/views/hardware/checkout.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 1efd39427799..e3f65bd7ff94 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -119,7 +119,7 @@ {{ trans('general.notes') }}
- {!! $errors->first('note', '') !!}
diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index f91e06036816..89d6f06e6e16 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -141,7 +141,7 @@ {{ trans('general.notes') }}
- {!! $errors->first('note', '') !!}
From 3ff1745f560ff71cc43fd01fd67410acd57d4b97 Mon Sep 17 00:00:00 2001 From: akemidx Date: Thu, 1 Aug 2024 16:44:02 -0400 Subject: [PATCH 02/29] setting created --- app/Http/Controllers/SettingsController.php | 2 ++ ...8_01_201721_add_required_notes_setting.php | 30 +++++++++++++++++++ .../lang/en-US/admin/settings/general.php | 2 ++ resources/views/settings/general.blade.php | 17 +++++++++++ 4 files changed, 51 insertions(+) create mode 100644 database/migrations/2024_08_01_201721_add_required_notes_setting.php diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 9c7392560dcc..f0903f412b21 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -342,6 +342,8 @@ public function postSettings(Request $request) : RedirectResponse $setting->depreciation_method = $request->input('depreciation_method'); $setting->dash_chart_type = $request->input('dash_chart_type'); $setting->profile_edit = $request->input('profile_edit', 0); + $setting->require_checkinout_notes = $request->input('require_checkinout_notes', 0); + if ($request->input('per_page') != '') { $setting->per_page = $request->input('per_page'); diff --git a/database/migrations/2024_08_01_201721_add_required_notes_setting.php b/database/migrations/2024_08_01_201721_add_required_notes_setting.php new file mode 100644 index 000000000000..d4934ed7fb93 --- /dev/null +++ b/database/migrations/2024_08_01_201721_add_required_notes_setting.php @@ -0,0 +1,30 @@ +boolean('require_checkinout_notes')->nullable()->default(1); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('settings', function (Blueprint $table) { + if (Schema::hasColumn('settings', 'require_checkinout_notes')) { + $table->dropColumn('require_checkinout_notes'); + } + }); + } +}; diff --git a/resources/lang/en-US/admin/settings/general.php b/resources/lang/en-US/admin/settings/general.php index 9ba69ef22a14..abbf2632097d 100644 --- a/resources/lang/en-US/admin/settings/general.php +++ b/resources/lang/en-US/admin/settings/general.php @@ -276,6 +276,8 @@ 'two_factor_enrollment_text' => "Two factor authentication is required, however your device has not been enrolled yet. Open your Google Authenticator app and scan the QR code below to enroll your device. Once you've enrolled your device, enter the code below", 'require_accept_signature' => 'Require Signature', 'require_accept_signature_help_text' => 'Enabling this feature will require users to physically sign off on accepting an asset.', + 'require_checkinout_notes' => 'Require Notes on Checkin/Checkout', + 'require_checkinout_notes_help_text' => 'Enabling this feature will require the note fields to be populated when checking in or checking out an asset.', 'left' => 'left', 'right' => 'right', 'top' => 'top', diff --git a/resources/views/settings/general.blade.php b/resources/views/settings/general.blade.php index 91d3b1c56f9d..477d8e68a05f 100644 --- a/resources/views/settings/general.blade.php +++ b/resources/views/settings/general.blade.php @@ -200,6 +200,23 @@ + +
+
+ +
+
+ +

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

+
+
+ +
From 0f0baa207dabd252a49eca496a2f8a9af14658d6 Mon Sep 17 00:00:00 2001 From: akemidx Date: Thu, 1 Aug 2024 17:02:35 -0400 Subject: [PATCH 03/29] note field optional --- resources/views/hardware/checkin.blade.php | 30 +++++++++++++-------- resources/views/hardware/checkout.blade.php | 8 ++++++ 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index e3f65bd7ff94..a313b65a33c1 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -113,17 +113,25 @@
- -
- -
- - {!! $errors->first('note', '') !!} -
-
+ +
+ + @if($snipeSettings->require_checkinout_notes=="1") +
+ + {!! $errors->first('note', '') !!} +
+ @else +
+ + {!! $errors->first('note', '') !!} +
+ @endif +
diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index 89d6f06e6e16..79e9e409e549 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -140,11 +140,19 @@ + @if($snipeSettings->require_checkinout_notes=="1")
{!! $errors->first('note', '') !!}
+ @else +
+ + {!! $errors->first('note', '') !!} +
+ @endif @if ($asset->requireAcceptance() || $asset->getEula() || ($snipeSettings->webhook_endpoint!='')) From 27c120a55ee4f4824d9d5aa985d13ab0d6deafa6 Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 20 Aug 2024 19:07:47 -0400 Subject: [PATCH 04/29] front end changes/updates from gh --- .../migrations/2024_08_01_201721_add_required_notes_setting.php | 2 +- resources/views/hardware/checkin.blade.php | 2 +- resources/views/hardware/checkout.blade.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/database/migrations/2024_08_01_201721_add_required_notes_setting.php b/database/migrations/2024_08_01_201721_add_required_notes_setting.php index d4934ed7fb93..38fdd38c1137 100644 --- a/database/migrations/2024_08_01_201721_add_required_notes_setting.php +++ b/database/migrations/2024_08_01_201721_add_required_notes_setting.php @@ -12,7 +12,7 @@ public function up(): void { Schema::table('settings', function (Blueprint $table) { - $table->boolean('require_checkinout_notes')->nullable()->default(1); + $table->boolean('require_checkinout_notes')->nullable()->default(0); }); } diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 6b4a00d284dc..496e899addb8 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -119,7 +119,7 @@ {{ trans('general.notes') }} @if($snipeSettings->require_checkinout_notes=="1") -
+
{!! $errors->first('note', '') !!} diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index 108101907211..ab8b7b31f3bd 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -141,7 +141,7 @@ {{ trans('general.notes') }} @if($snipeSettings->require_checkinout_notes=="1") -
+
{!! $errors->first('note', '') !!} From 2901ecbf4376009f371449bac03da5292a773f03 Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 3 Sep 2024 15:02:27 -0400 Subject: [PATCH 05/29] more test work --- app/Http/Requests/AssetCheckinRequest.php | 4 ++-- app/Http/Requests/AssetCheckoutRequest.php | 1 + resources/views/hardware/checkin.blade.php | 7 ------- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 116b8b39f22a..dec4b0912f55 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,9 +21,9 @@ public function authorize() */ public function rules() { - return [ + 'note' => 'required|in:asset,', - ]; + return $rules; } public function response(array $errors) diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index f48a7d5e534f..0f42076c9b92 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,6 +27,7 @@ public function rules() 'assigned_location' => 'required_without_all:assigned_user,assigned_asset', 'status_id' => 'exists:status_labels,id,deployable,1', 'checkout_to_type' => 'required|in:asset,location,user', + 'note' => 'required|in:asset,', 'checkout_at' => [ 'nullable', 'date', diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 496e899addb8..12c678e6458c 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -124,13 +124,6 @@ name="note">{{ old('note', $asset->note) }} {!! $errors->first('note', '') !!}
- @else -
- - {!! $errors->first('note', '') !!} -
- @endif
From 77c5035cac4887f5491eb7e469c8ffa83dad61f7 Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 4 Sep 2024 17:50:52 -0400 Subject: [PATCH 06/29] fixing some formatting --- app/Http/Requests/AssetCheckinRequest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index dec4b0912f55..436a2a9d582a 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,7 +21,7 @@ public function authorize() */ public function rules() { - 'note' => 'required|in:asset,', + 'note' => 'required|in:asset,', return $rules; } From bebb72a04f36805cf8f7e2090f505e384a396281 Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 4 Sep 2024 17:53:19 -0400 Subject: [PATCH 07/29] back to having tests pass. needed to comment out the notes rules() i added --- app/Http/Requests/AssetCheckinRequest.php | 12 ++++++------ app/Http/Requests/AssetCheckoutRequest.php | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 436a2a9d582a..3bee83a81097 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -19,12 +19,12 @@ public function authorize() * * @return array */ - public function rules() - { - 'note' => 'required|in:asset,', - - return $rules; - } +// public function rules() +// { +// 'note' => 'required|in:asset,', +// +// return $rules; +// } public function response(array $errors) { diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index 0f42076c9b92..9064e6dcd03c 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,7 +27,7 @@ public function rules() 'assigned_location' => 'required_without_all:assigned_user,assigned_asset', 'status_id' => 'exists:status_labels,id,deployable,1', 'checkout_to_type' => 'required|in:asset,location,user', - 'note' => 'required|in:asset,', +// 'note' => 'required|in:asset,', 'checkout_at' => [ 'nullable', 'date', From d262638a63af82d5f1f5cde4d4c342edf85be58b Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 4 Sep 2024 18:23:36 -0400 Subject: [PATCH 08/29] backend form validation. +cleanup --- .../Controllers/Assets/AssetCheckinController.php | 6 ++++++ .../Controllers/Assets/AssetCheckoutController.php | 4 ++++ app/Http/Requests/AssetCheckinRequest.php | 12 ------------ app/Http/Requests/AssetCheckoutRequest.php | 1 - resources/lang/en-US/admin/hardware/message.php | 2 ++ resources/views/hardware/checkin.blade.php | 1 + 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index f84a468a60e7..2c49f78bfbfb 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -116,6 +116,12 @@ public function store(AssetCheckinRequest $request, $assetId = null, $backto = n $seat->update(['assigned_to' => null]); }); + $settings = \App\Models\Setting::getSettings(); + + if($settings->require_checkinout_notes=="1" && (is_null($request->note))) { + return redirect()->to("hardware/$assetId/checkin")->with('error', trans('admin/hardware/message.update.no_note')); + } + // Get all pending Acceptances for this asset and delete them $acceptances = CheckoutAcceptance::pending()->whereHasMorph('checkoutable', [Asset::class], diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index 05b766916be8..506f47680cd1 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,6 +102,10 @@ public function store(AssetCheckoutRequest $request, $assetId) : RedirectRespons $settings = \App\Models\Setting::getSettings(); + if($settings->require_checkinout_notes=="1" && (is_null($request->note))) { + return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.update.no_note'); //needs translation + } + // We have to check whether $target->company_id is null here since locations don't have a company yet if (($settings->full_multiple_companies_support) && ((!is_null($target->company_id)) && (!is_null($asset->company_id)))) { if ($target->company_id != $asset->company_id){ diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 3bee83a81097..ea2847189942 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -14,18 +14,6 @@ public function authorize() return true; } - /** - * Get the validation rules that apply to the request. - * - * @return array - */ -// public function rules() -// { -// 'note' => 'required|in:asset,', -// -// return $rules; -// } - public function response(array $errors) { return $this->redirector->back()->withInput()->withErrors($errors, $this->errorBag); diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index 9064e6dcd03c..f48a7d5e534f 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,7 +27,6 @@ public function rules() 'assigned_location' => 'required_without_all:assigned_user,assigned_asset', 'status_id' => 'exists:status_labels,id,deployable,1', 'checkout_to_type' => 'required|in:asset,location,user', -// 'note' => 'required|in:asset,', 'checkout_at' => [ 'nullable', 'date', diff --git a/resources/lang/en-US/admin/hardware/message.php b/resources/lang/en-US/admin/hardware/message.php index d06bf4a0e043..c9ea79023b8b 100644 --- a/resources/lang/en-US/admin/hardware/message.php +++ b/resources/lang/en-US/admin/hardware/message.php @@ -23,6 +23,7 @@ 'nothing_updated' => 'No fields were selected, so nothing was updated.', 'no_assets_selected' => 'No assets were selected, so nothing was updated.', 'assets_do_not_exist_or_are_invalid' => 'Selected assets cannot be updated.', + 'no_note' => 'Note field is empty', ], 'restore' => [ @@ -76,6 +77,7 @@ 'user_does_not_exist' => 'That user is invalid. Please try again.', 'not_available' => 'That asset is not available for checkout!', 'no_assets_selected' => 'You must select at least one asset from the list', + ], 'checkin' => [ diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 12c678e6458c..c015b2563145 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -124,6 +124,7 @@ name="note">{{ old('note', $asset->note) }} {!! $errors->first('note', '') !!} + @endif From 73a059c9ac528a0c604077cc1968e88b645160ad Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 1 Oct 2024 16:37:30 -0400 Subject: [PATCH 09/29] missing closing ) --- app/Http/Controllers/Assets/AssetCheckoutController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index 506f47680cd1..9e7a17a942ea 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -103,7 +103,7 @@ public function store(AssetCheckoutRequest $request, $assetId) : RedirectRespons $settings = \App\Models\Setting::getSettings(); if($settings->require_checkinout_notes=="1" && (is_null($request->note))) { - return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.update.no_note'); //needs translation + return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.update.no_note')); } // We have to check whether $target->company_id is null here since locations don't have a company yet From 081c5706c428a7d4556f14e9f80e82adf0bd3a4d Mon Sep 17 00:00:00 2001 From: akemidx Date: Thu, 1 Aug 2024 16:06:47 -0400 Subject: [PATCH 10/29] required, but not optional --- resources/views/hardware/checkin.blade.php | 2 +- resources/views/hardware/checkout.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 5686e74dd40e..1b1950c594dd 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -119,7 +119,7 @@ {{ trans('general.notes') }}
- {!! $errors->first('note', '') !!}
diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index 943b4ba79810..22e1dc00a425 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -142,7 +142,7 @@ {{ trans('general.notes') }}
- {!! $errors->first('note', '') !!}
From 700647c53fb4308dba1cb937be71ffec4d5b1361 Mon Sep 17 00:00:00 2001 From: akemidx Date: Thu, 1 Aug 2024 16:44:02 -0400 Subject: [PATCH 11/29] setting created --- app/Http/Controllers/SettingsController.php | 2 ++ ...8_01_201721_add_required_notes_setting.php | 30 +++++++++++++++++++ .../lang/en-US/admin/settings/general.php | 2 ++ resources/views/settings/general.blade.php | 17 +++++++++++ 4 files changed, 51 insertions(+) create mode 100644 database/migrations/2024_08_01_201721_add_required_notes_setting.php diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index b9026aaecece..d17da3c73775 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -343,6 +343,8 @@ public function postSettings(Request $request) : RedirectResponse $setting->depreciation_method = $request->input('depreciation_method'); $setting->dash_chart_type = $request->input('dash_chart_type'); $setting->profile_edit = $request->input('profile_edit', 0); + $setting->require_checkinout_notes = $request->input('require_checkinout_notes', 0); + if ($request->input('per_page') != '') { $setting->per_page = $request->input('per_page'); diff --git a/database/migrations/2024_08_01_201721_add_required_notes_setting.php b/database/migrations/2024_08_01_201721_add_required_notes_setting.php new file mode 100644 index 000000000000..d4934ed7fb93 --- /dev/null +++ b/database/migrations/2024_08_01_201721_add_required_notes_setting.php @@ -0,0 +1,30 @@ +boolean('require_checkinout_notes')->nullable()->default(1); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('settings', function (Blueprint $table) { + if (Schema::hasColumn('settings', 'require_checkinout_notes')) { + $table->dropColumn('require_checkinout_notes'); + } + }); + } +}; diff --git a/resources/lang/en-US/admin/settings/general.php b/resources/lang/en-US/admin/settings/general.php index 9a81886ae8f4..b30a2518942e 100644 --- a/resources/lang/en-US/admin/settings/general.php +++ b/resources/lang/en-US/admin/settings/general.php @@ -280,6 +280,8 @@ 'two_factor_enrollment_text' => "Two factor authentication is required, however your device has not been enrolled yet. Open your Google Authenticator app and scan the QR code below to enroll your device. Once you've enrolled your device, enter the code below", 'require_accept_signature' => 'Require Signature', 'require_accept_signature_help_text' => 'Enabling this feature will require users to physically sign off on accepting an asset.', + 'require_checkinout_notes' => 'Require Notes on Checkin/Checkout', + 'require_checkinout_notes_help_text' => 'Enabling this feature will require the note fields to be populated when checking in or checking out an asset.', 'left' => 'left', 'right' => 'right', 'top' => 'top', diff --git a/resources/views/settings/general.blade.php b/resources/views/settings/general.blade.php index c800b26ac9d3..c3d419fe9870 100644 --- a/resources/views/settings/general.blade.php +++ b/resources/views/settings/general.blade.php @@ -215,6 +215,23 @@ + +
+
+ +
+
+ +

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

+
+
+ +
From 8b643cb3b9dc40c1513acbbac4e0d3be2d6c04d4 Mon Sep 17 00:00:00 2001 From: akemidx Date: Thu, 1 Aug 2024 17:02:35 -0400 Subject: [PATCH 12/29] note field optional --- resources/views/hardware/checkin.blade.php | 30 +++++++++++++-------- resources/views/hardware/checkout.blade.php | 8 ++++++ 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 1b1950c594dd..ce63d6e723f8 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -113,17 +113,25 @@
- -
- -
- - {!! $errors->first('note', '') !!} -
-
+ +
+ + @if($snipeSettings->require_checkinout_notes=="1") +
+ + {!! $errors->first('note', '') !!} +
+ @else +
+ + {!! $errors->first('note', '') !!} +
+ @endif +
diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index 22e1dc00a425..fadb7a1abcfa 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -141,11 +141,19 @@ + @if($snipeSettings->require_checkinout_notes=="1")
{!! $errors->first('note', '') !!}
+ @else +
+ + {!! $errors->first('note', '') !!} +
+ @endif @if ($asset->requireAcceptance() || $asset->getEula() || ($snipeSettings->webhook_endpoint!='')) From 5e74b109d9805fb7978e118139421641357dbedd Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 20 Aug 2024 19:07:47 -0400 Subject: [PATCH 13/29] front end changes/updates from gh --- .../migrations/2024_08_01_201721_add_required_notes_setting.php | 2 +- resources/views/hardware/checkin.blade.php | 2 +- resources/views/hardware/checkout.blade.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/database/migrations/2024_08_01_201721_add_required_notes_setting.php b/database/migrations/2024_08_01_201721_add_required_notes_setting.php index d4934ed7fb93..38fdd38c1137 100644 --- a/database/migrations/2024_08_01_201721_add_required_notes_setting.php +++ b/database/migrations/2024_08_01_201721_add_required_notes_setting.php @@ -12,7 +12,7 @@ public function up(): void { Schema::table('settings', function (Blueprint $table) { - $table->boolean('require_checkinout_notes')->nullable()->default(1); + $table->boolean('require_checkinout_notes')->nullable()->default(0); }); } diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index ce63d6e723f8..8b1807cc50e8 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -119,7 +119,7 @@ {{ trans('general.notes') }} @if($snipeSettings->require_checkinout_notes=="1") -
+
{!! $errors->first('note', '') !!} diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index fadb7a1abcfa..a37f705179ea 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -142,7 +142,7 @@ {{ trans('general.notes') }} @if($snipeSettings->require_checkinout_notes=="1") -
+
{!! $errors->first('note', '') !!} From 515f59fed977fb936814154a762554f800be5234 Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 3 Sep 2024 15:02:27 -0400 Subject: [PATCH 14/29] more test work --- app/Http/Requests/AssetCheckinRequest.php | 4 ++-- app/Http/Requests/AssetCheckoutRequest.php | 1 + resources/views/hardware/checkin.blade.php | 7 ------- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 116b8b39f22a..dec4b0912f55 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,9 +21,9 @@ public function authorize() */ public function rules() { - return [ + 'note' => 'required|in:asset,', - ]; + return $rules; } public function response(array $errors) diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index f48a7d5e534f..0f42076c9b92 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,6 +27,7 @@ public function rules() 'assigned_location' => 'required_without_all:assigned_user,assigned_asset', 'status_id' => 'exists:status_labels,id,deployable,1', 'checkout_to_type' => 'required|in:asset,location,user', + 'note' => 'required|in:asset,', 'checkout_at' => [ 'nullable', 'date', diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 8b1807cc50e8..5083325a8efc 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -124,13 +124,6 @@ name="note">{{ old('note', $asset->note) }} {!! $errors->first('note', '') !!}
- @else -
- - {!! $errors->first('note', '') !!} -
- @endif
From bd6698de2a990bda2e0bd9559e680e519c93df8a Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 4 Sep 2024 17:50:52 -0400 Subject: [PATCH 15/29] fixing some formatting --- app/Http/Requests/AssetCheckinRequest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index dec4b0912f55..436a2a9d582a 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,7 +21,7 @@ public function authorize() */ public function rules() { - 'note' => 'required|in:asset,', + 'note' => 'required|in:asset,', return $rules; } From 925aea853190e8964a23966fc892143d07c6e76e Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 4 Sep 2024 17:53:19 -0400 Subject: [PATCH 16/29] back to having tests pass. needed to comment out the notes rules() i added --- app/Http/Requests/AssetCheckinRequest.php | 12 ++++++------ app/Http/Requests/AssetCheckoutRequest.php | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 436a2a9d582a..3bee83a81097 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -19,12 +19,12 @@ public function authorize() * * @return array */ - public function rules() - { - 'note' => 'required|in:asset,', - - return $rules; - } +// public function rules() +// { +// 'note' => 'required|in:asset,', +// +// return $rules; +// } public function response(array $errors) { diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index 0f42076c9b92..9064e6dcd03c 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,7 +27,7 @@ public function rules() 'assigned_location' => 'required_without_all:assigned_user,assigned_asset', 'status_id' => 'exists:status_labels,id,deployable,1', 'checkout_to_type' => 'required|in:asset,location,user', - 'note' => 'required|in:asset,', +// 'note' => 'required|in:asset,', 'checkout_at' => [ 'nullable', 'date', From f45b8360105ea52fd8ab2bd78684b0b70bc92305 Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 4 Sep 2024 18:23:36 -0400 Subject: [PATCH 17/29] backend form validation. +cleanup --- .../Controllers/Assets/AssetCheckinController.php | 6 ++++++ .../Controllers/Assets/AssetCheckoutController.php | 4 ++++ app/Http/Requests/AssetCheckinRequest.php | 12 ------------ app/Http/Requests/AssetCheckoutRequest.php | 1 - resources/lang/en-US/admin/hardware/message.php | 2 ++ resources/views/hardware/checkin.blade.php | 1 + 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index f84a468a60e7..2c49f78bfbfb 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -116,6 +116,12 @@ public function store(AssetCheckinRequest $request, $assetId = null, $backto = n $seat->update(['assigned_to' => null]); }); + $settings = \App\Models\Setting::getSettings(); + + if($settings->require_checkinout_notes=="1" && (is_null($request->note))) { + return redirect()->to("hardware/$assetId/checkin")->with('error', trans('admin/hardware/message.update.no_note')); + } + // Get all pending Acceptances for this asset and delete them $acceptances = CheckoutAcceptance::pending()->whereHasMorph('checkoutable', [Asset::class], diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index 05b766916be8..506f47680cd1 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,6 +102,10 @@ public function store(AssetCheckoutRequest $request, $assetId) : RedirectRespons $settings = \App\Models\Setting::getSettings(); + if($settings->require_checkinout_notes=="1" && (is_null($request->note))) { + return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.update.no_note'); //needs translation + } + // We have to check whether $target->company_id is null here since locations don't have a company yet if (($settings->full_multiple_companies_support) && ((!is_null($target->company_id)) && (!is_null($asset->company_id)))) { if ($target->company_id != $asset->company_id){ diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 3bee83a81097..ea2847189942 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -14,18 +14,6 @@ public function authorize() return true; } - /** - * Get the validation rules that apply to the request. - * - * @return array - */ -// public function rules() -// { -// 'note' => 'required|in:asset,', -// -// return $rules; -// } - public function response(array $errors) { return $this->redirector->back()->withInput()->withErrors($errors, $this->errorBag); diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index 9064e6dcd03c..f48a7d5e534f 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,7 +27,6 @@ public function rules() 'assigned_location' => 'required_without_all:assigned_user,assigned_asset', 'status_id' => 'exists:status_labels,id,deployable,1', 'checkout_to_type' => 'required|in:asset,location,user', -// 'note' => 'required|in:asset,', 'checkout_at' => [ 'nullable', 'date', diff --git a/resources/lang/en-US/admin/hardware/message.php b/resources/lang/en-US/admin/hardware/message.php index 041d32f56c90..32358cb6dd8d 100644 --- a/resources/lang/en-US/admin/hardware/message.php +++ b/resources/lang/en-US/admin/hardware/message.php @@ -23,6 +23,7 @@ 'nothing_updated' => 'No fields were selected, so nothing was updated.', 'no_assets_selected' => 'No assets were selected, so nothing was updated.', 'assets_do_not_exist_or_are_invalid' => 'Selected assets cannot be updated.', + 'no_note' => 'Note field is empty', ], 'restore' => [ @@ -77,6 +78,7 @@ 'user_does_not_exist' => 'That user is invalid. Please try again.', 'not_available' => 'That asset is not available for checkout!', 'no_assets_selected' => 'You must select at least one asset from the list', + ], 'checkin' => [ diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 5083325a8efc..2b087cb58b6e 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -124,6 +124,7 @@ name="note">{{ old('note', $asset->note) }} {!! $errors->first('note', '') !!} + @endif From 6fef127cd12a71575ba62b6fac432b7e1826bf87 Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 1 Oct 2024 16:37:30 -0400 Subject: [PATCH 18/29] missing closing ) --- app/Http/Controllers/Assets/AssetCheckoutController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index 506f47680cd1..9e7a17a942ea 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -103,7 +103,7 @@ public function store(AssetCheckoutRequest $request, $assetId) : RedirectRespons $settings = \App\Models\Setting::getSettings(); if($settings->require_checkinout_notes=="1" && (is_null($request->note))) { - return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.update.no_note'); //needs translation + return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.update.no_note')); } // We have to check whether $target->company_id is null here since locations don't have a company yet From 17706f150e3b6c243bfb4cc6b45358958f13ddb7 Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 2 Oct 2024 18:15:32 -0400 Subject: [PATCH 19/29] requested changes --- .../Controllers/Assets/AssetCheckinController.php | 2 +- .../Assets/AssetCheckoutController.php | 2 +- app/Http/Requests/AssetCheckinRequest.php | 15 +++++++++++++++ app/Models/Setting.php | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index 2c49f78bfbfb..1d64da98e25b 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -118,7 +118,7 @@ public function store(AssetCheckinRequest $request, $assetId = null, $backto = n $settings = \App\Models\Setting::getSettings(); - if($settings->require_checkinout_notes=="1" && (is_null($request->note))) { + if($settings->require_checkinout_notes && (is_null($request->note))) { return redirect()->to("hardware/$assetId/checkin")->with('error', trans('admin/hardware/message.update.no_note')); } diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index 9e7a17a942ea..a73e85db52f8 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,7 +102,7 @@ public function store(AssetCheckoutRequest $request, $assetId) : RedirectRespons $settings = \App\Models\Setting::getSettings(); - if($settings->require_checkinout_notes=="1" && (is_null($request->note))) { + if($settings->require_checkinout_notes= && (is_null($request->note))) { return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.update.no_note')); } diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index ea2847189942..59ab1a72ec7c 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -14,6 +14,21 @@ public function authorize() return true; } + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + $rules = []; + + if($this->settings->require_checkinout_notes) { + $rules['notes'] = 'required|string'; + } + return $rules; + } + public function response(array $errors) { return $this->redirector->back()->withInput()->withErrors($errors, $this->errorBag); diff --git a/app/Models/Setting.php b/app/Models/Setting.php index d775be81c52c..188884450873 100755 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -99,6 +99,7 @@ class Setting extends Model protected $casts = [ 'label2_asset_logo' => 'boolean', + 'require_checkinout_notes' => 'boolean', ]; /** From 06e3bb7fd13fb307161ad3f0864babea658354f9 Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 2 Oct 2024 18:37:11 -0400 Subject: [PATCH 20/29] requested changes --- app/Http/Controllers/Assets/AssetCheckinController.php | 2 +- app/Http/Controllers/Assets/AssetCheckoutController.php | 2 +- app/Http/Requests/AssetCheckinRequest.php | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index 1d64da98e25b..ec92070bb494 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -118,7 +118,7 @@ public function store(AssetCheckinRequest $request, $assetId = null, $backto = n $settings = \App\Models\Setting::getSettings(); - if($settings->require_checkinout_notes && (is_null($request->note))) { + if($settings->require_checkinout_notes == '1' && (is_null($request->note))) { return redirect()->to("hardware/$assetId/checkin")->with('error', trans('admin/hardware/message.update.no_note')); } diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index a73e85db52f8..0797c86d5472 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,7 +102,7 @@ public function store(AssetCheckoutRequest $request, $assetId) : RedirectRespons $settings = \App\Models\Setting::getSettings(); - if($settings->require_checkinout_notes= && (is_null($request->note))) { + if($settings->require_checkinout_notes == '1' && (is_null($request->note))) { return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.update.no_note')); } diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 59ab1a72ec7c..6e7e8aa6fae0 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,10 +21,12 @@ public function authorize() */ public function rules() { + $setting = + $rules = []; - if($this->settings->require_checkinout_notes) { - $rules['notes'] = 'required|string'; + if($setting->require_checkinout_notes == '1') { + $rules['notes'] = 'required|string|nullable'; } return $rules; } From e00a1aec026e53a9af01269bf344933d6eb85c8e Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 2 Oct 2024 18:52:33 -0400 Subject: [PATCH 21/29] note box is now missing when unchecking setting --- app/Http/Controllers/Assets/AssetCheckinController.php | 2 +- app/Http/Controllers/Assets/AssetCheckoutController.php | 2 +- app/Http/Requests/AssetCheckinRequest.php | 5 +++-- app/Http/Requests/AssetCheckoutRequest.php | 7 +++++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index ec92070bb494..1d64da98e25b 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -118,7 +118,7 @@ public function store(AssetCheckinRequest $request, $assetId = null, $backto = n $settings = \App\Models\Setting::getSettings(); - if($settings->require_checkinout_notes == '1' && (is_null($request->note))) { + if($settings->require_checkinout_notes && (is_null($request->note))) { return redirect()->to("hardware/$assetId/checkin")->with('error', trans('admin/hardware/message.update.no_note')); } diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index 0797c86d5472..ef60a589d7c7 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,7 +102,7 @@ public function store(AssetCheckoutRequest $request, $assetId) : RedirectRespons $settings = \App\Models\Setting::getSettings(); - if($settings->require_checkinout_notes == '1' && (is_null($request->note))) { + if($settings->require_checkinout_notes && (is_null($request->note))) { return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.update.no_note')); } diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 6e7e8aa6fae0..7321aed193cc 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,11 +21,12 @@ public function authorize() */ public function rules() { - $setting = + $settings = \App\Models\Setting::getSettings(); $rules = []; - if($setting->require_checkinout_notes == '1') { + if($settings->require_checkinout_notes) { + // dd($settings->require_checkinout_notes); $rules['notes'] = 'required|string|nullable'; } return $rules; diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index f48a7d5e534f..27372055f8c5 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -21,6 +21,8 @@ public function authorize() */ public function rules() { + $settings = \App\Models\Setting::getSettings(); + $rules = [ 'assigned_user' => 'required_without_all:assigned_asset,assigned_location', 'assigned_asset' => 'required_without_all:assigned_user,assigned_location', @@ -35,6 +37,11 @@ public function rules() 'nullable', 'date' ], + + if($settings->require_checkinout_notes) { + // dd($settings->require_checkinout_notes); + $rules['notes'] = 'required|string|nullable'; + } ]; return $rules; From 0c84904bf9dba7a1d500086f53dd198d6460489d Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 2 Oct 2024 18:56:41 -0400 Subject: [PATCH 22/29] un'required'ing the rule. not sure what's breaking here but looking --- app/Http/Requests/AssetCheckinRequest.php | 2 +- app/Http/Requests/AssetCheckoutRequest.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 7321aed193cc..3d958aae1844 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -27,7 +27,7 @@ public function rules() if($settings->require_checkinout_notes) { // dd($settings->require_checkinout_notes); - $rules['notes'] = 'required|string|nullable'; + $rules['notes'] = 'string|nullable'; } return $rules; } diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index 27372055f8c5..91ed094ae3cb 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -37,12 +37,12 @@ public function rules() 'nullable', 'date' ], + ]; if($settings->require_checkinout_notes) { // dd($settings->require_checkinout_notes); - $rules['notes'] = 'required|string|nullable'; + $rules['notes'] = 'string|nullable'; } - ]; return $rules; } From 299e743848a5b0b3f2b3fdc508a8097917c906c8 Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 8 Oct 2024 15:51:53 -0400 Subject: [PATCH 23/29] weird requesting --- app/Http/Requests/AssetCheckoutRequest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index 91ed094ae3cb..10e8bfbed553 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -41,7 +41,7 @@ public function rules() if($settings->require_checkinout_notes) { // dd($settings->require_checkinout_notes); - $rules['notes'] = 'string|nullable'; + $rules['notes'] = 'required|string|nullable'; } return $rules; From f0d3a6e2d353d88f598fda957a6190c0efe86cb8 Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 16 Oct 2024 18:35:31 -0400 Subject: [PATCH 24/29] removing some comments/merging in develop --- app/Http/Requests/AssetCheckinRequest.php | 1 - app/Http/Requests/AssetCheckoutRequest.php | 1 - 2 files changed, 2 deletions(-) diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 3d958aae1844..ea2a6e0b0165 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -26,7 +26,6 @@ public function rules() $rules = []; if($settings->require_checkinout_notes) { - // dd($settings->require_checkinout_notes); $rules['notes'] = 'string|nullable'; } return $rules; diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index 10e8bfbed553..f7c338245585 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -40,7 +40,6 @@ public function rules() ]; if($settings->require_checkinout_notes) { - // dd($settings->require_checkinout_notes); $rules['notes'] = 'required|string|nullable'; } From 9cb411c500b7c02cd99d460dc4dc06ebe70c0bb3 Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 13 Nov 2024 18:06:04 -0500 Subject: [PATCH 25/29] removing required form div container --- resources/views/hardware/checkin.blade.php | 2 +- resources/views/hardware/checkout.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 2b087cb58b6e..7569a42cd0d8 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -119,7 +119,7 @@ {{ trans('general.notes') }} @if($snipeSettings->require_checkinout_notes=="1") -
+
{!! $errors->first('note', '') !!} diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index a37f705179ea..fadb7a1abcfa 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -142,7 +142,7 @@ {{ trans('general.notes') }} @if($snipeSettings->require_checkinout_notes=="1") -
+
{!! $errors->first('note', '') !!} From dd223fc215792d9396dd5ad69fad024f29d40811 Mon Sep 17 00:00:00 2001 From: akemidx Date: Thu, 21 Nov 2024 19:01:27 -0500 Subject: [PATCH 26/29] commit for testing --- .../Controllers/Assets/AssetCheckinController.php | 6 ------ .../Controllers/Assets/AssetCheckoutController.php | 4 ---- app/Http/Requests/AssetCheckinRequest.php | 2 +- app/Http/Requests/AssetCheckoutRequest.php | 2 +- resources/views/hardware/checkin.blade.php | 4 +--- resources/views/hardware/checkout.blade.php | 11 ++--------- 6 files changed, 5 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index 1d64da98e25b..f84a468a60e7 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -116,12 +116,6 @@ public function store(AssetCheckinRequest $request, $assetId = null, $backto = n $seat->update(['assigned_to' => null]); }); - $settings = \App\Models\Setting::getSettings(); - - if($settings->require_checkinout_notes && (is_null($request->note))) { - return redirect()->to("hardware/$assetId/checkin")->with('error', trans('admin/hardware/message.update.no_note')); - } - // Get all pending Acceptances for this asset and delete them $acceptances = CheckoutAcceptance::pending()->whereHasMorph('checkoutable', [Asset::class], diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index ef60a589d7c7..05b766916be8 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,10 +102,6 @@ public function store(AssetCheckoutRequest $request, $assetId) : RedirectRespons $settings = \App\Models\Setting::getSettings(); - if($settings->require_checkinout_notes && (is_null($request->note))) { - return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.update.no_note')); - } - // We have to check whether $target->company_id is null here since locations don't have a company yet if (($settings->full_multiple_companies_support) && ((!is_null($target->company_id)) && (!is_null($asset->company_id)))) { if ($target->company_id != $asset->company_id){ diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index ea2a6e0b0165..2a716e00a8e5 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -26,7 +26,7 @@ public function rules() $rules = []; if($settings->require_checkinout_notes) { - $rules['notes'] = 'string|nullable'; + $rules['note'] = 'string|nullable'; } return $rules; } diff --git a/app/Http/Requests/AssetCheckoutRequest.php b/app/Http/Requests/AssetCheckoutRequest.php index f7c338245585..c8245682a2f9 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -40,7 +40,7 @@ public function rules() ]; if($settings->require_checkinout_notes) { - $rules['notes'] = 'required|string|nullable'; + $rules['note'] = 'required|string'; } return $rules; diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 7569a42cd0d8..9188d81eaae9 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -118,13 +118,11 @@ - @if($snipeSettings->require_checkinout_notes=="1")
- {!! $errors->first('note', '') !!}
- @endif
diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index fadb7a1abcfa..e0dc8ef51912 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -141,19 +141,12 @@ - @if($snipeSettings->require_checkinout_notes=="1") -
- - {!! $errors->first('note', '') !!} -
- @else +
- {!! $errors->first('note', '') !!}
- @endif
@if ($asset->requireAcceptance() || $asset->getEula() || ($snipeSettings->webhook_endpoint!='')) From 0d608552ef7f8bbfea7cd40736e711554c19803a Mon Sep 17 00:00:00 2001 From: akemidx Date: Thu, 21 Nov 2024 19:09:54 -0500 Subject: [PATCH 27/29] orange bar for requirednessness --- resources/assets/less/app.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/assets/less/app.less b/resources/assets/less/app.less index 37514e5cfda3..259172baebd2 100644 --- a/resources/assets/less/app.less +++ b/resources/assets/less/app.less @@ -384,7 +384,7 @@ a.logo.no-hover a:hover { background-color: transparent; } -input:required, select:required { +input:required, select:required, textarea:required { border-right: 6px solid orange; } From 2727210c78a6dcc616bd50c6a368741c52804dbd Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 26 Nov 2024 15:04:54 -0500 Subject: [PATCH 28/29] requested changes from pr --- app/Http/Requests/AssetCheckinRequest.php | 2 +- resources/lang/en-US/admin/hardware/message.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Requests/AssetCheckinRequest.php b/app/Http/Requests/AssetCheckinRequest.php index 2a716e00a8e5..8980cea095b4 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -26,7 +26,7 @@ public function rules() $rules = []; if($settings->require_checkinout_notes) { - $rules['note'] = 'string|nullable'; + $rules['note'] = 'string|required'; } return $rules; } diff --git a/resources/lang/en-US/admin/hardware/message.php b/resources/lang/en-US/admin/hardware/message.php index 32358cb6dd8d..c92c0b0ab73f 100644 --- a/resources/lang/en-US/admin/hardware/message.php +++ b/resources/lang/en-US/admin/hardware/message.php @@ -23,7 +23,6 @@ 'nothing_updated' => 'No fields were selected, so nothing was updated.', 'no_assets_selected' => 'No assets were selected, so nothing was updated.', 'assets_do_not_exist_or_are_invalid' => 'Selected assets cannot be updated.', - 'no_note' => 'Note field is empty', ], 'restore' => [ From a7dae10a82eb11f5dedd5df3c8e1e56ad5d0290a Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 26 Nov 2024 15:06:25 -0500 Subject: [PATCH 29/29] fixing line --- resources/lang/en-US/admin/hardware/message.php | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/lang/en-US/admin/hardware/message.php b/resources/lang/en-US/admin/hardware/message.php index c92c0b0ab73f..041d32f56c90 100644 --- a/resources/lang/en-US/admin/hardware/message.php +++ b/resources/lang/en-US/admin/hardware/message.php @@ -77,7 +77,6 @@ 'user_does_not_exist' => 'That user is invalid. Please try again.', 'not_available' => 'That asset is not available for checkout!', 'no_assets_selected' => 'You must select at least one asset from the list', - ], 'checkin' => [