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 1efd394277..e3f65bd7ff 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 f91e060368..89d6f06e6e 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 9c7392560d..f0903f412b 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -342,6 +342,8 @@ class SettingsController extends Controller $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 0000000000..d4934ed7fb --- /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 9ba69ef22a..abbf263209 100644 --- a/resources/lang/en-US/admin/settings/general.php +++ b/resources/lang/en-US/admin/settings/general.php @@ -276,6 +276,8 @@ return [ '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 91d3b1c56f..477d8e68a0 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 e3f65bd7ff..a313b65a33 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 89d6f06e6e..79e9e409e5 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 d4934ed7fb..38fdd38c11 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 @@ return new class extends Migration 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 6b4a00d284..496e899add 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 1081019072..ab8b7b31f3 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 116b8b39f2..dec4b0912f 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,9 +21,9 @@ class AssetCheckinRequest extends Request */ 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 f48a7d5e53..0f42076c9b 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,6 +27,7 @@ class AssetCheckoutRequest extends Request '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 496e899add..12c678e645 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 dec4b0912f..436a2a9d58 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,7 +21,7 @@ class AssetCheckinRequest extends Request */ 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 436a2a9d58..3bee83a810 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -19,12 +19,12 @@ class AssetCheckinRequest extends Request * * @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 0f42076c9b..9064e6dcd0 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,7 +27,7 @@ class AssetCheckoutRequest extends Request '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 f84a468a60..2c49f78bfb 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -116,6 +116,12 @@ class AssetCheckinController extends Controller $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 05b766916b..506f47680c 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,6 +102,10 @@ class AssetCheckoutController extends Controller $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 3bee83a810..ea28471899 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -14,18 +14,6 @@ class AssetCheckinRequest extends Request 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 9064e6dcd0..f48a7d5e53 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,7 +27,6 @@ class AssetCheckoutRequest extends Request '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 d06bf4a0e0..c9ea79023b 100644 --- a/resources/lang/en-US/admin/hardware/message.php +++ b/resources/lang/en-US/admin/hardware/message.php @@ -23,6 +23,7 @@ return [ '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 @@ return [ '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 12c678e645..c015b25631 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 506f47680c..9e7a17a942 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -103,7 +103,7 @@ class AssetCheckoutController extends Controller $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 5686e74dd4..1b1950c594 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 943b4ba798..22e1dc00a4 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 b9026aaece..d17da3c737 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -343,6 +343,8 @@ class SettingsController extends Controller $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 0000000000..d4934ed7fb --- /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 9a81886ae8..b30a251894 100644 --- a/resources/lang/en-US/admin/settings/general.php +++ b/resources/lang/en-US/admin/settings/general.php @@ -280,6 +280,8 @@ return [ '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 c800b26ac9..c3d419fe98 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 1b1950c594..ce63d6e723 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 22e1dc00a4..fadb7a1abc 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 d4934ed7fb..38fdd38c11 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 @@ return new class extends Migration 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 ce63d6e723..8b1807cc50 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 fadb7a1abc..a37f705179 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 116b8b39f2..dec4b0912f 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,9 +21,9 @@ class AssetCheckinRequest extends Request */ 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 f48a7d5e53..0f42076c9b 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,6 +27,7 @@ class AssetCheckoutRequest extends Request '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 8b1807cc50..5083325a8e 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 dec4b0912f..436a2a9d58 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,7 +21,7 @@ class AssetCheckinRequest extends Request */ 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 436a2a9d58..3bee83a810 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -19,12 +19,12 @@ class AssetCheckinRequest extends Request * * @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 0f42076c9b..9064e6dcd0 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,7 +27,7 @@ class AssetCheckoutRequest extends Request '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 f84a468a60..2c49f78bfb 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -116,6 +116,12 @@ class AssetCheckinController extends Controller $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 05b766916b..506f47680c 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,6 +102,10 @@ class AssetCheckoutController extends Controller $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 3bee83a810..ea28471899 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -14,18 +14,6 @@ class AssetCheckinRequest extends Request 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 9064e6dcd0..f48a7d5e53 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -27,7 +27,6 @@ class AssetCheckoutRequest extends Request '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 041d32f56c..32358cb6dd 100644 --- a/resources/lang/en-US/admin/hardware/message.php +++ b/resources/lang/en-US/admin/hardware/message.php @@ -23,6 +23,7 @@ return [ '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 @@ return [ '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 5083325a8e..2b087cb58b 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 506f47680c..9e7a17a942 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -103,7 +103,7 @@ class AssetCheckoutController extends Controller $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 2c49f78bfb..1d64da98e2 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -118,7 +118,7 @@ class AssetCheckinController extends Controller $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 9e7a17a942..a73e85db52 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,7 +102,7 @@ class AssetCheckoutController extends Controller $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 ea28471899..59ab1a72ec 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -14,6 +14,21 @@ class AssetCheckinRequest extends Request 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 d775be81c5..1888844508 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 1d64da98e2..ec92070bb4 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -118,7 +118,7 @@ class AssetCheckinController extends Controller $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 a73e85db52..0797c86d54 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,7 +102,7 @@ class AssetCheckoutController extends Controller $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 59ab1a72ec..6e7e8aa6fa 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,10 +21,12 @@ class AssetCheckinRequest extends Request */ 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 ec92070bb4..1d64da98e2 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -118,7 +118,7 @@ class AssetCheckinController extends Controller $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 0797c86d54..ef60a589d7 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,7 +102,7 @@ class AssetCheckoutController extends Controller $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 6e7e8aa6fa..7321aed193 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -21,11 +21,12 @@ class AssetCheckinRequest extends Request */ 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 f48a7d5e53..27372055f8 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -21,6 +21,8 @@ class AssetCheckoutRequest extends Request */ 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 @@ class AssetCheckoutRequest extends Request '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 7321aed193..3d958aae18 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -27,7 +27,7 @@ class AssetCheckinRequest extends Request 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 27372055f8..91ed094ae3 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -37,12 +37,12 @@ class AssetCheckoutRequest extends Request '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 91ed094ae3..10e8bfbed5 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -41,7 +41,7 @@ class AssetCheckoutRequest extends Request 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 3d958aae18..ea2a6e0b01 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -26,7 +26,6 @@ class AssetCheckinRequest extends Request $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 10e8bfbed5..f7c3382455 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -40,7 +40,6 @@ class AssetCheckoutRequest extends Request ]; 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 2b087cb58b..7569a42cd0 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 a37f705179..fadb7a1abc 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 1d64da98e2..f84a468a60 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -116,12 +116,6 @@ class AssetCheckinController extends Controller $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 ef60a589d7..05b766916b 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -102,10 +102,6 @@ class AssetCheckoutController extends Controller $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 ea2a6e0b01..2a716e00a8 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -26,7 +26,7 @@ class AssetCheckinRequest extends Request $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 f7c3382455..c8245682a2 100644 --- a/app/Http/Requests/AssetCheckoutRequest.php +++ b/app/Http/Requests/AssetCheckoutRequest.php @@ -40,7 +40,7 @@ class AssetCheckoutRequest extends Request ]; 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 7569a42cd0..9188d81eaa 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 fadb7a1abc..e0dc8ef519 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 37514e5cfd..259172baeb 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 2a716e00a8..8980cea095 100644 --- a/app/Http/Requests/AssetCheckinRequest.php +++ b/app/Http/Requests/AssetCheckinRequest.php @@ -26,7 +26,7 @@ class AssetCheckinRequest extends Request $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 32358cb6dd..c92c0b0ab7 100644 --- a/resources/lang/en-US/admin/hardware/message.php +++ b/resources/lang/en-US/admin/hardware/message.php @@ -23,7 +23,6 @@ return [ '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 c92c0b0ab7..041d32f56c 100644 --- a/resources/lang/en-US/admin/hardware/message.php +++ b/resources/lang/en-US/admin/hardware/message.php @@ -77,7 +77,6 @@ return [ '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' => [