setup mod index pagination

This commit is contained in:
IsWaffle 2024-08-07 14:33:11 -04:00
parent aa61c63bd1
commit b868b5a75c
3 changed files with 60 additions and 6 deletions

View File

@ -6,7 +6,6 @@ use App\Http\Requests\ModRequest;
use App\Http\Resources\ModResource; use App\Http\Resources\ModResource;
use App\Models\Mod; use App\Models\Mod;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Support\Facades\Log;
class ModController extends Controller class ModController extends Controller
{ {
@ -16,7 +15,12 @@ class ModController extends Controller
{ {
$this->authorize('viewAny', Mod::class); $this->authorize('viewAny', Mod::class);
$mods = ModResource::collection(Mod::all()); $mods = Mod::select(['id', 'name', 'slug', 'teaser', 'thumbnail', 'featured', 'created_at'])
->withTotalDownloads()
->with(['latestVersion', 'latestVersion.sptVersion', 'users:id,name'])
->whereHas('latestVersion')
->latest()
->paginate(12);
return view('mod.index', compact(['mods'])); return view('mod.index', compact(['mods']));
} }

View File

@ -4,7 +4,6 @@ namespace App\Policies;
use App\Models\Mod; use App\Models\Mod;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Facades\Log;
class ModPolicy class ModPolicy
{ {

View File

@ -1,7 +1,58 @@
<x-app-layout> <x-app-layout>
{{--
TODO:
[ ] search bar for mods
[ ] mods section filter
[ ] spt version filter
[ ] tags filter
[ ] small / mobile display handling
[ ] light mode theme handling
--}}
{{-- page links --}}
<div class="m-6">
{{ $mods->links() }}
</div>
{{-- 2 column grid layout --}}
<div class="grid gap-6 grid-cols-[1fr_auto]">
{{-- search / section filters, mods --}}
<div>
{{-- mods serach bar --}}
<div>
<p class="text-gray-700 dark:text-gray-200">--SEARCH BAR--</p>
</div>
{{-- section filters --}}
<div>
<p class="text-gray-700 dark:text-gray-200">--SECTION FILTERS--</p>
</div>
{{-- mod cards --}}
<div class="grid gap-6 grid-cols-2">
@foreach($mods as $mod)
<x-mod-card :mod="$mod" />
@endforeach
</div>
</div>
{{-- version filters, tags --}}
<div class="max-w-sm">
{{-- spt version filters --}}
<div>
<p class="text-gray-700 dark:text-gray-200">--SPT VERSION FILTER--</p>
</div>
{{-- tag filters --}}
<div>
<p class="text-gray-700 dark:text-gray-200">--TAG FILTER HERE--</p>
</div>
</div>
</div>
{{-- page links --}}
<div class="m-6">
{{ $mods->links() }}
</div>
@foreach($mods as $mod)
<p>{{$mod->name}}</p>
@endforeach
</x-app-layout> </x-app-layout>