mirror of
https://github.com/snipe/snipe-it.git
synced 2024-09-19 23:37:38 -07:00
Added more redirects
Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
parent
b6d9f736e3
commit
759ab78f80
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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'));
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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'));
|
||||
}
|
||||
|
||||
|
|
|
@ -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 --}}
|
||||
|
|
|
@ -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')]),
|
||||
]
|
||||
|
||||
])
|
||||
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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')]),
|
||||
|
|
|
@ -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 --}}
|
||||
|
|
|
@ -596,9 +596,14 @@
|
|||
</table>
|
||||
</div><!-- /.tab-pane -->
|
||||
</div><!-- /.tab-content -->
|
||||
<div class="box-footer text-right">
|
||||
<button type="submit" accesskey="s" class="btn btn-primary"><i class="fas fa-check icon-white" aria-hidden="true"></i> {{ trans('general.save') }}</button>
|
||||
</div>
|
||||
<x-redirect_submit_options
|
||||
index_route="users.index"
|
||||
:button_label="trans('general.save')"
|
||||
:options="[
|
||||
'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'users']),
|
||||
'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.user')]),
|
||||
]"
|
||||
/>
|
||||
</div><!-- nav-tabs-custom -->
|
||||
</form>
|
||||
</div> <!--/col-md-8-->
|
||||
|
|
|
@ -31,7 +31,7 @@ class HelperTest extends TestCase
|
|||
public function testGetRedirectOptionMethod()
|
||||
{
|
||||
$test_data = [
|
||||
'Option 2: redirect for user assigned to ' => [
|
||||
'Option target: redirect for user assigned to ' => [
|
||||
'request' =>(object) ['assigned_user' => 22],
|
||||
'id' => 1,
|
||||
'checkout_to_type' => 'user',
|
||||
|
@ -39,7 +39,7 @@ class HelperTest extends TestCase
|
|||
'table' => 'Assets',
|
||||
'route' => route('users.show', 22),
|
||||
],
|
||||
'Option 2: redirect location assigned to ' => [
|
||||
'Option target: redirect location assigned to ' => [
|
||||
'request' =>(object) ['assigned_location' => 10],
|
||||
'id' => 2,
|
||||
'checkout_to_type' => 'location',
|
||||
|
@ -47,7 +47,7 @@ class HelperTest extends TestCase
|
|||
'table' => 'Locations',
|
||||
'route' => route('locations.show', 10),
|
||||
],
|
||||
'Option 2: redirect back to asset assigned to ' => [
|
||||
'Option target: redirect back to asset assigned to ' => [
|
||||
'request' =>(object) ['assigned_asset' => 101],
|
||||
'id' => 3,
|
||||
'checkout_to_type' => 'asset',
|
||||
|
@ -55,7 +55,7 @@ class HelperTest extends TestCase
|
|||
'table' => 'Assets',
|
||||
'route' => route('hardware.show', 101),
|
||||
],
|
||||
'Option 1: redirect back to asset ' => [
|
||||
'Option item: redirect back to asset ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => 999,
|
||||
'checkout_to_type' => null,
|
||||
|
@ -63,7 +63,7 @@ class HelperTest extends TestCase
|
|||
'table' => 'Assets',
|
||||
'route' => route('hardware.show', 999),
|
||||
],
|
||||
'Option 0: redirect back to index ' => [
|
||||
'Option index: redirect back to asset index ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => null,
|
||||
'checkout_to_type' => null,
|
||||
|
@ -71,6 +71,95 @@ class HelperTest extends TestCase
|
|||
'table' => 'Assets',
|
||||
'route' => route('hardware.index'),
|
||||
],
|
||||
|
||||
'Option item: redirect back to user ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => 999,
|
||||
'checkout_to_type' => null,
|
||||
'redirect_option' => 'item',
|
||||
'table' => 'Users',
|
||||
'route' => route('users.show', 999),
|
||||
],
|
||||
|
||||
'Option index: redirect back to user index ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => null,
|
||||
'checkout_to_type' => null,
|
||||
'redirect_option' => 'index',
|
||||
'table' => 'Users',
|
||||
'route' => route('users.index'),
|
||||
],
|
||||
|
||||
'Option item: redirect back to license ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => 999,
|
||||
'checkout_to_type' => null,
|
||||
'redirect_option' => 'item',
|
||||
'table' => 'Licenses',
|
||||
'route' => route('licenses.show', 999),
|
||||
],
|
||||
|
||||
'Option index: redirect back to license index ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => null,
|
||||
'checkout_to_type' => null,
|
||||
'redirect_option' => 'index',
|
||||
'table' => 'Licenses',
|
||||
'route' => route('licenses.index'),
|
||||
],
|
||||
|
||||
'Option item: redirect back to accessory list ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => 999,
|
||||
'checkout_to_type' => null,
|
||||
'redirect_option' => 'item',
|
||||
'table' => 'Accessories',
|
||||
'route' => route('accessories.show', 999),
|
||||
],
|
||||
|
||||
'Option index: redirect back to accessory index ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => null,
|
||||
'checkout_to_type' => null,
|
||||
'redirect_option' => 'index',
|
||||
'table' => 'Accessories',
|
||||
'route' => route('accessories.index'),
|
||||
],
|
||||
'Option item: redirect back to consumable ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => 999,
|
||||
'checkout_to_type' => null,
|
||||
'redirect_option' => 'item',
|
||||
'table' => 'Consumables',
|
||||
'route' => route('consumables.show', 999),
|
||||
],
|
||||
|
||||
'Option index: redirect back to consumables index ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => null,
|
||||
'checkout_to_type' => null,
|
||||
'redirect_option' => 'index',
|
||||
'table' => 'Consumables',
|
||||
'route' => route('consumables.index'),
|
||||
],
|
||||
|
||||
'Option item: redirect back to component ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => 999,
|
||||
'checkout_to_type' => null,
|
||||
'redirect_option' => 'item',
|
||||
'table' => 'Components',
|
||||
'route' => route('components.show', 999),
|
||||
],
|
||||
|
||||
'Option index: redirect back to component index ' => [
|
||||
'request' =>(object) ['assigned_asset' => null],
|
||||
'id' => null,
|
||||
'checkout_to_type' => null,
|
||||
'redirect_option' => 'index',
|
||||
'table' => 'Components',
|
||||
'route' => route('components.index'),
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($test_data as $scenario => $data ) {
|
||||
|
|
Loading…
Reference in a new issue