57 lines
1.6 KiB
PHP
57 lines
1.6 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Controllers;
|
||
|
|
|
||
|
|
use App\Models\Project;
|
||
|
|
use App\Models\Ticket;
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
use Illuminate\Support\Str;
|
||
|
|
|
||
|
|
class ProjectController extends Controller
|
||
|
|
{
|
||
|
|
public function index() {
|
||
|
|
$projects = Project::all();
|
||
|
|
return view('project.index', compact('projects'));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function create() {
|
||
|
|
return view('project.create');
|
||
|
|
}
|
||
|
|
|
||
|
|
public function store(Request $request) {
|
||
|
|
$project = new Project();
|
||
|
|
$project->name = $request->name;
|
||
|
|
$project->save();
|
||
|
|
|
||
|
|
return redirect()->route('projects');
|
||
|
|
}
|
||
|
|
|
||
|
|
public function edit($id) {
|
||
|
|
$project = Project::findOrFail($id);
|
||
|
|
return view('project.edit', compact('project'));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function update(Request $request, $id) {
|
||
|
|
$project = Project::findOrFail($id);
|
||
|
|
|
||
|
|
$projectSlug = Str::slug($project->name);
|
||
|
|
|
||
|
|
if (file_exists(public_path('fichiers/' . $projectSlug)))
|
||
|
|
rename(public_path('fichiers/' . $projectSlug), public_path('fichiers/' . Str::slug($request->name)));
|
||
|
|
|
||
|
|
$project->name = $request->name;
|
||
|
|
$project->save();
|
||
|
|
|
||
|
|
return redirect()->back()->with('success', 'Modifications enregistrées !');
|
||
|
|
}
|
||
|
|
|
||
|
|
public function destroy($id) {
|
||
|
|
$project = Project::findOrFail($id);
|
||
|
|
$tickets = Ticket::where('project_id', $project->id)->count();
|
||
|
|
if ($tickets > 0)
|
||
|
|
return redirect()->back()->withErrors("Ce projet ne peut être supprimer, des tickets lui sont encore liés.");
|
||
|
|
$project->delete();
|
||
|
|
return redirect()->route('projects');
|
||
|
|
}
|
||
|
|
}
|