diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 2d0fd4fb0c..6166d6668b 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -1484,7 +1484,7 @@ class Helper } - static public function getRedirectOption($request, $id, $table, $asset_id = null) + static public function getRedirectOption($request, $id, $table, $item_id = null) { $redirect_option = Session::get('redirect_option'); @@ -1495,6 +1495,16 @@ class Helper 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'); } } @@ -1502,7 +1512,17 @@ class Helper if ($redirect_option == 'item') { switch ($table) { case "Assets": - return route('hardware.show', $id ?? $asset_id); + 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); } } diff --git a/app/Http/Controllers/Accessories/AccessoriesController.php b/app/Http/Controllers/Accessories/AccessoriesController.php index bb2e74899b..722638ad8f 100755 --- a/app/Http/Controllers/Accessories/AccessoriesController.php +++ b/app/Http/Controllers/Accessories/AccessoriesController.php @@ -79,10 +79,11 @@ class AccessoriesController extends Controller $accessory = $request->handleImages($accessory); + session()->put(['redirect_option' => $request->get('redirect_option')]); // Was the accessory created? if ($accessory->save()) { // Redirect to the new accessory page - return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.create.success')); + return redirect()->to(Helper::getRedirectOption($request, $accessory->id, 'Accessories'))->with('success', trans('admin/accessories/message.create.success')); } return redirect()->back()->withInput()->withErrors($accessory->getErrors()); @@ -176,9 +177,10 @@ class AccessoriesController extends Controller $accessory = $request->handleImages($accessory); - // Was the accessory updated? + session()->put(['redirect_option' => $request->get('redirect_option')]); + if ($accessory->save()) { - return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.update.success')); + return redirect()->to(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/Components/ComponentsController.php b/app/Http/Controllers/Components/ComponentsController.php index 33ebde6456..57cd0a2b45 100644 --- a/app/Http/Controllers/Components/ComponentsController.php +++ b/app/Http/Controllers/Components/ComponentsController.php @@ -86,8 +86,10 @@ class ComponentsController extends Controller $component = $request->handleImages($component); + session()->put(['redirect_option' => $request->get('redirect_option')]); + if ($component->save()) { - return redirect()->route('components.index')->with('success', trans('admin/components/message.create.success')); + return redirect()->to(Helper::getRedirectOption($request, $component->id, 'Components'))->with('success', trans('admin/components/message.create.success')); } return redirect()->back()->withInput()->withErrors($component->getErrors()); @@ -160,8 +162,10 @@ class ComponentsController extends Controller $component = $request->handleImages($component); + session()->put(['redirect_option' => $request->get('redirect_option')]); + if ($component->save()) { - return redirect()->route('components.index')->with('success', trans('admin/components/message.update.success')); + return redirect()->to(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 883d5849ee..42c0766fe0 100644 --- a/app/Http/Controllers/Consumables/ConsumablesController.php +++ b/app/Http/Controllers/Consumables/ConsumablesController.php @@ -87,8 +87,10 @@ class ConsumablesController extends Controller $consumable = $request->handleImages($consumable); + session()->put(['redirect_option' => $request->get('redirect_option')]); + if ($consumable->save()) { - return redirect()->route('consumables.index')->with('success', trans('admin/consumables/message.create.success')); + return redirect()->to(Helper::getRedirectOption($request, $consumable->id, 'Consumables'))->with('success', trans('admin/consumables/message.create.success')); } return redirect()->back()->withInput()->withErrors($consumable->getErrors()); @@ -160,8 +162,10 @@ class ConsumablesController extends Controller $consumable = $request->handleImages($consumable); + session()->put(['redirect_option' => $request->get('redirect_option')]); + if ($consumable->save()) { - return redirect()->route('consumables.index')->with('success', trans('admin/consumables/message.update.success')); + return redirect()->to(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 01de4b4d46..7a51344dd0 100755 --- a/app/Http/Controllers/Licenses/LicensesController.php +++ b/app/Http/Controllers/Licenses/LicensesController.php @@ -102,8 +102,10 @@ class LicensesController extends Controller $license->user_id = Auth::id(); $license->min_amt = $request->input('min_amt'); + session()->put(['redirect_option' => $request->get('redirect_option')]); + if ($license->save()) { - return redirect()->route('licenses.index')->with('success', trans('admin/licenses/message.create.success')); + return redirect()->to(Helper::getRedirectOption($request, $license->id, 'Licenses'))->with('success', trans('admin/licenses/message.create.success')); } return redirect()->back()->withInput()->withErrors($license->getErrors()); @@ -180,8 +182,10 @@ class LicensesController extends Controller $license->category_id = $request->input('category_id'); $license->min_amt = $request->input('min_amt'); + session()->put(['redirect_option' => $request->get('redirect_option')]); + if ($license->save()) { - return redirect()->route('licenses.show', ['license' => $licenseId])->with('success', trans('admin/licenses/message.update.success')); + return redirect()->to(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 7cff29fe59..1e203e71d5 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -133,6 +133,8 @@ class UsersController extends Controller // we have to invoke the app(ImageUploadRequest::class)->handleImages($user, 600, 'avatar', 'avatars', 'avatar'); + session()->put(['redirect_option' => $request->get('redirect_option')]); + if ($user->save()) { if ($request->filled('groups')) { $user->groups()->sync($request->input('groups')); @@ -152,7 +154,7 @@ class UsersController extends Controller $user->notify(new WelcomeNotification($data)); } - return redirect()->route('users.index')->with('success', trans('admin/users/message.success.create')); + return redirect()->to(Helper::getRedirectOption($request, $user->id, 'Users'))->with('success', trans('admin/users/message.success.create')); } return redirect()->back()->withInput()->withErrors($user->getErrors()); @@ -309,10 +311,11 @@ class UsersController extends Controller // Handle uploaded avatar app(ImageUploadRequest::class)->handleImages($user, 600, 'avatar', 'avatars', 'avatar'); + session()->put(['redirect_option' => $request->get('redirect_option')]); if ($user->save()) { // Redirect to the user page - return redirect()->route('users.index') + return redirect()->to(Helper::getRedirectOption($request, $user->id, 'Users')) ->with('success', trans('admin/users/message.success.update')); } diff --git a/resources/views/accessories/edit.blade.php b/resources/views/accessories/edit.blade.php index 068fddc266..8e0503400f 100644 --- a/resources/views/accessories/edit.blade.php +++ b/resources/views/accessories/edit.blade.php @@ -4,6 +4,11 @@ 'helpPosition' => 'right', 'helpText' => trans('help.accessories'), 'formAction' => (isset($item->id)) ? route('accessories.update', ['accessory' => $item->id]) : route('accessories.store'), + 'index_route' => 'accessories.index', + 'options' => [ + 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'accessories']), + 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.accessory')]), + ] ]) {{-- Page content --}} diff --git a/resources/views/components/edit.blade.php b/resources/views/components/edit.blade.php index 5279f03990..ce77b5130d 100644 --- a/resources/views/components/edit.blade.php +++ b/resources/views/components/edit.blade.php @@ -4,6 +4,11 @@ 'helpPosition' => 'right', 'helpText' => trans('help.components'), 'formAction' => (isset($item->id)) ? route('components.update', ['component' => $item->id]) : route('components.store'), + 'index_route' => 'components.index', + 'options' => [ + '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 f32e74b196..300a7114d9 100644 --- a/resources/views/consumables/edit.blade.php +++ b/resources/views/consumables/edit.blade.php @@ -4,6 +4,11 @@ 'helpPosition' => 'right', 'helpText' => trans('help.consumables'), 'formAction' => (isset($item->id)) ? route('consumables.update', ['consumable' => $item->id]) : route('consumables.store'), + 'index_route' => 'consumables.index', + 'options' => [ + 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'consumables']), + 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.consumable')]), + ] ]) {{-- Page content --}} @section('inputFields') diff --git a/resources/views/hardware/edit.blade.php b/resources/views/hardware/edit.blade.php index 7a543e9218..f31326cc4d 100755 --- a/resources/views/hardware/edit.blade.php +++ b/resources/views/hardware/edit.blade.php @@ -3,10 +3,10 @@ 'createText' => trans('admin/hardware/form.create'), 'updateText' => trans('admin/hardware/form.update'), 'topSubmit' => true, - 'index_route' => 'hardware.index', 'helpText' => trans('help.assets'), 'helpPosition' => 'right', 'formAction' => ($item->id) ? route('hardware.update', ['hardware' => $item->id]) : route('hardware.store'), + 'index_route' => 'hardware.index', 'options' => [ 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'assets']), 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.asset')]), diff --git a/resources/views/licenses/edit.blade.php b/resources/views/licenses/edit.blade.php index 450e4357a4..b8429a2123 100755 --- a/resources/views/licenses/edit.blade.php +++ b/resources/views/licenses/edit.blade.php @@ -3,6 +3,11 @@ 'updateText' => trans('admin/licenses/form.update'), 'topSubmit' => true, 'formAction' => ($item->id) ? route('licenses.update', ['license' => $item->id]) : route('licenses.store'), + 'index_route' => 'licenses.index', + 'options' => [ + 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'licenses']), + 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.license')]), + ] ]) {{-- Page content --}} diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php index 814c2f28eb..200acb5527 100755 --- a/resources/views/users/edit.blade.php +++ b/resources/views/users/edit.blade.php @@ -596,9 +596,14 @@ -
+