357 lines
17 KiB
PHP
357 lines
17 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\ClaimController;
|
|
use App\Http\Controllers\Bo\ConsumptionMomentController;
|
|
use App\Http\Controllers\Bo\DashboardController;
|
|
use App\Http\Controllers\Bo\GeneralSettingController;
|
|
use App\Http\Controllers\Bo\HistoricalMilestoneController;
|
|
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\OfferController;
|
|
use App\Http\Controllers\Bo\ProductController;
|
|
use App\Http\Controllers\Bo\ProductTypeController;
|
|
use App\Http\Controllers\Bo\ProfessionController;
|
|
use App\Http\Controllers\Bo\RangeController;
|
|
use App\Http\Controllers\Bo\RecipeController;
|
|
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::middleware(['throttle:web'])->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);
|
|
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(['edit', 'update'])
|
|
->withoutMiddleware('htmlsanitize')
|
|
->middleware('htmlsanitize:text,recipes_text');
|
|
|
|
// * 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(['edit', 'update'])
|
|
->withoutMiddleware('htmlsanitize')
|
|
->middleware('htmlsanitize:content,data');
|
|
|
|
// * 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');
|
|
Route::get('/ranges/json/paginate', [RangeController::class, 'jsonPaginateModels'])
|
|
->name('ranges.json-paginate');
|
|
|
|
// * 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');
|
|
Route::get('/subranges/json/paginate', [SubrangeController::class, 'jsonPaginateModels'])
|
|
->name('subranges.json-paginate');
|
|
|
|
// * 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');
|
|
Route::get('/meats/json/paginate', [MeatController::class, 'jsonPaginateModels'])
|
|
->name('meats.json-paginate');
|
|
|
|
// * 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');
|
|
Route::get('/submeats/json/paginate', [SubmeatController::class, 'jsonPaginateModels'])
|
|
->name('submeats.json-paginate');
|
|
|
|
// * PRODUCT TYPES.
|
|
Route::resource('product_types', ProductTypeController::class)
|
|
->withoutMiddleware('htmlsanitize')
|
|
->middleware('htmlsanitize:description');
|
|
Route::patch('/product_types/{product_type}/change-published', [
|
|
ProductTypeController::class, 'changePublished'
|
|
])->name('product_types.change-published');
|
|
Route::patch('/product_types/{product_type}/change-button-status', [
|
|
ProductTypeController::class, 'changeButtonStatus'
|
|
])->name('product_types.change-button-status');
|
|
Route::get('/product_types/{product_type}/duplicate', [
|
|
ProductTypeController::class, 'duplicate'
|
|
])->name('product_types.duplicate');
|
|
Route::get('/product-types/json/paginate', [ProductTypeController::class, 'jsonPaginateModels'])
|
|
->name('product_types.json-paginate');
|
|
|
|
// * CLAIMS.
|
|
Route::resource('claims', ClaimController::class);
|
|
Route::patch('/claims/{claim}/change-published', [
|
|
ClaimController::class, 'changePublished'
|
|
])->name('claims.change-published');
|
|
Route::get('/claims/{claim}/duplicate', [
|
|
ClaimController::class, 'duplicate'
|
|
])->name('claims.duplicate');
|
|
Route::get('/claims/json/paginate', [ClaimController::class, 'jsonPaginateModels'])
|
|
->name('claims.json-paginate');
|
|
|
|
// * 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, 'jsonPaginateDemarches'])
|
|
->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('/videos/json/paginate', [VideoController::class, 'jsonPaginateModels'])
|
|
->name('videos.json-paginate');
|
|
|
|
// * RECIPES.
|
|
Route::resource('recipes', RecipeController::class)
|
|
->withoutMiddleware('htmlsanitize')
|
|
->middleware('htmlsanitize:preparation,advice');
|
|
Route::get('/recipes/{recipe}/duplicate', [
|
|
RecipeController::class, 'duplicate'
|
|
])->name('recipes.duplicate');
|
|
Route::patch('/recipes/{recipe}/change-published', [
|
|
RecipeController::class, 'changePublished'
|
|
])->name('recipes.change-published');
|
|
Route::patch('/recipes/{recipe}/change-highlight', [
|
|
RecipeController::class, 'changeHighlight'
|
|
])->name('recipes.change-highlight');
|
|
Route::get('/recipes/json/paginate', [ConsumptionMomentController::class, 'jsonPaginateModels'])
|
|
->name('recipes.json-paginate');
|
|
Route::get('/videos/json/paginate', [VideoController::class, 'jsonPaginateModels'])
|
|
->name('videos.json-paginate');
|
|
|
|
// * PRODUCTS.
|
|
Route::resource('products', ProductController::class)
|
|
->withoutMiddleware('htmlsanitize')
|
|
->middleware('htmlsanitize:description,details,preparation,ingredients');
|
|
Route::get('/products/{product}/duplicate', [
|
|
ProductController::class, 'duplicate'
|
|
])->name('products.duplicate');
|
|
Route::patch('/products/{product}/change-published', [
|
|
ProductController::class, 'changePublished'
|
|
])->name('products.change-published');
|
|
Route::get('/products/json/paginate', [ProductController::class, 'jsonPaginateModels'])
|
|
->name('products.json-paginate');
|
|
|
|
// * OFFERS.
|
|
Route::resource('offers', OfferController::class);
|
|
Route::patch('/offers/{offer}/change-published', [
|
|
OfferController::class, 'changePublished'
|
|
])->name('offers.change-published');
|
|
Route::patch('/offers/{offer}/change-order/{direction}', [
|
|
OfferController::class, 'changeOrder'
|
|
])->where('direction', 'up|down')->name('offers.change-order');
|
|
Route::get('/offers/{offer}/duplicate', [
|
|
OfferController::class, 'duplicate'
|
|
])->name('offers.duplicate');
|
|
|
|
// * HISTORICAL MILESTONES.
|
|
Route::resource('historical_milestones', HistoricalMilestoneController::class)
|
|
->withoutMiddleware('htmlsanitize')
|
|
->middleware('htmlsanitize:description');
|
|
Route::get('/historical_milestones/{historical_milestone}/duplicate', [
|
|
HistoricalMilestoneController::class, 'duplicate'
|
|
])->name('historical_milestones.duplicate');
|
|
Route::patch('/historical_milestones/{historical_milestone}/change-published', [
|
|
HistoricalMilestoneController::class, 'changePublished'
|
|
])->name('historical_milestones.change-published');
|
|
|
|
Route::middleware('can:isConceptor')->group(function () {
|
|
// * ACTIVITY LOGS.
|
|
Route::resource('activity_logs', ActivityLogController::class)->only(['index', 'show']);
|
|
Route::get('/activity_logs/user/{user:id}', [ActivityLogController::class, 'index'])
|
|
->name('activity_logs.user');
|
|
});
|
|
});
|
|
// * Others routes
|
|
Route::post('theme/set', [Controller::class, 'setTheme'])->name('theme.set');
|
|
});
|