feat: Introduce UxStyle enum for enhanced user experience and update modal headings and descriptions across Filament actions to utilize cheerful notifications, improving clarity and engagement.
This commit is contained in:
parent
573615c979
commit
0086ff50d2
19
app/Enums/UxStyle.php
Normal file
19
app/Enums/UxStyle.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
use Filament\Support\Contracts\HasLabel;
|
||||
|
||||
enum UxStyle: string implements HasLabel
|
||||
{
|
||||
case CHEERFUL = 'cheerful';
|
||||
case FORMAL = 'formal';
|
||||
|
||||
public function getLabel(): ?string
|
||||
{
|
||||
return match ($this) {
|
||||
self::CHEERFUL => 'Ceria (Banyak Emoji) 🚀✨',
|
||||
self::FORMAL => 'Formal & Profesional 💼',
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
),
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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([]);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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([
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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'])
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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}\"."),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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())
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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.')
|
||||
)
|
||||
),
|
||||
]),
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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.')
|
||||
)
|
||||
),
|
||||
]),
|
||||
])
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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'])
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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 "
|
||||
<div style='background-color:#fee2e2; border:1px solid #f87171; color:#991b1b; padding:16px; border-radius:8px; margin-bottom:16px;'>
|
||||
<div style='font-weight:700; font-size:1.125rem; margin-bottom:4px;'>🚮 Permohonan Penghapusan Data</div>
|
||||
<p style='font-size:0.875rem;'>User mengajukan penghapusan permanen untuk data ini. Semua informasi terkait akan dihapus setelah disetujui.</p>
|
||||
<div style='font-weight:700; font-size:1.125rem; margin-bottom:4px;'>".CheerfulNotification::getMessage('🚮 Permohonan Penghapusan Data', 'Permohonan Penghapusan Data')."</div>
|
||||
<p style='font-size:0.875rem;'>".CheerfulNotification::getMessage('User mengajukan penghapusan permanen untuk data ini. Semua informasi terkait akan dihapus setelah disetujui.', 'Pengguna mengajukan permohonan penghapusan permanen untuk data ini.').'</p>
|
||||
</div>
|
||||
";
|
||||
';
|
||||
}
|
||||
|
||||
// 2. New Addition Request
|
||||
@ -143,8 +144,8 @@ public static function infolist(Schema $schema): Schema
|
||||
|
||||
return "
|
||||
<div style='background-color:#f0fdf4; border:1px solid #bbf7d0; color:#166534; padding:16px; border-radius:8px; margin-bottom:16px;'>
|
||||
<div style='font-weight:700; font-size:1.125rem; margin-bottom:4px;'>✨ Permohonan Penambahan Data</div>
|
||||
<p style='font-size:0.875rem;'>Berikut adalah data baru yang akan dibuat.</p>
|
||||
<div style='font-weight:700; font-size:1.125rem; margin-bottom:4px;'>".CheerfulNotification::getMessage('✨ Permohonan Penambahan Data', 'Permohonan Penambahan Data')."</div>
|
||||
<p style='font-size:0.875rem;'>".CheerfulNotification::getMessage('Berikut adalah data baru yang akan dibuat.', 'Berikut adalah rincian data baru yang diajukan.')."</p>
|
||||
</div>
|
||||
{$rows}
|
||||
";
|
||||
@ -204,9 +205,9 @@ public static function table(Table $table): Table
|
||||
->searchable()
|
||||
->sortable()
|
||||
->description(fn (DataChangeRequest $record): ?string => match (true) {
|
||||
isset($record->new_data['__delete_request__']) => '🗑️ Penghapusan',
|
||||
empty($record->old_data) => '✨ Penambahan',
|
||||
default => '📝 Perubahan',
|
||||
isset($record->new_data['__delete_request__']) => CheerfulNotification::getMessage('🗑️ Penghapusan', 'Penghapusan'),
|
||||
empty($record->old_data) => CheerfulNotification::getMessage('✨ Penambahan', 'Penambahan'),
|
||||
default => CheerfulNotification::getMessage('📝 Perubahan', 'Perubahan'),
|
||||
})
|
||||
->formatStateUsing(fn (DataChangeRequest $record): ?string => match ($record->entity_type) {
|
||||
Company::class => 'Perusahaan',
|
||||
@ -267,7 +268,7 @@ public static function table(Table $table): Table
|
||||
]),
|
||||
])
|
||||
->emptyStateIcon(Heroicon::OutlinedDocumentText)
|
||||
->emptyStateDescription('Belum ada permohonan perubahan data.')
|
||||
->emptyStateDescription(fn () => CheerfulNotification::getMessage('Belum ada permohonan baru nih! Semua aman dan terkendali. ✨✅', 'Belum ada permohonan perubahan data yang tersedia.'))
|
||||
->defaultSort('created_at', 'desc')
|
||||
->deferFilters(false)
|
||||
->paginated([25, 50, 100, 'all'])
|
||||
|
||||
@ -21,8 +21,8 @@ protected function setUp(): void
|
||||
parent::setUp();
|
||||
|
||||
$this->label('Tambah')
|
||||
->modalHeading('Tambah Jurnalis Baru 🚀✨')
|
||||
->modalDescription('Yuk, masukkan data jurnalisnya dengan lengkap biar sistem makin mantap! 💪😊')
|
||||
->modalHeading(fn () => CheerfulNotification::getMessage('Tambah Jurnalis Baru 🚀✨', 'Tambah Jurnalis'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Yuk, masukkan data jurnalisnya dengan lengkap biar sistem makin mantap! 💪😊', 'Silakan masukkan detail data jurnalis baru di bawah ini.'))
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
->successNotification(null)
|
||||
@ -94,16 +94,16 @@ protected function setUp(): void
|
||||
]);
|
||||
|
||||
CheerfulNotification::success(
|
||||
'Permohonan Berhasil 🎉',
|
||||
'Data jurnalis baru telah dikirim dan sedang menunggu verifikasi admin ⏳'
|
||||
CheerfulNotification::getMessage('Permohonan Berhasil 🎉', 'Permohonan Berhasil'),
|
||||
CheerfulNotification::getMessage('Data jurnalis baru telah dikirim dan sedang menunggu verifikasi admin ⏳', 'Permohonan penambahan jurnalis baru sedang menunggu verifikasi.')
|
||||
)->send();
|
||||
|
||||
User::superAdmin()
|
||||
->get()
|
||||
->each(function ($admin) use ($dataChangeRequest, $user): void {
|
||||
$admin->notify(new BroadcastNotification([
|
||||
'title' => 'Ada Penambahan Jurnalis Baru ✨',
|
||||
'body' => 'Halooo Admin! 👋 '.$user->name.' baru saja menambahkan jurnalis baru. Yuk, cek detailnya! 🚀',
|
||||
'title' => CheerfulNotification::getMessage('Ada Penambahan Jurnalis Baru ✨', 'Penambahan Jurnalis Baru'),
|
||||
'body' => CheerfulNotification::getMessage('Halooo Admin! 👋 '.$user->name.' baru saja menambahkan jurnalis baru. Yuk, cek detailnya! 🚀', 'Pengguna '.$user->name.' telah menambahkan jurnalis baru ke dalam sistem.'),
|
||||
'action' => [
|
||||
Action::make('view')
|
||||
->label('Lihat')
|
||||
|
||||
@ -23,7 +23,10 @@ protected function setUp(): void
|
||||
|
||||
$this->successNotification(null);
|
||||
|
||||
$this->modalHeading(fn () => auth()->user()->company?->verificationRequest?->status === VerificationStatus::APPROVED ? 'Mau Ajukan Penghapusan Jurnalis? 🗑️📬' : 'Betulan Mau Hapus Jurnalis? 🗑️🤔');
|
||||
$this->modalHeading(fn () => auth()->user()->company?->verificationRequest?->status === VerificationStatus::APPROVED
|
||||
? CheerfulNotification::getMessage('Mau Ajukan Penghapusan Jurnalis? 🗑️📬', 'Ajukan Penghapusan Jurnalis')
|
||||
: CheerfulNotification::getMessage('Betulan Mau Hapus Jurnalis? 🗑️🤔', 'Hapus Jurnalis')
|
||||
);
|
||||
|
||||
$this->schema(fn () => auth()->user()->company?->verificationRequest?->status === VerificationStatus::APPROVED ? [
|
||||
Textarea::make('deletion_reason')
|
||||
@ -43,8 +46,8 @@ protected function setUp(): void
|
||||
|
||||
if ($existingRequest) {
|
||||
CheerfulNotification::warning(
|
||||
'Pengajuan Sudah Ada ⏳',
|
||||
'Masih ada pengajuan penghapusan jurnalis yang sedang menunggu verifikasi.'
|
||||
CheerfulNotification::getMessage('Pengajuan Sudah Ada ⏳', 'Pengajuan Sedang Diproses'),
|
||||
CheerfulNotification::getMessage('Masih ada pengajuan penghapusan jurnalis yang sedang menunggu verifikasi.', 'Pengajuan penghapusan jurnalis ini masih dalam proses verifikasi admin.')
|
||||
)->send();
|
||||
|
||||
return;
|
||||
@ -60,16 +63,16 @@ protected function setUp(): void
|
||||
]);
|
||||
|
||||
CheerfulNotification::success(
|
||||
'Permohonan Berhasil 🎉',
|
||||
'Permohonan penghapusan jurnalis telah dikirim dan sedang menunggu verifikasi admin ⏳'
|
||||
CheerfulNotification::getMessage('Permohonan Berhasil 🎉', 'Permohonan Berhasil'),
|
||||
CheerfulNotification::getMessage('Permohonan penghapusan jurnalis telah dikirim dan sedang menunggu verifikasi admin ⏳', 'Pengajuan penghapusan jurnalis telah berhasil dikirim.')
|
||||
)->send();
|
||||
|
||||
User::superAdmin()
|
||||
->get()
|
||||
->each(function ($admin) use ($user, $record, $dataChangeRequest): void {
|
||||
$admin->notify(new BroadcastNotification([
|
||||
'title' => 'Ada Pengajuan Penghapusan Jurnalis ✨',
|
||||
'body' => 'Halooo Admin! 👋 '.$user->name.' baru saja mengajukan penghapusan jurnalis '.$record->name.'. Yuk, cek detailnya! 🚀',
|
||||
'title' => CheerfulNotification::getMessage('Ada Pengajuan Penghapusan Jurnalis ✨', 'Pengajuan Penghapusan Jurnalis'),
|
||||
'body' => CheerfulNotification::getMessage('Halooo Admin! 👋 '.$user->name.' baru saja mengajukan penghapusan jurnalis '.$record->name.'. Yuk, cek detailnya! 🚀', 'Pengguna '.$user->name.' telah mengajukan penghapusan jurnalis '.$record->name.'.'),
|
||||
'action' => [
|
||||
Action::make('view')
|
||||
->label('Lihat')
|
||||
|
||||
@ -22,8 +22,8 @@ protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->modalHeading('Sempurnakan Data Jurnalis 📝✨')
|
||||
->modalDescription('Ayo kita perbarui supaya data jurnalis makin akurat dan segar lagi! 🛠️👌')
|
||||
$this->modalHeading(fn () => CheerfulNotification::getMessage('Sempurnakan Data Jurnalis 📝✨', 'Ubah Data Jurnalis'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Ayo kita perbarui supaya data jurnalis makin akurat dan segar lagi! 🛠️👌', 'Silakan perbarui informasi jurnalis pada formulir di bawah ini.'))
|
||||
->modalWidth(Width::Large)
|
||||
->successNotification(null)
|
||||
->fillForm(function (Journalist $journalist): array {
|
||||
@ -61,8 +61,8 @@ protected function setUp(): void
|
||||
|
||||
if ($existingRequest) {
|
||||
CheerfulNotification::warning(
|
||||
'Pengajuan Sudah Ada ⏳',
|
||||
'Masih ada pengajuan perubahan data yang sedang menunggu verifikasi.'
|
||||
CheerfulNotification::getMessage('Pengajuan Sudah Ada ⏳', 'Pengajuan Sedang Diproses'),
|
||||
CheerfulNotification::getMessage('Masih ada pengajuan perubahan data yang sedang menunggu verifikasi.', 'Pengajuan perubahan data ini masih dalam proses verifikasi admin.')
|
||||
)->send();
|
||||
|
||||
return $record;
|
||||
@ -121,8 +121,8 @@ protected function setUp(): 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 menyimpan.')
|
||||
)->send();
|
||||
|
||||
return $record;
|
||||
@ -138,16 +138,16 @@ protected function setUp(): 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 ⏳', 'Pengajuan perubahan data telah berhasil dikirim.')
|
||||
)->send();
|
||||
|
||||
User::superAdmin()
|
||||
->get()
|
||||
->each(function ($admin) use ($dataChangeRequest, $user): void {
|
||||
$admin->notify(new BroadcastNotification([
|
||||
'title' => 'Ada Pengajuan Perubahan Jurnalis ✨',
|
||||
'body' => 'Halooo Admin! 👋 '.$user->name.' baru saja mengajukan perubahan data jurnalis. Yuk, cek detailnya! 🚀',
|
||||
'title' => CheerfulNotification::getMessage('Ada Pengajuan Perubahan Jurnalis ✨', 'Pengajuan Perubahan Jurnalis'),
|
||||
'body' => CheerfulNotification::getMessage('Halooo Admin! 👋 '.$user->name.' baru saja mengajukan perubahan data jurnalis. Yuk, cek detailnya! 🚀', 'Pengguna '.$user->name.' telah mengajukan perubahan data jurnalis.'),
|
||||
'action' => [
|
||||
Action::make('view')
|
||||
->label('Lihat')
|
||||
|
||||
@ -6,11 +6,13 @@
|
||||
use App\Enums\MediaClassification;
|
||||
use App\Enums\MediaType;
|
||||
use App\Enums\RoleEnum;
|
||||
use App\Enums\UxStyle;
|
||||
use App\Enums\VerificationStatus;
|
||||
use App\Filament\Actions\DefaultBulkActions;
|
||||
use App\Filament\Columns\RowIndexColumn;
|
||||
use App\Filament\Resources\Manage\Partners\Pages\ManagePartners;
|
||||
use App\Filament\Resources\Manage\Partners\Pages\ViewPartner;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use App\Models\User;
|
||||
use BackedEnum;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
@ -52,7 +54,8 @@ public static function infolist(Schema $schema): Schema
|
||||
{
|
||||
return $schema
|
||||
->schema([
|
||||
Section::make('Akun')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Akun 👤', 'Akun'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Detail informasi akun pengguna yang terdaftar. ✨', 'Informasi detail mengenai akun pengguna.'))
|
||||
->schema([
|
||||
Grid::make(3)
|
||||
->schema([
|
||||
@ -76,7 +79,8 @@ public static function infolist(Schema $schema): Schema
|
||||
]),
|
||||
]),
|
||||
|
||||
Section::make('Perusahaan')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Perusahaan 🏢', 'Perusahaan'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Informasi lengkap mengenai profil dan legalitas perusahaan. 🏢✨', 'Informasi detail mengenai profil dan legalitas perusahaan.'))
|
||||
->schema([
|
||||
Grid::make(3)
|
||||
->schema([
|
||||
@ -118,7 +122,8 @@ public static function infolist(Schema $schema): Schema
|
||||
|
||||
Grid::make(3)
|
||||
->schema([
|
||||
Section::make('NIK Direktur')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('NIK Direktur 👤✨', 'NIK Direktur'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-user' : null)
|
||||
->schema([
|
||||
TextEntry::make('company.director_nik')
|
||||
->hiddenLabel(),
|
||||
@ -152,7 +157,8 @@ public static function infolist(Schema $schema): Schema
|
||||
}),
|
||||
]),
|
||||
|
||||
Section::make('Akta Pendirian')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Akta Pendirian 📄✨', 'Akta Pendirian'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextEntry::make('company.deed_incorporation')
|
||||
->hiddenLabel(),
|
||||
@ -160,7 +166,8 @@ public static function infolist(Schema $schema): Schema
|
||||
self::fileEntry('company.deed_incorporation'),
|
||||
]),
|
||||
|
||||
Section::make('SIUP')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('SIUP / NIB 📄✨', 'SIUP / NIB'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextEntry::make('company.trade_license')
|
||||
->hiddenLabel(),
|
||||
@ -168,7 +175,8 @@ public static function infolist(Schema $schema): Schema
|
||||
self::fileEntry('company.trade_license'),
|
||||
]),
|
||||
|
||||
Section::make('NPWP')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('NPWP 📄✨', 'NPWP'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextEntry::make('company.tax_id_number')
|
||||
->hiddenLabel(),
|
||||
@ -176,7 +184,8 @@ public static function infolist(Schema $schema): Schema
|
||||
self::fileEntry('company.tax_id_number'),
|
||||
]),
|
||||
|
||||
Section::make('PKP')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('PKP 📄✨', 'PKP'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextEntry::make('company.taxable_enterprise')
|
||||
->hiddenLabel(),
|
||||
@ -184,7 +193,8 @@ public static function infolist(Schema $schema): Schema
|
||||
self::fileEntry('company.taxable_enterprise'),
|
||||
]),
|
||||
|
||||
Section::make('SPT Tahunan')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('SPT Tahunan 📄✨', 'SPT Tahunan'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextEntry::make('company.annual_tax_return')
|
||||
->hiddenLabel(),
|
||||
@ -192,7 +202,8 @@ public static function infolist(Schema $schema): Schema
|
||||
self::fileEntry('company.annual_tax_return'),
|
||||
]),
|
||||
|
||||
Section::make('SK Domisili')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('SK Domisili 📄✨', 'SK Domisili'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextEntry::make('company.domicile_certificate')
|
||||
->hiddenLabel(),
|
||||
@ -200,7 +211,8 @@ public static function infolist(Schema $schema): Schema
|
||||
self::fileEntry('company.domicile_certificate'),
|
||||
]),
|
||||
|
||||
Section::make('Profil Perusahaan')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Profil Perusahaan 📄✨', 'Profil Perusahaan'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextEntry::make('company.profile')
|
||||
->hiddenLabel(),
|
||||
@ -210,7 +222,8 @@ public static function infolist(Schema $schema): Schema
|
||||
]),
|
||||
]),
|
||||
|
||||
Section::make('Media')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Media 📺', 'Media'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Detail informasi media yang dikelola oleh perusahaan ini. 📺✨', 'Informasi detail mengenai media yang dikelola.'))
|
||||
->schema([
|
||||
Grid::make(4)
|
||||
->schema([
|
||||
@ -236,7 +249,8 @@ public static function infolist(Schema $schema): Schema
|
||||
|
||||
Grid::make(2)
|
||||
->schema([
|
||||
Section::make('Sertifikat Organisasi Kewartawanan')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Sertifikat Organisasi Kewartawanan 📄✨', 'Sertifikat Organisasi Kewartawanan'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextEntry::make('company.partnerMedia.journalism_organization')
|
||||
->hiddenLabel(),
|
||||
@ -244,7 +258,8 @@ public static function infolist(Schema $schema): Schema
|
||||
self::fileEntry('company.partnerMedia.journalism_organization', 'company.partnerMedia', 'partnerMedia'),
|
||||
]),
|
||||
|
||||
Section::make('Sertifikat Dewan Pers')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Sertifikat Dewan Pers 📄✨', 'Sertifikat Dewan Pers'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextEntry::make('company.partnerMedia.press_council_certificate')
|
||||
->hiddenLabel(),
|
||||
@ -254,7 +269,8 @@ public static function infolist(Schema $schema): Schema
|
||||
]),
|
||||
]),
|
||||
|
||||
Section::make('Jurnalis')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Jurnalis ✍️', 'Jurnalis'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Daftar jurnalis yang terdaftar di bawah bendera media ini. ✍️✨', 'Daftar jurnalis yang terdaftar pada media ini.'))
|
||||
->schema([
|
||||
RepeatableEntry::make('company.partnerMedia.journalists')
|
||||
->hiddenLabel()
|
||||
@ -272,7 +288,8 @@ public static function infolist(Schema $schema): Schema
|
||||
]),
|
||||
Grid::make(2)
|
||||
->schema([
|
||||
Section::make('Kartu Pers')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Kartu Pers 🆔✨', 'Kartu Pers'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-identification' : null)
|
||||
->schema([
|
||||
TextEntry::make('press_card')
|
||||
->hiddenLabel(),
|
||||
@ -280,7 +297,8 @@ public static function infolist(Schema $schema): Schema
|
||||
self::fileEntry('press_card', null, 'journalists'),
|
||||
]),
|
||||
|
||||
Section::make('Sertifikat UKW')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Sertifikat UKW 📄✨', 'Sertifikat UKW'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextEntry::make('ukw_certificate')
|
||||
->hiddenLabel(),
|
||||
@ -397,7 +415,7 @@ public static function table(Table $table): Table
|
||||
]),
|
||||
])
|
||||
->emptyStateIcon(Heroicon::OutlinedBuildingOffice2)
|
||||
->emptyStateDescription('Setelah Anda membubat data pertama, maka akan muncul disini.')
|
||||
->emptyStateDescription(fn () => CheerfulNotification::getMessage('Belum ada rekanan yang terdaftar nih. Yuk, mulai buat data pertama! 🏢✨', 'Belum ada data rekanan yang tersedia saat ini.'))
|
||||
->defaultSort('created_at', 'desc')
|
||||
->deferFilters(false)
|
||||
->paginated([25, 50, 100, 'all'])
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Filament\Actions\Cheerful\CreateAction;
|
||||
use App\Filament\Resources\Master\Categories\CategoryResource;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Resources\Pages\ManageRecords;
|
||||
use Filament\Support\Enums\Width;
|
||||
|
||||
@ -18,8 +19,8 @@ protected function getHeaderActions(): array
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah')
|
||||
->modalHeading('Tambah Kategori Baru 🏷️✨')
|
||||
->modalDescription('Tambahkan kategori baru biar data makin teratur dan rapi! 📁😊')
|
||||
->modalHeading(fn () => CheerfulNotification::getMessage('Tambah Kategori Baru 🏷️✨', 'Tambah Kategori'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Tambahkan kategori baru biar data makin teratur dan rapi! 📁😊', 'Silakan masukkan detail kategori data di bawah ini.'))
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
->extraModalFooterActions(fn (CreateAction $action): array => [
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Filament\Actions\Cheerful\CreateAction;
|
||||
use App\Filament\Resources\Master\Classifications\ClassificationResource;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Resources\Pages\ManageRecords;
|
||||
use Filament\Support\Enums\Width;
|
||||
|
||||
@ -18,8 +19,8 @@ protected function getHeaderActions(): array
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah')
|
||||
->modalHeading('Tambah Klasifikasi Baru 📂✨')
|
||||
->modalDescription('Bantu sistem mengelompokkan data dengan klasifikasi yang pas! 🧩😊')
|
||||
->modalHeading(fn () => CheerfulNotification::getMessage('Tambah Klasifikasi Baru 📂✨', 'Tambah Klasifikasi'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Bantu sistem mengelompokkan data dengan klasifikasi yang pas! 🧩😊', 'Silakan masukkan detail klasifikasi data di bawah ini.'))
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
->extraModalFooterActions(fn (CreateAction $action): array => [
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Filament\Actions\Cheerful\CreateAction;
|
||||
use App\Filament\Resources\Master\Departments\DepartmentResource;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Resources\Pages\ManageRecords;
|
||||
use Filament\Support\Enums\Width;
|
||||
|
||||
@ -18,8 +19,8 @@ protected function getHeaderActions(): array
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah')
|
||||
->modalHeading('Tambah OPD Baru 🏢✨')
|
||||
->modalDescription('Daftarkan instansi/OPD baru ke dalam sistem kita! 💪😊')
|
||||
->modalHeading(fn () => CheerfulNotification::getMessage('Tambah OPD Baru 🏢✨', 'Tambah OPD'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Daftarkan instansi/OPD baru ke dalam sistem kita! 💪😊', 'Silakan masukkan detail instansi/OPD baru di bawah ini.'))
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
->extraModalFooterActions(fn (CreateAction $action): array => [
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Filament\Actions\Cheerful\CreateAction;
|
||||
use App\Filament\Resources\Master\Locations\LocationResource;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Resources\Pages\ManageRecords;
|
||||
use Filament\Support\Enums\Width;
|
||||
|
||||
@ -18,8 +19,8 @@ protected function getHeaderActions(): array
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah')
|
||||
->modalHeading('Tambah Lokus Baru 📍✨')
|
||||
->modalDescription('Tentukan titik lokasi baru biar datanya makin presisi! 🗺️😊')
|
||||
->modalHeading(fn () => CheerfulNotification::getMessage('Tambah Lokus Baru 📍✨', 'Tambah Lokus'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Tentukan titik lokasi baru biar datanya makin presisi! 🗺️😊', 'Silakan masukkan detail lokasi/lokus data di bawah ini.'))
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
->extraModalFooterActions(fn (CreateAction $action): array => [
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Filament\Actions\Cheerful\CreateAction;
|
||||
use App\Filament\Resources\Master\SubClassifications\SubClassificationResource;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Resources\Pages\ManageRecords;
|
||||
use Filament\Support\Enums\Width;
|
||||
|
||||
@ -18,8 +19,8 @@ protected function getHeaderActions(): array
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah')
|
||||
->modalHeading('Tambah Sub Klasifikasi Baru 📑✨')
|
||||
->modalDescription('Perdalam klasifikasi data biar makin detail dan tertata! 🗂️😊')
|
||||
->modalHeading(fn () => CheerfulNotification::getMessage('Tambah Sub Klasifikasi Baru 📑✨', 'Tambah Sub Klasifikasi'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Perdalam klasifikasi data biar makin detail dan tertata! 🗂️😊', 'Silakan masukkan detail sub klasifikasi data di bawah ini.'))
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
->extraModalFooterActions(fn (CreateAction $action): array => [
|
||||
|
||||
@ -92,8 +92,8 @@ public static function table(Table $table): Table
|
||||
$record->save();
|
||||
|
||||
CheerfulNotification::success(
|
||||
'Status Berubah! 🔄✨',
|
||||
'Status data berhasil diperbarui. Perubahan langsung aktif ya! 👍'
|
||||
CheerfulNotification::getMessage('Status Berubah! 🔄✨', 'Status Diperbarui'),
|
||||
CheerfulNotification::getMessage('Status data berhasil diperbarui. Perubahan langsung aktif ya! 👍', 'Perubahan status data telah berhasil disimpan dan diterapkan.')
|
||||
)->send();
|
||||
}),
|
||||
|
||||
@ -132,7 +132,7 @@ public static function table(Table $table): Table
|
||||
]),
|
||||
])
|
||||
->emptyStateIcon(Heroicon::OutlinedQueueList)
|
||||
->emptyStateDescription('Setelah Anda membubat data pertama, maka akan muncul disini.')
|
||||
->emptyStateDescription(fn () => CheerfulNotification::getMessage('Belum ada data nih! Mulai buat data pertama sekarang biar makin rame! 🚀✨', 'Belum ada data yang tersedia saat ini.'))
|
||||
->defaultSort('created_at', 'desc')
|
||||
->deferFilters(false)
|
||||
->paginated([25, 50, 100, 'all'])
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Filament\Actions\Cheerful\CreateAction;
|
||||
use App\Filament\Resources\Master\SubLocations\SubLocationResource;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Resources\Pages\ManageRecords;
|
||||
use Filament\Support\Enums\Width;
|
||||
|
||||
@ -18,8 +19,8 @@ protected function getHeaderActions(): array
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah')
|
||||
->modalHeading('Tambah Sub Lokus Baru 📌✨')
|
||||
->modalDescription('Detailkan lebih dalam lagi titik lokasinya, ya! 📍😊')
|
||||
->modalHeading(fn () => CheerfulNotification::getMessage('Tambah Sub Lokus Baru 📌✨', 'Tambah Sub Lokus'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Detailkan lebih dalam lagi titik lokasinya, ya! 📍😊', 'Silakan masukkan detail sub lokasi/lokus data di bawah ini.'))
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
->extraModalFooterActions(fn (CreateAction $action): array => [
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Filament\Actions\Cheerful\CreateAction;
|
||||
use App\Filament\Resources\Master\Themes\ThemeResource;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Resources\Pages\ManageRecords;
|
||||
use Filament\Support\Enums\Width;
|
||||
|
||||
@ -18,8 +19,8 @@ protected function getHeaderActions(): array
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah')
|
||||
->modalHeading('Tambah Tema Baru 📂✨')
|
||||
->modalDescription('Ayo tambahkan tema biar pengelompokan makin lengkap! 📚😊')
|
||||
->modalHeading(fn () => CheerfulNotification::getMessage('Tambah Tema Baru 📂✨', 'Tambah Tema'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Ayo tambahkan tema biar pengelompokan makin lengkap! 📚😊', 'Silakan masukkan detail tema data di bawah ini.'))
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
->extraModalFooterActions(fn (CreateAction $action): array => [
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Filament\Actions\Cheerful\CreateAction;
|
||||
use App\Filament\Resources\Master\Users\UserResource;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Resources\Pages\ManageRecords;
|
||||
use Filament\Support\Enums\Width;
|
||||
|
||||
@ -18,8 +19,8 @@ protected function getHeaderActions(): array
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah')
|
||||
->modalHeading('Tambah Pengguna Baru 🚀✨')
|
||||
->modalDescription('Yuk, buat akun baru biar makin lengkap penggunanya! 💪😊')
|
||||
->modalHeading(fn () => CheerfulNotification::getMessage('Tambah Pengguna Baru 🚀✨', 'Tambah Pengguna'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Yuk, buat akun baru biar makin lengkap penggunanya! 💪😊', 'Silakan masukkan detail akun pengguna baru di bawah ini.'))
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
->extraModalFooterActions(fn (CreateAction $action): array => [
|
||||
|
||||
@ -140,8 +140,8 @@ public static function table(Table $table): Table
|
||||
}
|
||||
|
||||
CheerfulNotification::success(
|
||||
$state ? 'Pengguna Diaktifkan! ✅' : 'Pengguna Dinonaktifkan ⛔',
|
||||
$state ? 'Status akun pengguna berhasil diaktifkan kembali. Siap beraksi! 🚀' : 'Status akun pengguna berhasil dinonaktifkan. Istirahat dulu ya... 😴'
|
||||
$state ? CheerfulNotification::getMessage('Pengguna Diaktifkan! ✅', 'Pengguna Diaktifkan') : CheerfulNotification::getMessage('Pengguna Dinonaktifkan ⛔', 'Pengguna Dinonaktifkan'),
|
||||
$state ? CheerfulNotification::getMessage('Status akun pengguna berhasil diaktifkan kembali. Siap beraksi! 🚀', 'Status akun pengguna telah berhasil diaktifkan kembali.') : CheerfulNotification::getMessage('Status akun pengguna berhasil dinonaktifkan. Istirahat dulu ya... 😴', 'Status akun pengguna telah berhasil dinonaktifkan.')
|
||||
)->send();
|
||||
})
|
||||
->disabled(fn (User $record): bool => $record->hasRole(RoleEnum::PERUSAHAAN->value)),
|
||||
@ -192,7 +192,7 @@ public static function table(Table $table): Table
|
||||
]),
|
||||
])
|
||||
->emptyStateIcon(Heroicon::OutlinedUserGroup)
|
||||
->emptyStateDescription('Setelah Anda membubat data pertama, maka akan muncul disini.')
|
||||
->emptyStateDescription(fn () => CheerfulNotification::getMessage('Belum ada data nih! Mulai buat data pertama sekarang biar makin rame! 🚀✨', 'Belum ada data yang tersedia saat ini.'))
|
||||
->defaultSort('created_at', 'desc')
|
||||
->deferFilters(false)
|
||||
->paginated([25, 50, 100, 'all'])
|
||||
|
||||
@ -12,7 +12,15 @@ class CreateContentRecap extends CreateRecord
|
||||
{
|
||||
protected static string $resource = ContentRecapResource::class;
|
||||
|
||||
protected static ?string $title = 'Tambah Rekap Konten';
|
||||
public function getTitle(): string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Tambah Rekap Konten Seru! 🚀✨', 'Tambah Rekap Konten');
|
||||
}
|
||||
|
||||
public function getSubheading(): ?string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Ayo susun rekap konten yang mantap biar makin rapi! 📚😊', 'Silakan isi formulir di bawah ini dengan lengkap untuk rekap konten baru.');
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
|
||||
@ -13,6 +13,16 @@ class EditContentRecap extends EditRecord
|
||||
{
|
||||
protected static string $resource = ContentRecapResource::class;
|
||||
|
||||
public function getTitle(): string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Sempurnakan Rekap Konten 📝✨', 'Ubah Rekap Konten');
|
||||
}
|
||||
|
||||
public function getSubheading(): ?string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Perbarui rekapnya supaya tetap akurat dan informatif! 🛠️👌', 'Silakan perbarui informasi rekap konten pada formulir di bawah ini.');
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
|
||||
@ -5,6 +5,8 @@
|
||||
use App\Enums\Channel;
|
||||
use App\Enums\ContentType;
|
||||
use App\Enums\SocialMedia;
|
||||
use App\Enums\UxStyle;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Forms\Components\DatePicker;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\SpatieMediaLibraryFileUpload;
|
||||
@ -20,9 +22,9 @@ public static function configure(Schema $schema): Schema
|
||||
{
|
||||
return $schema
|
||||
->components([
|
||||
Section::make('Informasi Konten 📝')
|
||||
->description('Lengkapi detail judul, tautan, dan jenis konten Anda.')
|
||||
->icon('heroicon-o-document-text')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Informasi Konten 📝', 'Informasi Konten'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Lengkapi detail judul, tautan, dan jenis konten Anda biar makin keren! 🚀😊', 'Lengkapi detail judul, tautan, dan jenis konten Anda.'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-document-text' : null)
|
||||
->schema([
|
||||
TextInput::make('title')
|
||||
->label('Judul Konten')
|
||||
@ -72,9 +74,9 @@ public static function configure(Schema $schema): Schema
|
||||
]),
|
||||
])->columnSpan(2),
|
||||
|
||||
Section::make('Klasifikasi & Lampiran 📁')
|
||||
->description('Pilih klasifikasi yang sesuai dan unggah gambar pendukung.')
|
||||
->icon('heroicon-o-folder-open')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Klasifikasi & Lampiran 📁', 'Klasifikasi & Lampiran'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Pilih klasifikasi yang pas dan unggah gambar pendukung ya! 📁✨', 'Pilih klasifikasi yang sesuai dan unggah gambar pendukung.'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-folder-open' : null)
|
||||
->schema([
|
||||
Select::make('classification_id')
|
||||
->label('Klasifikasi')
|
||||
|
||||
@ -12,7 +12,15 @@ class CreateIssueManagement extends CreateRecord
|
||||
{
|
||||
protected static string $resource = IssueManagementResource::class;
|
||||
|
||||
protected static ?string $title = 'Tambah Manajemen Isu';
|
||||
public function getTitle(): string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Tambah Manajemen Isu Seru! 🚀✨', 'Tambah Manajemen Isu');
|
||||
}
|
||||
|
||||
public function getSubheading(): ?string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Ayo kelola isu yang ada biar semuanya terkendali dengan baik! 💪😊', 'Silakan isi formulir di bawah ini dengan lengkap untuk manajemen isu baru.');
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
|
||||
@ -12,6 +12,16 @@ class EditIssueManagement extends EditRecord
|
||||
{
|
||||
protected static string $resource = IssueManagementResource::class;
|
||||
|
||||
public function getTitle(): string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Sempurnakan Manajemen Isu 📝✨', 'Ubah Manajemen Isu');
|
||||
}
|
||||
|
||||
public function getSubheading(): ?string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Perbarui datanya supaya tetap akurat dan penanganannya makin oke! 🛠️👌', 'Silakan perbarui informasi manajemen isu pada formulir di bawah ini.');
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
|
||||
@ -3,6 +3,8 @@
|
||||
namespace App\Filament\Resources\Monitoring\IssueManagements\Schemas;
|
||||
|
||||
use App\Enums\IssueSentiment;
|
||||
use App\Enums\UxStyle;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Forms\Components\RichEditor;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Schemas\Components\Grid;
|
||||
@ -18,9 +20,9 @@ public static function configure(Schema $schema): Schema
|
||||
{
|
||||
return $schema
|
||||
->components([
|
||||
Section::make('Identifikasi Isu 🔍')
|
||||
->description('Hubungkan dengan berita monitoring dan tentukan lokasi isu.')
|
||||
->icon('heroicon-o-magnifying-glass')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Identifikasi Isu 🔍', 'Identifikasi Isu'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Yuk, hubungkan dengan berita monitoring dan tentukan lokasi isunya! 🔍✨', 'Hubungkan dengan berita monitoring dan tentukan lokasi isu.'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-magnifying-glass' : null)
|
||||
->schema([
|
||||
Select::make('media_monitoring_id')
|
||||
->label('Monitoring Media')
|
||||
@ -71,9 +73,9 @@ public static function configure(Schema $schema): Schema
|
||||
->columnSpanFull(),
|
||||
])->columnSpan(2),
|
||||
|
||||
Section::make('Sentimen & Klasifikasi 📊')
|
||||
->description('Tentukan sentimen isu, respon, dan kategori klasifikasinya.')
|
||||
->icon('heroicon-o-chart-bar')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Sentimen & Klasifikasi 📊', 'Sentimen & Klasifikasi'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Tentukan sentimen isu, respon, dan kategorinya biar makin jelas! 📊✨', 'Tentukan sentimen isu, respon, dan kategori klasifikasinya.'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-chart-bar' : null)
|
||||
->schema([
|
||||
Select::make('issue')
|
||||
->label('Sentimen Isu')
|
||||
|
||||
@ -47,13 +47,13 @@ protected function setUp(): void
|
||||
|
||||
if ($count > 0) {
|
||||
CheerfulNotification::success(
|
||||
'Crawl Berhasil! 🕸️🚀',
|
||||
"Mantap! Ada {$count} berita baru nih tentang '{$data['keyword']}' di Purwakarta. Databasenya makin kaya! 😎"
|
||||
CheerfulNotification::getMessage('Crawl Berhasil! 🕸️🚀', 'Crawl Selesai'),
|
||||
CheerfulNotification::getMessage("Mantap! Ada {$count} berita baru nih tentang '{$data['keyword']}' di Purwakarta. Databasenya makin kaya! 😎", "Berhasil mendapatkan {$count} berita baru terkait kata kunci '{$data['keyword']}'.")
|
||||
)->send();
|
||||
} else {
|
||||
CheerfulNotification::info(
|
||||
'Belum Ada Berita Baru 🔍',
|
||||
"Hmm, sepertinya belum ada update berita baru untuk '{$data['keyword']}'. Coba lagi nanti ya! 😉"
|
||||
CheerfulNotification::getMessage('Belum Ada Berita Baru 🔍', 'Tidak Ada Berita Baru'),
|
||||
CheerfulNotification::getMessage("Hmm, sepertinya belum ada update berita baru untuk '{$data['keyword']}'. Coba lagi nanti ya! 😉", "Tidak ditemukan berita baru untuk kata kunci '{$data['keyword']}' saat ini.")
|
||||
)->send();
|
||||
}
|
||||
})
|
||||
|
||||
@ -13,7 +13,15 @@ class CreateMediaMonitoring extends CreateRecord
|
||||
{
|
||||
protected static string $resource = MediaMonitoringResource::class;
|
||||
|
||||
protected static ?string $title = 'Tambah Monitoring Media';
|
||||
public function getTitle(): string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Tambah Monitoring Media Seru! 🚀✨', 'Tambah Monitoring Media');
|
||||
}
|
||||
|
||||
public function getSubheading(): ?string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Ayo pantau beritanya biar makin oke dan up-to-date! 🔍😊', 'Silakan isi formulir di bawah ini dengan lengkap untuk monitoring media baru.');
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
|
||||
@ -12,6 +12,16 @@ class EditMediaMonitoring extends EditRecord
|
||||
{
|
||||
protected static string $resource = MediaMonitoringResource::class;
|
||||
|
||||
public function getTitle(): string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Sempurnakan Monitoring Media 📝✨', 'Ubah Monitoring Media');
|
||||
}
|
||||
|
||||
public function getSubheading(): ?string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Perbarui datanya supaya tetap akurat dan segar lagi! 🛠️👌', 'Silakan perbarui informasi monitoring media pada formulir di bawah ini.');
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
|
||||
@ -3,6 +3,8 @@
|
||||
namespace App\Filament\Resources\Monitoring\MediaMonitorings\Schemas;
|
||||
|
||||
use App\Enums\Channel;
|
||||
use App\Enums\UxStyle;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Forms\Components\DatePicker;
|
||||
use Filament\Forms\Components\RichEditor;
|
||||
use Filament\Forms\Components\Select;
|
||||
@ -19,9 +21,9 @@ public static function configure(Schema $schema): Schema
|
||||
{
|
||||
return $schema
|
||||
->components([
|
||||
Section::make('Detail Berita 📰')
|
||||
->description('Masukkan informasi lengkap mengenai pemberitaan media.')
|
||||
->icon('heroicon-o-newspaper')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Detail Berita 📰', 'Detail Berita'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Masukkan informasi lengkap mengenai pemberitaan media biar makin lengkap! 📰✨', 'Masukkan informasi lengkap mengenai pemberitaan media.'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-newspaper' : null)
|
||||
->schema([
|
||||
TextInput::make('media_name')
|
||||
->label('Nama Media')
|
||||
@ -73,9 +75,9 @@ public static function configure(Schema $schema): Schema
|
||||
->required(),
|
||||
])->columnSpan(2),
|
||||
|
||||
Section::make('Kategori & Metadata 🏷️')
|
||||
->description('Tentukan kategori berita dan informasi tambahan lainnya.')
|
||||
->icon('heroicon-o-tag')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Kategori & Metadata 🏷️', 'Kategori & Metadata'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Tentukan kategori berita dan informasi tambahan lainnya biar makin rapi! 🏷️✨', 'Tentukan kategori berita dan informasi tambahan lainnya.'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-tag' : null)
|
||||
->schema([
|
||||
Select::make('channel')
|
||||
->label('Kanal')
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
use App\Enums\AnnouncementType;
|
||||
use App\Filament\Actions\Cheerful\CreateAction;
|
||||
use App\Filament\Resources\Publication\Announcements\AnnouncementResource;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use App\Models\Company;
|
||||
use App\Models\PartnerMedia;
|
||||
use App\Models\User;
|
||||
@ -16,15 +17,23 @@ class ManageAnnouncements extends ManageRecords
|
||||
{
|
||||
protected static string $resource = AnnouncementResource::class;
|
||||
|
||||
protected static ?string $title = 'Pengumuman';
|
||||
public function getTitle(): string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Pengumuman 📢✨', 'Kelola Pengumuman');
|
||||
}
|
||||
|
||||
public function getSubheading(): ?string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Siarkan kabar terbaru ke seluruh sistem biar semua orang tetap update! 🚀😊', 'Kelola dan publikasikan pengumuman sistem pada halaman ini.');
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah')
|
||||
->modalHeading('Buat Pengumuman Baru 📢✨')
|
||||
->modalDescription('Siarkan kabar terbaru ke seluruh sistem biar semua orang tetap update! 🚀😊')
|
||||
->modalHeading(fn () => CheerfulNotification::getMessage('Buat Pengumuman Baru 📢✨', 'Tambah Pengumuman'))
|
||||
->modalDescription(fn () => CheerfulNotification::getMessage('Siarkan kabar terbaru ke seluruh sistem biar semua orang tetap update! 🚀😊', 'Silakan isi formulir di bawah ini untuk membuat pengumuman baru.'))
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
->extraModalFooterActions(fn (CreateAction $action): array => [
|
||||
|
||||
@ -12,7 +12,15 @@ class CreateNews extends CreateRecord
|
||||
{
|
||||
protected static string $resource = NewsResource::class;
|
||||
|
||||
protected static ?string $title = 'Tambah Berita';
|
||||
public function getTitle(): string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Tambah Berita Seru! 🚀✨', 'Tambah Berita');
|
||||
}
|
||||
|
||||
public function getSubheading(): ?string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Ayo bagikan kabar terbaru yang mantap buat semua! ✍️😊', 'Silakan isi formulir di bawah ini dengan lengkap untuk menambahkan berita baru.');
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
|
||||
@ -12,6 +12,16 @@ class EditNews extends EditRecord
|
||||
{
|
||||
protected static string $resource = NewsResource::class;
|
||||
|
||||
public function getTitle(): string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Sempurnakan Berita 📝✨', 'Ubah Data Berita');
|
||||
}
|
||||
|
||||
public function getSubheading(): ?string
|
||||
{
|
||||
return CheerfulNotification::getMessage('Perbarui beritanya supaya tetap akurat dan segar lagi! 🛠️👌', 'Silakan perbarui informasi berita pada formulir di bawah ini.');
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
|
||||
@ -3,6 +3,8 @@
|
||||
namespace App\Filament\Resources\Publication\News\Schemas;
|
||||
|
||||
use App\Enums\NewsStatus;
|
||||
use App\Enums\UxStyle;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use App\Models\News;
|
||||
use Filament\Forms\Components\Hidden;
|
||||
use Filament\Forms\Components\Radio;
|
||||
@ -25,9 +27,9 @@ public static function configure(Schema $schema): Schema
|
||||
Hidden::make('author_id')
|
||||
->default(auth()->id()),
|
||||
|
||||
Section::make('Konten Berita ✍️')
|
||||
->description('Tuliskan judul, ringkasan, dan isi lengkap berita Anda.')
|
||||
->icon('heroicon-o-pencil-square')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Konten Berita ✍️', 'Konten Berita'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Yuk, tuliskan judul, ringkasan, dan isi lengkap berita Anda biar makin menarik! 🚀😊', 'Silakan tuliskan judul, ringkasan, dan isi lengkap berita Anda.'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-pencil-square' : null)
|
||||
->schema([
|
||||
TextInput::make('title')
|
||||
->label('Judul Berita')
|
||||
@ -50,9 +52,9 @@ public static function configure(Schema $schema): Schema
|
||||
->columnSpanFull(),
|
||||
])->columnSpan(2),
|
||||
|
||||
Section::make('Kategori & Publikasi 🏷️')
|
||||
->description('Tentukan kategori, tautan media, dan status publikasi.')
|
||||
->icon('heroicon-o-tag')
|
||||
Section::make(fn () => CheerfulNotification::getMessage('Kategori & Publikasi 🏷️', 'Kategori & Publikasi'))
|
||||
->description(fn () => CheerfulNotification::getMessage('Tentukan kategori, tautan media, dan status publikasi biar berita kita gampang dicari! 🏷️✨', 'Tentukan kategori, tautan media, dan status publikasi.'))
|
||||
->icon(fn () => CheerfulNotification::getUxStyle() === UxStyle::CHEERFUL ? 'heroicon-o-tag' : null)
|
||||
->schema([
|
||||
TextInput::make('link')
|
||||
->label('Tautan Media (Opsional)')
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Filament\Support;
|
||||
|
||||
use App\Enums\UxStyle;
|
||||
use Filament\Notifications\Notification;
|
||||
|
||||
class CheerfulNotification
|
||||
@ -15,101 +16,104 @@ public static function make(): Notification
|
||||
}
|
||||
|
||||
/**
|
||||
* Notification for successful record creation.
|
||||
* Get the current user's UX style preference.
|
||||
*/
|
||||
public static function getUxStyle(): UxStyle
|
||||
{
|
||||
try {
|
||||
return auth()->user()?->ux_style ?? UxStyle::CHEERFUL;
|
||||
} catch (\Throwable $e) {
|
||||
return UxStyle::CHEERFUL;
|
||||
}
|
||||
}
|
||||
|
||||
public static function create(): Notification
|
||||
{
|
||||
$cheerful = self::getUxStyle() === UxStyle::CHEERFUL;
|
||||
|
||||
return self::make()
|
||||
->title('Hore! Data Tersimpan 🎉✨')
|
||||
->body('Data baru berhasil ditambahkan! Sistem sudah menyimpannya dengan aman. 🚀💪')
|
||||
->title($cheerful ? 'Hore! Data Tersimpan 🎉✨' : 'Data Berhasil Disimpan')
|
||||
->body($cheerful ? 'Data baru berhasil ditambahkan! Sistem sudah menyimpannya dengan aman. 🚀💪' : 'Data baru telah berhasil ditambahkan ke dalam sistem.')
|
||||
->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* Notification for successful record update.
|
||||
*/
|
||||
public static function update(): Notification
|
||||
{
|
||||
$cheerful = self::getUxStyle() === UxStyle::CHEERFUL;
|
||||
|
||||
return self::make()
|
||||
->title('Mantap! Data Diperbarui ✅🔥')
|
||||
->body('Perubahan berhasil disimpan! Data sekarang sudah up-to-date dan segar lagi. ✨👌')
|
||||
->title($cheerful ? 'Mantap! Data Diperbarui ✅🔥' : 'Perubahan Tersimpan')
|
||||
->body($cheerful ? 'Perubahan berhasil disimpan! Data sekarang sudah up-to-date dan segar lagi. ✨👌' : 'Perubahan pada data telah berhasil diperbarui dan disimpan.')
|
||||
->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* Notification for successful record deletion (soft delete).
|
||||
*/
|
||||
public static function delete(): Notification
|
||||
{
|
||||
$cheerful = self::getUxStyle() === UxStyle::CHEERFUL;
|
||||
|
||||
return self::make()
|
||||
->title('Oke, Data Dihapus 🗑️👋')
|
||||
->body('Data tersebut sudah berhasil dihapus dari sistem. Semuanya bersih dan rapi sekarang! 😊🚮')
|
||||
->title($cheerful ? 'Oke, Data Dihapus 🗑️👋' : 'Data Dihapus')
|
||||
->body($cheerful ? 'Data tersebut sudah berhasil dihapus dari sistem. Semuanya bersih dan rapi sekarang! 😊🚮' : 'Data tersebut telah berhasil dihapus dari sistem aplikasi.')
|
||||
->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* Notification for successful permanent deletion.
|
||||
*/
|
||||
public static function forceDelete(): Notification
|
||||
{
|
||||
$cheerful = self::getUxStyle() === UxStyle::CHEERFUL;
|
||||
|
||||
return self::make()
|
||||
->title('Selamat Tinggal Selamanya 👋😢')
|
||||
->body('Data telah dihapus permanen dan tidak bisa kembali. Semoga ini keputusan yang tepat! 🚮💨')
|
||||
->title($cheerful ? 'Selamat Tinggal Selamanya 👋😢' : 'Data Dihapus Permanen')
|
||||
->body($cheerful ? 'Data telah dihapus permanen dan tidak bisa kembali. Semoga ini keputusan yang tepat! 🚮💨' : 'Data tersebut telah dihapus secara permanen dari sistem.')
|
||||
->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* Notification for successful record restoration.
|
||||
*/
|
||||
public static function restore(): Notification
|
||||
{
|
||||
$cheerful = self::getUxStyle() === UxStyle::CHEERFUL;
|
||||
|
||||
return self::make()
|
||||
->title('Welcome Back! Data Pulih ♻️✨')
|
||||
->body('Data berhasil dikembalikan! Hati-hati ya, jangan sampai terhapus lagi. 😉👍')
|
||||
->title($cheerful ? 'Welcome Back! Data Pulih ♻️✨' : 'Data Berhasil Dipulihkan')
|
||||
->body($cheerful ? 'Data berhasil dikembalikan! Hati-hati ya, jangan sampai terhapus lagi. 😉👍' : 'Data yang dihapus sebelumnya telah berhasil dipulihkan ke dalam sistem.')
|
||||
->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* Notification for successful status change/toggle.
|
||||
*/
|
||||
public static function statusUpdated(?string $title = null, ?string $body = null): Notification
|
||||
{
|
||||
$cheerful = self::getUxStyle() === UxStyle::CHEERFUL;
|
||||
|
||||
return self::make()
|
||||
->title($title ?? 'Status Berubah! 🔄✨')
|
||||
->body($body ?? 'Status data berhasil diperbarui. Perubahan langsung aktif ya! 👍')
|
||||
->title($title ?? ($cheerful ? 'Status Berubah! 🔄✨' : 'Status Diperbarui'))
|
||||
->body($body ?? ($cheerful ? 'Status data berhasil diperbarui. Perubahan langsung aktif ya! 👍' : 'Status data telah berhasil diperbarui dan telah diterapkan.'))
|
||||
->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* Notification for successful bulk deletion.
|
||||
*/
|
||||
public static function bulkDelete(): Notification
|
||||
{
|
||||
$cheerful = self::getUxStyle() === UxStyle::CHEERFUL;
|
||||
|
||||
return self::make()
|
||||
->title('Oke, Banyak Data Dihapus 🗑️👋')
|
||||
->body('Semua data yang dipilih berhasil dihapus. Sistem makin lega deh! 😊')
|
||||
->title($cheerful ? 'Oke, Banyak Data Dihapus 🗑️👋' : 'Data Berhasil Dihapus')
|
||||
->body($cheerful ? 'Semua data yang dipilih berhasil dihapus. Sistem makin lega deh! 😊' : 'Seluruh data yang dipilih telah berhasil dihapus dari sistem.')
|
||||
->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* Notification for successful bulk permanent deletion.
|
||||
*/
|
||||
public static function bulkForceDelete(): Notification
|
||||
{
|
||||
$cheerful = self::getUxStyle() === UxStyle::CHEERFUL;
|
||||
|
||||
return self::make()
|
||||
->title('Bye Bye Semua! 👋🔥')
|
||||
->body('Data yang dipilih sudah dihapus permanen. Bersih total! 🧹💨')
|
||||
->title($cheerful ? 'Bye Bye Semua! 👋🔥' : 'Data Dihapus Permanen')
|
||||
->body($cheerful ? 'Data yang dipilih sudah dihapus permanen. Bersih total! 🧹💨' : 'Data yang dipilih telah berhasil dihapus secara permanen.')
|
||||
->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* Notification for successful bulk restoration.
|
||||
*/
|
||||
public static function bulkRestore(): Notification
|
||||
{
|
||||
$cheerful = self::getUxStyle() === UxStyle::CHEERFUL;
|
||||
|
||||
return self::make()
|
||||
->title('Hore! Banyak Data Pulih ♻️🎉')
|
||||
->body('Data-data tersebut sudah kembali aktif. Selamat bekerja kembali! 💪✨')
|
||||
->title($cheerful ? 'Hore! Banyak Data Pulih ♻️🎉' : 'Data Berhasil Dipulihkan')
|
||||
->body($cheerful ? 'Data-data tersebut sudah kembali aktif. Selamat bekerja kembali! 💪✨' : 'Seluruh data yang dipilih telah berhasil dikembalikan ke posisi semula.')
|
||||
->success();
|
||||
}
|
||||
|
||||
@ -156,4 +160,12 @@ public static function danger(string $title, string $body): Notification
|
||||
->body($body)
|
||||
->danger();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get dynamic message based on UX style.
|
||||
*/
|
||||
public static function getMessage(string $cheerful, string $formal): string
|
||||
{
|
||||
return self::getUxStyle() === UxStyle::CHEERFUL ? $cheerful : $formal;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Enums\IsActive;
|
||||
use App\Enums\RoleEnum;
|
||||
use App\Enums\UxStyle;
|
||||
use App\Enums\VerificationStatus;
|
||||
use Filament\Models\Contracts\FilamentUser;
|
||||
use Filament\Panel;
|
||||
@ -33,6 +34,7 @@ protected function casts(): array
|
||||
'password' => 'hashed',
|
||||
'is_active' => IsActive::class,
|
||||
'email_verified_at' => 'timestamp',
|
||||
'ux_style' => UxStyle::class,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->string('ux_style')->default('cheerful')->after('email_verified_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
//
|
||||
});
|
||||
}
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user