name('bo.') ->group(function () { // * Authenticable routes Route::namespace('\App\Http\Controllers\Bo') ->group(function () { Auth::routes( [ 'confirm' => false, 'login' => true, 'logout' => true, 'register' => false, 'reset' => false, 'verify' => false, ] ); }); Route::middleware('auth:backend')->group(function () { Route::get('/', [DashboardController::class, 'index'])->name('dashboard'); // * USERS. Route::resource('users', UserController::class)->except('show'); Route::patch('/users/{user}/change-published', [ UserController::class, 'changePublished' ])->name('users.change-published'); Route::get('/users/{user}/duplicate', [ UserController::class, 'duplicate' ])->name('users.duplicate'); // * GENERAL SETTINGS Route::resource('general_settings', GeneralSettingController::class) ->names([ 'index' => 'general_settings.index', 'edit' => 'general_settings.edit', 'update' => 'general_settings.update', ])->only(['index', 'edit', 'update']); // * STATIC PAGES Route::resource('pages', StaticPageController::class) ->names([ 'index' => 'static_pages.index', 'edit' => 'static_pages.edit', 'update' => 'static_pages.update', ])->parameters(['pages' => 'static_page']) ->only(['index', 'edit', 'update']); // * MENU NODE DATA Route::resource('menu_node_data', MenuNodeDataController::class) // * Nasty hack to prevent unwanted modifications form singular lib ->parameter('menu_node_data', 'menu_node_data') ->only(['index', 'update']); // * PROFESSIONS. Route::resource('professions', ProfessionController::class); Route::patch('/professions/{profession}/change-published', [ ProfessionController::class, 'changePublished' ])->name('professions.change-published'); Route::get('/professions/{profession}/duplicate', [ ProfessionController::class, 'duplicate' ])->name('professions.duplicate'); // * KEYNUMBERS. Route::resource('key_numbers', KeyNumberController::class); Route::patch('/key_numbers/{key_number}/change-published', [ KeyNumberController::class, 'changePublished' ])->name('key_numbers.change-published'); Route::patch('/key_numbers/{key_number}/change-order/{direction}', [ KeyNumberController::class, 'changeOrder' ])->where('direction', 'up|down')->name('key_numbers.change-order'); Route::get('/key_numbers/{key_number}/duplicate', [ KeyNumberController::class, 'duplicate' ])->name('key_numbers.duplicate'); // * BRAND_ADVANTAGES. Route::resource('brand_advantages', BrandAdvantageController::class); Route::patch('/brand_advantages/{brand_advantage}/change-order/{direction}', [ BrandAdvantageController::class, 'changeOrder' ])->where('direction', 'up|down')->name('brand_advantages.change-order'); Route::patch('/brand_advantages/{brand_advantage}/change-published', [ BrandAdvantageController::class, 'changePublished' ])->name('brand_advantages.change-published'); Route::get('/brand_advantages/{brand_advantage}/duplicate', [ BrandAdvantageController::class, 'duplicate' ])->name('brand_advantages.duplicate'); // * DEMARCHE_SLIDES. Route::resource('demarche_slides', DemarcheSlideController::class) ->withoutMiddleware('htmlsanitize') ->middleware('htmlsanitize:text'); Route::patch('/demarche_slides/{demarche_slide}/change-order/{direction}', [ DemarcheSlideController::class, 'changeOrder' ])->where('direction', 'up|down')->name('demarche_slides.change-order'); Route::patch('/demarche_slides/{demarche_slide}/change-published', [ DemarcheSlideController::class, 'changePublished' ])->name('demarche_slides.change-published'); Route::get('/demarche_slides/{demarche_slide}/duplicate', [ DemarcheSlideController::class, 'duplicate' ])->name('demarche_slides.duplicate'); // * MAIN_SLIDES. Route::resource('main_slides', MainSlideController::class) ->withoutMiddleware('htmlsanitize') ->middleware('htmlsanitize:text'); Route::patch('/main_slides/{main_slide}/change-order/{direction}', [ MainSlideController::class, 'changeOrder' ])->where('direction', 'up|down')->name('main_slides.change-order'); Route::patch('/main_slides/{main_slide}/change-published', [ MainSlideController::class, 'changePublished' ])->name('main_slides.change-published'); Route::get('/main_slides/{main_slide}/duplicate', [ MainSlideController::class, 'duplicate' ])->name('main_slides.duplicate'); // * RANGES. Route::resource('ranges', RangeController::class) ->withoutMiddleware('htmlsanitize') ->middleware('htmlsanitize:description'); Route::patch('/ranges/{range}/change-order/{direction}', [ RangeController::class, 'changeOrder' ])->where('direction', 'up|down')->name('ranges.change-order'); Route::patch('/ranges/{range}/change-published', [ RangeController::class, 'changePublished' ])->name('ranges.change-published'); Route::get('/ranges/{range}/duplicate', [ RangeController::class, 'duplicate' ])->name('ranges.duplicate'); // Change order of ranges. Route::get('/ranges/{range}/change-subranges-order', [ RangeController::class, 'editSubrangesOrder' ])->name('ranges.edit-subranges-order'); Route::patch('/ranges/{range}/update-subranges-order', [ RangeController::class, 'updateSubrangesOrder' ])->name('ranges.update-subranges-order'); // * SUBRANGES. Route::resource('subranges', SubrangeController::class) ->withoutMiddleware('htmlsanitize') ->middleware('htmlsanitize:description'); Route::patch('/subranges/{subrange}/change-published', [ SubrangeController::class, 'changePublished' ])->name('subranges.change-published'); Route::get('/subranges/{subrange}/duplicate', [ SubrangeController::class, 'duplicate' ])->name('subranges.duplicate'); // * MEATS. Route::resource('meats', MeatController::class) ->withoutMiddleware('htmlsanitize') ->middleware('htmlsanitize:description'); Route::patch('/meats/{meat}/change-order/{direction}', [ MeatController::class, 'changeOrder' ])->where('direction', 'up|down')->name('meats.change-order'); Route::patch('/meats/{meat}/change-published', [ MeatController::class, 'changePublished' ])->name('meats.change-published'); Route::get('/meats/{meat}/duplicate', [ MeatController::class, 'duplicate' ])->name('meats.duplicate'); // Change order of submodels. Route::get('/meats/{meat}/change-submeats-order', [ MeatController::class, 'editSubmeatsOrder' ])->name('meats.edit-submeats-order'); Route::patch('/meats/{meat}/update-submeats-order', [ MeatController::class, 'updateSubmeatsOrder' ])->name('meats.update-submeats-order'); // * SUBMEATS. Route::resource('submeats', SubmeatController::class) ->withoutMiddleware('htmlsanitize') ->middleware('htmlsanitize:description'); Route::patch('/submeats/{submeat}/change-published', [ SubmeatController::class, 'changePublished' ])->name('submeats.change-published'); Route::get('/submeats/{submeat}/duplicate', [ SubmeatController::class, 'duplicate' ])->name('submeats.duplicate'); // * APPROACHES. Route::get('/approaches/{approach_type}', [ ApproachController::class, 'index' ])->name('approaches.index'); Route::get('/approaches/{approach_type}/create', [ ApproachController::class, 'create' ])->name('approaches.create'); Route::post('/approaches/{approach_type}/store', [ ApproachController::class, 'store' ])->name('approaches.store'); Route::get('/approaches/{approach}/show', [ ApproachController::class, 'show' ])->name('approaches.show'); Route::resource('approaches', ApproachController::class)->only(['edit', 'update', 'destroy']); Route::patch('/approaches/{approach}/change-order/{direction}', [ ApproachController::class, 'changeOrder' ])->where('direction', 'up|down')->name('approaches.change-order'); Route::patch('/approaches/{approach}/change-published', [ ApproachController::class, 'changePublished' ])->name('approaches.change-published'); Route::get('/approaches/{approach}/duplicate', [ ApproachController::class, 'duplicate' ])->name('approaches.duplicate'); Route::get('/approaches/json/paginate', [ApproachController::class, 'jsonPaginate']) ->name('approaches.json-paginate'); Route::middleware('can:isConceptor')->group(function () { // * ACTIVITY LOGS. Route::resource('activity_logs', ActivityLogController::class)->only(['index', 'show']); }); }); // * Others routes Route::post('theme/set', [Controller::class, 'setTheme'])->name('theme.set'); });