diff --git a/app/Http/Controllers/Bo/SlidesController.php b/app/Http/Controllers/Bo/SlidesController.php index 61ef56f..ea9be76 100644 --- a/app/Http/Controllers/Bo/SlidesController.php +++ b/app/Http/Controllers/Bo/SlidesController.php @@ -6,8 +6,6 @@ use App\Http\Controllers\Controller; use App\Http\Requests\StoreSlideRequest; use App\Models\Slide; use App\Models\Slider; -use Illuminate\Http\Request; -use Illuminate\Support\Carbon; use Illuminate\Support\Str; class SlidesController extends Controller @@ -28,17 +26,15 @@ class SlidesController extends Controller * * @return \Illuminate\Http\Response */ - public function create() + public function create(Slide $slide) { $sliders = Slider::all(); - return view('back.slides.create', compact('sliders')); + return view('back.slides.create', compact('sliders', 'slide')); } /** * Store a newly created resource in storage. * - * @todo : validation des dates - * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ @@ -77,9 +73,8 @@ class SlidesController extends Controller * @param int $id * @return \Illuminate\Http\Response */ - public function edit($id) + public function edit(Slide $slide) { - $slide = Slide::findOrFail($id); $sliders = Slider::all(); return view('back.slides.edit', compact('slide', 'sliders')); } @@ -91,13 +86,11 @@ class SlidesController extends Controller * @param int $id * @return \Illuminate\Http\Response */ - public function update(StoreSlideRequest $request, $id) + public function update(StoreSlideRequest $request, Slide $slide) { $picture = $request->picture; - // $request->validated() - $slide = Slide::findOrFail($id); - // $slide->save(); + $slide->fill($request->validated()); if ($picture !== null) { if (file_exists(public_path() . 'images/slides/' . $slide->picture)) { @@ -107,47 +100,47 @@ class SlidesController extends Controller $picture->move(public_path('images/slides'), $imageName); $slide->picture = $imageName; } - $slide->save(); - return redirect()->route('bo.slides.edit', $slide->id)->with('success', 'Modifications enregistrées !'); + if (!$slide->saveOrFail()) { + return redirect()->route('bo.slides.edit', $slide->id)->with('error', trans('La modification a échoué')); + } + + return redirect()->route('bo.slides.edit', $slide->id)->with('success', trans('Modifications enregistrées !')); } /** * Remove the specified resource from storage. * - * @param int $id + * @param Slide $slide * @return \Illuminate\Http\Response */ - public function destroy($id) + public function destroy(Slide $slide) { - $s = Slide::findOrFail($id); + if (!$slide->delete()) { + return redirect()->route('bo.slides.index')->with('error', trans('La suppression a échoué')); + } - $s->delete(); - - return redirect()->route('bo.slides.index'); + return redirect()->route('bo.slides.index')->with('success', trans('Suppression faite avec succès')); } - public function changeOrder($id, $action) + public function changeOrder(Slide $slide, $action) { - $current = Slide::findOrFail($id); - if ($action === 'up') { - $tmp = Slide::where('order', '<', $current->order)->orderBy('order', 'DESC')->first(); + $tmp = Slide::where('order', '<', $slide->order)->orderBy('order', 'DESC')->first(); $newOrder = $tmp->order; - $tmp->order = $current->order; - $current->order = $newOrder; + $tmp->order = $slide->order; + $slide->order = $newOrder; } else { - $tmp = Slide::where('order', '>', $current->order)->orderBy('order', 'ASC')->first(); + $tmp = Slide::where('order', '>', $slide->order)->orderBy('order', 'ASC')->first(); $newOrder = $tmp->order; - $tmp->order = $current->order; - $current->order = $newOrder; + $tmp->order = $slide->order; + $slide->order = $newOrder; } $tmp->save(); - $current->save(); + $slide->save(); return back(); - //return redirect()->route('back.slides.index'); } /** diff --git a/app/Http/Requests/StoreSlideRequest.php b/app/Http/Requests/StoreSlideRequest.php index a024e05..9050c3e 100644 --- a/app/Http/Requests/StoreSlideRequest.php +++ b/app/Http/Requests/StoreSlideRequest.php @@ -5,7 +5,6 @@ namespace App\Http\Requests; use Carbon\Exceptions\InvalidFormatException; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Carbon; -use Illuminate\Validation\Rule; class StoreSlideRequest extends FormRequest { diff --git a/package-lock.json b/package-lock.json index a3ef48b..65349ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ }, "devDependencies": { "axios": "^0.21", - "bootstrap": "^4.6.0", + "bootstrap": "^5.1.3", "clean-webpack-plugin": "^3.0.0", "jquery": "^3.6", "laravel-mix": "^6.0.6", @@ -1757,6 +1757,17 @@ "node": ">= 8" } }, + "node_modules/@popperjs/core": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.0.tgz", + "integrity": "sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==", + "dev": true, + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -2702,17 +2713,17 @@ "dev": true }, "node_modules/bootstrap": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.1.tgz", - "integrity": "sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/bootstrap" }, "peerDependencies": { - "jquery": "1.9.1 - 3", - "popper.js": "^1.16.1" + "@popperjs/core": "^2.10.2" } }, "node_modules/brace-expansion": { @@ -10822,6 +10833,13 @@ "fastq": "^1.6.0" } }, + "@popperjs/core": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.0.tgz", + "integrity": "sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==", + "dev": true, + "peer": true + }, "@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -11645,9 +11663,9 @@ "dev": true }, "bootstrap": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.1.tgz", - "integrity": "sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", "dev": true, "requires": {} }, diff --git a/package.json b/package.json index 289daf4..065ed4f 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }, "devDependencies": { "axios": "^0.21", - "bootstrap": "^4.6.0", + "bootstrap": "^5.1.3", "clean-webpack-plugin": "^3.0.0", "jquery": "^3.6", "laravel-mix": "^6.0.6", diff --git a/public/images/slides/10_Y3Ijf.jpg b/public/images/slides/10_Y3Ijf.jpg new file mode 100644 index 0000000..dc752c8 Binary files /dev/null and b/public/images/slides/10_Y3Ijf.jpg differ diff --git a/public/images/slides/11_T8q4W.jpg b/public/images/slides/11_T8q4W.jpg new file mode 100644 index 0000000..55a1c60 Binary files /dev/null and b/public/images/slides/11_T8q4W.jpg differ diff --git a/public/images/slides/8_FkEDw.jpg b/public/images/slides/8_FkEDw.jpg new file mode 100644 index 0000000..55a1c60 Binary files /dev/null and b/public/images/slides/8_FkEDw.jpg differ diff --git a/public/images/slides/8_eL1ET.jpg b/public/images/slides/8_eL1ET.jpg new file mode 100644 index 0000000..1612ea9 Binary files /dev/null and b/public/images/slides/8_eL1ET.jpg differ diff --git a/public/images/slides/8_rmcT8.jpg b/public/images/slides/8_rmcT8.jpg new file mode 100644 index 0000000..dc752c8 Binary files /dev/null and b/public/images/slides/8_rmcT8.jpg differ diff --git a/public/images/slides/9_l5r05.jpg b/public/images/slides/9_l5r05.jpg new file mode 100644 index 0000000..1612ea9 Binary files /dev/null and b/public/images/slides/9_l5r05.jpg differ diff --git a/resources/assets/images/slide_home_2.jpg b/resources/assets/images/slide_home_2.jpg new file mode 100644 index 0000000..55a1c60 Binary files /dev/null and b/resources/assets/images/slide_home_2.jpg differ diff --git a/resources/assets/images/slide_home_3.jpg b/resources/assets/images/slide_home_3.jpg new file mode 100644 index 0000000..dc752c8 Binary files /dev/null and b/resources/assets/images/slide_home_3.jpg differ diff --git a/resources/views/back/modules/input-error.blade.php b/resources/views/back/modules/input-error.blade.php new file mode 100644 index 0000000..86d984b --- /dev/null +++ b/resources/views/back/modules/input-error.blade.php @@ -0,0 +1,5 @@ +@if($errors->has($inputName)) +
+ {{ implode(',', $errors->get($inputName)) }} +
+@endif \ No newline at end of file diff --git a/resources/views/back/modules/message.blade.php b/resources/views/back/modules/message.blade.php new file mode 100644 index 0000000..01ea972 --- /dev/null +++ b/resources/views/back/modules/message.blade.php @@ -0,0 +1,46 @@ +@if ($message = Session::get('success')) + +@endif +@if ($message = Session::get('error')) + +@endif +@if ($message = Session::get('warning')) + +@endif +@if ($message = Session::get('info')) + +@endif +@if ($errors->any()) + +@endif \ No newline at end of file diff --git a/resources/views/back/sliders/create.blade.php b/resources/views/back/sliders/create.blade.php index 6dc4d14..b56e0b9 100644 --- a/resources/views/back/sliders/create.blade.php +++ b/resources/views/back/sliders/create.blade.php @@ -5,9 +5,9 @@ @csrf

- < Sliders Création

+ < {{ __('Sliders') }} {{ __('Création') }}
-
@if ($errors->any()) @@ -21,17 +21,17 @@ @endif
- - + +
- - - laisser vide pour une génération automatique + + + {{ __('laisser vide pour une génération automatique') }}
- - + +
@endsection \ No newline at end of file diff --git a/resources/views/back/slides/create.blade.php b/resources/views/back/slides/create.blade.php index 5f0473c..5ab8e93 100644 --- a/resources/views/back/slides/create.blade.php +++ b/resources/views/back/slides/create.blade.php @@ -5,81 +5,13 @@ @csrf

- < Slides Création

+ < {{ __('Slides') }} {{ __('Création') }}
-
-
- @if ($errors->any()) -
- -
- @endif - -
- - -
-
- - -
-
-
- -
- -
-
- - -
-
-
-
-
- -
-

Période de parution

-
-
-
- - - - Laisser vide pour un affichage immédiat -
-
- - - - Laisser vide pour un affichage permanent +
-
-

Options de lien

-
-
- - -
-
- - -
-
- - -
+ @include('back.slides.form-inputs') @endsection diff --git a/resources/views/back/slides/edit.blade.php b/resources/views/back/slides/edit.blade.php index ce01dbf..d70a445 100644 --- a/resources/views/back/slides/edit.blade.php +++ b/resources/views/back/slides/edit.blade.php @@ -6,99 +6,13 @@ @csrf

- < Slides Création

- @if (session('success')) - {{ session('success') }} - @endif + < {{ __('Slides') }} {{ __('Création') }}
-
-
- @if ($errors->any()) -
- -
- @endif - -
- - -
-
- - -
-
-
- - @if ($slide->picture !== null) -
-
- {{$slide->title}} - @endif -
- -
-
- - -
-
-
-
-
- -
-

Période de parution

-
-
-
- - @if($slide->date_start !== null) - - - @else - - - @endif - Laisser vide pour un affichage immédiat -
-
- - @if($slide->date_end !== null) - - - @else - - - @endif - Laisser vide pour un affichage permanent +
-
-

Options de lien

-
-
- - -
-
- - -
-
- link_new_tab) !== 0)checked @endif> - -
+ @include('back.slides.form-inputs') @endsection diff --git a/resources/views/back/slides/form-inputs.blade.php b/resources/views/back/slides/form-inputs.blade.php new file mode 100644 index 0000000..ae2f490 --- /dev/null +++ b/resources/views/back/slides/form-inputs.blade.php @@ -0,0 +1,76 @@ +
+ + + @include('back.modules.input-error', ['inputName'=>'title']) +
+
+ + +
+
+
+ + @if ($slide->picture !== null) +
+
+ {{$slide->title}} + @endif +
+ +
+
+ + +
+
+
+
+
+ +
+

