Setting Edit + Update
This commit is contained in:
parent
afb4340964
commit
dfe0f0f1a2
8 changed files with 109 additions and 47 deletions
|
|
@ -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é.'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Setting;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Http\Requests\Setting;
|
||||
|
||||
use App\Enums\SettingTypes;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateRequest extends FormRequest
|
||||
|
|
@ -13,7 +14,8 @@ class UpdateRequest extends FormRequest
|
|||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return false;
|
||||
// TODO : Add role admin check
|
||||
return auth()->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
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
68
resources/views/setting/edit.blade.php
Normal file
68
resources/views/setting/edit.blade.php
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
@extends('layouts.app')
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
{{ __("Édition d'un paramètre") }}
|
||||
<a href="{{ route('setting.index') }}" class="btn btn-sm btn-primary float-right">{{ __('Retour') }}</a>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@if (session('status'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
@endif
|
||||
@if ($setting->type->equals(SettingTypesEnum::picture()))
|
||||
<p><b>
|
||||
SquaredLogo (PNG) : 187 x 187px <br>
|
||||
RectangleLogo (PNG): 187 x 100px <br>
|
||||
BackgroundImage (PNG) : 1920 x 1200px <br>
|
||||
HomeButtonImage (PNG) : 100 x 100px <br>
|
||||
</b></p>
|
||||
@endif
|
||||
<form action="{{ route('setting.update', ['setting' => $setting]) }}" method="POST" enctype="multipart/form-data">
|
||||
@method('PUT')
|
||||
@csrf
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<label>{{ $setting->key }} : </label>
|
||||
@switch($setting->type->value)
|
||||
@case(SettingTypesEnum::string()->value)
|
||||
<input type="text" name="value" value={{ $setting->value }} class="form-control" required>
|
||||
@break
|
||||
@case(SettingTypesEnum::numeric()->value)
|
||||
<input type="number" name="value" value={{ $setting->value }} class="form-control" min="0" required>
|
||||
@break
|
||||
@case(SettingTypesEnum::picture()->value)
|
||||
<br><img src="{{ asset($setting->value) }}" width="200"><br><br>
|
||||
<input type="file" name="value" class="form-control" required>
|
||||
@break
|
||||
@endswitch
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<input type="submit" value="{{ __('Enregistrer') }}" class="btn btn-primary">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
@ -3,12 +3,6 @@
|
|||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<p>
|
||||
SquaredLogo : 187 x 187px <br>
|
||||
RectangleLogo: 187 x 100px <br>
|
||||
BackgroundImage : 1920 x 1200px <br>
|
||||
HomeButtonImage : 100 x 100px <br>
|
||||
</p>
|
||||
<table class="table">
|
||||
<thead class="thead-dark">
|
||||
<tr>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Loading…
Add table
Reference in a new issue