From 552f90ae2c32270c60d6b38628f2d20b63386acd Mon Sep 17 00:00:00 2001 From: akemidx Date: Thu, 1 Aug 2024 16:06:47 -0400 Subject: [PATCH 01/32] 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 1efd39427..e3f65bd7f 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 f91e06036..89d6f06e6 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/32] 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 9c7392560..f0903f412 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 000000000..d4934ed7f --- /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 9ba69ef22..abbf26320 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 91d3b1c56..477d8e68a 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/32] 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 e3f65bd7f..a313b65a3 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 89d6f06e6..79e9e409e 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/32] 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 d4934ed7f..38fdd38c1 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 6b4a00d28..496e899ad 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 108101907..ab8b7b31f 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/32] 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 116b8b39f..dec4b0912 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 f48a7d5e5..0f42076c9 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 496e899ad..12c678e64 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/32] 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 dec4b0912..436a2a9d5 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/32] 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 436a2a9d5..3bee83a81 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 0f42076c9..9064e6dcd 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/32] 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 f84a468a6..2c49f78bf 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 05b766916..506f47680 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 3bee83a81..ea2847189 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 9064e6dcd..f48a7d5e5 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 d06bf4a0e..c9ea79023 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 12c678e64..c015b2563 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/32] 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 506f47680..9e7a17a94 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/32] 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 5686e74dd..1b1950c59 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 943b4ba79..22e1dc00a 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/32] 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 b9026aaec..d17da3c73 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 000000000..d4934ed7f --- /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 9a81886ae..b30a25189 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 c800b26ac..c3d419fe9 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/32] 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 1b1950c59..ce63d6e72 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 22e1dc00a..fadb7a1ab 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/32] 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 d4934ed7f..38fdd38c1 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 ce63d6e72..8b1807cc5 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 fadb7a1ab..a37f70517 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/32] 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 116b8b39f..dec4b0912 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 f48a7d5e5..0f42076c9 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 8b1807cc5..5083325a8 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/32] 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 dec4b0912..436a2a9d5 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/32] 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 436a2a9d5..3bee83a81 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 0f42076c9..9064e6dcd 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/32] 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 f84a468a6..2c49f78bf 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 05b766916..506f47680 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 3bee83a81..ea2847189 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 9064e6dcd..f48a7d5e5 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 041d32f56..32358cb6d 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 5083325a8..2b087cb58 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/32] 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 506f47680..9e7a17a94 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/32] 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 2c49f78bf..1d64da98e 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 9e7a17a94..a73e85db5 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 ea2847189..59ab1a72e 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 d775be81c..188884450 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/32] 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 1d64da98e..ec92070bb 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 a73e85db5..0797c86d5 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 59ab1a72e..6e7e8aa6f 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/32] 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 ec92070bb..1d64da98e 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 0797c86d5..ef60a589d 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 6e7e8aa6f..7321aed19 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 f48a7d5e5..27372055f 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/32] 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 7321aed19..3d958aae1 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 27372055f..91ed094ae 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/32] 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 91ed094ae..10e8bfbed 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/32] 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 3d958aae1..ea2a6e0b0 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 10e8bfbed..f7c338245 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/32] 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 2b087cb58..7569a42cd 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 a37f70517..fadb7a1ab 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/32] 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 1d64da98e..f84a468a6 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 ef60a589d..05b766916 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 ea2a6e0b0..2a716e00a 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 f7c338245..c8245682a 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 7569a42cd..9188d81ea 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 fadb7a1ab..e0dc8ef51 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/32] 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 37514e5cf..259172bae 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 021e82927e3f4e95ecc00d7f3154feecee7e8a24 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 26 Nov 2024 10:42:59 -0800 Subject: [PATCH 28/32] fixed mobile view of assets --- resources/assets/less/overrides.less | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/assets/less/overrides.less b/resources/assets/less/overrides.less index 34b0c5906..57d0d695b 100644 --- a/resources/assets/less/overrides.less +++ b/resources/assets/less/overrides.less @@ -876,9 +876,11 @@ th.css-component > .th-inner::before } @media screen and (max-width: 992px){ .info-stack-container { - display: flex; flex-direction: column; } + .row-new-striped div { + width:100%; + } .col-md-3.col-xs-12.col-sm-push-9.info-stack{ left:auto; order:1; From 15c9df0ab175c0ca14d7506a6a85349dcb7243a6 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 26 Nov 2024 10:59:31 -0800 Subject: [PATCH 29/32] fix mobile view for asset and user --- resources/assets/less/overrides.less | 9 ++++++--- resources/views/users/view.blade.php | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/resources/assets/less/overrides.less b/resources/assets/less/overrides.less index 57d0d695b..b7ba55a01 100644 --- a/resources/assets/less/overrides.less +++ b/resources/assets/less/overrides.less @@ -878,9 +878,6 @@ th.css-component > .th-inner::before .info-stack-container { flex-direction: column; } - .row-new-striped div { - width:100%; - } .col-md-3.col-xs-12.col-sm-push-9.info-stack{ left:auto; order:1; @@ -894,6 +891,12 @@ th.css-component > .th-inner::before float:none; } } +@media screen and (max-width: 992px){ + .row-new-striped div{ + width:100%; + } +} + @media screen and (max-width: 1318px) and (min-width: 1200px){ .admin.box{ height:170px; diff --git a/resources/views/users/view.blade.php b/resources/views/users/view.blade.php index b59a5ac12..51e343780 100755 --- a/resources/views/users/view.blade.php +++ b/resources/views/users/view.blade.php @@ -309,10 +309,10 @@
-
+
{{ trans('admin/users/table.name') }}
-
+
{{ $user->present()->fullName() }}
@@ -751,7 +751,7 @@ {{Helper::formatCurrencyOutput($user->getUserTotalCost()->total_user_cost)}} - + {{ trans('admin/hardware/form.optional_infos') }}
From 2727210c78a6dcc616bd50c6a368741c52804dbd Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 26 Nov 2024 15:04:54 -0500 Subject: [PATCH 30/32] 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 2a716e00a..8980cea09 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 32358cb6d..c92c0b0ab 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 31/32] 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 c92c0b0ab..041d32f56 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' => [ From 0f1d10bd698b93519a9fd7e99f8c4671db7ed881 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 26 Nov 2024 20:12:09 +0000 Subject: [PATCH 32/32] Dev assets Signed-off-by: snipe --- public/css/build/app.css | 6 +++++- public/css/build/overrides.css | 6 +++++- public/css/dist/all.css | 12 ++++++++++-- public/mix-manifest.json | 6 +++--- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/public/css/build/app.css b/public/css/build/app.css index 1637a78a1..83e5d5885 100644 --- a/public/css/build/app.css +++ b/public/css/build/app.css @@ -1160,7 +1160,6 @@ th.css-component > .th-inner::before { } @media screen and (max-width: 992px) { .info-stack-container { - display: flex; flex-direction: column; } .col-md-3.col-xs-12.col-sm-push-9.info-stack { @@ -1176,6 +1175,11 @@ th.css-component > .th-inner::before { float: none; } } +@media screen and (max-width: 992px) { + .row-new-striped div { + width: 100%; + } +} @media screen and (max-width: 1318px) and (min-width: 1200px) { .admin.box { height: 170px; diff --git a/public/css/build/overrides.css b/public/css/build/overrides.css index fee947601..5bae690fa 100644 --- a/public/css/build/overrides.css +++ b/public/css/build/overrides.css @@ -792,7 +792,6 @@ th.css-component > .th-inner::before { } @media screen and (max-width: 992px) { .info-stack-container { - display: flex; flex-direction: column; } .col-md-3.col-xs-12.col-sm-push-9.info-stack { @@ -808,6 +807,11 @@ th.css-component > .th-inner::before { float: none; } } +@media screen and (max-width: 992px) { + .row-new-striped div { + width: 100%; + } +} @media screen and (max-width: 1318px) and (min-width: 1200px) { .admin.box { height: 170px; diff --git a/public/css/dist/all.css b/public/css/dist/all.css index 5107d4446..ea42eb7ad 100644 --- a/public/css/dist/all.css +++ b/public/css/dist/all.css @@ -22458,7 +22458,6 @@ th.css-component > .th-inner::before { } @media screen and (max-width: 992px) { .info-stack-container { - display: flex; flex-direction: column; } .col-md-3.col-xs-12.col-sm-push-9.info-stack { @@ -22474,6 +22473,11 @@ th.css-component > .th-inner::before { float: none; } } +@media screen and (max-width: 992px) { + .row-new-striped div { + width: 100%; + } +} @media screen and (max-width: 1318px) and (min-width: 1200px) { .admin.box { height: 170px; @@ -23939,7 +23943,6 @@ th.css-component > .th-inner::before { } @media screen and (max-width: 992px) { .info-stack-container { - display: flex; flex-direction: column; } .col-md-3.col-xs-12.col-sm-push-9.info-stack { @@ -23955,6 +23958,11 @@ th.css-component > .th-inner::before { float: none; } } +@media screen and (max-width: 992px) { + .row-new-striped div { + width: 100%; + } +} @media screen and (max-width: 1318px) and (min-width: 1200px) { .admin.box { height: 170px; diff --git a/public/mix-manifest.json b/public/mix-manifest.json index c034c4b92..811fda54f 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -2,8 +2,8 @@ "/js/build/app.js": "/js/build/app.js?id=65d7af7b9fa7fd0e05737526a0d1d282", "/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=06c13e817cc022028b3f4a33c0ca303a", "/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=e71ef4171dee5da63af390966ac60ffc", - "/css/build/overrides.css": "/css/build/overrides.css?id=835426a1099db0ae4ee3aaa077e68035", - "/css/build/app.css": "/css/build/app.css?id=91ffc6625d6af7a1cef7bb1a68a30ba0", + "/css/build/overrides.css": "/css/build/overrides.css?id=5b8f0ac249624a9dbe1b6fb6c756dbf6", + "/css/build/app.css": "/css/build/app.css?id=b359fb605b4c47220b57d19652142031", "/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=4ea0068716c1bb2434d87a16d51b98c9", "/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=7b315b9612b8fde8f9c5b0ddb6bba690", "/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=ea22079836a432d7f46a5d390c445e13", @@ -19,7 +19,7 @@ "/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=f677207c6cf9678eb539abecb408c374", "/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=6ea836d8126de101081c49abbdb89417", "/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=76482123f6c70e866d6b971ba91de7bb", - "/css/dist/all.css": "/css/dist/all.css?id=c91bb566ac8ec8e72a2ab9d6ee2f8a2d", + "/css/dist/all.css": "/css/dist/all.css?id=26fc12b01211349d0a244c39cc9555a6", "/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7", "/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7", "/js/select2/i18n/af.js": "/js/select2/i18n/af.js?id=4f6fcd73488ce79fae1b7a90aceaecde",