diff --git a/app/Http/Controllers/MangaController.php b/app/Http/Controllers/MangaController.php index 2e620fe..1fc104e 100644 --- a/app/Http/Controllers/MangaController.php +++ b/app/Http/Controllers/MangaController.php @@ -17,7 +17,13 @@ class MangaController extends Controller */ public function index() { - $mangas = Manga::latest('id')->paginate(10)->withQueryString(); + $mangas = Manga::when(auth()->user()->role != 'admin', function($q) { + $user_id = auth()->id(); + $q->where('author_id', $user_id); + }) + ->latest('id') + ->paginate(10) + ->withQueryString(); return view('manga.index', compact('mangas')); } @@ -90,7 +96,7 @@ class MangaController extends Controller public function destroy(Manga $manga) { $this->authorize('delete', $manga); - + $manga->delete(); return redirect()->back()->with(['message' => 'Manga has been deleted!']); } diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index b4f8764..0330d2b 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -12,10 +12,15 @@ class PageController extends Controller public function index() { // Storage::disk('local')->put('example.txt', 'Contents'); - $mangas = Manga::latest('id')->paginate(8)->withQueryString(); - return view('index', [ - 'mangas' => $mangas - ]); + $mangas = Manga::when(request()->has('search'), function($q) { + $keyword = request()->search; + $q->where('title', 'like', '%'.$keyword.'%'); + }) + ->latest('id') + ->paginate(8) + ->withQueryString(); + + return view('index', ['mangas' => $mangas]); } public function manga($slug) diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index b78f5c5..b44585e 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -31,5 +31,6 @@ class AuthServiceProvider extends ServiceProvider { //gates here Gate::define('admin-only', fn(User $user) => $user->role === 'admin'); + Gate::define('dashboard', fn(User $user) => $user->role === 'admin' || $user->role === 'author'); } } diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 0a491eb..b493237 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -3,12 +3,22 @@ @section('content')
+ @if (request()->search) +
+

#Search result by {{ request()->search }}

+ +
+ @endif
@forelse ($mangas as $manga) @empty -

No Manga Yet

+ @if (request()->search) +

Found nothing!!

+ @else +

No Manga Yet

+ @endif @endforelse
@@ -23,7 +33,6 @@
- @endsection @section('footer') diff --git a/resources/views/partials/nav.blade.php b/resources/views/partials/nav.blade.php index 492091b..87a5429 100644 --- a/resources/views/partials/nav.blade.php +++ b/resources/views/partials/nav.blade.php @@ -17,9 +17,10 @@ - diff --git a/resources/views/partials/patreon-nav.blade.php b/resources/views/partials/patreon-nav.blade.php index 4c37517..be59e93 100644 --- a/resources/views/partials/patreon-nav.blade.php +++ b/resources/views/partials/patreon-nav.blade.php @@ -13,7 +13,7 @@ @endguest @auth - @can('admin-only') + @can('dashboard') Go To Dashboard @endcan