From e7e1442bb3c254c56cca0ffac138dc10393dfe1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Gl=C3=BCck?= Date: Sat, 19 Aug 2023 18:42:47 +0200 Subject: [PATCH] Add option to archive tags --- app/Http/Controllers/DayController.php | 2 +- app/Http/Controllers/TagController.php | 1 + app/Http/Requests/TagEditRequest.php | 3 +- ...9_163302_add_archived_at_to_tags_table.php | 28 +++++++++++++++++++ .../views/tag/widgets/edit_tag.blade.php | 9 ++++++ 5 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 database/migrations/2023_08_19_163302_add_archived_at_to_tags_table.php diff --git a/app/Http/Controllers/DayController.php b/app/Http/Controllers/DayController.php index e9de17f..439dc2f 100644 --- a/app/Http/Controllers/DayController.php +++ b/app/Http/Controllers/DayController.php @@ -35,7 +35,7 @@ public function create(Request $request): View return view('day.create', [ 'day' => new Day(['date' => $validated['initial'] ?? date('Y-m-d')]), 'categories' => Category::orderBy('order')->get(), - 'tags' => $request->user()->tags + 'tags' => $request->user()->tags()->whereNull('archived_at')->get() ]); } diff --git a/app/Http/Controllers/TagController.php b/app/Http/Controllers/TagController.php index ac5c548..580940f 100644 --- a/app/Http/Controllers/TagController.php +++ b/app/Http/Controllers/TagController.php @@ -55,6 +55,7 @@ public function edit(Tag $tag): View public function update(TagEditRequest $request, Tag $tag): RedirectResponse { $tag->fill($request->validated()); + $tag->archived_at = $request->has('archive') ? now() : null; $tag->save(); return redirect()->route('tags.index'); diff --git a/app/Http/Requests/TagEditRequest.php b/app/Http/Requests/TagEditRequest.php index 68918db..993e6a4 100644 --- a/app/Http/Requests/TagEditRequest.php +++ b/app/Http/Requests/TagEditRequest.php @@ -18,7 +18,8 @@ public function rules(): array { return [ 'name' => ['required'], - 'color' => ['required', 'size:7', 'starts_with:#'] + 'color' => ['required', 'size:7', 'starts_with:#'], + 'archive' => ['sometimes', 'required', 'boolean'] ]; } } diff --git a/database/migrations/2023_08_19_163302_add_archived_at_to_tags_table.php b/database/migrations/2023_08_19_163302_add_archived_at_to_tags_table.php new file mode 100644 index 0000000..fa46d54 --- /dev/null +++ b/database/migrations/2023_08_19_163302_add_archived_at_to_tags_table.php @@ -0,0 +1,28 @@ +timestamp('archived_at')->nullable()->default(null); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('tags', function (Blueprint $table) { + $table->dropColumn('archived_at'); + }); + } +}; diff --git a/resources/views/tag/widgets/edit_tag.blade.php b/resources/views/tag/widgets/edit_tag.blade.php index d13521a..553add0 100644 --- a/resources/views/tag/widgets/edit_tag.blade.php +++ b/resources/views/tag/widgets/edit_tag.blade.php @@ -4,6 +4,15 @@ @include('tag.partials.edit') +
+
+ archived_at != null))> + +
+
+