From 63843ff18da2e6932ae8ca3ae480079d3d23ddbb Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Fri, 27 Mar 2026 10:18:14 +0700 Subject: [PATCH] feat: Integrate cheerful notifications into decision and verification enums, enhancing user feedback with engaging messages across the admin verification page. --- app/Enums/DecisionAdmin.php | 7 ++++--- app/Enums/VerificationStatus.php | 9 +++++---- app/Filament/Pages/AdminVerification/Index.php | 16 ++++++++++++++++ .../Manage/Journalists/JournalistResource.php | 6 +++--- .../filament/pages/admin-verification.blade.php | 15 +++++++++------ 5 files changed, 37 insertions(+), 16 deletions(-) diff --git a/app/Enums/DecisionAdmin.php b/app/Enums/DecisionAdmin.php index f75c29c..ce7b101 100644 --- a/app/Enums/DecisionAdmin.php +++ b/app/Enums/DecisionAdmin.php @@ -2,6 +2,7 @@ namespace App\Enums; +use App\Filament\Support\CheerfulNotification; use App\Traits\Enum\WithComment; use App\Traits\Enum\WithValue; use Filament\Support\Contracts\HasColor; @@ -18,9 +19,9 @@ enum DecisionAdmin: int implements HasColor, HasLabel public function getLabel(): ?string { return match ($this) { - self::APPROVED => 'Disetujui', - self::NEED_REVISION => 'Perlu Revisi', - self::REJECTED => 'Ditolak', + self::APPROVED => CheerfulNotification::getMessage('Sudah Disetujui! ✅🚀', 'Disetujui'), + self::NEED_REVISION => CheerfulNotification::getMessage('Perlu Revisi nih! ✍️🛠️', 'Perlu Revisi'), + self::REJECTED => CheerfulNotification::getMessage('Ditolak, Tetap Semangat! 🛑😔', 'Ditolak'), }; } diff --git a/app/Enums/VerificationStatus.php b/app/Enums/VerificationStatus.php index fd44038..f94c1e8 100644 --- a/app/Enums/VerificationStatus.php +++ b/app/Enums/VerificationStatus.php @@ -2,6 +2,7 @@ namespace App\Enums; +use App\Filament\Support\CheerfulNotification; use App\Traits\Enum\WithComment; use App\Traits\Enum\WithValue; use Filament\Support\Contracts\HasColor; @@ -19,10 +20,10 @@ enum VerificationStatus: int implements HasColor, HasLabel public function getLabel(): ?string { return match ($this) { - self::PENDING => 'Menunggu Verifikasi', - self::APPROVED => 'Disetujui', - self::NEED_REVISION => 'Perlu Revisi', - self::REJECTED => 'Ditolak', + self::PENDING => CheerfulNotification::getMessage('Menunggu Verifikasi ⏳✨', 'Menunggu Verifikasi'), + self::APPROVED => CheerfulNotification::getMessage('Sudah Disetujui! ✅🚀', 'Disetujui'), + self::NEED_REVISION => CheerfulNotification::getMessage('Perlu Revisi nih! ✍️🛠️', 'Perlu Revisi'), + self::REJECTED => CheerfulNotification::getMessage('Ditolak, Tetap Semangat! 🛑😔', 'Ditolak'), }; } diff --git a/app/Filament/Pages/AdminVerification/Index.php b/app/Filament/Pages/AdminVerification/Index.php index 3a08e3a..cfdc105 100644 --- a/app/Filament/Pages/AdminVerification/Index.php +++ b/app/Filament/Pages/AdminVerification/Index.php @@ -165,6 +165,12 @@ public function verifications(): LengthAwarePaginator 'createdAt' => $review->created_at->translatedFormat('l, d M Y H:i'), ]), ], + 'messages' => [ + 'detail' => CheerfulNotification::getMessage('Detail Data 🔍✨', 'Detail'), + 'revision' => CheerfulNotification::getMessage('Sabar ya, pengguna lagi sibuk revisi data nih! ⏳✍️', 'Menunggu revisi dari pengguna...'), + 'approved' => CheerfulNotification::getMessage('Yeay! Verifikasi sudah beres dan disetujui! ✅🚀', 'Verifikasi selesai'), + 'rejected' => CheerfulNotification::getMessage('Yah, pengajuannya terpaksa belum bisa diterima. 🛑😔', 'Pengajuan ditolak'), + ], ]; }); } @@ -245,4 +251,14 @@ public function rejectAction(): Action { return RejectAction::make(); } + + public function getEmptyStateHeading(): string + { + return CheerfulNotification::getMessage('Belum ada pengajuan verifikasi nih! 📭✨', 'Tidak ada pengajuan verifikasi'); + } + + public function getEmptyStateDescription(): string + { + return CheerfulNotification::getMessage('Tenang saja, mungkin sebentar lagi bakal ada yang kirim pengajuan verifikasi. Ditunggu saja ya! 😊⏳', 'Belum ada pengajuan verifikasi dari user.'); + } } diff --git a/app/Filament/Resources/Manage/Journalists/JournalistResource.php b/app/Filament/Resources/Manage/Journalists/JournalistResource.php index b703dcb..8e82380 100644 --- a/app/Filament/Resources/Manage/Journalists/JournalistResource.php +++ b/app/Filament/Resources/Manage/Journalists/JournalistResource.php @@ -212,9 +212,9 @@ public static function table(Table $table): Table ->deferFilters(false) ->paginated([25, 50, 100, 'all']) ->deferLoading() - ->when(auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && ! auth()->user()->company?->partnerMedia, function (Table $table): Table { + ->when(fn () => auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && ! auth()->user()->company?->partnerMedia, function (Table $table): Table { return $table - ->emptyStateHeading('Akses Dibatasi') + ->emptyStateHeading(fn () => CheerfulNotification::getMessage('Wah, Pintunya Dikunci Nih! 🔒✨', 'Akses Dibatasi')) ->emptyStateDescription(fn () => CheerfulNotification::getMessage('Ups! Silakan lengkapi data media Anda dulu ya sebelum mengelola jurnalis. ✨📝', 'Silakan lengkapi data media Anda terlebih dahulu untuk dapat mengelola informasi jurnalis.')) ->emptyStateIcon(Heroicon::OutlinedLockClosed) ->emptyStateActions([ @@ -236,7 +236,7 @@ public static function getPages(): array public static function getEloquentQuery(): Builder { return parent::getEloquentQuery() - ->when(auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && ! auth()->user()->company?->partnerMedia, function (Builder $query): Builder { + ->when(fn () => auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && ! auth()->user()->company?->partnerMedia, function (Builder $query): Builder { return $query->whereRaw('1 = 0'); }) ->when(auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value), function (Builder $query): Builder { diff --git a/resources/views/filament/pages/admin-verification.blade.php b/resources/views/filament/pages/admin-verification.blade.php index aef6f16..561f03b 100644 --- a/resources/views/filament/pages/admin-verification.blade.php +++ b/resources/views/filament/pages/admin-verification.blade.php @@ -228,7 +228,7 @@ class="w-4 h-4 text-gray-500 transition-transform duration-200" @if ($verification['company']['detailUrl']) - Detail + {{ $verification['messages']['detail'] }} @endif @@ -241,19 +241,19 @@ class="w-4 h-4 text-gray-500 transition-transform duration-200" - Menunggu revisi dari pengguna... + {{ $verification['messages']['revision'] }} @elseif($verification['status']['isApproved']) - Verifikasi selesai + {{ $verification['messages']['approved'] }} @elseif($verification['status']['isRejected']) - Pengajuan ditolak + {{ $verification['messages']['rejected'] }} @endif @@ -261,8 +261,11 @@ class="flex items-center gap-1 text-xs text-danger-600 dark:text-danger-400 font @empty
- +
@endforelse