From bdb69df52d534f76e97226845ffc8a78dd995d24 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Tue, 11 Apr 2023 16:16:05 +0100 Subject: [PATCH] Switch bio to be stored in database --- app/Http/Controllers/Admin/BioController.php | 32 +++++++++ app/Http/Controllers/FrontPageController.php | 4 ++ app/Models/Bio.php | 11 +++ database/factories/BioFactory.php | 23 +++++++ .../2023_04_11_115837_create_bios_table.php | 28 ++++++++ database/seeders/BioSeeder.php | 17 +++++ resources/views/admin/bio/show.blade.php | 19 ++++++ resources/views/admin/welcome.blade.php | 5 ++ resources/views/front-page.blade.php | 2 - resources/views/master.blade.php | 8 ++- resources/views/templates/bio.blade.php | 32 --------- routes/web.php | 7 ++ tests/Feature/Admin/BioTest.php | 67 +++++++++++++++++++ tests/Unit/NotesTest.php | 2 +- 14 files changed, 219 insertions(+), 38 deletions(-) create mode 100644 app/Http/Controllers/Admin/BioController.php create mode 100644 app/Models/Bio.php create mode 100644 database/factories/BioFactory.php create mode 100644 database/migrations/2023_04_11_115837_create_bios_table.php create mode 100644 database/seeders/BioSeeder.php create mode 100644 resources/views/admin/bio/show.blade.php delete mode 100644 resources/views/templates/bio.blade.php create mode 100644 tests/Feature/Admin/BioTest.php diff --git a/app/Http/Controllers/Admin/BioController.php b/app/Http/Controllers/Admin/BioController.php new file mode 100644 index 00000000..c760e12c --- /dev/null +++ b/app/Http/Controllers/Admin/BioController.php @@ -0,0 +1,32 @@ + $bio, + ]); + } + + public function update(Request $request): RedirectResponse + { + $bio = Bio::firstOrNew(); + $bio->content = $request->input('content'); + $bio->save(); + + return redirect()->route('admin.bio.show'); + } +} diff --git a/app/Http/Controllers/FrontPageController.php b/app/Http/Controllers/FrontPageController.php index 9d37c9db..52ff2adf 100644 --- a/app/Http/Controllers/FrontPageController.php +++ b/app/Http/Controllers/FrontPageController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\Article; +use App\Models\Bio; use App\Models\Bookmark; use App\Models\Like; use App\Models\Note; @@ -34,8 +35,11 @@ class FrontPageController extends Controller ->sortByDesc('updated_at') ->paginate(10); + $bio = Bio::first()?->content; + return view('front-page', [ 'items' => $items, + 'bio' => $bio, ]); } } diff --git a/app/Models/Bio.php b/app/Models/Bio.php new file mode 100644 index 00000000..b9a0e78b --- /dev/null +++ b/app/Models/Bio.php @@ -0,0 +1,11 @@ + + */ +class BioFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'content' => $this->faker->paragraph, + ]; + } +} diff --git a/database/migrations/2023_04_11_115837_create_bios_table.php b/database/migrations/2023_04_11_115837_create_bios_table.php new file mode 100644 index 00000000..4f26ec18 --- /dev/null +++ b/database/migrations/2023_04_11_115837_create_bios_table.php @@ -0,0 +1,28 @@ +id(); + $table->text('content'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('bios'); + } +}; diff --git a/database/seeders/BioSeeder.php b/database/seeders/BioSeeder.php new file mode 100644 index 00000000..093d0609 --- /dev/null +++ b/database/seeders/BioSeeder.php @@ -0,0 +1,17 @@ +create(); + } +} diff --git a/resources/views/admin/bio/show.blade.php b/resources/views/admin/bio/show.blade.php new file mode 100644 index 00000000..e8bc5532 --- /dev/null +++ b/resources/views/admin/bio/show.blade.php @@ -0,0 +1,19 @@ +@extends('master') + +@section('title')Edit Bio « Admin CP « @stop + +@section('content') +

Edit bio

+
+ {{ csrf_field() }} + {{ method_field('PUT') }} +
+ +
+ +
+
+ +
+
+@stop diff --git a/resources/views/admin/welcome.blade.php b/resources/views/admin/welcome.blade.php index 46ac746f..4ca4c4d0 100644 --- a/resources/views/admin/welcome.blade.php +++ b/resources/views/admin/welcome.blade.php @@ -46,4 +46,9 @@ You can either create new syndication targets, or edit them.

+ +

Bio

+

+ Edit your bio. +

@stop diff --git a/resources/views/front-page.blade.php b/resources/views/front-page.blade.php index a3f0bc8c..44eca1d4 100644 --- a/resources/views/front-page.blade.php +++ b/resources/views/front-page.blade.php @@ -27,6 +27,4 @@ {{ $items->links('templates.pagination') }} - - @include('templates.bio') @stop diff --git a/resources/views/master.blade.php b/resources/views/master.blade.php index 7ab40938..df94fe72 100644 --- a/resources/views/master.blade.php +++ b/resources/views/master.blade.php @@ -43,9 +43,11 @@
-@yield('content') -@section('bio') -@show + @yield('content') + + @isset($bio) + {!! $bio !!} + @endisset