allow sorting by course name and published date, link to manually update course details,

This commit is contained in:
Krzysztof Płaczek
2023-04-07 14:43:51 +02:00
parent 32ead90121
commit a15c6a1a44
6 changed files with 51 additions and 11 deletions

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Controllers\Course;
use App\Http\Controllers\Controller;
use App\Http\SymfonyCastDl\SymfonyCastDlService;
use App\Models\Course;
use Illuminate\Http\RedirectResponse;
class Update extends Controller
{
public function __invoke(SymfonyCastDlService $symfonyCastDlService, Course $course): RedirectResponse
{
$symfonyCastDlService->updateCourse($course);
return redirect()->back();
}
}

View File

@@ -10,14 +10,17 @@ use Illuminate\Http\Request;
class Index extends Controller
{
public function index(string $track = null)
public function index(Request $request, string $track = null)
{
$courses = Course::where('tracks', 'like', '%' . $track . '%')->with('chapters')->withCount([
'chapters',
'chapters as chapters_to_sync' => function (Builder $query) {
$query->where('sync_offline', 1);
},
])->get();
]);
$request->whenHas('order', fn($order) => $courses->orderby($order, $request->dir));
$request->whenMissing('order', fn() => $courses->orderby('name'));
$courses = $courses->get();
return view('index', compact(['courses']));
}