diff --git a/app/Http/Controllers/ChapterController.php b/app/Http/Controllers/ChapterController.php index 3deaae3..1aee37a 100644 --- a/app/Http/Controllers/ChapterController.php +++ b/app/Http/Controllers/ChapterController.php @@ -4,11 +4,14 @@ namespace App\Http\Controllers; use App\Http\SymfonyCastDl\SymfonyCastDlService; use App\Models\Chapter; +use App\Models\Course; class ChapterController extends Controller { - public function index(Chapter $chapter, SymfonyCastDlService $symfonyCastDlService) + public function index(Course $course, int $chapter, SymfonyCastDlService $symfonyCastDlService) { + $chapter = $course->chapters->firstWhere('order', $chapter); + $symfonyCastDlService->videoSize($chapter); if ($chapter->sync_offline) { $symfonyCastDlService->downloadFile($chapter); diff --git a/app/Http/Controllers/CourseController.php b/app/Http/Controllers/CourseController.php index b5126ed..fe69ec9 100644 --- a/app/Http/Controllers/CourseController.php +++ b/app/Http/Controllers/CourseController.php @@ -16,11 +16,11 @@ class CourseController extends Controller return view('course.index', compact('course')); } - public function sync(Course $course) + public function sync(Course $course): \Illuminate\Http\RedirectResponse { $course->chapters->each->update(['sync_offline' => 1]); $course->chapters->each(fn($chapter) => DownloadVideoFile::dispatch($chapter->id)); - return redirect(route('course.index', ['course' => $course])); + return redirect()->back(); } } diff --git a/resources/views/chapter/index.blade.php b/resources/views/chapter/index.blade.php index ef4bb9a..8368d65 100644 --- a/resources/views/chapter/index.blade.php +++ b/resources/views/chapter/index.blade.php @@ -1,28 +1,40 @@

- List » {{ $chapter->course->name }} + List » {{ $chapter->course->name }}
{{ $chapter->title }}

-
- @if($prev) -
Prev +
+
+
+ @if($prev) +
Prev +
+ @endif
- @endif - @if($next) -
Next -
- @endif -
+
+ @if($chapter->is_video_file) +
+ +
+ @endif -
- @if($chapter->is_video_file) - - @endif +
+
+ @if($next) +
Next +
+ @endif +
+
diff --git a/resources/views/components/layout.blade.php b/resources/views/components/layout.blade.php index bbab0df..e292247 100644 --- a/resources/views/components/layout.blade.php +++ b/resources/views/components/layout.blade.php @@ -2,9 +2,10 @@ {{ $title ?? 'Symfonycast.local' }} - - + + {{ $slot }} diff --git a/resources/views/course/index.blade.php b/resources/views/course/index.blade.php index 8c28e89..d140c3c 100644 --- a/resources/views/course/index.blade.php +++ b/resources/views/course/index.blade.php @@ -1,6 +1,6 @@

- List » {{ $course->name }} + List » {{ $course->name }}

Sync all chapters offline @@ -16,7 +16,7 @@ @foreach($course->chapters()->get() as $chapter) - {{ $chapter->title }} + {{ $chapter->title }} {{ $chapter->duration }} {{ $chapter->sync_offline?'Yes':'no' }} {{ $chapter->is_video_file?'Yes':'-' }} diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 8ae8c84..731e6ef 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -6,7 +6,8 @@ Id Name - status + Status + Sync Chapters Published at Estimate file size @@ -18,9 +19,13 @@ {{ $course->id }} {{ $course->name }} - {{ $course->name }} + {{ $course->name }} + {{ $course->status }} + Sync all + chapters offline {{ $course->chapters_count }} / {{ $course->numberofchapters }} {{ $course->published_at?->diffForHumans() }} diff --git a/routes/web.php b/routes/web.php index 2a092d6..5d15201 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,7 +21,7 @@ Route::get('/', [Index::class, 'index']); Route::prefix('course')->name('course.')->group(function () { Route::get('/{course}', [CourseController::class, 'index'])->name('index'); Route::get('/{course}/sync', [CourseController::class, 'sync'])->name('sync'); + Route::get('/{course}/chapter/{chapter}', [ChapterController::class, 'index'])->name('chapter'); }); -Route::get('/chapter/{chapter}', [ChapterController::class, 'index'])->name('course.chapter');