From f3e49e70102edb9474524106d1b091d673fbb4a1 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 1 Jul 2025 10:43:00 -0700 Subject: [PATCH 1/7] add asset model as a redirect option --- app/Helpers/Helper.php | 5 +++++ app/Http/Controllers/Assets/AssetsController.php | 6 +++++- resources/views/hardware/edit.blade.php | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index f544f2bc36..aa8b3a5571 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -1542,6 +1542,11 @@ class Helper case 'audit': return route('assets.audit.due'); } + switch ($other_redirect) { + case 'model': + + return route('models.show', $request->model_id ); + } } diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index 03486ffe82..739523b7e9 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -427,8 +427,12 @@ class AssetsController extends Controller } } } + session()->put([ + 'redirect_option' => $request->get('redirect_option'), + 'checkout_to_type' => $request->get('checkout_to_type'), + 'other_redirect' => $request->get('redirect_option') === 'other_redirect' ? 'model' : null, + ]); - session()->put(['redirect_option' => $request->get('redirect_option'), 'checkout_to_type' => $request->get('checkout_to_type')]); if ($asset->save()) { return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets')) diff --git a/resources/views/hardware/edit.blade.php b/resources/views/hardware/edit.blade.php index 3253e8c5c0..de4fc82b0b 100755 --- a/resources/views/hardware/edit.blade.php +++ b/resources/views/hardware/edit.blade.php @@ -10,6 +10,7 @@ 'options' => [ 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'assets']), 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.asset')]), + 'other_redirect' => trans('admin/hardware/form.redirect_to_type', [ 'type' => trans('general.asset').' '.trans('general.asset_model')]) ] ]) From 9d712ad8f126bc6c07eb5ad36333f475d46d36bf Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 1 Jul 2025 10:56:02 -0700 Subject: [PATCH 2/7] clean up code --- app/Helpers/Helper.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index aa8b3a5571..e9d450ebfc 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -1541,10 +1541,7 @@ class Helper switch ($other_redirect) { case 'audit': return route('assets.audit.due'); - } - switch ($other_redirect) { case 'model': - return route('models.show', $request->model_id ); } From 7217d9c427514b8d5a7bdee7a141347d320700f3 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 1 Jul 2025 11:55:46 -0700 Subject: [PATCH 3/7] adds redirect to previous page, use match instead of switch cases --- app/Helpers/Helper.php | 78 +++++++++---------- .../Controllers/Assets/AssetsController.php | 3 +- resources/lang/en-US/general.php | 2 + resources/views/hardware/edit.blade.php | 3 +- 4 files changed, 42 insertions(+), 44 deletions(-) diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index e9d450ebfc..20aebb4f22 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -1487,63 +1487,57 @@ class Helper $checkout_to_type = Session::get('checkout_to_type'); $checkedInFrom = Session::get('checkedInFrom'); $other_redirect = Session::get('other_redirect'); + $backUrl = Session::pull('back_url', route('home')); + + // return to previous page + if ($redirect_option === 'back') { + if ($backUrl === route('home')) { + return redirect()->to($backUrl) + ->with('warning', trans('general.page_error')); + } + + return redirect()->to($backUrl); + } // return to index if ($redirect_option == 'index') { - switch ($table) { - case "Assets": - return route('hardware.index'); - case "Users": - return route('users.index'); - case "Licenses": - return route('licenses.index'); - case "Accessories": - return route('accessories.index'); - case "Components": - return route('components.index'); - case "Consumables": - return route('consumables.index'); - } + return match ($table) { + 'Assets' => redirect()->route('hardware.index'), + 'Users' => redirect()->route('users.index'), + 'Licenses' => redirect()->route('licenses.index'), + 'Accessories' => redirect()->route('accessories.index'), + 'Components' => redirect()->route('components.index'), + 'Consumables' => redirect()->route('consumables.index'), + }; } // return to thing being assigned if ($redirect_option == 'item') { - switch ($table) { - case "Assets": - return route('hardware.show', $id ?? $item_id); - case "Users": - return route('users.show', $id ?? $item_id); - case "Licenses": - return route('licenses.show', $id ?? $item_id); - case "Accessories": - return route('accessories.show', $id ?? $item_id); - case "Components": - return route('components.show', $id ?? $item_id); - case "Consumables": - return route('consumables.show', $id ?? $item_id); - } + return match ($table) { + 'Assets' => redirect()->route('hardware.show', $id ?? $item_id), + 'Users' => redirect()->route('users.show', $id ?? $item_id), + 'Licenses' => redirect()->route('licenses.show', $id ?? $item_id), + 'Accessories' => redirect()->route('accessories.show', $id ?? $item_id), + 'Components' => redirect()->route('components.show', $id ?? $item_id), + 'Consumables' => redirect()->route('consumables.show', $id ?? $item_id), + }; } // return to assignment target if ($redirect_option == 'target') { - switch ($checkout_to_type) { - case 'user': - return route('users.show', $request->assigned_user ?? $checkedInFrom); - case 'location': - return route('locations.show', $request->assigned_location ?? $checkedInFrom); - case 'asset': - return route('hardware.show', $request->assigned_asset ?? $checkedInFrom); - } + return match ($checkout_to_type) { + 'user' => redirect()->route('users.show', $request->assigned_user ?? $checkedInFrom), + 'location' => redirect()->route('locations.show', $request->assigned_location ?? $checkedInFrom), + 'asset' => redirect()->route('hardware.show', $request->assigned_asset ?? $checkedInFrom), + }; } // return to somewhere else if ($redirect_option == 'other_redirect') { - switch ($other_redirect) { - case 'audit': - return route('assets.audit.due'); - case 'model': - return route('models.show', $request->model_id ); - } + return match ($other_redirect) { + 'audit' => redirect()->route('assets.audit.due'), + 'model' => redirect()->route('models.show', $request->model_id), + }; } diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index 739523b7e9..d48905b652 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -265,6 +265,7 @@ class AssetsController extends Controller public function edit(Asset $asset) : View | RedirectResponse { $this->authorize($asset); + session()->put('back_url', url()->previous()); return view('hardware/edit') ->with('item', $asset) ->with('statuslabel_list', Helper::statusLabelList()) @@ -435,7 +436,7 @@ class AssetsController extends Controller if ($asset->save()) { - return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets')) + return Helper::getRedirectOption($request, $asset->id, 'Assets') ->with('success', trans('admin/hardware/message.update.success')); } diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index 361f5cf3a5..2999fa4160 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -225,11 +225,13 @@ return [ 'order_number' => 'Order Number', 'only_deleted' => 'Only Deleted Assets', 'page_menu' => 'Showing _MENU_ items', + 'page_error' => 'Could not determine previous page. Redirected to homepage.', 'pagination_info' => 'Showing _START_ to _END_ of _TOTAL_ items', 'pending' => 'Pending', 'people' => 'People', 'per_page' => 'Results Per Page', 'previous' => 'Previous', + 'previous_page' => 'Previous Page', 'processing' => 'Processing', 'profile' => 'Your profile', 'purchase_cost' => 'Purchase Cost', diff --git a/resources/views/hardware/edit.blade.php b/resources/views/hardware/edit.blade.php index de4fc82b0b..75c78ef830 100755 --- a/resources/views/hardware/edit.blade.php +++ b/resources/views/hardware/edit.blade.php @@ -8,9 +8,10 @@ 'formAction' => ($item->id) ? route('hardware.update', $item) : route('hardware.store'), 'index_route' => 'hardware.index', 'options' => [ + 'back' => trans('admin/hardware/form.redirect_to_type',['type' => trans('general.previous_page')]), 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'assets']), 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.asset')]), - 'other_redirect' => trans('admin/hardware/form.redirect_to_type', [ 'type' => trans('general.asset').' '.trans('general.asset_model')]) + 'other_redirect' => trans('admin/hardware/form.redirect_to_type', [ 'type' => trans('general.asset').' '.trans('general.asset_model')]), ] ]) From ca9ff8cf19671a09926fffb11e2004d61feb9e14 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 1 Jul 2025 12:04:02 -0700 Subject: [PATCH 4/7] set return type for RedirectOptions --- app/Helpers/Helper.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 20aebb4f22..846b44fdc3 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -13,6 +13,7 @@ use App\Models\Setting; use App\Models\Statuslabel; use App\Models\License; use App\Models\Location; +use Illuminate\Http\RedirectResponse; use Illuminate\Support\Facades\Crypt; use Illuminate\Contracts\Encryption\DecryptException; use Carbon\Carbon; @@ -1480,7 +1481,7 @@ class Helper } - static public function getRedirectOption($request, $id, $table, $item_id = null) + static public function getRedirectOption($request, $id, $table, $item_id = null) : RedirectResponse { $redirect_option = Session::get('redirect_option'); From 8a9cf07063d54532b5bc7a6b8c6e019aad7c083a Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 1 Jul 2025 12:31:55 -0700 Subject: [PATCH 5/7] editing controllers and edit blades for other categories --- app/Helpers/Helper.php | 2 +- app/Http/Controllers/Components/ComponentsController.php | 7 +++++-- .../Controllers/Consumables/ConsumablesController.php | 7 +++++-- app/Http/Controllers/Licenses/LicensesController.php | 8 +++++--- app/Http/Controllers/Users/UsersController.php | 6 ++++-- resources/views/components/edit.blade.php | 1 + resources/views/consumables/edit.blade.php | 1 + resources/views/licenses/edit.blade.php | 1 + resources/views/users/edit.blade.php | 1 + 9 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 846b44fdc3..2d1968a5aa 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -1484,7 +1484,7 @@ class Helper static public function getRedirectOption($request, $id, $table, $item_id = null) : RedirectResponse { - $redirect_option = Session::get('redirect_option'); + $redirect_option = Session::get('redirect_option') ?? $request->input('redirect_option'); $checkout_to_type = Session::get('checkout_to_type'); $checkedInFrom = Session::get('checkedInFrom'); $other_redirect = Session::get('other_redirect'); diff --git a/app/Http/Controllers/Components/ComponentsController.php b/app/Http/Controllers/Components/ComponentsController.php index 74594d312b..0a4a327167 100644 --- a/app/Http/Controllers/Components/ComponentsController.php +++ b/app/Http/Controllers/Components/ComponentsController.php @@ -91,7 +91,8 @@ class ComponentsController extends Controller session()->put(['redirect_option' => $request->get('redirect_option')]); if ($component->save()) { - return redirect()->to(Helper::getRedirectOption($request, $component->id, 'Components'))->with('success', trans('admin/components/message.create.success')); + return Helper::getRedirectOption($request, $component->id, 'Components') + ->with('success', trans('admin/components/message.create.success')); } return redirect()->back()->withInput()->withErrors($component->getErrors()); @@ -111,6 +112,7 @@ class ComponentsController extends Controller { $this->authorize('update', $component); + session()->put('back_url', url()->previous()); return view('components/edit') ->with('item', $component) ->with('category_type', 'component'); @@ -164,7 +166,8 @@ class ComponentsController extends Controller session()->put(['redirect_option' => $request->get('redirect_option')]); if ($component->save()) { - return redirect()->to(Helper::getRedirectOption($request, $component->id, 'Components'))->with('success', trans('admin/components/message.update.success')); + return Helper::getRedirectOption($request, $component->id, 'Components') + ->with('success', trans('admin/components/message.update.success')); } return redirect()->back()->withInput()->withErrors($component->getErrors()); diff --git a/app/Http/Controllers/Consumables/ConsumablesController.php b/app/Http/Controllers/Consumables/ConsumablesController.php index c96c2db975..dc0b7e4b3d 100644 --- a/app/Http/Controllers/Consumables/ConsumablesController.php +++ b/app/Http/Controllers/Consumables/ConsumablesController.php @@ -90,7 +90,8 @@ class ConsumablesController extends Controller session()->put(['redirect_option' => $request->get('redirect_option')]); if ($consumable->save()) { - return redirect()->to(Helper::getRedirectOption($request, $consumable->id, 'Consumables'))->with('success', trans('admin/consumables/message.create.success')); + return Helper::getRedirectOption($request, $consumable->id, 'Consumables') + ->with('success', trans('admin/consumables/message.create.success')); } return redirect()->back()->withInput()->withErrors($consumable->getErrors()); @@ -107,6 +108,7 @@ class ConsumablesController extends Controller public function edit(Consumable $consumable) : View | RedirectResponse { $this->authorize($consumable); + session()->put('back_url', url()->previous()); return view('consumables/edit') ->with('item', $consumable) ->with('category_type', 'consumable'); @@ -160,7 +162,8 @@ class ConsumablesController extends Controller session()->put(['redirect_option' => $request->get('redirect_option')]); if ($consumable->save()) { - return redirect()->to(Helper::getRedirectOption($request, $consumable->id, 'Consumables'))->with('success', trans('admin/consumables/message.update.success')); + return Helper::getRedirectOption($request, $consumable->id, 'Consumables') + ->with('success', trans('admin/consumables/message.update.success')); } return redirect()->back()->withInput()->withErrors($consumable->getErrors()); diff --git a/app/Http/Controllers/Licenses/LicensesController.php b/app/Http/Controllers/Licenses/LicensesController.php index ab1e3868d2..458b1ce15b 100755 --- a/app/Http/Controllers/Licenses/LicensesController.php +++ b/app/Http/Controllers/Licenses/LicensesController.php @@ -105,7 +105,8 @@ class LicensesController extends Controller session()->put(['redirect_option' => $request->get('redirect_option')]); if ($license->save()) { - return redirect()->to(Helper::getRedirectOption($request, $license->id, 'Licenses'))->with('success', trans('admin/licenses/message.create.success')); + return Helper::getRedirectOption($request, $license->id, 'Licenses') + ->with('success', trans('admin/licenses/message.create.success')); } return redirect()->back()->withInput()->withErrors($license->getErrors()); @@ -125,7 +126,7 @@ class LicensesController extends Controller { $this->authorize('update', $license); - + session()->put('back_url', url()->previous()); $maintained_list = [ '' => 'Maintained', '1' => 'Yes', @@ -181,7 +182,8 @@ class LicensesController extends Controller session()->put(['redirect_option' => $request->get('redirect_option')]); if ($license->save()) { - return redirect()->to(Helper::getRedirectOption($request, $license->id, 'Licenses'))->with('success', trans('admin/licenses/message.update.success')); + return Helper::getRedirectOption($request, $license->id, 'Licenses') + ->with('success', trans('admin/licenses/message.update.success')); } // If we can't adjust the number of seats, the error is flashed to the session by the event handler in License.php return redirect()->back()->withInput()->withErrors($license->getErrors()); diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index b18a7b6fff..2e4ec50e93 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -154,7 +154,8 @@ class UsersController extends Controller $user->notify(new WelcomeNotification($data)); } - return redirect()->to(Helper::getRedirectOption($request, $user->id, 'Users'))->with('success', trans('admin/users/message.success.create')); + return Helper::getRedirectOption($request, $user->id, 'Users') + ->with('success', trans('admin/users/message.success.create')); } return redirect()->back()->withInput()->withErrors($user->getErrors()); @@ -186,6 +187,7 @@ class UsersController extends Controller { $this->authorize('update', User::class); + session()->put('back_url', url()->previous()); $user = User::with(['assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'])->withTrashed()->find($user->id); if ($user) { @@ -312,7 +314,7 @@ class UsersController extends Controller if ($user->save()) { // Redirect to the user page - return redirect()->to(Helper::getRedirectOption($request, $user->id, 'Users')) + return Helper::getRedirectOption($request, $user->id, 'Users') ->with('success', trans('admin/users/message.success.update')); } return redirect()->back()->withInput()->withErrors($user->getErrors()); diff --git a/resources/views/components/edit.blade.php b/resources/views/components/edit.blade.php index 979d68248c..b9a393f1d1 100644 --- a/resources/views/components/edit.blade.php +++ b/resources/views/components/edit.blade.php @@ -6,6 +6,7 @@ 'formAction' => (isset($item->id)) ? route('components.update', ['component' => $item->id]) : route('components.store'), 'index_route' => 'components.index', 'options' => [ + 'back' => trans('admin/hardware/form.redirect_to_type',['type' => trans('general.previous_page')]), 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'components']), 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.component')]), ] diff --git a/resources/views/consumables/edit.blade.php b/resources/views/consumables/edit.blade.php index e844338fa7..5b8dd736c6 100644 --- a/resources/views/consumables/edit.blade.php +++ b/resources/views/consumables/edit.blade.php @@ -6,6 +6,7 @@ 'formAction' => (isset($item->id)) ? route('consumables.update', ['consumable' => $item->id]) : route('consumables.store'), 'index_route' => 'consumables.index', 'options' => [ + 'back' => trans('admin/hardware/form.redirect_to_type',['type' => trans('general.previous_page')]), 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'consumables']), 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.consumable')]), ] diff --git a/resources/views/licenses/edit.blade.php b/resources/views/licenses/edit.blade.php index 7bb12728bc..87b0180216 100755 --- a/resources/views/licenses/edit.blade.php +++ b/resources/views/licenses/edit.blade.php @@ -5,6 +5,7 @@ 'formAction' => ($item->id) ? route('licenses.update', ['license' => $item->id]) : route('licenses.store'), 'index_route' => 'licenses.index', 'options' => [ + 'back' => trans('admin/hardware/form.redirect_to_type',['type' => trans('general.previous_page')]), 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'licenses']), 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.license')]), ] diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php index 78344f5b3f..4e2293f59b 100755 --- a/resources/views/users/edit.blade.php +++ b/resources/views/users/edit.blade.php @@ -599,6 +599,7 @@ index_route="users.index" :button_label="trans('general.save')" :options="[ + 'back' => trans('admin/hardware/form.redirect_to_type',['type' => trans('general.previous_page')]), 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'users']), 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.user')]), ]" From 55ebb4671fa5af2978f8b34a739759fa3a3a7568 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 1 Jul 2025 12:44:26 -0700 Subject: [PATCH 6/7] update check in and check out controllers --- app/Helpers/Helper.php | 2 +- .../Controllers/Accessories/AccessoriesController.php | 6 ++++-- .../Accessories/AccessoryCheckinController.php | 3 ++- .../Accessories/AccessoryCheckoutController.php | 2 +- app/Http/Controllers/Assets/AssetCheckinController.php | 3 ++- app/Http/Controllers/Assets/AssetCheckoutController.php | 2 +- app/Http/Controllers/Assets/AssetsController.php | 8 ++++---- .../Controllers/Components/ComponentCheckinController.php | 4 ++-- .../Components/ComponentCheckoutController.php | 3 ++- .../Consumables/ConsumableCheckoutController.php | 3 ++- .../Controllers/Licenses/LicenseCheckinController.php | 3 ++- .../Controllers/Licenses/LicenseCheckoutController.php | 3 ++- 12 files changed, 25 insertions(+), 17 deletions(-) diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 2d1968a5aa..31596f5a18 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -1485,7 +1485,7 @@ class Helper { $redirect_option = Session::get('redirect_option') ?? $request->input('redirect_option'); - $checkout_to_type = Session::get('checkout_to_type'); + $checkout_to_type = Session::get('checkout_to_type') ?? $request->input('checkout_to_type'); $checkedInFrom = Session::get('checkedInFrom'); $other_redirect = Session::get('other_redirect'); $backUrl = Session::pull('back_url', route('home')); diff --git a/app/Http/Controllers/Accessories/AccessoriesController.php b/app/Http/Controllers/Accessories/AccessoriesController.php index 66a914e9a9..20a6266474 100755 --- a/app/Http/Controllers/Accessories/AccessoriesController.php +++ b/app/Http/Controllers/Accessories/AccessoriesController.php @@ -83,7 +83,8 @@ class AccessoriesController extends Controller // Was the accessory created? if ($accessory->save()) { // Redirect to the new accessory page - return redirect()->to(Helper::getRedirectOption($request, $accessory->id, 'Accessories'))->with('success', trans('admin/accessories/message.create.success')); + return Helper::getRedirectOption($request, $accessory->id, 'Accessories') + ->with('success', trans('admin/accessories/message.create.success')); } return redirect()->back()->withInput()->withErrors($accessory->getErrors()); @@ -167,7 +168,8 @@ class AccessoriesController extends Controller session()->put(['redirect_option' => $request->get('redirect_option')]); if ($accessory->save()) { - return redirect()->to(Helper::getRedirectOption($request, $accessory->id, 'Accessories'))->with('success', trans('admin/accessories/message.update.success')); + return Helper::getRedirectOption($request, $accessory->id, 'Accessories') + ->with('success', trans('admin/accessories/message.update.success')); } } else { return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist')); diff --git a/app/Http/Controllers/Accessories/AccessoryCheckinController.php b/app/Http/Controllers/Accessories/AccessoryCheckinController.php index ab24200d78..a7655a278b 100644 --- a/app/Http/Controllers/Accessories/AccessoryCheckinController.php +++ b/app/Http/Controllers/Accessories/AccessoryCheckinController.php @@ -78,7 +78,8 @@ class AccessoryCheckinController extends Controller session()->put(['redirect_option' => $request->get('redirect_option')]); - return redirect()->to(Helper::getRedirectOption($request, $accessory->id, 'Accessories'))->with('success', trans('admin/accessories/message.checkin.success')); + return Helper::getRedirectOption($request, $accessory->id, 'Accessories') + ->with('success', trans('admin/accessories/message.checkin.success')); } // Redirect to the accessory management page with error return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkin.error')); diff --git a/app/Http/Controllers/Accessories/AccessoryCheckoutController.php b/app/Http/Controllers/Accessories/AccessoryCheckoutController.php index 58ce787245..05d60fcbfe 100644 --- a/app/Http/Controllers/Accessories/AccessoryCheckoutController.php +++ b/app/Http/Controllers/Accessories/AccessoryCheckoutController.php @@ -97,7 +97,7 @@ class AccessoryCheckoutController extends Controller // Redirect to the new accessory page - return redirect()->to(Helper::getRedirectOption($request, $accessory->id, 'Accessories')) + return Helper::getRedirectOption($request, $accessory->id, 'Accessories') ->with('success', trans('admin/accessories/message.checkout.success')); } } diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index 3e1b75a4d7..62e8e59ca8 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -153,7 +153,8 @@ class AssetCheckinController extends Controller if ($asset->save()) { event(new CheckoutableCheckedIn($asset, $target, auth()->user(), $request->input('note'), $checkin_at, $originalValues)); - return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets'))->with('success', trans('admin/hardware/message.checkin.success')); + return Helper::getRedirectOption($request, $asset->id, 'Assets') + ->with('success', trans('admin/hardware/message.checkin.success')); } // Redirect to the asset management page with error return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkin.error').$asset->getErrors()); diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index da2c0a2550..0ea9b36418 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -123,7 +123,7 @@ class AssetCheckoutController extends Controller session()->put(['redirect_option' => $request->get('redirect_option'), 'checkout_to_type' => $request->get('checkout_to_type')]); if ($asset->checkOut($target, $admin, $checkout_at, $expected_checkin, $request->get('note'), $request->get('name'))) { - return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets')) + return Helper::getRedirectOption($request, $asset->id, 'Assets') ->with('success', trans('admin/hardware/message.checkout.success')); } // Redirect to the asset management page with error diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index d48905b652..39bfdd3e85 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -233,18 +233,18 @@ class AssetsController extends Controller if ($successes) { if ($failures) { //some succeeded, some failed - return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets')) //FIXME - not tested + return Helper::getRedirectOption($request, $asset->id, 'Assets') //FIXME - not tested ->with('success-unescaped', trans_choice('admin/hardware/message.create.multi_success_linked', $successes, ['links' => join(", ", $successes)])) ->with('warning', trans_choice('admin/hardware/message.create.partial_failure', $failures, ['failures' => join("; ", $failures)])); } else { if (count($successes) == 1) { //the most common case, keeping it so we don't have to make every use of that translation string be trans_choice'ed //and re-translated - return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets')) + return Helper::getRedirectOption($request, $asset->id, 'Assets') ->with('success-unescaped', trans('admin/hardware/message.create.success_linked', ['link' => route('hardware.show', $asset), 'id', 'tag' => e($asset->asset_tag)])); } else { //multi-success - return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets')) + return Helper::getRedirectOption($request, $asset->id, 'Assets') ->with('success-unescaped', trans_choice('admin/hardware/message.create.multi_success_linked', $successes, ['links' => join(", ", $successes)])); } } @@ -1001,7 +1001,7 @@ class AssetsController extends Controller } $asset->logAudit($request->input('note'), $request->input('location_id'), $file_name, $originalValues); - return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets'))->with('success', trans('admin/hardware/message.audit.success')); + return Helper::getRedirectOption($request, $asset->id, 'Assets')->with('success', trans('admin/hardware/message.audit.success')); } return redirect()->back()->withInput()->withErrors($asset->getErrors()); diff --git a/app/Http/Controllers/Components/ComponentCheckinController.php b/app/Http/Controllers/Components/ComponentCheckinController.php index 379882c3c5..b784576122 100644 --- a/app/Http/Controllers/Components/ComponentCheckinController.php +++ b/app/Http/Controllers/Components/ComponentCheckinController.php @@ -100,8 +100,8 @@ class ComponentCheckinController extends Controller session()->put(['redirect_option' => $request->get('redirect_option')]); - return redirect()->to(Helper::getRedirectOption($request, $component->id, 'Components'))->with('success', - trans('admin/components/message.checkin.success')); + return Helper::getRedirectOption($request, $component->id, 'Components') + ->with('success', trans('admin/components/message.checkin.success')); } return redirect()->route('components.index')->with('error', trans('admin/components/message.does_not_exist')); diff --git a/app/Http/Controllers/Components/ComponentCheckoutController.php b/app/Http/Controllers/Components/ComponentCheckoutController.php index b40d592369..4abf426de3 100644 --- a/app/Http/Controllers/Components/ComponentCheckoutController.php +++ b/app/Http/Controllers/Components/ComponentCheckoutController.php @@ -120,6 +120,7 @@ class ComponentCheckoutController extends Controller session()->put(['redirect_option' => $request->get('redirect_option'), 'checkout_to_type' => $request->get('checkout_to_type')]); - return redirect()->to(Helper::getRedirectOption($request, $component->id, 'Components'))->with('success', trans('admin/components/message.checkout.success')); + return Helper::getRedirectOption($request, $component->id, 'Components') + ->with('success', trans('admin/components/message.checkout.success')); } } diff --git a/app/Http/Controllers/Consumables/ConsumableCheckoutController.php b/app/Http/Controllers/Consumables/ConsumableCheckoutController.php index e08da41229..3e972e1085 100644 --- a/app/Http/Controllers/Consumables/ConsumableCheckoutController.php +++ b/app/Http/Controllers/Consumables/ConsumableCheckoutController.php @@ -111,6 +111,7 @@ class ConsumableCheckoutController extends Controller // Redirect to the new consumable page - return redirect()->to(Helper::getRedirectOption($request, $consumable->id, 'Consumables'))->with('success', trans('admin/consumables/message.checkout.success')); + return Helper::getRedirectOption($request, $consumable->id, 'Consumables') + ->with('success', trans('admin/consumables/message.checkout.success')); } } diff --git a/app/Http/Controllers/Licenses/LicenseCheckinController.php b/app/Http/Controllers/Licenses/LicenseCheckinController.php index de115af543..92bc3db6eb 100644 --- a/app/Http/Controllers/Licenses/LicenseCheckinController.php +++ b/app/Http/Controllers/Licenses/LicenseCheckinController.php @@ -105,7 +105,8 @@ class LicenseCheckinController extends Controller event(new CheckoutableCheckedIn($licenseSeat, $return_to, auth()->user(), $request->input('notes'))); - return redirect()->to(Helper::getRedirectOption($request, $license->id, 'Licenses'))->with('success', trans('admin/licenses/message.checkin.success')); + return Helper::getRedirectOption($request, $license->id, 'Licenses') + ->with('success', trans('admin/licenses/message.checkin.success')); } // Redirect to the license page with error diff --git a/app/Http/Controllers/Licenses/LicenseCheckoutController.php b/app/Http/Controllers/Licenses/LicenseCheckoutController.php index 564ce97a89..e2225442b3 100644 --- a/app/Http/Controllers/Licenses/LicenseCheckoutController.php +++ b/app/Http/Controllers/Licenses/LicenseCheckoutController.php @@ -89,7 +89,8 @@ class LicenseCheckoutController extends Controller if ($checkoutTarget) { - return redirect()->to(Helper::getRedirectOption($request, $license->id, 'Licenses'))->with('success', trans('admin/licenses/message.checkout.success')); + return Helper::getRedirectOption($request, $license->id, 'Licenses') + ->with('success', trans('admin/licenses/message.checkout.success')); } From 76f59f7b8550f409c837ba2f58591df1fdb81d14 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 1 Jul 2025 12:52:16 -0700 Subject: [PATCH 7/7] fix variables --- app/Helpers/Helper.php | 4 ++-- tests/Unit/Helpers/HelperTest.php | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 31596f5a18..9a3a1f123c 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -1484,8 +1484,8 @@ class Helper static public function getRedirectOption($request, $id, $table, $item_id = null) : RedirectResponse { - $redirect_option = Session::get('redirect_option') ?? $request->input('redirect_option'); - $checkout_to_type = Session::get('checkout_to_type') ?? $request->input('checkout_to_type'); + $redirect_option = Session::get('redirect_option') ?? $request->redirect_option; + $checkout_to_type = Session::get('checkout_to_type') ?? null; $checkedInFrom = Session::get('checkedInFrom'); $other_redirect = Session::get('other_redirect'); $backUrl = Session::pull('back_url', route('home')); diff --git a/tests/Unit/Helpers/HelperTest.php b/tests/Unit/Helpers/HelperTest.php index 2fb1c58e26..c92ad3d1e9 100644 --- a/tests/Unit/Helpers/HelperTest.php +++ b/tests/Unit/Helpers/HelperTest.php @@ -167,7 +167,8 @@ class HelperTest extends TestCase Session::put('redirect_option', $data['redirect_option']); Session::put('checkout_to_type', $data['checkout_to_type']); - $redirect = redirect()->to(Helper::getRedirectOption($data['request'],$data['id'], $data['table'])); + $redirect = Helper::getRedirectOption($data['request'], $data['id'], $data['table']); + $this->assertInstanceOf(RedirectResponse::class, $redirect); $this->assertEquals($data['route'], $redirect->getTargetUrl(), $scenario.'failed.');