From d4136bfb9240c4c671ff5aebcf496f6b48c96914 Mon Sep 17 00:00:00 2001 From: "waffle.lord" Date: Thu, 28 Nov 2024 21:02:30 -0500 Subject: [PATCH] update models and allow disabling modVersions --- app/Livewire/Mod/ModerationOptions.php | 11 +++++------ app/Models/Mod.php | 7 ++++++- app/Models/ModVersion.php | 7 ++++++- app/Models/ModeratedModel.php | 16 ++++++++++++++++ .../livewire/mod/moderation-options.blade.php | 10 +++++----- resources/views/mod/show.blade.php | 10 +++++++++- 6 files changed, 47 insertions(+), 14 deletions(-) create mode 100644 app/Models/ModeratedModel.php diff --git a/app/Livewire/Mod/ModerationOptions.php b/app/Livewire/Mod/ModerationOptions.php index 9b5b3a3..135b930 100644 --- a/app/Livewire/Mod/ModerationOptions.php +++ b/app/Livewire/Mod/ModerationOptions.php @@ -2,28 +2,27 @@ namespace App\Livewire\Mod; -use App\Models\Mod; +use App\Models\ModeratedModel; use Livewire\Component; class ModerationOptions extends Component { - public Mod $mod; + public ModeratedModel $moderatedObject; public function render() { return view('livewire.mod.moderation-options'); } - public function deleteMod(): void + public function delete(): void { - $this->mod->delete(); + $this->moderatedObject->delete(); $this->js('window.location.reload()'); } public function toggleDisabled(): void { - $this->mod->disabled = ! $this->mod->disabled; - $this->mod->save(); + $this->moderatedObject->toggleDisabled(); $this->js('window.location.reload()'); } } diff --git a/app/Models/Mod.php b/app/Models/Mod.php index 8aae2e8..af3988c 100644 --- a/app/Models/Mod.php +++ b/app/Models/Mod.php @@ -18,7 +18,7 @@ use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use Laravel\Scout\Searchable; -class Mod extends Model +class Mod extends ModeratedModel { use HasFactory; use Searchable; @@ -257,4 +257,9 @@ class Mod extends Model set: fn (string $value) => Str::slug($value), ); } + + public function getFriendlyName(): string + { + return $this->name; + } } diff --git a/app/Models/ModVersion.php b/app/Models/ModVersion.php index 0626a00..ff84764 100644 --- a/app/Models/ModVersion.php +++ b/app/Models/ModVersion.php @@ -13,7 +13,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasOneThrough; use Illuminate\Database\Eloquent\SoftDeletes; -class ModVersion extends Model +class ModVersion extends ModeratedModel { use HasFactory; use SoftDeletes; @@ -168,4 +168,9 @@ class ModVersion extends Model 'published_at' => 'datetime', ]; } + + public function getFriendlyName(): string + { + return $this->version; + } } diff --git a/app/Models/ModeratedModel.php b/app/Models/ModeratedModel.php new file mode 100644 index 0000000..59afe14 --- /dev/null +++ b/app/Models/ModeratedModel.php @@ -0,0 +1,16 @@ +disabled = ! $this->disabled; + $this->save(); + } +} diff --git a/resources/views/livewire/mod/moderation-options.blade.php b/resources/views/livewire/mod/moderation-options.blade.php index accf0d2..06bfd2b 100644 --- a/resources/views/livewire/mod/moderation-options.blade.php +++ b/resources/views/livewire/mod/moderation-options.blade.php @@ -2,7 +2,7 @@ {{-- wire:click.prevent here to stop from following mod card links --}} - @if(auth()->user()->isAdmin())
-