diff --git a/app/Http/Controllers/SettingController.php b/app/Http/Controllers/SettingController.php index 3f94fbd..30a8148 100644 --- a/app/Http/Controllers/SettingController.php +++ b/app/Http/Controllers/SettingController.php @@ -2,8 +2,9 @@ namespace App\Http\Controllers; +use App\Enums\SettingTypes; +use App\Http\Requests\Setting\UpdateRequest; use App\Models\Setting; -use Illuminate\Http\Request; class SettingController extends Controller { @@ -26,7 +27,7 @@ class SettingController extends Controller */ public function edit(Setting $setting) { - // + return \view('setting.edit', \compact('setting')); } /** @@ -36,8 +37,21 @@ class SettingController extends Controller * @param \App\Models\Setting $setting * @return \Illuminate\Http\Response */ - public function update(Request $request, Setting $setting) + public function update(UpdateRequest $request, Setting $setting) { - // + if ($setting->type->equals(SettingTypes::picture())) { + $file = $request->file('value'); + $path = $file->storeAs( + 'public/setting_img', + $setting->key . ".png" + ); + $setting->value = \str_replace("public", "storage", $path); + } else { + $setting->value = $request->value; + } + + $setting->saveOrFail(); + + return redirect()->route('setting.edit', ['setting' => $setting])->with('status', __('La paramètre a été modifié.')); } } diff --git a/app/Http/Requests/Setting/StoreRequest.php b/app/Http/Requests/Setting/StoreRequest.php deleted file mode 100644 index 7f4224d..0000000 --- a/app/Http/Requests/Setting/StoreRequest.php +++ /dev/null @@ -1,30 +0,0 @@ -check(); } /** @@ -23,8 +25,22 @@ class UpdateRequest extends FormRequest */ public function rules() { + $setting = $this->route('setting'); + + switch ($setting->type->value) { + case SettingTypes::string()->value: + $validate = "required"; + break; + case SettingTypes::numeric()->value: + $validate = "numeric|min:0|required"; + break; + case SettingTypes::picture()->value: + $validate = "file|mimes:png|required"; + break; + } + return [ - // + 'value' => $validate ]; } } diff --git a/database/seeders/SettingTableSeeder.php b/database/seeders/SettingTableSeeder.php index 83a02bb..44e7f39 100644 --- a/database/seeders/SettingTableSeeder.php +++ b/database/seeders/SettingTableSeeder.php @@ -19,10 +19,10 @@ class SettingTableSeeder extends Seeder ['key' => 'version', 'value' => '1', 'type' => SettingTypes::numeric()->value], ['key' => 'ShowIsActive', 'value' => '0', 'type' => SettingTypes::numeric()->value], ['key' => 'MainColor', 'value' => '#DE0017', 'type' => SettingTypes::string()->value], - ['key' => 'SquaredLogo', 'value' => 'assets/img/default.png', 'type' => SettingTypes::picture()->value], - ['key' => 'RectangleLogo', 'value' => 'assets/img/default.png', 'type' => SettingTypes::picture()->value], - ['key' => 'BackgroundImage', 'value' => 'assets/img/default.png', 'type' => SettingTypes::picture()->value], - ['key' => 'HomeButtonImage', 'value' => 'assets/img/default.png', 'type' => SettingTypes::picture()->value], + ['key' => 'SquaredLogo', 'value' => 'storage/setting_img/default.png', 'type' => SettingTypes::picture()->value], + ['key' => 'RectangleLogo', 'value' => 'storage/setting_img/default.png', 'type' => SettingTypes::picture()->value], + ['key' => 'BackgroundImage', 'value' => 'storage/setting_img/default.png', 'type' => SettingTypes::picture()->value], + ['key' => 'HomeButtonImage', 'value' => 'storage/setting_img/default.png', 'type' => SettingTypes::picture()->value], ]); } } diff --git a/readme.md b/readme.md index 42f41ea..2b9d517 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,7 @@ # BO Application Commerciaux ## Installation ``` +php artisan storage:link cp .env.example .env php artisan key:generate ``` @@ -13,7 +14,6 @@ php artisan migrate --seed php artisan user:create ``` # TODO -- Setting edit + update - Ajouter un Enum Role sur users + Gate ## API V2 - Call pour récupérer la config \ No newline at end of file diff --git a/resources/views/setting/edit.blade.php b/resources/views/setting/edit.blade.php new file mode 100644 index 0000000..25e52bd --- /dev/null +++ b/resources/views/setting/edit.blade.php @@ -0,0 +1,68 @@ +@extends('layouts.app') +@section('content') +
+
+
+
+
+ {{ __("Édition d'un paramètre") }} + {{ __('Retour') }} +
+
+ @if ($errors->any()) +
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + @if (session('status')) +
+ {{ session('status') }} +
+ @endif + @if ($setting->type->equals(SettingTypesEnum::picture())) +

+ SquaredLogo (PNG) : 187 x 187px
+ RectangleLogo (PNG): 187 x 100px
+ BackgroundImage (PNG) : 1920 x 1200px
+ HomeButtonImage (PNG) : 100 x 100px
+

+ @endif +
+ @method('PUT') + @csrf +
+
+
+ + @switch($setting->type->value) + @case(SettingTypesEnum::string()->value) + value }} class="form-control" required> + @break + @case(SettingTypesEnum::numeric()->value) + value }} class="form-control" min="0" required> + @break + @case(SettingTypesEnum::picture()->value) +


+ + @break + @endswitch +
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+@endsection \ No newline at end of file diff --git a/resources/views/setting/index.blade.php b/resources/views/setting/index.blade.php index 9717876..1afff6b 100644 --- a/resources/views/setting/index.blade.php +++ b/resources/views/setting/index.blade.php @@ -3,12 +3,6 @@
-

- SquaredLogo : 187 x 187px
- RectangleLogo: 187 x 100px
- BackgroundImage : 1920 x 1200px
- HomeButtonImage : 100 x 100px
-

diff --git a/public/assets/img/default.png b/storage/app/public/setting_img/default.png similarity index 100% rename from public/assets/img/default.png rename to storage/app/public/setting_img/default.png