ldc-legaulois/routes/web-bo.php
2024-05-07 10:51:33 +02:00

261 lines
13 KiB
PHP

<?php
use App\Http\Controllers\Bo\ActivityLogController;
use App\Http\Controllers\Bo\ApproachController;
use App\Http\Controllers\Bo\DemarcheSlideController;
use App\Http\Controllers\Bo\BrandAdvantageController;
use App\Http\Controllers\Bo\ConsumptionMomentController;
use App\Http\Controllers\Bo\DashboardController;
use App\Http\Controllers\Bo\GeneralSettingController;
use App\Http\Controllers\Bo\KeyNumberController;
use App\Http\Controllers\Bo\MainSlideController;
use App\Http\Controllers\Bo\MenuNodeDataController;
use App\Http\Controllers\Bo\MeatController;
use App\Http\Controllers\Bo\ProductController;
use App\Http\Controllers\Bo\ProfessionController;
use App\Http\Controllers\Bo\RangeController;
use App\Http\Controllers\Bo\StaticPageController;
use App\Http\Controllers\Bo\SubmeatController;
use App\Http\Controllers\Bo\SubrangeController;
use App\Http\Controllers\Bo\UserController;
use App\Http\Controllers\Bo\VideoController;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
Route::prefix('bo')
->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'])
->withoutMiddleware('htmlsanitize')
->middleware('htmlsanitize:content');
// * 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');
// * CONSUMPTION MOMENT.
Route::resource('consumption_moments', ConsumptionMomentController::class);
Route::get('/consumption_moments/{consumption_moment}/duplicate', [
ConsumptionMomentController::class, 'duplicate'
])->name('consumption_moments.duplicate');
// * VIDEOS.
Route::resource('videos', VideoController::class);
Route::patch('/videos/{video}/change-published', [
VideoController::class, 'changePublished'
])->name('videos.change-published');
Route::patch('/videos/{video}/change-homepage', [
VideoController::class, 'changeHomepage'
])->name('videos.change-homepage');
Route::patch('/videos/{video}/change-order/{direction}', [
VideoController::class, 'changeOrder'
])->where('direction', 'up|down')->name('videos.change-order');
Route::get('/videos/{video}/duplicate', [
VideoController::class, 'duplicate'
])->name('videos.duplicate');
Route::get('/products/json/paginate', [ProductController::class, 'jsonPaginate'])
->name('products.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');
});