diff --git a/resources/views/bo/pages/homepages/edit.blade.php b/resources/views/bo/pages/homepages/edit.blade.php
new file mode 100644
index 0000000..f7bc9a0
--- /dev/null
+++ b/resources/views/bo/pages/homepages/edit.blade.php
@@ -0,0 +1,39 @@
+@extends('bo.layout', ['brParam' => $homepageModel])
+
+@section('title', trans_choice('crud.meta.title.edit', 0, ['model' => __('models.classes.homepage')]))
+@section('description', trans_choice('crud.meta.description.edit', 0, ['model' => __('models.classes.homepage')]))
+@section('breadcrumb',
+ request()->route()->getName())
+
+@section('content')
+
+
+
+
+
+ @include('modules.breadcrumbs.breadcrumb-body', ['brParam' => $homepageModel])
+
+
+
+
+
+
+@endsection
diff --git a/resources/views/bo/pages/homepages/form.blade.php b/resources/views/bo/pages/homepages/form.blade.php
new file mode 100644
index 0000000..54b145b
--- /dev/null
+++ b/resources/views/bo/pages/homepages/form.blade.php
@@ -0,0 +1,245 @@
+
+ {{-- TITLE PART 1 --}}
+
+
+
+ {{-- TITLE PART 2 --}}
+
+
+
+ {{-- TITLE PART 3 --}}
+
+
+
+ {{-- PICTURE --}}
+
+
+
+ {{-- PRESENTATION TITLE --}}
+
+
+
+ {{-- CONTENT --}}
+
+
+
+
+
+
* {{ __('crud.helpers.required_fields') }}
+
+
+
+
+@push('scripts')
+
+@endpush
diff --git a/resources/views/bo/pages/homepages/index-list.blade.php b/resources/views/bo/pages/homepages/index-list.blade.php
new file mode 100644
index 0000000..41304dd
--- /dev/null
+++ b/resources/views/bo/pages/homepages/index-list.blade.php
@@ -0,0 +1,62 @@
+
+ @if (count($homepageModels) > 0)
+
+ @include('bo.modules.table-col-sorter', [
+ 'cols' => [
+ 'title_part1' => Str::ucfirst(__('validation.custom.title_part1')),
+ 'title_part2' => Str::ucfirst(__('validation.custom.title_part2')),
+ 'title_part3' => Str::ucfirst(__('validation.custom.title_part3')),
+ 'picture' => Str::ucfirst(__('validation.custom.picture')),
+ 'presentation_title' => Str::ucfirst(__('validation.custom.presentation_title')),
+ 'presentation_content' => Str::ucfirst(__('validation.attributes.content')),
+ 'updated_at' => Str::ucfirst(__('validation.attributes.updated_at')),
+ ],
+ ])
+
+
+ @foreach ($homepageModels as $homepageModel)
+
+ | {{ $homepageModel->title_part1 }} |
+ {{ $homepageModel->title_part2 }} |
+ {{ $homepageModel->title_part3 }} |
+
+
+ |
+ {{ $homepageModel->presentation_title }} |
+ {!! Str::limit($homepageModel->presentation_content, 100) !!} |
+
+ {{ $homepageModel->updated_at->isoFormat('LLLL') }}
+ |
+ @php
+ $routeName = request()
+ ->route()
+ ->getName();
+ @endphp
+
+ @canAny(['update'], $homepageModel)
+
+ @else
+
+
+
+ @endcan
+ |
+
+ @endforeach
+
+ @else
+
+ | {{ __('crud.other.no_model_found', ['model' => __('models.classes.homepage')]) }} |
+
+ @endif
+
diff --git a/resources/views/bo/pages/homepages/index.blade.php b/resources/views/bo/pages/homepages/index.blade.php
new file mode 100644
index 0000000..4554bcd
--- /dev/null
+++ b/resources/views/bo/pages/homepages/index.blade.php
@@ -0,0 +1,16 @@
+@extends('bo.layout')
+
+@section('title',
+ Str::of(__('models.classes.homepage'))->plural()->ucfirst())
+@section('description', trans_choice('crud.meta.description.index', 0, ['model' => Str::plural(__('models.classes.homepage'))]))
+
+@section('content')
+
+ @include('modules.breadcrumbs.breadcrumb-body')
+
+ @include('bo.modules.search-bar')
+
+ @include('bo.pages.homepages.index-list')
+
+ {{ $homepageModels->links() }}
+@endsection
diff --git a/routes/breadcrumbs-bo.php b/routes/breadcrumbs-bo.php
index d4659fe..264d470 100644
--- a/routes/breadcrumbs-bo.php
+++ b/routes/breadcrumbs-bo.php
@@ -2,6 +2,7 @@
use App\Models\ActivityLog;
use App\Models\Commitment;
+use App\Models\Homepage;
use App\Models\Range;
use App\Models\SeasonalSection;
use App\Models\StaticPage;
@@ -113,3 +114,15 @@ Breadcrumbs::for('bo.seasonalsections.duplicate', function (Generator $trail) {
$trail->parent('bo.seasonalsections.index');
$trail->push(Str::ucfirst(trans('crud.actions.duplicate')));
});
+
+// * HOMEPAGES
+Breadcrumbs::for('bo.homepages.index', function (Generator $trail) {
+ $trail->push(
+ Str::of(trans('models.classes.homepage'))->plural()->ucfirst(),
+ route('bo.homepages.index', ['sort_col' => 'updated_at', 'sort_way' => 'desc'])
+ );
+});
+Breadcrumbs::for('bo.homepages.edit', function (Generator $trail, Homepage $homepage) {
+ $trail->parent('bo.homepages.index');
+ $trail->push(Str::ucfirst(trans('crud.actions.edit')), route('bo.homepages.edit', $homepage));
+});
diff --git a/routes/web-bo.php b/routes/web-bo.php
index 6ab8d2a..860f3ef 100644
--- a/routes/web-bo.php
+++ b/routes/web-bo.php
@@ -3,6 +3,7 @@
use App\Http\Controllers\Bo\ActivityLogsController;
use App\Http\Controllers\Bo\CommitmentController;
use App\Http\Controllers\Bo\DashboardController;
+use App\Http\Controllers\Bo\HomepageController;
use App\Http\Controllers\Bo\StaticPageController;
use App\Http\Controllers\Bo\RangeController;
use App\Http\Controllers\Bo\SeasonalSectionController;
@@ -88,6 +89,11 @@ Route::prefix('bo')
SeasonalSectionController::class, 'duplicate'
])->name('seasonalsections.duplicate');
+ // * HOMEPAGE
+ Route::resource('homepages', HomepageController::class)->only(['index', 'edit', 'update'])
+ ->withoutMiddleware('htmlsanitize')
+ ->middleware('htmlsanitize:presentation_content');
+
Route::middleware('can:isConceptor')->group(function () {
// * ACTIVITY LOGS.
Route::resource('activity_logs', ActivityLogsController::class)->only(['index', 'show']);