127 lines
3.5 KiB
PHP
127 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Site;
|
|
use App\Models\User;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class SiteController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function index()
|
|
{
|
|
$sites = Site::all();
|
|
|
|
return view('site.index')->with('sites', $sites);
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function create()
|
|
{
|
|
return view('site.create');
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'site_id' => 'required|unique:site',
|
|
'site_nom' => 'required',
|
|
'site_contact' => 'required',
|
|
'site_logo' => 'required|image|mimes:png',
|
|
'site_rcs' => 'required',
|
|
'site_libelle' => 'required'
|
|
]);
|
|
|
|
$site = new Site();
|
|
$datas = $this->saveImg($request);
|
|
$site->site_id = $datas['site_id'];
|
|
$site->site_nom = $datas['site_nom'];
|
|
$site->site_contact = $datas['site_contact'];
|
|
$site->site_logo = $datas['site_logo'];
|
|
$site->site_rcs = $datas['site_rcs'];
|
|
$site->site_libelle = $datas['site_libelle'];
|
|
|
|
$site->save();
|
|
|
|
// --- ADD all new sites to all SuperAdmin
|
|
$admins = User::where(['roles' => 'superadmin'])->get();
|
|
foreach ($admins as $admin) {
|
|
$admin->sites()->save($site);
|
|
}
|
|
// --- MAJ Selecteur marques
|
|
$marques = Auth::user()->sites;
|
|
$submarques = $marques->map(function ($marque) {
|
|
return $marque->only(['id', 'site_nom', 'site_id', 'site_logo']);
|
|
});
|
|
|
|
session()->put('marques', $submarques);
|
|
|
|
return view('site.edit', ['site' => $site]);
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*
|
|
* @param \App\Models\Site $site
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function edit(Site $site)
|
|
{
|
|
return view('site.edit')->with('site', $site);
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param \App\Models\Site $site
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function update(Request $request, Site $site)
|
|
{
|
|
if ($site->update($this->saveImg($request))) {
|
|
session()->flash('update_ok', 'Le site a bien été modifié');
|
|
} else {
|
|
session()->flash('update_nok', 'Erreur lors de l\'enregistrement');
|
|
}
|
|
|
|
return redirect()->route('site.edit', ['site' => $site]);
|
|
}
|
|
|
|
/**
|
|
* @param \Illuminate\Http\Request $request
|
|
*
|
|
* @return array
|
|
*/
|
|
private function saveImg(Request $request)
|
|
{
|
|
$datas = collect($request->all());
|
|
|
|
// Enregistrer le fichiersi il a changé
|
|
if ($request->site_logo) {
|
|
$path = $request->site_logo->store('images/logos');
|
|
$path = str_replace('public/', '', $path);
|
|
$datas->put('site_logo', $path);
|
|
} else {
|
|
$datas->put('site_logo', $request->input('site_logo_hidden'));
|
|
}
|
|
|
|
return $datas->toArray();
|
|
}
|
|
}
|