diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index 4c13b833e720fbfc8490aa76b2663fa8defb1483..431bb573e07d80afd7373c8f48fc976c06e318c3 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -13,7 +13,7 @@ class ProjectController extends Controller public function index() { return view('projects.index', [ - 'projects' => Project::all(), + 'projects' => Project::all()->sortByDesc('id'), 'contributions' => json_decode(Http::get('https://framagit.org/participalibre/participalibre/-/snippets/6135/raw/main/contributions.json'), true) ]); } @@ -73,7 +73,9 @@ class ProjectController extends Controller $project->tags()->sync($validatedData['tags']); - return $project; + return redirect()->route('projects.edit.success', $project)->with([ + 'authorization' => 'success' + ]); } catch (\Exception $e) { throw new \Exception("Impossible de modifier le projet " . $e->getMessage(), 500); } @@ -92,10 +94,21 @@ class ProjectController extends Controller ]); } + public function edit_success(Project $project) + { + abort_if(!session()->has('authorization'), 403); + + return view('projects.edit_success', [ + 'project' => $project + ]); + } public function destroy(Project $project, string $token) { try { $project->delete(); + return redirect()->route('home')->with([ + 'delete' => 'success' + ]); } catch (\Exception $e) { throw new \Exception("Impossible de supprimer le projet " . $e->getMessage(), 500); diff --git a/database/seeders/ProjectTableSeeder.php b/database/seeders/ProjectTableSeeder.php index 2ba9f879b84571c688c74fb0acf57b46f6f99083..dc43f9042b2176d4e5bc93726aab95f726f55fc2 100644 --- a/database/seeders/ProjectTableSeeder.php +++ b/database/seeders/ProjectTableSeeder.php @@ -15,6 +15,6 @@ class ProjectTableSeeder extends Seeder public function run() { // Seed projects - Project::factory()->count(30)->create(); + Project::factory()->count(30)->withAdminToken()->create(); } } diff --git a/resources/sass/_base.scss b/resources/sass/_base.scss index d47c0dc97cf1fd7bc5570da254b288baace4bf66..d83ed553a997b01e212a33b5a9d68544e4859357 100644 --- a/resources/sass/_base.scss +++ b/resources/sass/_base.scss @@ -89,10 +89,6 @@ footer { justify-content: space-around; } - &.flex-wrap { - flex-wrap: wrap; - } - &.flex-left { justify-content: start; } @@ -204,17 +200,11 @@ h2 { color: $h-color; } -.icon-danger { - &::before { - @include icon-danger - } -} - .button-danger { @extend .button-primary; background-color: $red !important; @extend .padding-small; - @extend .icon-danger; + text-decoration: none; } .background-accent { diff --git a/resources/views/projects/edit.blade.php b/resources/views/projects/edit.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..05180411e812be931478bd05711794f1b8fbc1ac --- /dev/null +++ b/resources/views/projects/edit.blade.php @@ -0,0 +1,114 @@ +@extends('layouts.app') + +@section('title', 'Editer un projet') + +@section('content') +
+

Votre demande de contribution

+

+ Vous pouvez éditer ou supprimer votre demande de contribution. +

+
+ @csrf + @method('PATCH') +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+

Le type de contribution souhaitée

+

Choisissez ce dont vous avez besoin dans une seule catégorie (2 compétences maximum)

+
+ @foreach ($categories as $category) +
+
+
+

+ {{ $category->name }} +

+
+ +
+
+ +
+ @foreach ($category->tags as $tag) + + tags as $exists_tags) + @if ($exists_tags->id == $tag->id) + checked + @endif + @endforeach + > + + @endforeach +
+
+
+ @endforeach +
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+

+ Suppression +

+

+ Pour supprimer définitivement votre annonce, c’est ici que ça se passe ! +

+ +
+
+ Retour + +
+
+
+@endsection diff --git a/resources/views/projects/edit_success.blade.php b/resources/views/projects/edit_success.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..777a6261f618ab3f1ae764b828c7d60fb82533d8 --- /dev/null +++ b/resources/views/projects/edit_success.blade.php @@ -0,0 +1,27 @@ +@extends('layouts.app') + +@section('title', 'Confirmation') + +@section('content') +
+

Félicitations, votre demande de contribution a été modifiée !

+
+
+

Que souhaitez-vous faire maintenant ?

+
+
+ +

Voir mon annonce

+
+
+
+ +

Modifier mon annonce

+
+
+
+
+ Retour à l’accueil +
+
+@endsection diff --git a/resources/views/projects/show.blade.php b/resources/views/projects/show.blade.php index 3e8a76ddae4169f5e0849d579e812ab317957195..3452f5ada2fae55b05d0bc3a9492699d0533b7ae 100644 --- a/resources/views/projects/show.blade.php +++ b/resources/views/projects/show.blade.php @@ -1,6 +1,6 @@ @extends('layouts.app') -@section('title', 'Nom du projet') +@section('title', $project->name) @section('content')
@@ -53,11 +53,11 @@
- +
Retour à l’accueil
-@endsection \ No newline at end of file +@endsection diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php index c4abf0b1a76291ec4da015a9b938a0587b13a0fc..7a7bbef85990ab5514cffc26c74a173b95b95ad3 100644 --- a/resources/views/welcome.blade.php +++ b/resources/views/welcome.blade.php @@ -3,6 +3,14 @@ @section('title', 'Bienvenue') @section('content') + +@if (session('delete')) +
+

+ Votre projet a bien été supprimé +

+
+@endif
diff --git a/routes/web.php b/routes/web.php index 84d830d9ec62d4ed5e1f62ea71895fe6169138b0..35e2d8a5843d6d357e363927c1ec4bb3e5c741d8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -20,9 +20,9 @@ Route::view('/projects-list', 'projects-list'); Route::view('/about', 'about'); Route::resource('projects', ProjectController::class)->except(['edit', 'update', 'destroy']); Route::get('/projects/{project}/success', [ProjectController::class, 'success'])->name('projects.success'); - +Route::get('/projects/{project}/edit/success', [ProjectController::class, 'edit_success'])->name('projects.edit.success'); Route::group(['middleware' => ['can:manage,project,token']], function () { Route::get('/projects/{project}/edit/{token}', [ProjectController::class, 'edit'])->name('projects.edit'); Route::patch('/projects/{project}/{token}', [ProjectController::class, 'update'])->name('projects.update'); - Route::delete('/projects/{project}/{token}', [ProjectController::class, 'destroy'])->name('projects.destroy'); + Route::get('/projects/{project}/{token}', [ProjectController::class, 'destroy'])->name('projects.destroy'); });