diff --git a/app/Http/Controllers/CategoriesController.php b/app/Http/Controllers/CategoriesController.php index 1b42037f3b..da8b57a552 100755 --- a/app/Http/Controllers/CategoriesController.php +++ b/app/Http/Controllers/CategoriesController.php @@ -88,14 +88,10 @@ class CategoriesController extends Controller * @param int $categoryId * @since [v1.0] */ - public function edit($categoryId = null) : RedirectResponse | View + public function edit(Category $category) : RedirectResponse | View { $this->authorize('update', Category::class); - if (is_null($item = Category::find($categoryId))) { - return redirect()->route('categories.index')->with('error', trans('admin/categories/message.does_not_exist')); - } - - return view('categories/edit', compact('item')) + return view('categories/edit')->with('item', $category) ->with('category_types', Helper::categoryTypeList()); } @@ -108,19 +104,10 @@ class CategoriesController extends Controller * @param int $categoryId * @since [v1.0] */ - public function update(ImageUploadRequest $request, $categoryId = null) : RedirectResponse + public function update(ImageUploadRequest $request, Category $category) : RedirectResponse { $this->authorize('update', Category::class); - if (is_null($category = Category::find($categoryId))) { - // Redirect to the categories management page - return redirect()->route('categories.index')->with('error', trans('admin/categories/message.does_not_exist')); - } - - // Update the category data $category->name = $request->input('name'); - // If the item count is > 0, we disable the category type in the edit. Disabled items - // don't POST, so if the category_type is blank we just set it to the default. - // Don't allow the user to change the category_type once it's been created if (($request->filled('category_type') && ($category->itemCount() > 0))) { @@ -181,10 +168,10 @@ class CategoriesController extends Controller * @param $id * @since [v1.8] */ - public function show($id) : View | RedirectResponse + public function show(Category $category) : View | RedirectResponse { $this->authorize('view', Category::class); - if ($category = Category::find($id)) { + if ($category->category_type == 'asset') { $category_type = 'hardware'; $category_type_route = 'assets'; @@ -199,8 +186,5 @@ class CategoriesController extends Controller return view('categories/view', compact('category')) ->with('category_type', $category_type) ->with('category_type_route', $category_type_route); - } - - return redirect()->route('categories.index')->with('error', trans('admin/categories/message.does_not_exist')); } } diff --git a/app/Http/Controllers/DepreciationsController.php b/app/Http/Controllers/DepreciationsController.php index 2831bd56c4..2c98e240b9 100755 --- a/app/Http/Controllers/DepreciationsController.php +++ b/app/Http/Controllers/DepreciationsController.php @@ -99,7 +99,7 @@ class DepreciationsController extends Controller { $this->authorize('update', $depreciation); - return view('depreciations/edit'); + return view('depreciations/edit')->with('item', $depreciation); } /** diff --git a/app/Http/Controllers/GroupsController.php b/app/Http/Controllers/GroupsController.php index 6aaf58ebde..b63e51c4cb 100755 --- a/app/Http/Controllers/GroupsController.php +++ b/app/Http/Controllers/GroupsController.php @@ -79,19 +79,12 @@ class GroupsController extends Controller * @param int $id * @since [v1.0] */ - public function edit($id) : View | RedirectResponse + public function edit(Group $group) : View | RedirectResponse { - $group = Group::find($id); - - if ($group) { - $permissions = config('permissions'); - $groupPermissions = $group->decodePermissions(); - $selected_array = Helper::selectedPermissionsArray($permissions, $groupPermissions); - - return view('groups.edit', compact('group', 'permissions', 'selected_array', 'groupPermissions')); - } - - return redirect()->route('groups.index')->with('error', trans('admin/groups/message.group_not_found', ['id' => $id])); + $permissions = config('permissions'); + $groupPermissions = $group->decodePermissions(); + $selected_array = Helper::selectedPermissionsArray($permissions, $groupPermissions); + return view('groups.edit', compact('permissions', 'selected_array', 'groupPermissions')); } /** @@ -102,11 +95,8 @@ class GroupsController extends Controller * @param int $id * @since [v1.0] */ - public function update(Request $request, $id = null) : RedirectResponse + public function update(Request $request, Group $group) : RedirectResponse { - if (! $group = Group::find($id)) { - return redirect()->route('groups.index')->with('error', trans('admin/groups/message.group_not_found', ['id' => $id])); - } $group->name = $request->input('name'); $group->permissions = json_encode($request->input('permission')); $group->notes = $request->input('notes'); @@ -151,14 +141,8 @@ class GroupsController extends Controller * @param $id * @since [v4.0.11] */ - public function show($id) : View | RedirectResponse + public function show(Group $group) : View | RedirectResponse { - $group = Group::find($id); - - if ($group) { - return view('groups/view', compact('group')); - } - - return redirect()->route('groups.index')->with('error', trans('admin/groups/message.group_not_found', ['id' => $id])); + return view('groups/view'); } } diff --git a/app/Http/Controllers/StatuslabelsController.php b/app/Http/Controllers/StatuslabelsController.php index b62c378228..c719b4c896 100755 --- a/app/Http/Controllers/StatuslabelsController.php +++ b/app/Http/Controllers/StatuslabelsController.php @@ -97,7 +97,9 @@ class StatuslabelsController extends Controller $statuslabel_types = ['' => trans('admin/hardware/form.select_statustype')] + ['undeployable' => trans('admin/hardware/general.undeployable')] + ['pending' => trans('admin/hardware/general.pending')] + ['archived' => trans('admin/hardware/general.archived')] + ['deployable' => trans('admin/hardware/general.deployable')]; - return view('statuslabels/edit', compact('statuslabel_types'))->with('use_statuslabel_type', $statuslabel); + return view('statuslabels/edit', compact('statuslabel_types')) + ->with('item', $statuslabel) + ->with('use_statuslabel_type', $statuslabel); } /** diff --git a/app/Http/Controllers/SuppliersController.php b/app/Http/Controllers/SuppliersController.php index 5aa9c78ba6..d96031a9aa 100755 --- a/app/Http/Controllers/SuppliersController.php +++ b/app/Http/Controllers/SuppliersController.php @@ -80,7 +80,7 @@ class SuppliersController extends Controller public function edit(Supplier $supplier) : View | RedirectResponse { $this->authorize('update', Supplier::class); - return view('suppliers/edit'); + return view('suppliers/edit')->with('item', $supplier); } /** diff --git a/app/Providers/BreadcrumbsServiceProvider.php b/app/Providers/BreadcrumbsServiceProvider.php index ee6b1b21ad..bb33c82eb1 100644 --- a/app/Providers/BreadcrumbsServiceProvider.php +++ b/app/Providers/BreadcrumbsServiceProvider.php @@ -3,6 +3,7 @@ use App\Models\Accessory; use App\Models\Asset; use App\Models\AssetModel; +use App\Models\Category; use App\Models\Company; use App\Models\Component; use App\Models\Consumable; @@ -105,6 +106,31 @@ class BreadcrumbsServiceProvider extends ServiceProvider ); + /** + * Categories Breadcrumbs + */ + Breadcrumbs::for('categories.index', fn (Trail $trail) => + $trail->parent('home', route('home')) + ->push(trans('general.categories'), route('categories.index')) + ); + + Breadcrumbs::for('categories.create', fn (Trail $trail) => + $trail->parent('categories.index', route('categories.index')) + ->push(trans('general.create'), route('home')) + ); + + Breadcrumbs::for('categories.show', fn (Trail $trail, Category $category) => + $trail->parent('categories.index', route('categories.index')) + ->push('View '.$category->name, route('home')) + ); + + Breadcrumbs::for('categories.edit', fn (Trail $trail, Category $category) => + $trail->parent('categories.index', route('categories.index')) + ->push('Edit: '.$category->name, route('home')) + ); + + + /** * Company Breadcrumbs */ @@ -249,7 +275,6 @@ class BreadcrumbsServiceProvider extends ServiceProvider ); - /** * Licenses Breadcrumbs */ @@ -296,6 +321,7 @@ class BreadcrumbsServiceProvider extends ServiceProvider ->push('Edit: '.$location->name, route('home')) ); + /** * Manufacturers Breadcrumbs */ diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index 53482e853c..e7ce1e065a 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -587,4 +587,6 @@ return [ 'notes' => 'Add a note', ], + 'generic_model_not_found' => ':model not found', + ]; diff --git a/resources/views/hardware/edit.blade.php b/resources/views/hardware/edit.blade.php index efd5d24b9c..fa2c008c9a 100755 --- a/resources/views/hardware/edit.blade.php +++ b/resources/views/hardware/edit.blade.php @@ -5,7 +5,7 @@ 'topSubmit' => true, 'helpText' => trans('help.assets'), 'helpPosition' => 'right', - 'formAction' => ($item->id) ? route('hardware.update', ['hardware' => $item->id]) : route('hardware.store'), + 'formAction' => ($item->id) ? route('hardware.update', $item) : route('hardware.store'), 'index_route' => 'hardware.index', 'options' => [ 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => 'assets']), diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php index 547d117139..c5b1050715 100644 --- a/resources/views/layouts/default.blade.php +++ b/resources/views/layouts/default.blade.php @@ -826,52 +826,55 @@ dir="{{ Helper::determineLanguageDirection() }}"> @endif -
+
-
+
- @if(Breadcrumbs::has()) - @foreach (Breadcrumbs::current() as $crumbs) - @if ($crumbs->url() && !$loop->last) - + @endif + @endforeach + @else + @yield('title') + @endif + + + + @if (isset($helpText)) + @include ('partials.more-info', + [ + 'helpText' => $helpText, + 'helpPosition' => (isset($helpPosition)) ? $helpPosition : 'left' + ]) + @endif +
+ @yield('header_right') +
+
- -

@yield('title')

- - @if (isset($helpText)) - @include ('partials.more-info', - [ - 'helpText' => $helpText, - 'helpPosition' => (isset($helpPosition)) ? $helpPosition : 'left' - ]) - @endif -
- @yield('header_right') -
- -
diff --git a/routes/web.php b/routes/web.php index a38839b6c7..401d0845db 100644 --- a/routes/web.php +++ b/routes/web.php @@ -109,23 +109,17 @@ Route::group(['middleware' => 'auth'], function () { /* * Suppliers */ - Route::resource('suppliers', SuppliersController::class, [ - 'parameters' => ['supplier' => 'supplier_id'], - ]); + Route::resource('suppliers', SuppliersController::class); /* * Depreciations */ - Route::resource('depreciations', DepreciationsController::class, [ - 'parameters' => ['depreciation' => 'depreciation_id'], - ]); + Route::resource('depreciations', DepreciationsController::class); /* * Status Labels */ - Route::resource('statuslabels', StatuslabelsController::class, [ - 'parameters' => ['statuslabel' => 'statuslabel_id'], - ]); + Route::resource('statuslabels', StatuslabelsController::class); /* * Departments @@ -188,8 +182,6 @@ Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'authorize:superuser Route::get('security', [SettingsController::class, 'getSecurity'])->name('settings.security.index'); Route::post('security', [SettingsController::class, 'postSecurity'])->name('settings.security.save'); - Route::get('groups', [GroupsController::class, 'index'])->name('settings.groups.index'); - Route::get('localization', [SettingsController::class, 'getLocalization'])->name('settings.localization.index'); Route::post('localization', [SettingsController::class, 'postLocalization'])->name('settings.localization.save'); @@ -248,10 +240,7 @@ Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'authorize:superuser Route::get('/', [SettingsController::class, 'getBackups'])->name('settings.backups.index'); }); - Route::resource('groups', GroupsController::class, [ - 'middleware' => ['auth'], - 'parameters' => ['group' => 'group_id'], - ]); + Route::resource('groups', GroupsController::class); Route::get('/', [SettingsController::class, 'index'])->name('settings.index'); }); diff --git a/routes/web/accessories.php b/routes/web/accessories.php index 1f28892a0e..cf73e26e0a 100644 --- a/routes/web/accessories.php +++ b/routes/web/accessories.php @@ -53,6 +53,5 @@ Route::group(['prefix' => 'accessories', 'middleware' => ['auth']], function () }); Route::resource('accessories', Accessories\AccessoriesController::class, [ - 'middleware' => ['auth'], - 'parameters' => ['accessory' => 'accessory_id'], + 'middleware' => ['auth'] ]); diff --git a/routes/web/hardware.php b/routes/web/hardware.php index 7ca0ab7eb1..dd1f026387 100644 --- a/routes/web/hardware.php +++ b/routes/web/hardware.php @@ -171,17 +171,10 @@ Route::group( }); -Route::resource('hardware', - AssetsController::class, - [ - 'middleware' => ['auth'], - 'parameters' => [ - 'names' => [ - 'show' => 'view', - 'index' => 'index', - ], - ], -]); +Route::resource('hardware', + AssetsController::class, + ['middleware' => ['auth'] +])->parameters(['hardware' => 'asset']); Route::get('ht/{any?}', [AssetsController::class, 'getAssetByTag'] diff --git a/routes/web/users.php b/routes/web/users.php index e6aaf644ae..d3e3c02c95 100644 --- a/routes/web/users.php +++ b/routes/web/users.php @@ -151,6 +151,5 @@ Route::group(['prefix' => 'users', 'middleware' => ['auth']], function () { Route::resource('users', Users\UsersController::class, [ 'middleware' => ['auth'], - 'parameters' => ['user' => 'user_id'], 'except' => ['update'] ]);