diff --git a/app/Http/Controllers/CustomFieldsController.php b/app/Http/Controllers/CustomFieldsController.php index 53c30b88be..1a5fa80ffa 100644 --- a/app/Http/Controllers/CustomFieldsController.php +++ b/app/Http/Controllers/CustomFieldsController.php @@ -193,10 +193,8 @@ class CustomFieldsController extends Controller * @param int $id * @since [v4.0] */ - public function edit(Request $request, $id) : View | RedirectResponse + public function edit(Request $request, CustomField $field) : View | RedirectResponse { - if ($field = CustomField::find($id)) { - $this->authorize('update', $field); $fieldsets = CustomFieldset::get(); $customFormat = ''; @@ -210,11 +208,7 @@ class CustomFieldsController extends Controller 'fieldsets' => $fieldsets, 'predefinedFormats' => Helper::predefined_formats(), ]); - } - return redirect()->route("fields.index") - ->with("error", trans('admin/custom_fields/message.field.invalid')); - } @@ -229,13 +223,9 @@ class CustomFieldsController extends Controller * @return \Illuminate\Http\RedirectResponse * @throws \Illuminate\Auth\Access\AuthorizationException */ - public function update(CustomFieldRequest $request, $id) : RedirectResponse + public function update(CustomFieldRequest $request, CustomField $field) : RedirectResponse { - $field = CustomField::find($id); - $this->authorize('update', $field); - - $show_in_email = $request->get("show_in_email", 0); $display_in_user_view = $request->get("display_in_user_view", 0); diff --git a/app/Providers/BreadcrumbsServiceProvider.php b/app/Providers/BreadcrumbsServiceProvider.php index 26e548ab76..b5c3e916f7 100644 --- a/app/Providers/BreadcrumbsServiceProvider.php +++ b/app/Providers/BreadcrumbsServiceProvider.php @@ -8,6 +8,7 @@ use App\Models\Category; use App\Models\Company; use App\Models\Component; use App\Models\Consumable; +use App\Models\CustomField; use App\Models\Department; use App\Models\Depreciation; use App\Models\Group; @@ -87,7 +88,7 @@ class BreadcrumbsServiceProvider extends ServiceProvider * Asset Model Breadcrumbs */ Breadcrumbs::for('models.index', fn (Trail $trail) => - $trail->parent('home', route('home')) + $trail->parent('hardware.index', route('hardware.index')) ->push(trans('general.asset_models'), route('models.index')) ); @@ -227,7 +228,23 @@ class BreadcrumbsServiceProvider extends ServiceProvider ->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $consumable->name]), route('home')) ); + /** + * Custom fields Breadcrumbs + */ + Breadcrumbs::for('fields.index', fn (Trail $trail) => + $trail->parent('models.index', route('models.index')) + ->push(trans('admin/custom_fields/general.custom_fields'), route('fields.index')) + ); + Breadcrumbs::for('fields.create', fn (Trail $trail) => + $trail->parent('fields.index', route('fields.index')) + ->push(trans('general.create'), route('fields.create')) + ); + + Breadcrumbs::for('fields.edit', fn (Trail $trail, CustomField $field) => + $trail->parent('fields.index', route('fields.index')) + ->push($field->name, route('fields.edit', $field)) + ); /** * Department Breadcrumbs diff --git a/routes/web/fields.php b/routes/web/fields.php index cdd8fda5d7..63c2868df8 100644 --- a/routes/web/fields.php +++ b/routes/web/fields.php @@ -33,14 +33,17 @@ Route::group([ 'prefix' => 'fields','middleware' => ['auth'] ], function () { )->name('fieldsets.associate'); Route::resource('fieldsets', CustomFieldsetsController::class, [ - 'parameters' => ['fieldset' => 'field_id', 'field' => 'field_id'] + 'parameters' => [ + 'fieldset' => 'field_id', + 'field' => 'field_id' + ] ]); }); -Route::resource('fields', CustomFieldsController::class, [ - 'middleware' => ['auth'], - 'parameters' => ['field' => 'field_id', 'fieldset' => 'fieldset_id'], -]); +Route::resource('fields', CustomFieldsController::class, + ['middleware' => ['auth'], + 'except' => ['show'] + ]);