From 15cc4345abbfb6187b69daa7369bf1c1115ff6c7 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 14 May 2024 13:25:52 -0700 Subject: [PATCH] adds dynamic redirects to Assets --- app/Helpers/Helper.php | 12 ++++++++---- .../Controllers/Assets/AssetCheckinController.php | 9 ++------- .../Controllers/Assets/AssetCheckoutController.php | 5 +++-- resources/lang/en-US/admin/hardware/form.php | 3 +++ resources/views/hardware/checkin.blade.php | 6 ++++++ resources/views/hardware/checkout.blade.php | 12 ++++-------- 6 files changed, 26 insertions(+), 21 deletions(-) diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 8687be1e7..b839b287e 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -1464,6 +1464,7 @@ class Helper static public function getRedirectOption($request, $assetId) { $redirect_option = session::get('redirect_option'); + $checkout_to_type = session::get('checkout_to_type'); if ($redirect_option == '0') { return redirect()->route('hardware.index')->with('success', trans('admin/hardware/message.checkout.success')); @@ -1472,15 +1473,18 @@ class Helper return redirect()->route('hardware.show', $assetId)->with('success', trans('admin/hardware/message.checkout.success')); } if ($redirect_option == '2') { - if ($request->assigned_location != null) { + + if ($checkout_to_type == 'user') { return redirect()->route('users.show', $request->assigned_user)->with('success', trans('admin/hardware/message.checkout.success')); } - } - if ($redirect_option == '3') { - if ($request->assigned_location != null) { + if ($checkout_to_type == 'location') { return redirect()->route('locations.show', $request->assigned_location)->with('success', trans('admin/hardware/message.checkout.success')); } + if ($checkout_to_type == 'asset') { + return redirect()->route('hardware.show', $request->assigned_asset)->with('success', trans('admin/hardware/message.checkout.success')); + } } + return redirect()->back()->with('error', trans('admin/hardware/message.checkout.error')); } } diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index 30ffd8bba..0be355c7a 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -45,7 +45,7 @@ class AssetCheckinController extends Controller return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkin.already_checked_in')); } - return view('hardware/checkin', compact('asset'))->with('statusLabel_list', Helper::statusLabelList())->with('backto', $backto); + return view('hardware/checkin', compact('asset'))->with('statusLabel_list', Helper::statusLabelList())->with('backto', $backto)->with('table_name', 'Assets'); } /** @@ -125,12 +125,7 @@ class AssetCheckinController extends Controller // Was the asset updated? if ($asset->save()) { event(new CheckoutableCheckedIn($asset, $target, Auth::user(), $request->input('note'), $checkin_at, $originalValues)); - - if ((isset($user)) && ($backto == 'user')) { - return redirect()->route('users.show', $user->id)->with('success', trans('admin/hardware/message.checkin.success')); - } - - return redirect()->route('hardware.index')->with('success', trans('admin/hardware/message.checkin.success')); + return Helper::getRedirectOption($request, $assetId); } // 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 e5f069c41..8e54474a4 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -36,7 +36,8 @@ class AssetCheckoutController extends Controller if ($asset->availableForCheckout()) { return view('hardware/checkout', compact('asset')) - ->with('statusLabel_list', Helper::deployableStatusLabelList()); + ->with('statusLabel_list', Helper::deployableStatusLabelList()) + ->with('table_name', 'Assets'); } return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkout.not_available')); @@ -100,7 +101,7 @@ class AssetCheckoutController extends Controller } $redirect_option = $request->get('redirect_option'); if($redirect_option != Session::get('redirect_option')) { - Session::put('redirect_option', $redirect_option); + Session::put(['redirect_option' => $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'))) { diff --git a/resources/lang/en-US/admin/hardware/form.php b/resources/lang/en-US/admin/hardware/form.php index a7aba0813..edec54363 100644 --- a/resources/lang/en-US/admin/hardware/form.php +++ b/resources/lang/en-US/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index dd6237b1b..7651f22e2 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -104,6 +104,12 @@ diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index c731fa88a..a67c19b47 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -145,15 +145,11 @@ {{ trans('button.cancel') }}
- -