From 3e4e6e71ab13137b544b266e6f741a5f0dfabf6d Mon Sep 17 00:00:00 2001 From: frederikpyt Date: Thu, 6 Aug 2020 12:21:19 +0200 Subject: [PATCH] v0.5.5 - Added news on the admin panel --- .../app/Http/Controllers/NewsController.php | 116 ++++++++++++++++++ skolehjem/app/News.php | 12 ++ .../2020_08_06_092000_create_news_table.php | 33 +++++ skolehjem/database/seeds/PermissionSeeder.php | 9 ++ .../views/admin/layout/base.blade.php | 3 + .../views/admin/news/create.blade.php | 41 +++++++ .../views/admin/news/delete.blade.php | 13 ++ .../resources/views/admin/news/edit.blade.php | 46 +++++++ .../views/admin/news/index.blade.php | 38 ++++++ .../views/admin/news/store.blade.php | 14 +++ .../views/admin/news/update.blade.php | 14 +++ skolehjem/routes/web.php | 1 + 12 files changed, 340 insertions(+) create mode 100644 skolehjem/app/Http/Controllers/NewsController.php create mode 100644 skolehjem/app/News.php create mode 100644 skolehjem/database/migrations/2020_08_06_092000_create_news_table.php create mode 100644 skolehjem/resources/views/admin/news/create.blade.php create mode 100644 skolehjem/resources/views/admin/news/delete.blade.php create mode 100644 skolehjem/resources/views/admin/news/edit.blade.php create mode 100644 skolehjem/resources/views/admin/news/index.blade.php create mode 100644 skolehjem/resources/views/admin/news/store.blade.php create mode 100644 skolehjem/resources/views/admin/news/update.blade.php diff --git a/skolehjem/app/Http/Controllers/NewsController.php b/skolehjem/app/Http/Controllers/NewsController.php new file mode 100644 index 0000000..2586ef1 --- /dev/null +++ b/skolehjem/app/Http/Controllers/NewsController.php @@ -0,0 +1,116 @@ +middleware([ "auth" ]); + + $this->middleware([ "check.auth:news.list" ])->only("index"); + $this->middleware([ "check.auth:news.show" ])->only("show"); + $this->middleware([ "check.auth:news.create" ])->only("create", "store"); + $this->middleware([ "check.auth:news.edit" ])->only("edit", "update"); + $this->middleware([ "check.auth:news.delete" ])->only("delete"); + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index(Request $request) + { + $news = News::query()->paginate($request->input("limit", 20)); + + return Response::detect("news.index", [ "news" => $news ]); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + return Response::detect("news.create"); + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\RedirectResponse + */ + public function store(Request $request) + { + $data = $request->validate([ + "name" => "required", + "content" => "required" + ]); + + $news = new News($data); + $news->save(); + + return redirect()->route("news.index"); + } + + /** + * Display the specified resource. + * + * @param \App\News $news + * @return \Illuminate\Http\Response + */ + public function show(News $news) + { + // + } + + /** + * Show the form for editing the specified resource. + * + * @param \App\News $news + * @return \Illuminate\Http\Response + */ + public function edit(News $news) + { + return Response::detect("news.edit", [ "news" => $news ]); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param \App\News $news + * @return \Illuminate\Http\RedirectResponse + */ + public function update(Request $request, News $news) + { + $data = $request->validate([ + "name" => "required", + "content" => "required" + ]); + + $news->update($data); + + return redirect()->route("news.index"); + } + + /** + * Remove the specified resource from storage. + * + * @param \App\News $news + * @return \Illuminate\Http\RedirectResponse + * @throws \Exception + */ + public function destroy(News $news) + { + $news->delete(); + return redirect()->route("news.index"); + } +} diff --git a/skolehjem/app/News.php b/skolehjem/app/News.php new file mode 100644 index 0000000..056b2c3 --- /dev/null +++ b/skolehjem/app/News.php @@ -0,0 +1,12 @@ +id(); + $table->string("name"); + $table->text("content"); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('news'); + } +} diff --git a/skolehjem/database/seeds/PermissionSeeder.php b/skolehjem/database/seeds/PermissionSeeder.php index c79720a..db58e11 100644 --- a/skolehjem/database/seeds/PermissionSeeder.php +++ b/skolehjem/database/seeds/PermissionSeeder.php @@ -150,6 +150,15 @@ class PermissionSeeder extends Seeder "locations.edit" => "Allows editing of locations", "locations.delete" => "Allows deletion of locations", + /** + * The NEWS specific permissions + */ + "news.create" => "Create a new location", + "news.list" => "Shows all locations", + "news.show" => "Shows a specific location", + "news.edit" => "Allows editing of locations", + "news.delete" => "Allows deletion of locations", + /** * The ADMIN PANEL specific permissions */ diff --git a/skolehjem/resources/views/admin/layout/base.blade.php b/skolehjem/resources/views/admin/layout/base.blade.php index 21dc2b2..ada4d1c 100644 --- a/skolehjem/resources/views/admin/layout/base.blade.php +++ b/skolehjem/resources/views/admin/layout/base.blade.php @@ -17,6 +17,9 @@

Roller

+
+

Nyheder

+

Menuplan

diff --git a/skolehjem/resources/views/admin/news/create.blade.php b/skolehjem/resources/views/admin/news/create.blade.php new file mode 100644 index 0000000..af4ed94 --- /dev/null +++ b/skolehjem/resources/views/admin/news/create.blade.php @@ -0,0 +1,41 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Opret Nyheder +@endsection + +@section("path") + Opret Nyheder / +@endsection + +@section("content") + + +

Opret Nyhed

+
+ @csrf + + + + +
+ + + + + +@endsection diff --git a/skolehjem/resources/views/admin/news/delete.blade.php b/skolehjem/resources/views/admin/news/delete.blade.php new file mode 100644 index 0000000..cf31266 --- /dev/null +++ b/skolehjem/resources/views/admin/news/delete.blade.php @@ -0,0 +1,13 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Vejledning - Fjern +@endsection + +@section("path") + Fjern Guide / +@endsection + +@section("content") +@endsection diff --git a/skolehjem/resources/views/admin/news/edit.blade.php b/skolehjem/resources/views/admin/news/edit.blade.php new file mode 100644 index 0000000..fbf37a3 --- /dev/null +++ b/skolehjem/resources/views/admin/news/edit.blade.php @@ -0,0 +1,46 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Nyhed - Rediger +@endsection + +@section("path") + Rediger nyhed / +@endsection + +@section("content") + + +

Rediger nyhed:

+
$news])}}"> + @csrf + @method("PUT") + + + + +
+ + +@endsection diff --git a/skolehjem/resources/views/admin/news/index.blade.php b/skolehjem/resources/views/admin/news/index.blade.php new file mode 100644 index 0000000..797c725 --- /dev/null +++ b/skolehjem/resources/views/admin/news/index.blade.php @@ -0,0 +1,38 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Opret Nyhed +@endsection + +@section("path") + Opret Nyheder / +@endsection + +@section("content") +
+ CreateOpret Nyheder +
+ + + + + + + @foreach($news as $new) + + + + + + @endforeach +
NavnUpdateDelete
{{$new->name}} $new ]) }}">Update
$new ]) }}" class="w-100 nostyle"> + @csrf + @method("delete") + + +
+
+ + {{ $news->links() }} +@endsection diff --git a/skolehjem/resources/views/admin/news/store.blade.php b/skolehjem/resources/views/admin/news/store.blade.php new file mode 100644 index 0000000..239ca01 --- /dev/null +++ b/skolehjem/resources/views/admin/news/store.blade.php @@ -0,0 +1,14 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Vejledning - Opret +@endsection + +@section("path") + Opret vejledning / +@endsection + +@section("content") + vejledning blev (ikke) oprettet. +@endsection diff --git a/skolehjem/resources/views/admin/news/update.blade.php b/skolehjem/resources/views/admin/news/update.blade.php new file mode 100644 index 0000000..4b9788d --- /dev/null +++ b/skolehjem/resources/views/admin/news/update.blade.php @@ -0,0 +1,14 @@ +@extends("admin.layout.base") +@extends("admin.layout.header") + +@section("title") + Vejledning - Rediger +@endsection + +@section("path") + $link]) }}" class="text-white">Vejledning / +@endsection + +@section("content") + Din vejledning blev (ikke) redigeret. +@endsection diff --git a/skolehjem/routes/web.php b/skolehjem/routes/web.php index 8d3be43..608c709 100644 --- a/skolehjem/routes/web.php +++ b/skolehjem/routes/web.php @@ -55,3 +55,4 @@ Route::resource("resource-categories", "ResourceCategoryController"); Route::resource("roles", "RolesController"); Route::resource("guides", "GuideController"); Route::resource("locations", "LocationController"); +Route::resource("news", "NewsController");