{{ __('Période de parution') }}

+
+
+
+ + @if($slide->date_start !== null) + + + @else + + + @endif + {{ __('Laisser vide pour un affichage immédiat') }} +
+
+ + @if($slide->date_end !== null) + + + @else + + + @endif + {{ __('Laisser vide pour un affichage permanent') }} +
+
+ +
+

{{ __('Options de lien') }}

+
+
+ + +
+
+ + +
+
+ link_new_tab) !== 0)checked @endif> + +
\ No newline at end of file diff --git a/resources/views/back/slides/index.blade.php b/resources/views/back/slides/index.blade.php index ee95bec..81c255b 100644 --- a/resources/views/back/slides/index.blade.php +++ b/resources/views/back/slides/index.blade.php @@ -2,26 +2,26 @@ @section('content')
-

Slides Liste

+

{{ __('Slides') }} {{ __('Liste') }}

@if ($errors->any()) @foreach($errors->all() as $error) {{ $error }} @endforeach @endif - Créer un slide + {{ __('Créer un slide') }}
- - - - - - - - + + + + + + + + @@ -37,24 +37,24 @@
TitreTexteImageLienDébutFinSlider de regroupementOrdre{{ __('Titre') }}{{ __('Texte') }}{{ __('Image') }}{{ __('Lien') }}{{ __('Début') }}{{ __('Fin') }}{{ __('Slider de regroupement') }}{{ __('Ordre') }}
{{$slide->slider->label}} @if ($loop->first) - - + + + > + @elseif($loop->last) + + < + + @else + + < - @elseif($loop->last) - - > - - @else - - - < - - > - - @endif + + > + + @endif - Éditer + {{ __('Éditer') }}
@method('DELETE') @csrf diff --git a/resources/views/front/a-propos.blade.php b/resources/views/front/a-propos.blade.php index 40e46f6..e9267a7 100644 --- a/resources/views/front/a-propos.blade.php +++ b/resources/views/front/a-propos.blade.php @@ -5,7 +5,7 @@ @section('content')
-

Qui sommes-nous ?

+

{{ __('Qui sommes-nous')}} ?

A propos de nous