From cc3cdddce3f636791650896079c4a15636ce1981 Mon Sep 17 00:00:00 2001 From: "waffle.lord" Date: Mon, 12 Aug 2024 11:20:03 -0400 Subject: [PATCH] display filtered spt version --- app/Livewire/ModIndex.php | 27 +++++++++++++------- resources/views/livewire/mod-index.blade.php | 4 +-- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/Livewire/ModIndex.php b/app/Livewire/ModIndex.php index 0ba1a86..a00370f 100644 --- a/app/Livewire/ModIndex.php +++ b/app/Livewire/ModIndex.php @@ -16,7 +16,7 @@ class ModIndex extends Component public string $sectionFilter = 'featured'; - public string $versionFilter = ''; + public int $versionFilter = -1; public function render() { @@ -41,14 +41,23 @@ class ModIndex extends Component $mods = Mod::select(['id', 'name', 'slug', 'teaser', 'thumbnail', 'featured', 'created_at']) ->withTotalDownloads() - ->with(['latestVersion', 'latestVersion.sptVersion', 'users:id,name']) - ->whereHas('latestVersion') - ->whereHas('latestVersion.sptVersion', function ($query) { - $query->where('version', 'like', '%'.Str::trim($this->versionFilter).'%'); - }) - ->where('name', 'like', '%'.Str::trim($this->modSearch).'%') - ->orderByDesc($section) - ->paginate(12); + ->with(['users:id,name']) + ->where('name', 'like', '%'.Str::trim($this->modSearch).'%'); + + if ($this->versionFilter === -1) { + $mods = $mods + ->with(['latestVersion', 'latestVersion.sptVersion']) + ->whereHas('latestVersion.sptVersion'); + } else { + $mods = $mods->with(['latestVersion' => function ($query) { + $query->where('spt_version_id', $this->versionFilter); + }, 'latestVersion.sptVersion']) + ->whereHas('latestVersion.sptVersion', function ($query) { + $query->where('spt_version_id', $this->versionFilter); + }); + } + + $mods = $mods->orderByDesc($section)->paginate(12); $sptVersions = SptVersion::select(['id', 'version', 'color_class'])->orderByDesc('version')->get(); diff --git a/resources/views/livewire/mod-index.blade.php b/resources/views/livewire/mod-index.blade.php index 5a84d82..8e5c84c 100644 --- a/resources/views/livewire/mod-index.blade.php +++ b/resources/views/livewire/mod-index.blade.php @@ -69,9 +69,9 @@

SPT Version