diff --git a/app/Enums/UxStyle.php b/app/Enums/UxStyle.php new file mode 100644 index 0000000..2b10469 --- /dev/null +++ b/app/Enums/UxStyle.php @@ -0,0 +1,19 @@ + 'Ceria (Banyak Emoji) ๐โจ', + self::FORMAL => 'Formal & Profesional ๐ผ', + }; + } +} diff --git a/app/Filament/Actions/Cheerful/CreateAction.php b/app/Filament/Actions/Cheerful/CreateAction.php index fe2d782..ef2c065 100644 --- a/app/Filament/Actions/Cheerful/CreateAction.php +++ b/app/Filament/Actions/Cheerful/CreateAction.php @@ -11,12 +11,11 @@ protected function setUp(): void { parent::setUp(); - $this->modalHeading('Tambah Data Seru! ๐โจ'); + $this->modalHeading(fn () => CheerfulNotification::getMessage('Tambah Data Seru! ๐โจ', 'Tambah Data Baru')); - $this->modalDescription('Isi form di bawah ini dengan semangat ya, biar datanya tersimpan dengan aman! ๐ช๐'); + $this->modalDescription(fn () => CheerfulNotification::getMessage('Isi form di bawah ini dengan semangat ya, biar datanya tersimpan dengan aman! ๐ช๐', 'Silakan isi formulir di bawah ini dengan lengkap untuk menambahkan data baru.')); - $this->successNotification( - CheerfulNotification::create() + $this->successNotification(fn () => CheerfulNotification::create() ); } } diff --git a/app/Filament/Actions/Cheerful/DeleteAction.php b/app/Filament/Actions/Cheerful/DeleteAction.php index d1c3fc4..1c462ca 100644 --- a/app/Filament/Actions/Cheerful/DeleteAction.php +++ b/app/Filament/Actions/Cheerful/DeleteAction.php @@ -2,6 +2,7 @@ namespace App\Filament\Actions\Cheerful; +use App\Enums\UxStyle; use App\Filament\Support\CheerfulNotification; use Filament\Actions\DeleteAction as ActionsDeleteAction; @@ -11,12 +12,17 @@ protected function setUp(): void { parent::setUp(); - $this->modalHeading('Betulan Mau Hapus? ๐๏ธ๐ค'); + $this->modalHeading(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL + ? 'Betulan Mau Hapus? ๐๏ธ๐ค' + : 'Hapus Data' + ); - $this->modalDescription('Data ini akan kita lepas ya. Hati-hati, data berelasi juga mungkin bakal ikut berpamitan! ๐๐จ'); + $this->modalDescription(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL + ? 'Data ini akan kita lepas ya. Hati-hati, data berelasi juga mungkin bakal ikut berpamitan! ๐๐จ' + : 'Apakah Anda yakin ingin menghapus data ini secara permanen?' + ); - $this->successNotification( - CheerfulNotification::delete() + $this->successNotification(fn () => CheerfulNotification::delete() ); } } diff --git a/app/Filament/Actions/Cheerful/EditAction.php b/app/Filament/Actions/Cheerful/EditAction.php index a61799c..464f84a 100644 --- a/app/Filament/Actions/Cheerful/EditAction.php +++ b/app/Filament/Actions/Cheerful/EditAction.php @@ -11,12 +11,11 @@ protected function setUp(): void { parent::setUp(); - $this->modalHeading('Sempurnakan Datanya ๐โจ'); + $this->modalHeading(fn () => CheerfulNotification::getMessage('Sempurnakan Datanya ๐โจ', 'Ubah Data')); - $this->modalDescription('Ayo kita perbarui supaya datanya makin akurat dan segar lagi! ๐ ๏ธ๐'); + $this->modalDescription(fn () => CheerfulNotification::getMessage('Ayo kita perbarui supaya datanya makin akurat dan segar lagi! ๐ ๏ธ๐', 'Silakan perbarui informasi pada formulir di bawah ini.')); - $this->successNotification( - CheerfulNotification::update() + $this->successNotification(fn () => CheerfulNotification::update() ); } } diff --git a/app/Filament/Actions/Cheerful/ForceDeleteAction.php b/app/Filament/Actions/Cheerful/ForceDeleteAction.php index 6b165b7..b72c1df 100644 --- a/app/Filament/Actions/Cheerful/ForceDeleteAction.php +++ b/app/Filament/Actions/Cheerful/ForceDeleteAction.php @@ -2,6 +2,7 @@ namespace App\Filament\Actions\Cheerful; +use App\Enums\UxStyle; use App\Filament\Support\CheerfulNotification; use Filament\Actions\ForceDeleteAction as ActionsForceDeleteAction; @@ -11,12 +12,17 @@ protected function setUp(): void { parent::setUp(); - $this->modalHeading('Yakin Hapus Selamanya? ๐๏ธ๐ฅ'); + $this->modalHeading(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL + ? 'Yakin Hapus Selamanya? ๐๏ธ๐ฅ' + : 'Hapus Permanen' + ); - $this->modalDescription('Data ini bakal hilang dari muka bumi sistem dan nggak bisa balik lagi. Hati-hati ya! ๐จ๐'); + $this->modalDescription(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL + ? 'Data ini bakal hilang dari muka bumi sistem dan nggak bisa balik lagi. Hati-hati ya! ๐จ๐' + : 'Tindakan ini tidak dapat dibatalkan. Apakah Anda yakin ingin menghapus data ini secara permanen?' + ); - $this->successNotification( - CheerfulNotification::forceDelete() + $this->successNotification(fn () => CheerfulNotification::forceDelete() ); } } diff --git a/app/Filament/Actions/Cheerful/RestoreAction.php b/app/Filament/Actions/Cheerful/RestoreAction.php index 39b921d..9917440 100644 --- a/app/Filament/Actions/Cheerful/RestoreAction.php +++ b/app/Filament/Actions/Cheerful/RestoreAction.php @@ -11,12 +11,11 @@ protected function setUp(): void { parent::setUp(); - $this->modalHeading('Panggil Balik Datanya? โป๏ธโจ'); + $this->modalHeading(fn () => CheerfulNotification::getMessage('Panggil Balik Datanya? โป๏ธโจ', 'Pulihkan Data')); - $this->modalDescription('Siap buat mengaktifkan kembali data yang sempat hilang? Yuk, kita pulihkan bareng-bareng! ๐๐'); + $this->modalDescription(fn () => CheerfulNotification::getMessage('Siap buat mengaktifkan kembali data yang sempat hilang? Yuk, kita pulihkan bareng-bareng! ๐๐', 'Apakah Anda yakin ingin memulihkan data yang telah dihapus ini?')); - $this->successNotification( - CheerfulNotification::restore() + $this->successNotification(fn () => CheerfulNotification::restore() ); } } diff --git a/app/Filament/Actions/DefaultBulkActions.php b/app/Filament/Actions/DefaultBulkActions.php index 97ae8f9..64c9f4e 100644 --- a/app/Filament/Actions/DefaultBulkActions.php +++ b/app/Filament/Actions/DefaultBulkActions.php @@ -13,19 +13,19 @@ public static function make(string $entity): array { return [ DeleteBulkAction::make() - ->modalHeading("Mau Hapus Banyak {$entity}? ๐๏ธ๐ค") + ->modalHeading(fn () => CheerfulNotification::getMessage("Mau Hapus Banyak {$entity}? ๐๏ธ๐ค", "Hapus Data {$entity} Terpilih")) ->successNotification( CheerfulNotification::bulkDelete() ), ForceDeleteBulkAction::make() - ->modalHeading("Hapus Permanen {$entity} Terpilih? ๐๏ธ๐ฅ") + ->modalHeading(fn () => CheerfulNotification::getMessage("Hapus Permanen {$entity} Terpilih? ๐๏ธ๐ฅ", "Hapus Permanen Data {$entity} Terpilih")) ->successNotification( CheerfulNotification::bulkForceDelete() ), RestoreBulkAction::make() - ->modalHeading("Pulihkan {$entity} yang Dipilih? โป๏ธโจ") + ->modalHeading(fn () => CheerfulNotification::getMessage("Pulihkan {$entity} yang Dipilih? โป๏ธโจ", "Pulihkan Data {$entity} Terpilih")) ->successNotification( CheerfulNotification::bulkRestore() ), diff --git a/app/Filament/Pages/AdminVerification/Actions/ApproveAction.php b/app/Filament/Pages/AdminVerification/Actions/ApproveAction.php index b022bb4..a361ed7 100644 --- a/app/Filament/Pages/AdminVerification/Actions/ApproveAction.php +++ b/app/Filament/Pages/AdminVerification/Actions/ApproveAction.php @@ -4,6 +4,7 @@ use App\Enums\DecisionAdmin; use App\Filament\Pages\AdminVerification\Actions\Concerns\CanProcessReview; +use App\Filament\Support\CheerfulNotification; use Filament\Actions\Action; class ApproveAction extends Action @@ -24,8 +25,8 @@ protected function setUp(): void ->icon('heroicon-o-check') ->size('sm') ->requiresConfirmation() - ->modalHeading('Setujui Verifikasi? โ โจ') - ->modalDescription('Yakin datanya sudah oke semua? Yuk, kita resmikan verifikasinya sekarang! ๐๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Setujui Verifikasi? โ โจ', 'Setujui Verifikasi')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Yakin datanya sudah oke semua? Yuk, kita resmikan verifikasinya sekarang! ๐๐', 'Apakah Anda yakin ingin menyetujui verifikasi ini? Seluruh data yang diajukan akan dianggap valid.')) ->modalSubmitActionLabel('Ya, Setujui') ->action(function (array $arguments): void { $this->processReview($arguments['id'], DecisionAdmin::APPROVED, null); diff --git a/app/Filament/Pages/AdminVerification/Actions/Concerns/CanProcessReview.php b/app/Filament/Pages/AdminVerification/Actions/Concerns/CanProcessReview.php index 2ef5f55..acad200 100644 --- a/app/Filament/Pages/AdminVerification/Actions/Concerns/CanProcessReview.php +++ b/app/Filament/Pages/AdminVerification/Actions/Concerns/CanProcessReview.php @@ -21,8 +21,8 @@ protected function processReview(int $requestId, DecisionAdmin $decision, ?strin if (! $verificationRequest) { CheerfulNotification::danger( - 'Belum ketemu nih ๐', - 'Data verifikasi belum kami temukan. Coba sebentar lagi, ya.', + CheerfulNotification::getMessage('Belum ketemu nih ๐', 'Data Tidak Ditemukan'), + CheerfulNotification::getMessage('Data verifikasi belum kami temukan. Coba sebentar lagi, ya.', 'Permintaan verifikasi tidak ditemukan dalam sistem kami.') ) ->send(); @@ -60,8 +60,8 @@ protected function processReview(int $requestId, DecisionAdmin $decision, ?strin }; CheerfulNotification::success( - 'Berhasil Diproses! โจ', - "Mantap! Verifikasi telah {$actionLabel} dan notifikasi sudah dikirim ke pengguna. Kerja bagus, Admin! ๐ช" + CheerfulNotification::getMessage('Berhasil Diproses! โจ', 'Berhasil Diproses'), + CheerfulNotification::getMessage("Mantap! Verifikasi telah {$actionLabel} dan notifikasi sudah dikirim ke pengguna. Kerja bagus, Admin! ๐ช", "Proses verifikasi telah {$actionLabel} dan notifikasi telah dikirimkan ke pihak pengguna.") ) ->send(); @@ -69,19 +69,19 @@ protected function processReview(int $requestId, DecisionAdmin $decision, ?strin $partnerUser = $verificationRequest->company?->user; if ($partnerUser) { $statusTitle = match ($decision) { - DecisionAdmin::APPROVED => 'Horee! Verifikasi Disetujui ๐', - DecisionAdmin::NEED_REVISION => 'Yah, Ada Yang Perlu Direvisi nih ๐', - DecisionAdmin::REJECTED => 'Maaf, Verifikasi Ditolak ๐', + DecisionAdmin::APPROVED => CheerfulNotification::getMessage('Horee! Verifikasi Disetujui ๐', 'Verifikasi Disetujui'), + DecisionAdmin::NEED_REVISION => CheerfulNotification::getMessage('Yah, Ada Yang Perlu Direvisi nih ๐', 'Perlu Revisi Verifikasi'), + DecisionAdmin::REJECTED => CheerfulNotification::getMessage('Maaf, Verifikasi Ditolak ๐', 'Verifikasi Ditolak'), }; $body = match ($decision) { - DecisionAdmin::APPROVED => 'Yeay! Pengajuan verifikasi perusahaan Anda telah disetujui. Sekarang Anda sudah resmi terverifikasi dan bekerja sama dengan kami! ๐', - DecisionAdmin::NEED_REVISION => 'Ayo sedikit lagi! Admin meminta beberapa perbaikan pada pengajuan Anda agar bisa segera disetujui. ๐ช', - DecisionAdmin::REJECTED => 'Yah, maaf banget... pengajuan verifikasi perusahaan Anda belum bisa kami terima saat ini. ๐', + DecisionAdmin::APPROVED => CheerfulNotification::getMessage('Yeay! Pengajuan verifikasi perusahaan Anda telah disetujui. Sekarang Anda sudah resmi terverifikasi dan bekerja sama dengan kami! ๐', 'Pengajuan verifikasi perusahaan Anda telah disetujui.'), + DecisionAdmin::NEED_REVISION => CheerfulNotification::getMessage('Ayo sedikit lagi! Admin meminta beberapa perbaikan pada pengajuan Anda agar bisa segera disetujui. ๐ช', 'Admin meminta beberapa perbaikan pada pengajuan verifikasi Anda.'), + DecisionAdmin::REJECTED => CheerfulNotification::getMessage('Yah, maaf banget... pengajuan verifikasi perusahaan Anda belum bisa kami terima saat ini. ๐', 'Pengajuan verifikasi perusahaan Anda tidak dapat kami setujui saat ini.'), }; if ($note) { - $body .= "\n\nCatatan Admin: {$note}"; + $body .= "\n\n".CheerfulNotification::getMessage("Catatan Admin: {$note} ๐", "Catatan Admin: {$note}"); } $partnerUser->notify(new BroadcastNotification([ @@ -104,8 +104,8 @@ protected function processReview(int $requestId, DecisionAdmin $decision, ?strin ]); CheerfulNotification::danger( - 'Terjadi Kesalahan โ ๏ธ', - 'Proses verifikasi gagal karena kesalahan sistem. Tim kami sudah mencatat masalah ini. Silakan coba lagi nanti.', + CheerfulNotification::getMessage('Terjadi Kesalahan โ ๏ธ', 'Terjadi Kesalahan Sistem'), + CheerfulNotification::getMessage('Proses verifikasi gagal karena kesalahan sistem. Tim kami sudah mencatat masalah ini. Silakan coba lagi nanti.', 'Proses verifikasi gagal dilakukan karena kendala teknis. Silakan laporkan jika masalah berlanjut.') ) ->send(); } diff --git a/app/Filament/Pages/AdminVerification/Actions/RejectAction.php b/app/Filament/Pages/AdminVerification/Actions/RejectAction.php index 06c5dcb..e6909d3 100644 --- a/app/Filament/Pages/AdminVerification/Actions/RejectAction.php +++ b/app/Filament/Pages/AdminVerification/Actions/RejectAction.php @@ -4,6 +4,7 @@ use App\Enums\DecisionAdmin; use App\Filament\Pages\AdminVerification\Actions\Concerns\CanProcessReview; +use App\Filament\Support\CheerfulNotification; use Filament\Actions\Action; use Filament\Forms\Components\Textarea; @@ -25,8 +26,8 @@ protected function setUp(): void ->icon('heroicon-o-x-mark') ->size('sm') ->requiresConfirmation() - ->modalHeading('Tolak Verifikasi? ๐๐ค') - ->modalDescription('Yakin mau ditolak secara permanen? Pastikan alasannya sudah sreg di hati ya! ๐๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Tolak Verifikasi? ๐๐ค', 'Tolak Verifikasi')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Yakin mau ditolak secara permanen? Pastikan alasannya sudah sreg di hati ya! ๐๐', 'Apakah Anda yakin ingin menolak verifikasi ini secara permanen?')) ->modalSubmitActionLabel('Ya, Tolak') ->schema([ Textarea::make('note') diff --git a/app/Filament/Pages/AdminVerification/Actions/RevisionAction.php b/app/Filament/Pages/AdminVerification/Actions/RevisionAction.php index a47b1c1..19dbdf1 100644 --- a/app/Filament/Pages/AdminVerification/Actions/RevisionAction.php +++ b/app/Filament/Pages/AdminVerification/Actions/RevisionAction.php @@ -4,6 +4,7 @@ use App\Enums\DecisionAdmin; use App\Filament\Pages\AdminVerification\Actions\Concerns\CanProcessReview; +use App\Filament\Support\CheerfulNotification; use Filament\Actions\Action; use Filament\Forms\Components\Textarea; use Filament\Support\Enums\Width; @@ -25,8 +26,8 @@ protected function setUp(): void ->color('warning') ->icon('heroicon-o-pencil-square') ->size('sm') - ->modalHeading('Minta Revisi Data ๐โ ๏ธ') - ->modalDescription('Siap kirim instruksi perbaikan? Kasih catatan yang jelas ya biar pengguna nggak bingung! ๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Minta Revisi Data ๐โ ๏ธ', 'Minta Revisi Data')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Siap kirim instruksi perbaikan? Kasih catatan yang jelas ya biar pengguna nggak bingung! ๐', 'Silakan masukkan instruksi perbaikan yang diperlukan untuk pengguna.')) ->schema([ Textarea::make('note') ->label('Catatan Revisi') diff --git a/app/Filament/Pages/Auth/EmailVerification.php b/app/Filament/Pages/Auth/EmailVerification.php index bd6acb3..1675c9c 100644 --- a/app/Filament/Pages/Auth/EmailVerification.php +++ b/app/Filament/Pages/Auth/EmailVerification.php @@ -34,8 +34,8 @@ public function resendNotificationAction(): Action $this->sendEmailVerificationNotification($this->getVerifiable()); CheerfulNotification::success( - 'Mail Meluncur! ๐ง๐', - 'Tautan verifikasi baru sudah dikirim ke alamat surelmu. Cek inbox (atau spam) ya! ๐โจ' + CheerfulNotification::getMessage('Mail Meluncur! ๐ง๐', 'Email Terkirim'), + CheerfulNotification::getMessage('Tautan verifikasi baru sudah dikirim ke alamat surelmu. Cek inbox (atau spam) ya! ๐โจ', 'Tautan verifikasi baru telah dikirimkan ke alamat email Anda. Silakan periksa kotak masuk atau spam.') )->send(); }); } @@ -43,8 +43,8 @@ public function resendNotificationAction(): Action protected function getRateLimitedNotification(TooManyRequestsException $exception): ?Notification { return CheerfulNotification::danger( - 'Pelan-pelan ya โณ', - 'Permintaan terlalu sering. Tunggu sebentar lalu coba lagi dalam '.$exception->secondsUntilAvailable.' detik.' + CheerfulNotification::getMessage('Pelan-pelan ya โณ', 'Terlalu Banyak Permintaan'), + CheerfulNotification::getMessage('Permintaan terlalu sering. Tunggu sebentar lalu coba lagi dalam '.$exception->secondsUntilAvailable.' detik.', 'Anda telah melakukan terlalu banyak permintaan. Silakan coba kembali dalam '.$exception->secondsUntilAvailable.' detik.') )->send(); } } diff --git a/app/Filament/Pages/Auth/Login.php b/app/Filament/Pages/Auth/Login.php index b8ea892..1c5cef3 100644 --- a/app/Filament/Pages/Auth/Login.php +++ b/app/Filament/Pages/Auth/Login.php @@ -103,8 +103,8 @@ public function authenticate(): ?LoginResponse if ($user instanceof FilamentUser && (! $user->canAccessPanel(Filament::getCurrentOrDefaultPanel()))) { CheerfulNotification::danger( - 'Akun Tidak Aktif ๐ซ', - 'Maaf, akun Anda saat ini tidak aktif. Silakan hubungi Administrator. ๐' + CheerfulNotification::getMessage('Akun Tidak Aktif ๐ซ', 'Akses Ditolak'), + CheerfulNotification::getMessage('Maaf, akun Anda saat ini tidak aktif. Silakan hubungi Administrator. ๐', 'Akun Anda saat ini tidak memiliki izin untuk mengakses sistem. Silakan hubungi administrator.') )->send(); throw ValidationException::withMessages([]); @@ -151,8 +151,8 @@ public function authenticate(): ?LoginResponse session()->regenerate(); CheerfulNotification::success( - 'Hore! Berhasil Masuk ๐', - 'Selamat datang kembali, '.$user->name.'! Siap untuk beraksi hari ini? ๐โจ' + CheerfulNotification::getMessage('Hore! Berhasil Masuk ๐', 'Login Berhasil'), + CheerfulNotification::getMessage('Selamat datang kembali, '.$user->name.'! Siap untuk beraksi hari ini? ๐โจ', 'Selamat datang kembali, '.$user->name.'. Anda telah berhasil masuk ke dalam sistem.') )->send(); return app(LoginResponse::class); @@ -161,8 +161,8 @@ public function authenticate(): ?LoginResponse protected function throwFailureValidationException(): never { CheerfulNotification::danger( - 'Ups! Gagal Masuk ๐ ', - 'Sepertinya ada yang salah nih. Coba cek email atau kata sandi mu lagi ya! ๐ค๐' + CheerfulNotification::getMessage('Ups! Gagal Masuk ๐ ', 'Login Gagal'), + CheerfulNotification::getMessage('Sepertinya ada yang salah nih. Coba cek email atau kata sandi mu lagi ya! ๐ค๐', 'Kredensial yang Anda masukkan salah. Silakan periksa kembali email dan kata sandi Anda.') )->send(); throw ValidationException::withMessages([]); diff --git a/app/Filament/Pages/Auth/Profile.php b/app/Filament/Pages/Auth/Profile.php index ab261b2..2f58a26 100644 --- a/app/Filament/Pages/Auth/Profile.php +++ b/app/Filament/Pages/Auth/Profile.php @@ -2,9 +2,12 @@ namespace App\Filament\Pages\Auth; +use App\Enums\UxStyle; use App\Filament\Support\CheerfulNotification; use Filament\Auth\Pages\EditProfile; +use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; +use Filament\Notifications\Notification; use Filament\Schemas\Components\Grid; use Filament\Schemas\Components\Section; use Filament\Schemas\Components\Utilities\Get; @@ -25,7 +28,9 @@ public function form(Schema $schema): Schema { return $schema ->components([ - Section::make() + Section::make(fn () => CheerfulNotification::getMessage('Detail Profil ๐คโจ', 'Profil Pengguna')) + ->description(fn () => CheerfulNotification::getMessage('Yuk, kelola informasi detail profil Anda agar selalu terkini! ๐ค๐', 'Kelola informasi profil dasar Anda di bawah ini.')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-user' : null) ->schema([ TextInput::make('name') ->label('Nama Lengkap') @@ -56,10 +61,19 @@ public function form(Schema $schema): Schema ->regex('/^[a-zA-Z0-9_.-]+$/') ->unique(ignoreRecord: true) ->prefixIcon('heroicon-o-at-symbol'), + + Select::make('ux_style') + ->label('Gaya Bahasa Aplikasi') + ->options(UxStyle::class) + ->native(false) + ->required() + ->prefixIcon('heroicon-o-chat-bubble-bottom-center-text'), ]), ]), - Section::make() + Section::make(fn () => CheerfulNotification::getMessage('Keamanan Akun ๐โจ', 'Ubah Kata Sandi')) + ->description(fn () => CheerfulNotification::getMessage('Ingin ganti kata sandi? Pastikan pilih yang kuat ya biar makin aman! ๐๐ช', 'Silakan masukkan kata sandi baru untuk memperbarui keamanan akun Anda.')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-lock-closed' : null) ->schema([ Grid::make(2) ->schema([ @@ -100,8 +114,8 @@ protected function handleRecordUpdate(Model $record, array $data): Model protected function afterSave(): void { CheerfulNotification::success( - 'Profil Diperbarui! โจ', - 'Sip! Detail profil baru Anda sudah tersimpan dengan aman. Terus semangat ya! ๐ช๐' + CheerfulNotification::getMessage('Profil Diperbarui! โจ', 'Profil Diperbarui'), + CheerfulNotification::getMessage('Sip! Detail profil baru Anda sudah tersimpan dengan aman. Terus semangat ya! ๐ช๐', 'Perubahan pada profil Anda telah berhasil disimpan ke dalam sistem.') )->send(); if (filled($this->form->getState()['password'] ?? null)) { @@ -110,11 +124,16 @@ protected function afterSave(): void session()->regenerateToken(); CheerfulNotification::info( - 'Sesi Berakhir ๐', - 'Anda telah mengubah kata sandi. Silakan masuk kembali dengan kata sandi baru Anda ya. ๐๐' + CheerfulNotification::getMessage('Sesi Berakhir ๐', 'Keamanan Diperbarui'), + CheerfulNotification::getMessage('Anda telah mengubah kata sandi. Silakan masuk kembali dengan kata sandi baru Anda ya. ๐๐', 'Kata sandi Anda telah berhasil diubah. Harap lakukan login kembali menggunakan kata sandi yang baru untuk alasan keamanan.') )->send(); $this->redirect(filament()->getLoginUrl()); } } + + protected function getSavedNotification(): ?Notification + { + return null; + } } diff --git a/app/Filament/Pages/Auth/Registration.php b/app/Filament/Pages/Auth/Registration.php index 97d2597..e857468 100644 --- a/app/Filament/Pages/Auth/Registration.php +++ b/app/Filament/Pages/Auth/Registration.php @@ -81,8 +81,8 @@ protected function handleRegistration(array $data): Model $user->assignRole('Perusahaan'); CheerfulNotification::success( - 'Selamat Datang! ๐๐', - "Halooo, {$user->name}!, terima kasih sudah bergabung! Akunmu berhasil dibuat. Silakan verifikasi alamat surelmu! ๐โจ" + CheerfulNotification::getMessage('Selamat Datang! ๐๐', 'Pendaftaran Berhasil'), + CheerfulNotification::getMessage("Halooo, {$user->name}!, terima kasih sudah bergabung! Akunmu berhasil dibuat. Silakan verifikasi alamat surelmu! ๐โจ", "Selamat datang, {$user->name}. Akun Anda telah berhasil dibuat. Silakan periksa email Anda untuk melakukan verifikasi.") ) ->send(); @@ -90,8 +90,8 @@ protected function handleRegistration(array $data): Model ->get() ->each(function ($admin) use ($user): void { $admin->notify(new BroadcastNotification([ - 'title' => 'Warga Baru Nih! ๐๐', - 'body' => "Halo Admin! {$user->name} baru saja mendaftar. Yuk cek kelengkapannya! ๐", + 'title' => CheerfulNotification::getMessage('Warga Baru Nih! ๐๐', 'Pendaftaran Pengguna Baru'), + 'body' => CheerfulNotification::getMessage("Halo Admin! {$user->name} baru saja mendaftar. Yuk cek kelengkapannya! ๐", "Pengguna baru {$user->name} telah mendaftar ke dalam sistem."), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Pages/Company.php b/app/Filament/Pages/Company.php index 152d38c..bb6a7d1 100644 --- a/app/Filament/Pages/Company.php +++ b/app/Filament/Pages/Company.php @@ -3,6 +3,7 @@ namespace App\Filament\Pages; use App\Enums\DataChangeStatus; +use App\Enums\UxStyle; use App\Enums\VerificationStatus; use App\Filament\Resources\Manage\DataChanges\DataChangesResource; use App\Filament\Support\CheerfulNotification; @@ -52,7 +53,15 @@ class Company extends Page implements HasForms protected static ?string $slug = 'manage/company'; - protected static ?string $title = 'Perusahaan'; + public function getTitle(): string + { + return CheerfulNotification::getMessage('Detail Perusahaan ๐๏ธโจ', 'Profil Perusahaan'); + } + + public function getSubheading(): ?string + { + return CheerfulNotification::getMessage('Kelola informasi perusahaan Anda biar tetap resmi dan kredibel! ๐๐', 'Silakan kelola informasi detail perusahaan Anda pada formulir di bawah ini.'); + } public ?VerificationRequest $verificationRequest = null; @@ -183,7 +192,9 @@ public static function form(Schema $schema): Schema return $schema ->components([ - Section::make('Informasi') + Section::make(fn () => CheerfulNotification::getMessage('Informasi Perusahaan ๐๏ธโจ', 'Profil Perusahaan')) + ->description(fn () => CheerfulNotification::getMessage('Kelola informasi perusahaan Anda biar tetap resmi dan kredibel! ๐โจ', 'Kelola informasi detail perusahaan Anda di sini.')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-building-office-2' : null) ->schema([ TextInput::make('name') ->label('Nama') @@ -228,7 +239,8 @@ public static function form(Schema $schema): Schema ->schema( array_merge( [ - Section::make('NIK Direktur') + Section::make(fn () => CheerfulNotification::getMessage('NIK Direktur ๐คโจ', 'NIK Direktur')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-user' : null) ->schema([ TextInput::make('director_nik') ->hiddenLabel() @@ -252,7 +264,8 @@ public static function form(Schema $schema): Schema collect($documents) ->map(function (array $doc): Section { - return Section::make($doc['title']) + return Section::make(fn () => CheerfulNotification::getMessage($doc['title'].' ๐โจ', $doc['title'])) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null) ->schema([ TextInput::make($doc['text_name']) ->hiddenLabel() @@ -288,8 +301,8 @@ public function saveAction(): Action return Action::make('save') ->label('Simpan') - ->modalHeading('Ajukan Perubahan Profil ๐โจ') - ->modalDescription('Yakin ingin mengubah data perusahaan? Jelaskan alasannya supaya proses verifikasi makin lancar! ๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Ajukan Perubahan Profil ๐โจ', 'Ubah Profil Perusahaan')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Yakin ingin mengubah data perusahaan? Jelaskan alasannya supaya proses verifikasi makin lancar! ๐', 'Silakan masukkan alasan Anda melakukan perubahan profil perusahaan.')) ->modal($needsReview) ->schema( $needsReview @@ -325,8 +338,8 @@ public function performSave(array $data, bool $needsReview = false): void if ($existingRequest) { CheerfulNotification::warning( - 'Pengajuan Sudah Ada โณ', - 'Masih ada pengajuan perubahan data yang sedang menunggu verifikasi. Silakan tunggu hingga selesai diproses.' + CheerfulNotification::getMessage('Pengajuan Sudah Ada โณ', 'Pengajuan Sedang Diproses'), + CheerfulNotification::getMessage('Masih ada pengajuan perubahan data yang sedang menunggu verifikasi. Silakan tunggu hingga selesai diproses.', 'Pengajuan perubahan data perusahaan Anda masih dalam proses verifikasi oleh admin.') ) ->send(); @@ -391,8 +404,8 @@ public function performSave(array $data, bool $needsReview = false): void if (empty($changedFields)) { CheerfulNotification::info( - 'Belum ada yang berubah โจ', - 'Ubah data terlebih dulu lalu simpan kembali ๐ช' + CheerfulNotification::getMessage('Belum ada yang berubah โจ', 'Tidak Ada Perubahan'), + CheerfulNotification::getMessage('Ubah data terlebih dulu lalu simpan kembali ๐ช', 'Silakan ubah data terlebih dahulu sebelum melakukan penyimpanan.') ) ->send(); @@ -409,8 +422,8 @@ public function performSave(array $data, bool $needsReview = false): void ]); CheerfulNotification::success( - 'Permohonan Berhasil ๐', - 'Data sudah dikirim dan sedang menunggu verifikasi admin โณ' + CheerfulNotification::getMessage('Permohonan Berhasil ๐', 'Permohonan Berhasil'), + CheerfulNotification::getMessage('Data sudah dikirim dan sedang menunggu verifikasi admin โณ', 'Permohonan perubahan data perusahaan telah berhasil dikirimkan.') ) ->send(); @@ -418,8 +431,8 @@ public function performSave(array $data, bool $needsReview = false): void ->get() ->each(function ($admin) use ($dataChangeRequest): void { $admin->notify(new BroadcastNotification([ - 'title' => 'Ada Pengajuan Perubahan Data โจ', - 'body' => 'Halooo Admin! ๐ '.auth()->user()->name.' baru saja mengajukan perubahan data. Yuk, cek detailnya dan lakukan verifikasi ya! ๐', + 'title' => CheerfulNotification::getMessage('Ada Pengajuan Perubahan Data โจ', 'Pengajuan Perubahan Perusahaan'), + 'body' => CheerfulNotification::getMessage('Halooo Admin! ๐ '.auth()->user()->name.' baru saja mengajukan perubahan data. Yuk, cek detailnya dan lakukan verifikasi ya! ๐', 'Pengguna '.auth()->user()->name.' telah mengajukan perubahan data perusahaan.'), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Pages/Media.php b/app/Filament/Pages/Media.php index 6e3c761..b9b4f0c 100644 --- a/app/Filament/Pages/Media.php +++ b/app/Filament/Pages/Media.php @@ -6,6 +6,7 @@ use App\Enums\MediaClassification; use App\Enums\MediaType; use App\Enums\RoleEnum; +use App\Enums\UxStyle; use App\Enums\VerificationStatus; use App\Filament\Resources\Manage\DataChanges\DataChangesResource; use App\Filament\Support\CheerfulNotification; @@ -63,7 +64,15 @@ class Media extends Page implements HasForms protected static ?string $slug = 'manage/media'; - protected static ?string $title = 'Media'; + public function getTitle(): string + { + return CheerfulNotification::getMessage('Detail Media ๐ฐโจ', 'Profil Media'); + } + + public function getSubheading(): ?string + { + return CheerfulNotification::getMessage('Kelola informasi media Anda biar tetap eksis dan terpercaya! ๐๐', 'Silakan kelola informasi detail media Anda pada formulir di bawah ini.'); + } public ?VerificationRequest $verificationRequest = null; @@ -156,7 +165,9 @@ public static function form(Schema $schema): Schema return $schema ->components([ - Section::make('Informasi') + Section::make(fn () => CheerfulNotification::getMessage('Detail Informasi ๐ฐโจ', 'Informasi Media')) + ->description(fn () => CheerfulNotification::getMessage('Kelola informasi media Anda biar tetap eksis dan terpercaya! ๐โจ', 'Kelola informasi detail media Anda di sini.')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-newspaper' : null) ->schema([ TextInput::make('name') ->label('Nama') @@ -202,7 +213,8 @@ public static function form(Schema $schema): Schema ->schema( collect($documents) ->map(function (array $doc): Section { - return Section::make($doc['title']) + return Section::make(fn () => CheerfulNotification::getMessage($doc['title'].' ๐โจ', $doc['title'])) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null) ->schema([ TextInput::make($doc['text_name']) ->hiddenLabel() @@ -236,8 +248,8 @@ public function saveAction(): Action return Action::make('save') ->label('Simpan') - ->modalHeading('Ajukan Perubahan Media ๐โจ') - ->modalDescription('Mau mengubah data media? Sertakan alasan yang jelas ya biar admin makin yakin! ๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Ajukan Perubahan Media ๐โจ', 'Ubah Data Media')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Mau mengubah data media? Sertakan alasan yang jelas ya biar admin makin yakin! ๐', 'Silakan masukkan alasan Anda melakukan perubahan data media.')) ->modal($needsReview) ->schema( $needsReview @@ -267,8 +279,8 @@ public function performSave(array $data = [], bool $needsReview = false): void if ($existingRequest) { CheerfulNotification::warning( - 'Pengajuan Sudah Ada โณ', - 'Masih ada pengajuan perubahan data yang sedang menunggu verifikasi. Silakan tunggu hingga selesai diproses.' + CheerfulNotification::getMessage('Pengajuan Sudah Ada โณ', 'Pengajuan Sedang Diproses'), + CheerfulNotification::getMessage('Masih ada pengajuan perubahan data yang sedang menunggu verifikasi. Silakan tunggu hingga selesai diproses.', 'Pengajuan perubahan data media Anda masih dalam proses verifikasi oleh admin.') ) ->send(); @@ -333,8 +345,8 @@ public function performSave(array $data = [], bool $needsReview = false): void if (empty($changedFields)) { CheerfulNotification::info( - 'Belum ada yang berubah โจ', - 'Ubah data terlebih dulu lalu simpan kembali ๐ช' + CheerfulNotification::getMessage('Belum ada yang berubah โจ', 'Tidak Ada Perubahan'), + CheerfulNotification::getMessage('Ubah data terlebih dulu lalu simpan kembali ๐ช', 'Silakan ubah data terlebih dahulu sebelum melakukan penyimpanan.') ) ->send(); @@ -351,8 +363,8 @@ public function performSave(array $data = [], bool $needsReview = false): void ]); CheerfulNotification::success( - 'Permohonan Berhasil ๐', - 'Data sudah dikirim dan sedang menunggu verifikasi admin โณ' + CheerfulNotification::getMessage('Permohonan Berhasil ๐', 'Permohonan Berhasil'), + CheerfulNotification::getMessage('Data sudah dikirim dan sedang menunggu verifikasi admin โณ', 'Permohonan perubahan data media telah berhasil dikirimkan.') ) ->send(); @@ -360,8 +372,8 @@ public function performSave(array $data = [], bool $needsReview = false): void ->get() ->each(function ($admin) use ($dataChangeRequest): void { $admin->notify(new BroadcastNotification([ - 'title' => 'Ada Pengajuan Perubahan Data Media โจ', - 'body' => 'Halooo Admin! ๐ '.auth()->user()->name.' baru saja mengajukan perubahan data media. Yuk, cek detailnya! ๐', + 'title' => CheerfulNotification::getMessage('Ada Pengajuan Perubahan Data Media โจ', 'Pengajuan Perubahan Media'), + 'body' => CheerfulNotification::getMessage('Halooo Admin! ๐ '.auth()->user()->name.' baru saja mengajukan perubahan data media. Yuk, cek detailnya! ๐', 'Pengguna '.auth()->user()->name.' telah mengajukan perubahan data media.'), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Pages/Settings/ManageGeneralSettings.php b/app/Filament/Pages/Settings/ManageGeneralSettings.php index b7e7ead..816907c 100644 --- a/app/Filament/Pages/Settings/ManageGeneralSettings.php +++ b/app/Filament/Pages/Settings/ManageGeneralSettings.php @@ -37,8 +37,8 @@ public function form(Schema $schema): Schema { return $schema ->components([ - Section::make('Informasi Dasar ๐โจ') - ->description('Atur info penting website kita di sini biar makin lengkap! ๐๐') + Section::make(fn () => CheerfulNotification::getMessage('Informasi Dasar ๐โจ', 'Informasi Dasar')) + ->description(fn () => CheerfulNotification::getMessage('Atur info penting website kita di sini biar makin lengkap! ๐๐', 'Silakan atur informasi dasar situs web pada bagian ini.')) ->schema([ TextInput::make('site_name') ->label('Nama') @@ -84,8 +84,8 @@ public function form(Schema $schema): Schema ->columnSpanFull(), ])->columnSpan(2), - Section::make('Logo & Ikon ๐ผ๏ธโจ') - ->description('Unggah logo dan ikon biar branding kita makin cakep! ๐จ๐') + Section::make(fn () => CheerfulNotification::getMessage('Logo & Ikon ๐ผ๏ธโจ', 'Logo & Ikon')) + ->description(fn () => CheerfulNotification::getMessage('Unggah logo dan ikon biar branding kita makin cakep! ๐จ๐', 'Silakan unggah logo dan ikon untuk keperluan branding situs web.')) ->schema([ FileUpload::make('site_logo') ->label('Logo') diff --git a/app/Filament/Pages/Settings/ManageSeoSettings.php b/app/Filament/Pages/Settings/ManageSeoSettings.php index 7db12a0..c8085cf 100644 --- a/app/Filament/Pages/Settings/ManageSeoSettings.php +++ b/app/Filament/Pages/Settings/ManageSeoSettings.php @@ -35,8 +35,8 @@ public function form(Schema $schema): Schema { return $schema ->components([ - Section::make('Search Engine Optimization ๐โจ') - ->description('Atur kata kunci dan deskripsi biar website kita gampang dicari orang ya! ๐๐') + Section::make(fn () => CheerfulNotification::getMessage('Search Engine Optimization ๐โจ', 'Optimasi Mesin Pencari (SEO)')) + ->description(fn () => CheerfulNotification::getMessage('Atur kata kunci dan deskripsi biar website kita gampang dicari orang ya! ๐๐', 'Atur kata kunci dan deskripsi untuk meningkatkan visibilitas situs web pada mesin pencari.')) ->schema([ TextInput::make('title') ->label('SEO Title') diff --git a/app/Filament/Pages/Settings/ManageSocialMediaSettings.php b/app/Filament/Pages/Settings/ManageSocialMediaSettings.php index 43aa62e..1dd9e31 100644 --- a/app/Filament/Pages/Settings/ManageSocialMediaSettings.php +++ b/app/Filament/Pages/Settings/ManageSocialMediaSettings.php @@ -35,8 +35,8 @@ public function form(Schema $schema): Schema { return $schema ->components([ - Section::make('Link Media Sosial ๐โจ') - ->description('Hubungkan semua media sosial resmi kita di sini untuk menjangkau lebih banyak orang! ๐๐คฉ') + Section::make(fn () => CheerfulNotification::getMessage('Link Media Sosial ๐โจ', 'Tautan Media Sosial')) + ->description(fn () => CheerfulNotification::getMessage('Hubungkan semua media sosial resmi kita di sini untuk menjangkau lebih banyak orang! ๐๐คฉ', 'Silakan masukkan tautan media sosial resmi perusahaan pada bagian ini.')) ->schema([ Grid::make(2) ->schema([ diff --git a/app/Filament/Pages/Verification.php b/app/Filament/Pages/Verification.php index e84e676..e557e88 100644 --- a/app/Filament/Pages/Verification.php +++ b/app/Filament/Pages/Verification.php @@ -112,17 +112,17 @@ public function submitVerificationAction(): Action ->icon('heroicon-o-paper-airplane') ->color('primary') ->requiresConfirmation() - ->modalHeading('Ajukan Verifikasi Sekarang? ๐โจ') + ->modalHeading(fn () => CheerfulNotification::getMessage('Ajukan Verifikasi Sekarang? ๐โจ', 'Ajukan Verifikasi')) ->modalDescription(function () use ($progress): string { if (! $progress['isDataComplete']) { - return 'Aduh, data belum lengkap nih! ๐ Silakan lengkapi dulu bagian: '.implode(', ', $progress['missingData']).' ya!'; + return CheerfulNotification::getMessage('Aduh, data belum lengkap nih! ๐ Silakan lengkapi dulu bagian: '.implode(', ', $progress['missingData']).' ya!', 'Data belum lengkap. Silakan lengkapi bagian: '.implode(', ', $progress['missingData']).'.'); } if ($this->verificationRequest && $this->verificationRequest->status === VerificationStatus::NEED_REVISION) { - return 'Ayo kirim ulang perbaikannya! Pastikan semuanya sudah sesuai catatan admin biar langsung gaspol! ๐ชโจ'; + return CheerfulNotification::getMessage('Ayo kirim ulang perbaikannya! Pastikan semuanya sudah sesuai catatan admin biar langsung gaspol! ๐ชโจ', 'Silakan kirimkan kembali perbaikan data Anda sesuai dengan catatan Admin.'); } - return 'Apakah Anda yakin ingin mengajukan verifikasi? Pastikan semua data sudah benar dan lengkap ya! Pasti bisa! ๐๐'; + return CheerfulNotification::getMessage('Apakah Anda yakin ingin mengajukan verifikasi? Pastikan semua data sudah benar and lengkap ya! Pasti bisa! ๐๐', 'Apakah Anda yakin ingin mengajukan verifikasi? Pastikan seluruh data yang diinput telah sesuai.'); }) ->modalSubmitActionLabel('Ya, Ajukan') ->visible(fn (): bool => $progress['canSubmit']) @@ -130,8 +130,8 @@ public function submitVerificationAction(): Action ->action(function () use ($progress): void { if (! $progress['isDataComplete']) { CheerfulNotification::danger( - 'Data Belum Lengkap! ๐ ', - 'Silakan lengkapi data terlebih dahulu sebelum mengajukan verifikasi ya: '.implode(', ', $progress['missingData']) + CheerfulNotification::getMessage('Data Belum Lengkap! ๐ ', 'Data Tidak Lengkap'), + CheerfulNotification::getMessage('Silakan lengkapi data terlebih dahulu sebelum mengajukan verifikasi ya: '.implode(', ', $progress['missingData']), 'Silakan lengkapi seluruh data wajib sebelum mengajukan verifikasi: '.implode(', ', $progress['missingData'])) )->send(); return; @@ -142,8 +142,8 @@ public function submitVerificationAction(): Action $this->verificationRequest = $this->submitVerification(); CheerfulNotification::success( - 'Berhasil Diajukan! ๐', - 'Yeay! Pengajuan verifikasi Anda sudah terkirim ke Admin. Mohon ditunggu ya, semoga hasilnya memuaskan! โจ' + CheerfulNotification::getMessage('Berhasil Diajukan! ๐', 'Berhasil Diajukan'), + CheerfulNotification::getMessage('Yeay! Pengajuan verifikasi Anda sudah terkirim ke Admin. Mohon ditunggu ya, semoga hasilnya memuaskan! โจ', 'Pengajuan verifikasi Anda telah berhasil dikirimkan ke pihak Admin untuk diproses.') )->send(); User::superAdmin() @@ -152,10 +152,12 @@ public function submitVerificationAction(): Action $user = auth()->user(); $admin->notify(new BroadcastNotification([ - 'title' => $isRevision ? 'Pembaruan Data Verifikasi โจ' : 'Ada Pengajuan Verifikasi Baru! ๐', + 'title' => $isRevision + ? CheerfulNotification::getMessage('Pembaruan Data Verifikasi โจ', 'Pembaruan Data Verifikasi') + : CheerfulNotification::getMessage('Ada Pengajuan Verifikasi Baru! ๐', 'Pengajuan Verifikasi Baru'), 'body' => $isRevision - ? "Cihuy! {$user->name} baru saja memperbarui data verifikasi untuk perusahaan {$user->company->name}. Yuk, cek perubahannya!" - : "Halo Admin! {$user->name} baru saja mengajukan verifikasi data untuk perusahaan {$user->company->name}. Segera diproses ya! ๐", + ? CheerfulNotification::getMessage("Cihuy! {$user->name} baru saja memperbarui data verifikasi untuk perusahaan {$user->company->name}. Yuk, cek perubahannya!", "Pengguna {$user->name} telah memperbarui data verifikasi untuk perusahaan {$user->company->name}.") + : CheerfulNotification::getMessage("Halo Admin! {$user->name} baru saja mengajukan verifikasi data untuk perusahaan {$user->company->name}. Segera diproses ya! ๐", "Pengguna {$user->name} telah mengajukan verifikasi data untuk perusahaan {$user->company->name}."), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Resources/Manage/Contacts/Actions/ReplyAction.php b/app/Filament/Resources/Manage/Contacts/Actions/ReplyAction.php index 12c146f..9e1d6fb 100644 --- a/app/Filament/Resources/Manage/Contacts/Actions/ReplyAction.php +++ b/app/Filament/Resources/Manage/Contacts/Actions/ReplyAction.php @@ -19,8 +19,8 @@ protected function setUp(): void $this->label('Balas') ->icon(Heroicon::OutlinedChatBubbleLeftRight) ->color('success') - ->modalHeading('Balas Pesan Kontak โจโ๏ธ') - ->modalDescription('Tuliskan jawaban terbaik Anda di sini ya! Hati-hati, setelah dikirim tidak bisa ditarik kembali. ๐๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Balas Pesan Kontak โจโ๏ธ', 'Balas Pesan Kontak')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Tuliskan jawaban terbaik Anda di sini ya! Hati-hati, setelah dikirim tidak bisa ditarik kembali. ๐๐', 'Silakan masukkan balasan Anda untuk pesan kontak ini.')) ->schema([ Textarea::make('reply_message') ->label('Pesan Balasan') @@ -40,8 +40,8 @@ protected function setUp(): void ]); CheerfulNotification::success( - 'Balasan Terkirim! ๐โ๏ธ', - 'Pesan balasan Anda sudah meluncur ke email pengirim. Semoga membantu mereka ya! ๐' + CheerfulNotification::getMessage('Balasan Terkirim! ๐โ๏ธ', 'Balasan Berhasil Dikirim'), + CheerfulNotification::getMessage('Pesan balasan Anda sudah meluncur ke email pengirim. Semoga membantu mereka ya! ๐', 'Pesan balasan telah berhasil dikirim ke alamat email pengirim.') )->send(); }) ->visible(fn (Contact $record): bool => $record->replied_at === null); diff --git a/app/Filament/Resources/Manage/Contacts/ContactResource.php b/app/Filament/Resources/Manage/Contacts/ContactResource.php index ba75457..1caf9e6 100644 --- a/app/Filament/Resources/Manage/Contacts/ContactResource.php +++ b/app/Filament/Resources/Manage/Contacts/ContactResource.php @@ -2,11 +2,13 @@ namespace App\Filament\Resources\Manage\Contacts; +use App\Enums\UxStyle; use App\Filament\Actions\Cheerful\DeleteAction; use App\Filament\Actions\DefaultBulkActions; use App\Filament\Columns\RowIndexColumn; use App\Filament\Resources\Manage\Contacts\Actions\ReplyAction; use App\Filament\Resources\Manage\Contacts\Pages\ManageContacts; +use App\Filament\Support\CheerfulNotification; use App\Models\Contact; use BackedEnum; use Filament\Actions\BulkActionGroup; @@ -50,9 +52,9 @@ public static function infolist(Schema $schema): Schema { return $schema ->schema([ - Section::make('Informasi Pengirim ๐ง') - ->description('Detail mengenai identitas pengirim pesan.') - ->icon('heroicon-o-user') + Section::make(fn () => CheerfulNotification::getMessage('Informasi Pengirim ๐ง', 'Informasi Pengirim')) + ->description(fn () => CheerfulNotification::getMessage('Cek detail identitas pengirim pesan biar makin kenal! ๐งโจ', 'Detail mengenai identitas pengirim pesan.')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-user' : null) ->schema([ Grid::make(4) ->schema([ @@ -76,9 +78,9 @@ public static function infolist(Schema $schema): Schema ]) ->columnSpanFull(), - Section::make('Isi Pesan ๐ฌ') - ->description('Pesan lengkap yang dikirimkan oleh pengguna.') - ->icon('heroicon-o-chat-bubble-left-right') + Section::make(fn () => CheerfulNotification::getMessage('Isi Pesan ๐ฌ', 'Isi Pesan')) + ->description(fn () => CheerfulNotification::getMessage('Yuk, baca pesan lengkap yang dikirimkan oleh pengguna! ๐ฌโจ', 'Pesan lengkap yang dikirimkan oleh pengguna.')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-chat-bubble-left-right' : null) ->schema([ TextEntry::make('message') ->label('Konten Pesan') @@ -86,9 +88,9 @@ public static function infolist(Schema $schema): Schema ]) ->columnSpanFull(), - Section::make('Riwayat Balasan ๐ค') - ->description('Detail mengenai tanggapan yang telah diberikan.') - ->icon('heroicon-o-paper-airplane') + Section::make(fn () => CheerfulNotification::getMessage('Riwayat Balasan ๐ค', 'Riwayat Balasan')) + ->description(fn () => CheerfulNotification::getMessage('Lihat detail tanggapan yang sudah Admin berikan sebelumnya! ๐คโจ', 'Detail mengenai tanggapan yang telah diberikan.')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-paper-airplane' : null) ->schema([ TextEntry::make('repliedBy.name') ->label('Dibalas Oleh') @@ -173,7 +175,7 @@ public static function table(Table $table): Table ]), ]) ->emptyStateIcon(Heroicon::OutlinedEnvelope) - ->emptyStateDescription('Belum ada kontak atau pesan masuk.') + ->emptyStateDescription(fn () => CheerfulNotification::getMessage('Belum ada kontak atau pesan masuk nih! Santai dulu yuk. โจโ ', 'Belum ada kontak atau pesan masuk yang tersedia.')) ->defaultSort('created_at', 'desc') ->deferFilters(false) ->paginated([25, 50, 100, 'all']) diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/AcceptAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/AcceptAction.php index 96f9bfd..6f7f08f 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/AcceptAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/AcceptAction.php @@ -35,8 +35,8 @@ protected function setUp(): void $cooperationMedia->update(['status' => ApprovalStatus::ACCEPTED]); CheerfulNotification::success( - 'Berhasil Diterima! โ โจ', - 'Mantap! Anda telah menerima penawaran kerja sama ini. Silakan lanjut ke tahap pengajuan proposal ya! ๐ช' + CheerfulNotification::getMessage('Berhasil Diterima! โ โจ', 'Tawaran Diterima'), + CheerfulNotification::getMessage('Mantap! Anda telah menerima penawaran kerja sama ini. Silakan lanjut ke tahap pengajuan proposal ya! ๐ช', 'Anda telah menyetujui penawaran kerja sama ini. Silakan lanjutkan ke tahap pengiriman proposal.') )->send(); // Notify Admins @@ -44,8 +44,8 @@ protected function setUp(): void ->get() ->each(function ($admin) use ($record, $cooperationMedia): void { $admin->notify(new BroadcastNotification([ - 'title' => 'Kabar Baik! Tawaran Diterima โจ๐ค', - 'body' => "Media {$cooperationMedia->partnerMedia->name} baru saja menerima penawaran kerja sama \"{$record->title}\". Siap-siap cek proposal mereka ya! ๐", + 'title' => CheerfulNotification::getMessage('Kabar Baik! Tawaran Diterima โจ๐ค', 'Tawaran Kerja Sama Disetujui Media'), + 'body' => CheerfulNotification::getMessage("Media {$cooperationMedia->partnerMedia->name} baru saja menerima penawaran kerja sama \"{$record->title}\". Siap-siap cek proposal mereka ya! ๐", "Pihak media {$cooperationMedia->partnerMedia->name} telah menyetujui penawaran kerja sama \"{$record->title}\"."), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/CompleteCooperationAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/CompleteCooperationAction.php index dff1b96..4c49c40 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/CompleteCooperationAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/CompleteCooperationAction.php @@ -19,16 +19,16 @@ protected function setUp(): void ->icon(Heroicon::OutlinedCheckBadge) ->color('success') ->requiresConfirmation() - ->modalHeading('Selesaikan Kerja Sama? ๐โจ') - ->modalDescription('Yakin mau menyelesaikan kerja sama ini? Pastikan semua pembayaran ke media sudah lunas dan aman ya! ๐ค๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Selesaikan Kerja Sama? ๐โจ', 'Selesaikan Kerja Sama')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Yakin mau menyelesaikan kerja sama ini? Pastikan semua pembayaran ke media sudah lunas dan aman ya! ๐ค๐', 'Apakah Anda yakin ingin menyelesaikan kerja sama ini? Pastikan seluruh kewajiban pembayaran telah terpenuhi.')) ->action(function (Cooperation $record): void { // Verify all accepted media are paid $acceptedMedia = $record->cooperationMedia()->accepted()->get(); if ($acceptedMedia->isEmpty()) { CheerfulNotification::danger( - 'Tidak Ada Media! โ', - 'Tidak ada media yang menerima kerja sama ini. Tidak dapat diselesaikan.' + CheerfulNotification::getMessage('Tidak Ada Media! โ', 'Data Media Kosong'), + CheerfulNotification::getMessage('Tidak ada media yang menerima kerja sama ini. Tidak dapat diselesaikan.', 'Proses tidak dapat dilanjutkan karena tidak ada media yang terlibat dalam kerja sama ini.') )->send(); return; @@ -40,8 +40,8 @@ protected function setUp(): void if ($unpaidMedia->isNotEmpty()) { CheerfulNotification::danger( - 'Pembayaran Belum Lunas! โ ๏ธ', - 'Masih ada media yang belum dibayar. Harap selesaikan pembayaran untuk semua media yang menerima kerja sama.' + CheerfulNotification::getMessage('Pembayaran Belum Lunas! โ ๏ธ', 'Pembayaran Belum Terpenuhi'), + CheerfulNotification::getMessage('Masih ada media yang belum dibayar. Harap selesaikan pembayaran untuk semua media yang menerima kerja sama.', 'Terdapat kewajiban pembayaran yang belum diselesaikan untuk media terkait.') )->send(); $this->halt(); @@ -59,8 +59,8 @@ protected function setUp(): void ]); CheerfulNotification::success( - 'Kerja Sama Selesai! ๐โจ', - 'Alhamdulillah! Kerja sama ini telah resmi diselesaikan. Terima kasih atas kerja samanya! ๐๐' + CheerfulNotification::getMessage('Kerja Sama Selesai! ๐โจ', 'Kerja Sama Berhasil Diselesaikan'), + CheerfulNotification::getMessage('Alhamdulillah! Kerja sama ini telah resmi diselesaikan. Terima kasih atas kerja samanya! ๐๐', 'Proses kerja sama ini telah resmi ditutup dan diselesaikan.') )->send(); }) ->visible(function (Cooperation $record): bool { diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/CreateTaskAssignmentAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/CreateTaskAssignmentAction.php index f61d7ae..03cddf5 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/CreateTaskAssignmentAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/CreateTaskAssignmentAction.php @@ -82,8 +82,8 @@ protected function setUp(): void $partnerUser = $partnerMedia->company?->user; if ($partnerUser) { $partnerUser->notify(new BroadcastNotification([ - 'title' => 'Tugas Baru Telah Menanti! ๐โจ', - 'body' => "Halo! Admin sudah menetapkan tugas untuk kerja sama \"{$record->title}\". Yuk, cek detail tugasnya dan mulai buat laporannya! Semangat! ๐ช๐", + 'title' => CheerfulNotification::getMessage('Tugas Baru Telah Menanti! ๐โจ', 'Penugasan Kerja Sama Baru'), + 'body' => CheerfulNotification::getMessage("Halo! Admin sudah menetapkan tugas untuk kerja sama \"{$record->title}\". Yuk, cek detail tugasnya dan mulai buat laporannya! Semangat! ๐ช๐", "Admin telah menetapkan penugasan baru untuk kerja sama \"{$record->title}\". Silakan tinjau detail tugas dan laporan yang diperlukan."), 'action' => [ Action::make('view') ->label('Lihat') @@ -94,12 +94,12 @@ protected function setUp(): void } CheerfulNotification::success( - 'Penugasan Berhasil Dibuat! ๐โจ', - 'Mantap! Penugasan telah dibuat dan semua media terkait sudah diberi tahu. Mari kita pantau progresnya! ๐ช' + CheerfulNotification::getMessage('Penugasan Berhasil Dibuat! ๐โจ', 'Penugasan Berhasil Dibuat'), + CheerfulNotification::getMessage('Mantap! Penugasan telah dibuat dan semua media terkait sudah diberi tahu. Mari kita pantau progresnya! ๐ช', 'Penugasan telah berhasil dibuat dan seluruh media terkait telah dinotifikasi.') )->send(); }) - ->modalHeading('Buat Penugasan Baru ๐โจ') - ->modalDescription('Waktunya bagi-bagi tugas! Tentukan detail penugasan untuk para media biar mereka bisa langsung gaspol! ๐๐ช') + ->modalHeading(fn () => CheerfulNotification::getMessage('Buat Penugasan Baru ๐โจ', 'Buat Penugasan Baru')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Waktunya bagi-bagi tugas! Tentukan detail penugasan untuk para media biar mereka bisa langsung gaspol! ๐๐ช', 'Silakan tentukan detail penugasan untuk pihak media eksternal.')) ->modalSubmitActionLabel('Simpan') ->visible(function (Cooperation $record): bool { $user = auth()->user(); diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/ProceedToPaymentAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/ProceedToPaymentAction.php index 8e4f232..6883fa0 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/ProceedToPaymentAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/ProceedToPaymentAction.php @@ -20,8 +20,8 @@ protected function setUp(): void ->icon(Heroicon::OutlinedBanknotes) ->color('success') ->requiresConfirmation() - ->modalHeading('Lanjut ke Pembayaran? ๐ธ๐ณ') - ->modalDescription('Siap buat lanjut ke tahap pembayaran? Pastikan semua laporan sudah diverifikasi dulu ya! โ ๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Lanjut ke Pembayaran? ๐ธ๐ณ', 'Lanjutkan ke Pembayaran')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Siap buat lanjut ke tahap pembayaran? Pastikan semua laporan sudah diverifikasi dulu ya! โ ๐', 'Apakah Anda yakin ingin melanjutkan ke tahap pembayaran? Pastikan seluruh laporan telah diverifikasi.')) ->action(function (Cooperation $record): void { $record->update([ 'status' => CooperationStatus::PAYMENT, @@ -29,8 +29,8 @@ protected function setUp(): void ]); CheerfulNotification::success( - 'Tahap Pembayaran Dimulai! ๐ธโจ', - 'Kerja sama telah dipindahkan ke tahap pembayaran. Silakan proses pembayarannya ya! ๐' + CheerfulNotification::getMessage('Tahap Pembayaran Dimulai! ๐ธโจ', 'Tahap Pembayaran Aktif'), + CheerfulNotification::getMessage('Kerja sama telah dipindahkan ke tahap pembayaran. Silakan proses pembayarannya ya! ๐', 'Status kerja sama telah dialihkan ke tahap pembayaran.') )->send(); }) ->visible(function (Cooperation $record): bool { diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/RejectAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/RejectAction.php index c9eff74..2576c83 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/RejectAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/RejectAction.php @@ -33,8 +33,8 @@ protected function setUp(): void $cooperationMedia->update(['status' => ApprovalStatus::REJECTED]); CheerfulNotification::info( - 'Berhasil Ditolak ๐', - 'Terima kasih atas konfirmasinya. Pesan penolakan telah diteruskan ke Admin. ๐' + CheerfulNotification::getMessage('Berhasil Ditolak ๐', 'Tawaran Kerja Sama Ditolak'), + CheerfulNotification::getMessage('Terima kasih atas konfirmasinya. Pesan penolakan telah diteruskan ke Admin. ๐', 'Penolakan penawaran kerja sama telah berhasil dikirimkan ke pihak Admin.') )->send(); // Notify Admins @@ -42,8 +42,8 @@ protected function setUp(): void ->get() ->each(function ($admin) use ($record, $cooperationMedia): void { $admin->notify(new BroadcastNotification([ - 'title' => 'Yah, Tawaran Ditolak ๐๐ค', - 'body' => "Media {$cooperationMedia->partnerMedia->name} baru saja menolak penawaran kerja sama \"{$record->title}\". Mungkin di lain waktu ya! ๐", + 'title' => CheerfulNotification::getMessage('Yah, Tawaran Ditolak ๐๐ค', 'Tawaran Kerja Sama Ditolak Media'), + 'body' => CheerfulNotification::getMessage("Media {$cooperationMedia->partnerMedia->name} baru saja menolak penawaran kerja sama \"{$record->title}\". Mungkin di lain waktu ya! ๐", "Pihak media {$cooperationMedia->partnerMedia->name} telah menolak penawaran kerja sama \"{$record->title}\"."), ])); }); } diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/SendProposalAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/SendProposalAction.php index fc2d463..5a379a2 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/SendProposalAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/SendProposalAction.php @@ -93,8 +93,8 @@ protected function setUp(): void } CheerfulNotification::success( - 'Berhasil Diajukan! ๐', - 'Yeay! Proposal kerja sama Anda sudah terkirim ke Admin. Mohon ditunggu ya, semoga hasilnya memuaskan! โจ' + CheerfulNotification::getMessage('Berhasil Diajukan! ๐', 'Proposal Berhasil Dikirim'), + CheerfulNotification::getMessage('Yeay! Proposal kerja sama Anda sudah terkirim ke Admin. Mohon ditunggu ya, semoga hasilnya memuaskan! โจ', 'Proposal kerja sama Anda telah berhasil dikirimkan ke pihak Admin.') )->send(); // Notify Admin @@ -104,10 +104,12 @@ protected function setUp(): void $user = auth()->user(); $admin->notify(new BroadcastNotification([ - 'title' => $isRevision ? 'Pembaruan Proposal Kerja Sama โจ' : 'Ada Proposal Kerja Sama Baru! ๐', + 'title' => $isRevision + ? CheerfulNotification::getMessage('Pembaruan Proposal Kerja Sama โจ', 'Pembaruan Proposal Kerja Sama') + : CheerfulNotification::getMessage('Ada Proposal Kerja Sama Baru! ๐', 'Proposal Kerja Sama Baru'), 'body' => $isRevision - ? "Cihuy! {$user->name} baru saja memperbarui proposal kerja sama untuk media {$cooperationMedia->partnerMedia->name} pada kampanye {$record->title}. Yuk, cek perubahannya!" - : "Halo Admin! {$user->name} baru saja mengajukan proposal kerja sama baru untuk media {$cooperationMedia->partnerMedia->name} pada kampanye {$record->title}. Segera diproses ya! ๐", + ? CheerfulNotification::getMessage("Cihuy! {$user->name} baru saja memperbarui proposal kerja sama untuk media {$cooperationMedia->partnerMedia->name} pada kampanye {$record->title}. Yuk, cek perubahannya!", "Pengguna {$user->name} telah memperbarui proposal kerja sama untuk media {$cooperationMedia->partnerMedia->name} pada kampanye {$record->title}.") + : CheerfulNotification::getMessage("Halo Admin! {$user->name} baru saja mengajukan proposal kerja sama baru untuk media {$cooperationMedia->partnerMedia->name} pada kampanye {$record->title}. Segera diproses ya! ๐", "Pengguna {$user->name} telah mengajukan proposal kerja sama baru untuk media {$cooperationMedia->partnerMedia->name} pada kampanye {$record->title}."), 'action' => [ Action::make('view') ->label('Lihat') @@ -117,8 +119,8 @@ protected function setUp(): void }); } }) - ->modalHeading('Ajukan Proposal Kerja Sama ๐๐') - ->modalDescription('Ayo kirimkan proposal terbaikmu! Pastikan semua dokumen sudah lengkap ya biar admin makin sreg! โจ๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Ajukan Proposal Kerja Sama ๐๐', 'Ajukan Proposal Kerja Sama')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Ayo kirimkan proposal terbaikmu! Pastikan semua dokumen sudah lengkap ya biar admin makin sreg! โจ๐', 'Silakan ajukan proposal kerja sama Anda. Pastikan seluruh dokumen pendukung telah dilampirkan.')) ->modalSubmitActionLabel('Kirim Proposal') ->visible(function (Cooperation $record): bool { $user = auth()->user(); diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Media/PayAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Media/PayAction.php index 6c8a4f8..2d72e9f 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Media/PayAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Media/PayAction.php @@ -63,15 +63,15 @@ protected function setUp(): void ]); CheerfulNotification::success( - 'Pembayaran Berhasil! ๐ธโจ', - "Pembayaran untuk {$record->partnerMedia->name} telah berhasil dicatat." + CheerfulNotification::getMessage('Pembayaran Berhasil! ๐ธโจ', 'Pembayaran Berhasil Dicatat'), + CheerfulNotification::getMessage("Pembayaran untuk {$record->partnerMedia->name} telah berhasil dicatat.", "Proses pembayaran untuk {$record->partnerMedia->name} telah berhasil diselesaikan.") )->send(); $partnerUser = $record->partnerMedia->company?->user; if ($partnerUser) { $partnerUser->notify(new BroadcastNotification([ - 'title' => 'Pembayaran Telah Dikirim! ๐ธโจ', - 'body' => "Halo! Pembayaran untuk kerja sama \"{$record->cooperation->title}\" telah berhasil dikirim oleh Admin. Silakan cek detailnya ya! ๐", + 'title' => CheerfulNotification::getMessage('Pembayaran Telah Dikirim! ๐ธโจ', 'Pembayaran Kerja Sama Telah Dikirim'), + 'body' => CheerfulNotification::getMessage("Halo! Pembayaran untuk kerja sama \"{$record->cooperation->title}\" telah berhasil dikirim oleh Admin. Silakan cek detailnya ya! ๐", "Admin telah mengirimkan pembayaran untuk kerja sama \"{$record->cooperation->title}\". Silakan periksa detail transaksi Anda."), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Proposal/AcceptAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Proposal/AcceptAction.php index 3ef02cf..f1b796c 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Proposal/AcceptAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Proposal/AcceptAction.php @@ -22,8 +22,8 @@ protected function setUp(): void ->icon(Heroicon::OutlinedCheck) ->color('success') ->requiresConfirmation() - ->modalHeading('Terima Proposal Ini? โ โจ') - ->modalDescription('Yakin ingin menerima proposal kerja sama ini? Pastikan profil medianya sudah oke semua ya! ๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Terima Proposal Ini? โ โจ', 'Terima Proposal')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Yakin ingin menerima proposal kerja sama ini? Pastikan profil medianya sudah oke semua ya! ๐', 'Apakah Anda yakin ingin menyetujui proposal kerja sama ini?')) ->action(function (CooperationProposal $record): void { $record->update([ 'status' => ApprovalStatus::ACCEPTED, @@ -31,16 +31,16 @@ protected function setUp(): void ]); CheerfulNotification::success( - 'Proposal Diterima! โ โจ', - "Mantap! Proposal dari '{$record->partnerMedia->name}' telah berhasil diterima. Mari kita lanjut ke tahap berikutnya! ๐ช" + CheerfulNotification::getMessage('Proposal Diterima! โ โจ', 'Proposal Berhasil Disetujui'), + CheerfulNotification::getMessage("Mantap! Proposal dari '{$record->partnerMedia->name}' telah berhasil diterima. Mari kita lanjut ke tahap berikutnya! ๐ช", "Proposal kerja sama dari '{$record->partnerMedia->name}' telah berhasil disetujui.") )->send(); // Notify User (Partner) $partnerUser = $record->partnerMedia?->company?->user; if ($partnerUser) { $partnerUser->notify(new BroadcastNotification([ - 'title' => 'Horee! Proposal Disetujui ๐', - 'body' => 'Yeay! Proposal kerja sama Anda telah disetujui oleh Admin. Mari kita lanjut ke tahap berikutnya! ๐', + 'title' => CheerfulNotification::getMessage('Horee! Proposal Disetujui ๐', 'Proposal Kerja Sama Disetujui'), + 'body' => CheerfulNotification::getMessage('Yeay! Proposal kerja sama Anda telah disetujui oleh Admin. Mari kita lanjut ke tahap berikutnya! ๐', 'Proposal kerja sama Anda telah disetujui oleh pihak Admin.'), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Proposal/RejectAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Proposal/RejectAction.php index 3c430e6..5860052 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Proposal/RejectAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Proposal/RejectAction.php @@ -23,8 +23,8 @@ protected function setUp(): void $this->label('Tolak') ->icon(Heroicon::OutlinedXMark) ->color('danger') - ->modalHeading('Tolak Proposal Ini? ๐๐ค') - ->modalDescription('Yakin ingin menolak proposal ini? Berikan alasan biar media bisa melakukan perbaikan ke depannya! ๐๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Tolak Proposal Ini? ๐๐ค', 'Tolak Proposal')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Yakin ingin menolak proposal ini? Berikan alasan biar media bisa melakukan perbaikan ke depannya! ๐๐', 'Apakah Anda yakin ingin menolak proposal kerja sama ini? Harap berikan alasan penolakan.')) ->schema([ Textarea::make('reason') ->label('Alasan Penolakan') @@ -40,16 +40,16 @@ protected function setUp(): void $record->rejectionReasons()->create(['reason' => $data['reason']]); CheerfulNotification::warning( - 'Proposal Ditolak! ๐', - "Proposal dari '{$record->partnerMedia->name}' telah ditolak. Media terkait akan segera mendapatkan notifikasi. ๐" + CheerfulNotification::getMessage('Proposal Ditolak! ๐', 'Proposal Ditolak'), + CheerfulNotification::getMessage("Proposal dari '{$record->partnerMedia->name}' telah ditolak. Media terkait akan segera mendapatkan notifikasi. ๐", "Proposal kerja sama dari '{$record->partnerMedia->name}' telah ditolak.") )->send(); // Notify User (Partner) $partnerUser = $record->partnerMedia?->company?->user; if ($partnerUser) { $partnerUser->notify(new BroadcastNotification([ - 'title' => 'Maaf, Proposal Belum Diterima ๐', - 'body' => "Yah, maaf banget... proposal kerja sama Anda belum bisa kami terima saat ini. ๐\n\nAlasan: {$data['reason']}", + 'title' => CheerfulNotification::getMessage('Maaf, Proposal Belum Diterima ๐', 'Pemberitahuan Penolakan Proposal'), + 'body' => CheerfulNotification::getMessage("Yah, maaf banget... proposal kerja sama Anda belum bisa kami terima saat ini. ๐\n\nAlasan: {$data['reason']}", "Proposal kerja sama Anda telah ditolak oleh pihak Admin.\n\nAlasan: {$data['reason']}"), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Report/AcceptAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Report/AcceptAction.php index ca79544..7951750 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Report/AcceptAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Report/AcceptAction.php @@ -27,15 +27,15 @@ protected function setUp(): void ]); CheerfulNotification::success( - 'Laporan Diterima! โ โจ', - "Laporan '{$record->title}' telah berhasil diproses. Notifikasi sudah dikirim ke media terkait! ๐ช" + CheerfulNotification::getMessage('Laporan Diterima! โ โจ', 'Laporan Berhasil Disetujui'), + CheerfulNotification::getMessage("Laporan '{$record->title}' telah berhasil diproses. Notifikasi sudah dikirim ke media terkait! ๐ช", "Laporan '{$record->title}' telah disetujui dan notifikasi telah dikirimkan ke pihak media.") )->send(); $partnerUser = $record->mediaTaskAssignment?->partnerMedia?->company?->user; if ($partnerUser) { $partnerUser->notify(new BroadcastNotification([ - 'title' => 'Mantap! Laporan Diterima ๐โจ', - 'body' => "Hore! Laporan \"{$record->title}\" pada kerja sama \"{$record->mediaTaskAssignment->taskAssignment->cooperation->title}\" telah disetujui oleh Admin. Satu langkah lebih dekat! ๐", + 'title' => CheerfulNotification::getMessage('Mantap! Laporan Diterima ๐โจ', 'Laporan Kerja Sama Disetujui'), + 'body' => CheerfulNotification::getMessage("Hore! Laporan \"{$record->title}\" pada kerja sama \"{$record->mediaTaskAssignment->taskAssignment->cooperation->title}\" telah disetujui oleh Admin. Satu langkah lebih dekat! ๐", "Laporan \"{$record->title}\" untuk kerja sama \"{$record->mediaTaskAssignment->taskAssignment->cooperation->title}\" telah disetujui oleh Admin."), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Report/RejectAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Report/RejectAction.php index 12b84c5..3c76ec1 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Report/RejectAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Report/RejectAction.php @@ -29,8 +29,8 @@ protected function setUp(): void ->placeholder('Jelaskan alasan pengajuan ditolak...') ->required(), ]) - ->modalHeading('Tolak Laporan? ๐๐ค') - ->modalDescription('Apakah Anda yakin ingin menolak laporan ini? Sertakan alasan biar media bisa segera memperbaikinya ya! ๐๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Tolak Laporan? ๐๐ค', 'Tolak Laporan')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Apakah Anda yakin ingin menolak laporan ini? Sertakan alasan biar media bisa segera memperbaikinya ya! ๐๐', 'Apakah Anda yakin ingin menolak laporan ini? Silakan berikan alasan penolakan untuk perbaikan oleh pihak media.')) ->action(function (Report $record, array $data): void { $record->update([ 'status' => ApprovalStatus::REJECTED, @@ -39,15 +39,15 @@ protected function setUp(): void $record->rejectionReasons()->create(['reason' => $data['reason']]); CheerfulNotification::warning( - 'Laporan Ditolak! ๐', - "Laporan '{$record->title}' telah ditolak. Media terkait akan segera mendapatkan notifikasi untuk perbaikan. ๐" + CheerfulNotification::getMessage('Laporan Ditolak! ๐', 'Laporan Ditolak'), + CheerfulNotification::getMessage("Laporan '{$record->title}' telah ditolak. Media terkait akan segera mendapatkan notifikasi untuk perbaikan. ๐", "Laporan '{$record->title}' telah ditolak. Notifikasi perbaikan telah dikirimkan ke pihak media.") )->send(); $partnerUser = $record->mediaTaskAssignment?->partnerMedia?->company?->user; if ($partnerUser) { $partnerUser->notify(new BroadcastNotification([ - 'title' => 'Yah, Laporan Ditolak ๐', - 'body' => "Halo! Laporan \"{$record->title}\" pada kerja sama \"{$record->mediaTaskAssignment->taskAssignment->cooperation->title}\" ditolak oleh Admin. ๐ช\n\nCatatan Admin: {$data['reason']}", + 'title' => CheerfulNotification::getMessage('Yah, Laporan Ditolak ๐', 'Laporan Kerja Sama Ditolak'), + 'body' => CheerfulNotification::getMessage("Halo! Laporan \"{$record->title}\" pada kerja sama \"{$record->mediaTaskAssignment->taskAssignment->cooperation->title}\" ditolak oleh Admin. ๐ช\n\nCatatan Admin: {$data['reason']}", "Laporan \"{$record->title}\" untuk kerja sama \"{$record->mediaTaskAssignment->taskAssignment->cooperation->title}\" ditolak oleh Admin.\n\nAlasan: {$data['reason']}"), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Resources/Manage/Cooperations/CooperationResource.php b/app/Filament/Resources/Manage/Cooperations/CooperationResource.php index 6628ad2..7d113c3 100644 --- a/app/Filament/Resources/Manage/Cooperations/CooperationResource.php +++ b/app/Filament/Resources/Manage/Cooperations/CooperationResource.php @@ -3,6 +3,7 @@ namespace App\Filament\Resources\Manage\Cooperations; use App\Enums\RoleEnum; +use App\Enums\UxStyle; use App\Filament\Resources\Manage\Cooperations\Pages\CreateCooperation; use App\Filament\Resources\Manage\Cooperations\Pages\EditCooperation; use App\Filament\Resources\Manage\Cooperations\Pages\ListCooperations; @@ -14,6 +15,7 @@ use App\Filament\Resources\Manage\Cooperations\RelationManagers\TaskAssignmentRelationManager; use App\Filament\Resources\Manage\Cooperations\Schemas\CooperationForm; use App\Filament\Resources\Manage\Cooperations\Tables\CooperationsTable; +use App\Filament\Support\CheerfulNotification; use App\Models\Cooperation; use BackedEnum; use Filament\Actions\Action; @@ -72,7 +74,9 @@ public static function infolist(Schema $schema): Schema { return $schema ->components([ - Section::make('Informasi Kerja Sama') + Section::make(fn () => CheerfulNotification::getMessage('Informasi Kerja Sama ๐ค', 'Informasi Kerja Sama')) + ->description(fn () => CheerfulNotification::getMessage('Detail lengkap mengenai data kerja sama yang sedang berjalan. ๐คโจ', 'Informasi detail mengenai pelaksanaan kerja sama.')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-hand-raised' : null) ->headerActions([ Action::make('status') ->label(fn (Cooperation $record): ?string => $record->status->getLabel()) diff --git a/app/Filament/Resources/Manage/Cooperations/Pages/CreateCooperation.php b/app/Filament/Resources/Manage/Cooperations/Pages/CreateCooperation.php index 2abd85b..feb9f26 100644 --- a/app/Filament/Resources/Manage/Cooperations/Pages/CreateCooperation.php +++ b/app/Filament/Resources/Manage/Cooperations/Pages/CreateCooperation.php @@ -15,7 +15,15 @@ class CreateCooperation extends CreateRecord { protected static string $resource = CooperationResource::class; - protected static ?string $title = 'Tambah Kerja Sama'; + public function getTitle(): string + { + return CheerfulNotification::getMessage('Tambah Kerja Sama Seru! ๐โจ', 'Tambah Kerja Sama'); + } + + public function getSubheading(): ?string + { + return CheerfulNotification::getMessage('Yuk, buat penawaran kerja sama yang menarik buat para media! ๐ช๐', 'Silakan isi formulir di bawah ini dengan lengkap untuk pengajuan kerja sama baru.'); + } protected function getHeaderActions(): array { @@ -68,8 +76,8 @@ protected function afterCreate(): void $partnerUser = $media->company?->user; if ($partnerUser) { $partnerUser->notify(new BroadcastNotification([ - 'title' => 'Ada Penawaran Kerja Sama Baru! ๐คโจ', - 'body' => "Halo! Admin baru saja menawarkan kerja sama \"{$record->title}\" untuk media {$media->name}. Yuk, cek detailnya dan berikan tanggapanmu! ๐", + 'title' => CheerfulNotification::getMessage('Ada Penawaran Kerja Sama Baru! ๐คโจ', 'Penawaran Kerja Sama Baru'), + 'body' => CheerfulNotification::getMessage("Halo! Admin baru saja menawarkan kerja sama \"{$record->title}\" untuk media {$media->name}. Yuk, cek detailnya dan berikan tanggapanmu! ๐", "Admin telah menawarkan kerja sama \"{$record->title}\" untuk media {$media->name}."), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Resources/Manage/Cooperations/Pages/EditCooperation.php b/app/Filament/Resources/Manage/Cooperations/Pages/EditCooperation.php index d584d86..cd9554a 100644 --- a/app/Filament/Resources/Manage/Cooperations/Pages/EditCooperation.php +++ b/app/Filament/Resources/Manage/Cooperations/Pages/EditCooperation.php @@ -14,6 +14,16 @@ class EditCooperation extends EditRecord { protected static string $resource = CooperationResource::class; + public function getTitle(): string + { + return CheerfulNotification::getMessage('Sempurnakan Kerja Sama ๐โจ', 'Ubah Data Kerja Sama'); + } + + public function getSubheading(): ?string + { + return CheerfulNotification::getMessage('Perbarui detailnya biar penawaran makin mantap dan segar lagi! ๐ ๏ธ๐', 'Silakan perbarui informasi kerja sama pada formulir di bawah ini.'); + } + public function mount(int|string $record): void { parent::mount($record); diff --git a/app/Filament/Resources/Manage/Cooperations/RelationManagers/CooperationProposalRelationManager.php b/app/Filament/Resources/Manage/Cooperations/RelationManagers/CooperationProposalRelationManager.php index a757340..b527500 100644 --- a/app/Filament/Resources/Manage/Cooperations/RelationManagers/CooperationProposalRelationManager.php +++ b/app/Filament/Resources/Manage/Cooperations/RelationManagers/CooperationProposalRelationManager.php @@ -107,9 +107,9 @@ public function table(Table $table): Table BulkActionGroup::make([ DeleteBulkAction::make() ->successNotification( - CheerfulNotification::delete( - 'Proposal Dihapus! ๐๏ธ', - 'Semua proposal yang dipilih telah berhasil dihapus dari sistem. ๐' + fn () => CheerfulNotification::success( + CheerfulNotification::getMessage('Proposal Dihapus! ๐๏ธ', 'Proposal Dihapus'), + CheerfulNotification::getMessage('Semua proposal yang dipilih telah berhasil dihapus dari sistem. ๐', 'Seluruh data proposal yang dipilih telah berhasil dihapus dari sistem.') ) ), ]), diff --git a/app/Filament/Resources/Manage/Cooperations/RelationManagers/ReportRelationManager.php b/app/Filament/Resources/Manage/Cooperations/RelationManagers/ReportRelationManager.php index de72fc1..a13173d 100644 --- a/app/Filament/Resources/Manage/Cooperations/RelationManagers/ReportRelationManager.php +++ b/app/Filament/Resources/Manage/Cooperations/RelationManagers/ReportRelationManager.php @@ -154,8 +154,8 @@ public function table(Table $table): Table CreateAction::make() ->label('Buat Laporan') ->modalWidth(Width::Large) - ->modalHeading('Sampaikan Laporan Baru ๐๐') - ->modalDescription('Ayo kirimkan hasil kerja kerasmu! Isi detail laporannya biar admin bisa langsung verifikasi ya! ๐ชโจ') + ->modalHeading(fn () => CheerfulNotification::getMessage('Sampaikan Laporan Baru ๐๐', 'Buat Laporan Baru')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Ayo kirimkan hasil kerja kerasmu! Isi detail laporannya biar admin bisa langsung verifikasi ya! ๐ชโจ', 'Silakan masukkan detail laporan pekerjaan Anda pada formulir di bawah ini.')) ->mutateDataUsing(function (array $data): array { $taskAssignment = $this->getOwnerRecord()->taskAssignment; @@ -174,8 +174,8 @@ public function table(Table $table): Table ->successNotification(null) ->after(function (Report $record): void { CheerfulNotification::success( - 'Laporan Berhasil Terkirim! ๐โจ', - 'Hore! Laporan Anda sudah masuk ke sistem. Admin akan segera memeriksanya. Terima kasih atas kerja kerasnya! ๐ช' + CheerfulNotification::getMessage('Laporan Berhasil Terkirim! ๐โจ', 'Laporan Berhasil Terkirim'), + CheerfulNotification::getMessage('Hore! Laporan Anda sudah masuk ke sistem. Admin akan segera memeriksanya. Terima kasih atas kerja kerasnya! ๐ช', 'Laporan Anda telah berhasil dikirimkan ke sistem dan sedang menunggu verifikasi admin.') )->send(); // Notify Admins @@ -185,8 +185,8 @@ public function table(Table $table): Table $user = auth()->user(); $admin->notify(new BroadcastNotification([ - 'title' => 'Ada Laporan Baru! ๐โจ', - 'body' => "Halo Admin! {$user->name} baru saja mengirimkan laporan \"{$record->title}\" untuk kerja sama \"{$this->getOwnerRecord()->title}\". Yuk, dicek! ๐", + 'title' => CheerfulNotification::getMessage('Ada Laporan Baru! ๐โจ', 'Laporan Kerja Sama Baru'), + 'body' => CheerfulNotification::getMessage("Halo Admin! {$user->name} baru saja mengirimkan laporan \"{$record->title}\" untuk kerja sama \"{$this->getOwnerRecord()->title}\". Yuk, dicek! ๐", "Pengguna {$user->name} telah mengirimkan laporan baru \"{$record->title}\" untuk pengajuan kerja sama \"{$this->getOwnerRecord()->title}\"."), 'action' => [ Action::make('view') ->label('Lihat') diff --git a/app/Filament/Resources/Manage/Cooperations/RelationManagers/TaskAssignmentRelationManager.php b/app/Filament/Resources/Manage/Cooperations/RelationManagers/TaskAssignmentRelationManager.php index 0448af1..229e9f0 100644 --- a/app/Filament/Resources/Manage/Cooperations/RelationManagers/TaskAssignmentRelationManager.php +++ b/app/Filament/Resources/Manage/Cooperations/RelationManagers/TaskAssignmentRelationManager.php @@ -72,38 +72,34 @@ public function table(Table $table): Table return $cooperation->proposal()->accepted()->exists() && ! $cooperation->taskAssignment()->exists(); }) - ->successNotification( - CheerfulNotification::create( - 'Penugasan Dibuat! ๐โจ', - 'Tugas baru berhasil ditetapkan. Media terkait akan segera mengetahuinya! ๐ช' - ) + ->successNotification(fn () => CheerfulNotification::success( + CheerfulNotification::getMessage('Penugasan Dibuat! ๐โจ', 'Penugasan Berhasil'), + CheerfulNotification::getMessage('Tugas baru berhasil ditetapkan. Media terkait akan segera mengetahuinya! ๐ช', 'Tugas baru telah berhasil ditetapkan untuk pihak media.') + ) ), ]) ->recordActions([ EditAction::make() - ->successNotification( - CheerfulNotification::update( - 'Penugasan Diperbarui! โ ', - 'Perubahan pada penugasan berhasil disimpan dengan aman. ๐' - ) + ->successNotification(fn () => CheerfulNotification::success( + CheerfulNotification::getMessage('Penugasan Diperbarui! โ ', 'Penugasan Diperbarui'), + CheerfulNotification::getMessage('Perubahan pada penugasan berhasil disimpan dengan aman. ๐', 'Perubahan pada detail penugasan telah berhasil disimpan.') + ) ), DeleteAction::make() - ->successNotification( - CheerfulNotification::delete( - 'Penugasan Dihapus! ๐๏ธ', - 'Penugasan telah berhasil dihapus dari sistem. ๐' - ) + ->successNotification(fn () => CheerfulNotification::success( + CheerfulNotification::getMessage('Penugasan Dihapus! ๐๏ธ', 'Penugasan Dihapus'), + CheerfulNotification::getMessage('Penugasan telah berhasil dihapus dari sistem. ๐', 'Data penugasan telah berhasil dihapus dari sistem.') + ) ), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make() - ->successNotification( - CheerfulNotification::delete( - 'Banyak Penugasan Dihapus! ๐๏ธ๐', - 'Semua penugasan yang dipilih telah dihapus dari sistem. ๐งน' - ) + ->successNotification(fn () => CheerfulNotification::success( + CheerfulNotification::getMessage('Banyak Penugasan Dihapus! ๐๏ธ๐', 'Penugasan Berhasil Dihapus'), + CheerfulNotification::getMessage('Semua penugasan yang dipilih telah dihapus dari sistem. ๐งน', 'Seluruh data penugasan yang dipilih telah berhasil dihapus.') + ) ), ]), ]) diff --git a/app/Filament/Resources/Manage/Cooperations/Schemas/CooperationForm.php b/app/Filament/Resources/Manage/Cooperations/Schemas/CooperationForm.php index 0fe8a3e..7aed9c4 100644 --- a/app/Filament/Resources/Manage/Cooperations/Schemas/CooperationForm.php +++ b/app/Filament/Resources/Manage/Cooperations/Schemas/CooperationForm.php @@ -2,6 +2,8 @@ namespace App\Filament\Resources\Manage\Cooperations\Schemas; +use App\Enums\UxStyle; +use App\Filament\Support\CheerfulNotification; use App\Models\PartnerMedia; use Asmit\FilamentUpload\Forms\Components\AdvancedFileUpload; use Filament\Actions\Action; @@ -23,9 +25,9 @@ public static function configure(Schema $schema): Schema { return $schema ->components([ - Section::make('Detail Kerja Sama ๐ค') - ->description('Lengkapi informasi mengenai judul, durasi, dan media yang terlibat.') - ->icon('heroicon-o-hand-raised') + Section::make(fn () => CheerfulNotification::getMessage('Detail Kerja Sama ๐ค', 'Detail Kerja Sama')) + ->description(fn () => CheerfulNotification::getMessage('Ayo lengkapi informasi mengenai judul, durasi, dan media yang diajak kerja sama! ๐คโจ', 'Lengkapi informasi mengenai judul, durasi, dan media yang terlibat.')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-hand-raised' : null) ->schema([ TextInput::make('title') ->label('Judul Kerja Sama') @@ -86,9 +88,9 @@ public static function configure(Schema $schema): Schema ]) ->columnSpan(2), - Section::make('Lampiran & Media ๐ผ๏ธ') - ->description('Unggah banner promosi dan template untuk pengajuan.') - ->icon('heroicon-o-paper-clip') + Section::make(fn () => CheerfulNotification::getMessage('Lampiran & Media ๐ผ๏ธ', 'Lampiran & Media')) + ->description(fn () => CheerfulNotification::getMessage('Jangan lupa unggah banner promosi dan template pengajuannya ya! ๐ผ๏ธโจ', 'Unggah banner promosi dan template untuk pengajuan.')) + ->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-paper-clip' : null) ->schema([ SpatieMediaLibraryFileUpload::make('banner') ->label('Banner Promosi') diff --git a/app/Filament/Resources/Manage/Cooperations/Tables/CooperationsTable.php b/app/Filament/Resources/Manage/Cooperations/Tables/CooperationsTable.php index 56bdc63..3c61acb 100644 --- a/app/Filament/Resources/Manage/Cooperations/Tables/CooperationsTable.php +++ b/app/Filament/Resources/Manage/Cooperations/Tables/CooperationsTable.php @@ -17,6 +17,7 @@ use App\Filament\Resources\Manage\Cooperations\Actions\Cooperation\ProceedToPaymentAction; use App\Filament\Resources\Manage\Cooperations\Actions\Cooperation\RejectAction; use App\Filament\Resources\Manage\Cooperations\Actions\Cooperation\SendProposalAction; +use App\Filament\Support\CheerfulNotification; use App\Models\Cooperation; use Carbon\CarbonInterface; use Filament\Actions\BulkActionGroup; @@ -286,7 +287,7 @@ public static function configure(Table $table): Table ]), ]) ->emptyStateIcon(Heroicon::OutlinedHandRaised) - ->emptyStateDescription('Setelah Anda membuat data pertama, maka akan muncul disini.') + ->emptyStateDescription(fn () => CheerfulNotification::getMessage('Belum ada data kerja sama nih. Yuk, mulai buat data pertama Anda! ๐คโจ', 'Belum ada data kerja sama yang tersedia saat ini.')) ->defaultSort('created_at', 'desc') ->deferFilters(false) ->paginated([25, 50, 100, 'all']) diff --git a/app/Filament/Resources/Manage/DataChanges/Actions/DataChangeRequest/AcceptAction.php b/app/Filament/Resources/Manage/DataChanges/Actions/DataChangeRequest/AcceptAction.php index f40f2ba..c595413 100644 --- a/app/Filament/Resources/Manage/DataChanges/Actions/DataChangeRequest/AcceptAction.php +++ b/app/Filament/Resources/Manage/DataChanges/Actions/DataChangeRequest/AcceptAction.php @@ -24,8 +24,8 @@ protected function setUp(): void ->icon(Heroicon::OutlinedCheck) ->color('success') ->requiresConfirmation() - ->modalHeading('Setujui Perubahan Data? โ โจ') - ->modalDescription('Siap untuk menerapkan perubahan data ini secara otomatis ke sistem? Pastikan semuanya sudah sesuai ya! ๐๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Setujui Perubahan Data? โ โจ', 'Setujui Perubahan Data')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Siap untuk menerapkan perubahan data ini secara otomatis ke sistem? Pastikan semuanya sudah sesuai ya! ๐๐', 'Apakah Anda yakin ingin menerapkan perubahan data ini ke dalam sistem?')) ->action(function (DataChangeRequest $record): void { $entity = $record->entity; $newData = $record->new_data; @@ -42,14 +42,14 @@ protected function setUp(): void ]); CheerfulNotification::success( - 'Penghapusan Disetujui! โ ', - 'Data telah berhasil dihapus sesuai dengan permohonan.' + CheerfulNotification::getMessage('Penghapusan Disetujui! โ ', 'Penghapusan Disetujui'), + CheerfulNotification::getMessage('Data telah berhasil dihapus sesuai dengan permohonan.', 'Data telah berhasil dihapus sesuai dengan permintaan permohonan.') )->send(); // Notify User $record->user?->notify(new BroadcastNotification([ - 'title' => 'Permohonan Penghapusan Disetujui โจ', - 'body' => "Halo! Permohonan penghapusan data Anda untuk {$record->change_reason} telah disetujui oleh admin. ๐", + 'title' => CheerfulNotification::getMessage('Permohonan Penghapusan Disetujui โจ', 'Permohonan Penghapusan Disetujui'), + 'body' => CheerfulNotification::getMessage("Halo! Permohonan penghapusan data Anda untuk {$record->change_reason} telah disetujui oleh admin. ๐", "Permohonan penghapusan data untuk {$record->change_reason} telah disetujui oleh Admin."), ])); return; @@ -147,14 +147,14 @@ protected function setUp(): void ]); CheerfulNotification::success( - 'Perubahan Disetujui! โ ', - 'Data telah berhasil diperbarui sesuai dengan permohonan.' + CheerfulNotification::getMessage('Perubahan Disetujui! โ ', 'Perubahan Disetujui'), + CheerfulNotification::getMessage('Data telah berhasil diperbarui sesuai dengan permohonan.', 'Data telah berhasil diperbarui sesuai dengan permintaan permohonan.') )->send(); // Notify User $record->user?->notify(new BroadcastNotification([ - 'title' => 'Permohonan Perubahan Disetujui โจ', - 'body' => "Halo! Permohonan perubahan data Anda untuk {$record->change_reason} telah disetujui oleh admin. Cek sekarang ya! ๐", + 'title' => CheerfulNotification::getMessage('Permohonan Perubahan Disetujui โจ', 'Permohonan Perubahan Disetujui'), + 'body' => CheerfulNotification::getMessage("Halo! Permohonan perubahan data Anda untuk {$record->change_reason} telah disetujui oleh admin. Cek sekarang ya! ๐", "Permohonan perubahan data untuk {$record->change_reason} telah disetujui oleh Admin."), ])); }) ->visible(fn (DataChangeRequest $record): bool => $record->status === DataChangeStatus::PENDING && ! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value)); diff --git a/app/Filament/Resources/Manage/DataChanges/Actions/DataChangeRequest/RejectAction.php b/app/Filament/Resources/Manage/DataChanges/Actions/DataChangeRequest/RejectAction.php index 30aad6f..e453b89 100644 --- a/app/Filament/Resources/Manage/DataChanges/Actions/DataChangeRequest/RejectAction.php +++ b/app/Filament/Resources/Manage/DataChanges/Actions/DataChangeRequest/RejectAction.php @@ -29,8 +29,8 @@ protected function setUp(): void ->placeholder('Berikan alasan mengapa permohonan ini ditolak...') ->required(), ]) - ->modalHeading('Tolak Perubahan Data? ๐๐ค') - ->modalDescription('Yakin ingin menolak permohonan ini? Pastikan alasannya jelas biar pemohon nggak bingung ya! ๐๐') + ->modalHeading(fn () => CheerfulNotification::getMessage('Tolak Perubahan Data? ๐๐ค', 'Tolak Perubahan Data')) + ->modalDescription(fn () => CheerfulNotification::getMessage('Yakin ingin menolak permohonan ini? Pastikan alasannya jelas biar pemohon nggak bingung ya! ๐๐', 'Apakah Anda yakin ingin menolak permohonan perubahan data ini?')) ->action(function (DataChangeRequest $record, array $data): void { $record->update([ 'status' => DataChangeStatus::REJECTED, @@ -50,14 +50,14 @@ protected function setUp(): void } CheerfulNotification::info( - 'Permohonan Ditolak ๐', - 'Permohonan perubahan data telah ditolak. ๐' + CheerfulNotification::getMessage('Permohonan Ditolak ๐', 'Permohonan Ditolak'), + CheerfulNotification::getMessage('Permohonan perubahan data telah ditolak. ๐', 'Permohonan perubahan data telah ditolak oleh Admin.') )->send(); // Notify User $record->user?->notify(new BroadcastNotification([ - 'title' => 'Permohonan Perubahan Ditolak ๐', - 'body' => "Halo! Mohon maaf, permohonan perubahan data Anda untuk {$record->change_reason} ditolak oleh admin. Alasan: {$data['rejection_reason']} ๐", + 'title' => CheerfulNotification::getMessage('Permohonan Perubahan Ditolak ๐', 'Permohonan Perubahan Ditolak'), + 'body' => CheerfulNotification::getMessage("Halo! Mohon maaf, permohonan perubahan data Anda untuk {$record->change_reason} ditolak oleh admin. Alasan: {$data['rejection_reason']} ๐", "Permohonan perubahan data Anda untuk {$record->change_reason} telah ditolak oleh Admin.\n\nAlasan: {$data['rejection_reason']}"), ])); }) ->visible(fn (DataChangeRequest $record): bool => $record->status === DataChangeStatus::PENDING && ! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value)) diff --git a/app/Filament/Resources/Manage/DataChanges/DataChangesResource.php b/app/Filament/Resources/Manage/DataChanges/DataChangesResource.php index f1712eb..264f92d 100644 --- a/app/Filament/Resources/Manage/DataChanges/DataChangesResource.php +++ b/app/Filament/Resources/Manage/DataChanges/DataChangesResource.php @@ -10,6 +10,7 @@ use App\Filament\Resources\Manage\DataChanges\Actions\DataChangeRequest\RejectAction; use App\Filament\Resources\Manage\DataChanges\Pages\ManageDataChanges; use App\Filament\Resources\Manage\DataChanges\Pages\ViewDataChange; +use App\Filament\Support\CheerfulNotification; use App\Models\Company; use App\Models\DataChangeRequest; use App\Models\Journalist; @@ -119,10 +120,10 @@ public static function infolist(Schema $schema): Schema if (isset($new['__delete_request__']) && $new['__delete_request__'] === true) { return "
User mengajukan penghapusan permanen untuk data ini. Semua informasi terkait akan dihapus setelah disetujui.
+".CheerfulNotification::getMessage('User mengajukan penghapusan permanen untuk data ini. Semua informasi terkait akan dihapus setelah disetujui.', 'Pengguna mengajukan permohonan penghapusan permanen untuk data ini.').'
Berikut adalah data baru yang akan dibuat.
+".CheerfulNotification::getMessage('Berikut adalah data baru yang akan dibuat.', 'Berikut adalah rincian data baru yang diajukan.')."