From c012735176b5199c0519f4cce2fd20e47e9e7af8 Mon Sep 17 00:00:00 2001 From: Htet Phone Aung Date: Wed, 6 Sep 2023 22:21:34 +0630 Subject: [PATCH] next previous buttons in chapter page done --- app/Http/Controllers/ChapterController.php | 7 +++++-- app/Http/Controllers/PageController.php | 4 +++- app/Http/Requests/StoreChapterRequest.php | 10 +++++++--- app/Http/Requests/StoreMangaRequest.php | 10 +++++++++- app/Http/Requests/UpdateMangaRequest.php | 11 ++++++++++- resources/views/chapter/create.blade.php | 7 +++++-- resources/views/chapter_page.blade.php | 4 ++-- resources/views/components/inner-manga.blade.php | 4 ++-- .../views/components/latest-chapter.blade.php | 2 +- resources/views/manga/create.blade.php | 3 +++ .../views/partials/chapter-paginate.blade.php | 15 +++++++++++++-- resources/views/partials/nav.blade.php | 2 +- resources/views/partials/patreon-nav.blade.php | 5 ++++- routes/web.php | 2 +- 14 files changed, 66 insertions(+), 20 deletions(-) diff --git a/app/Http/Controllers/ChapterController.php b/app/Http/Controllers/ChapterController.php index 0952afb..9a76c71 100644 --- a/app/Http/Controllers/ChapterController.php +++ b/app/Http/Controllers/ChapterController.php @@ -33,11 +33,13 @@ class ChapterController extends Controller */ public function store(StoreChapterRequest $request) { + // dd ($request->file('images')); + $formData = $request->validated(); $formData['user_id'] = Auth::id(); if($request->hasFile('images')) { - foreach ($request->file('images') as $image) { - $images[] = $image->store($request->manga_id.'OfChapter', 'public'); + foreach ($request->file('images') as $key => $image) { + $images[] = $image->store($request->manga_id.'ChapterImages', 'public'); } $formData['images'] = $images; } @@ -89,3 +91,4 @@ class ChapterController extends Controller return view('chapter.manageChapter', compact('manga')); } } + diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index 404e3d2..b4f8764 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -2,14 +2,16 @@ namespace App\Http\Controllers; -use App\Models\Chapter; use App\Models\Manga; +use App\Models\Chapter; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Storage; 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 diff --git a/app/Http/Requests/StoreChapterRequest.php b/app/Http/Requests/StoreChapterRequest.php index 81e9360..2448c84 100644 --- a/app/Http/Requests/StoreChapterRequest.php +++ b/app/Http/Requests/StoreChapterRequest.php @@ -22,8 +22,10 @@ class StoreChapterRequest extends FormRequest public function rules(): array { return [ - 'title' => 'min:3', - 'manga_id' => 'required|exists:mangas,id' + 'title' => 'required|min:3', + 'manga_id' => 'required|exists:mangas,id', + 'images' => 'required', + 'images.*' => 'file|mimes:png,jpg' ]; } @@ -31,7 +33,9 @@ class StoreChapterRequest extends FormRequest { return [ 'manga_id.required' => 'Please Select the Manga', - 'manga_id.exists' => 'Please Select the Manga' + 'manga_id.exists' => 'Please Select the Manga', + 'images.required' => 'Please Select Chapter images', + // 'images.*.mimes:png,jpg' => 'Invalid Image extensions' ]; } } diff --git a/app/Http/Requests/StoreMangaRequest.php b/app/Http/Requests/StoreMangaRequest.php index 3cf9ccc..17e453e 100644 --- a/app/Http/Requests/StoreMangaRequest.php +++ b/app/Http/Requests/StoreMangaRequest.php @@ -24,7 +24,15 @@ class StoreMangaRequest extends FormRequest return [ 'title' => 'required|min:3|max:100', 'summary' => 'required|min:3', - 'cover' => 'required|file' + 'cover' => 'file|required|mimes:png,jpg' + ]; + } + + //error messages + public function messages() + { + return [ + 'cover.required' => 'Please Select Cover Image' ]; } } diff --git a/app/Http/Requests/UpdateMangaRequest.php b/app/Http/Requests/UpdateMangaRequest.php index 5ff876a..13a6ff9 100644 --- a/app/Http/Requests/UpdateMangaRequest.php +++ b/app/Http/Requests/UpdateMangaRequest.php @@ -23,7 +23,16 @@ class UpdateMangaRequest extends FormRequest { return [ 'title' => 'required|min:3', - 'summary' => 'required|min:3|max:2000' + 'summary' => 'required|min:3|max:2000', + 'cover' => 'file|required|mimes:png,jpg' + ]; + } + + //error messages + public function messages() + { + return [ + 'cover.required' => 'Please Select Cover Image' ]; } } diff --git a/resources/views/chapter/create.blade.php b/resources/views/chapter/create.blade.php index a9968c1..5319812 100644 --- a/resources/views/chapter/create.blade.php +++ b/resources/views/chapter/create.blade.php @@ -6,7 +6,7 @@ Chapter List - +
@csrf
@@ -25,7 +25,7 @@ @enderror
- + @error('title')

{{ $message }}

@@ -35,6 +35,9 @@
+ @error('images') +

{{ $message }}

+ @enderror
diff --git a/resources/views/chapter_page.blade.php b/resources/views/chapter_page.blade.php index b135637..0f56ef7 100644 --- a/resources/views/chapter_page.blade.php +++ b/resources/views/chapter_page.blade.php @@ -13,7 +13,7 @@ {{-- manga images --}}
- @foreach ($chapter->images as $image) + @foreach (array_reverse($chapter->images) as $image) @endforeach
@@ -24,6 +24,6 @@ @include('partials.chapter-select-box') @include('partials.chapter-paginate')
- + @endsection diff --git a/resources/views/components/inner-manga.blade.php b/resources/views/components/inner-manga.blade.php index b46fdd8..9e6546c 100644 --- a/resources/views/components/inner-manga.blade.php +++ b/resources/views/components/inner-manga.blade.php @@ -9,9 +9,9 @@
Latest Chapters
- + @forelse ($manga->chapters()->latest('id')->get() as $chapter) -

Chapter {{ $chapter->chapter_no }} - {{ $chapter->title ?? '' }}

diff --git a/resources/views/components/latest-chapter.blade.php b/resources/views/components/latest-chapter.blade.php index 2b54b68..59b7615 100644 --- a/resources/views/components/latest-chapter.blade.php +++ b/resources/views/components/latest-chapter.blade.php @@ -1,7 +1,7 @@ @props(['manga', 'chapter'])
- Chapter {{ $chapter->chapter_no }} diff --git a/resources/views/manga/create.blade.php b/resources/views/manga/create.blade.php index df0147e..882612f 100644 --- a/resources/views/manga/create.blade.php +++ b/resources/views/manga/create.blade.php @@ -13,6 +13,9 @@
+ @error('cover') +

{{ $message }}

+ @enderror
diff --git a/resources/views/partials/chapter-paginate.blade.php b/resources/views/partials/chapter-paginate.blade.php index 4ee8cb3..f5e1ada 100644 --- a/resources/views/partials/chapter-paginate.blade.php +++ b/resources/views/partials/chapter-paginate.blade.php @@ -1,4 +1,15 @@
- Previous - Next + + Previous + + + Next +
diff --git a/resources/views/partials/nav.blade.php b/resources/views/partials/nav.blade.php index dde6536..492091b 100644 --- a/resources/views/partials/nav.blade.php +++ b/resources/views/partials/nav.blade.php @@ -28,7 +28,7 @@ @auth diff --git a/routes/web.php b/routes/web.php index f5064ea..0455ba1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -23,7 +23,7 @@ use Illuminate\Support\Facades\Route; Route::controller(PageController::class)->group(function () { Route::get('/', 'index')->name('page.index'); Route::get('/MangaDex/manga/{slug}', 'manga')->name('page.manga'); - Route::get('/manga/{manga:slug}/chapter/{chapter}', 'chapter')->name('page.chapter'); + Route::get('/manga/{manga:slug}/chapter/{chapter:chapter_no?}', 'chapter')->name('page.chapter'); }); Auth::routes();