feat: Revamp modal headings and descriptions across Filament actions for improved user engagement and clarity, incorporating playful icons and friendly language.

This commit is contained in:
Yoga Pangestu 2026-03-26 14:05:40 +07:00
parent de4aea7f2a
commit 573615c979
43 changed files with 159 additions and 117 deletions

View File

@ -11,6 +11,10 @@ protected function setUp(): void
{
parent::setUp();
$this->modalHeading('Tambah Data Seru! 🚀✨');
$this->modalDescription('Isi form di bawah ini dengan semangat ya, biar datanya tersimpan dengan aman! 💪😊');
$this->successNotification(
CheerfulNotification::create()
);

View File

@ -11,6 +11,10 @@ protected function setUp(): void
{
parent::setUp();
$this->modalHeading('Betulan Mau Hapus? 🗑️🤔');
$this->modalDescription('Data ini akan kita lepas ya. Hati-hati, data berelasi juga mungkin bakal ikut berpamitan! 🏃💨');
$this->successNotification(
CheerfulNotification::delete()
);

View File

@ -11,6 +11,10 @@ protected function setUp(): void
{
parent::setUp();
$this->modalHeading('Sempurnakan Datanya 📝✨');
$this->modalDescription('Ayo kita perbarui supaya datanya makin akurat dan segar lagi! 🛠️👌');
$this->successNotification(
CheerfulNotification::update()
);

View File

@ -11,6 +11,10 @@ protected function setUp(): void
{
parent::setUp();
$this->modalHeading('Yakin Hapus Selamanya? 🗑️🔥');
$this->modalDescription('Data ini bakal hilang dari muka bumi sistem dan nggak bisa balik lagi. Hati-hati ya! 😨🙏');
$this->successNotification(
CheerfulNotification::forceDelete()
);

View File

@ -11,6 +11,10 @@ protected function setUp(): void
{
parent::setUp();
$this->modalHeading('Panggil Balik Datanya? ♻️✨');
$this->modalDescription('Siap buat mengaktifkan kembali data yang sempat hilang? Yuk, kita pulihkan bareng-bareng! 😉🙌');
$this->successNotification(
CheerfulNotification::restore()
);

View File

@ -13,19 +13,19 @@ public static function make(string $entity): array
{
return [
DeleteBulkAction::make()
->modalHeading("Hapus {$entity} yang dipilih")
->modalHeading("Mau Hapus Banyak {$entity}? 🗑️🤔")
->successNotification(
CheerfulNotification::bulkDelete()
),
ForceDeleteBulkAction::make()
->modalHeading("Hapus {$entity} yang dipilih")
->modalHeading("Hapus Permanen {$entity} Terpilih? 🗑️🔥")
->successNotification(
CheerfulNotification::bulkForceDelete()
),
RestoreBulkAction::make()
->modalHeading("Pulihkan {$entity} yang dipilih")
->modalHeading("Pulihkan {$entity} yang Dipilih? ♻️✨")
->successNotification(
CheerfulNotification::bulkRestore()
),

View File

@ -24,8 +24,8 @@ protected function setUp(): void
->icon('heroicon-o-check')
->size('sm')
->requiresConfirmation()
->modalHeading('Setujui Verifikasi')
->modalDescription('Apakah Anda yakin ingin menyetujui verifikasi ini? Pastikan data sudah benar dan lengkap.')
->modalHeading('Setujui Verifikasi? ✅✨')
->modalDescription('Yakin datanya sudah oke semua? Yuk, kita resmikan verifikasinya sekarang! 🚀😊')
->modalSubmitActionLabel('Ya, Setujui')
->action(function (array $arguments): void {
$this->processReview($arguments['id'], DecisionAdmin::APPROVED, null);

View File

@ -25,8 +25,8 @@ protected function setUp(): void
->icon('heroicon-o-x-mark')
->size('sm')
->requiresConfirmation()
->modalHeading('Tolak Verifikasi')
->modalDescription('Pengajuan akan ditolak secara permanen. Pengguna tidak dapat mengajukan ulang untuk data ini.')
->modalHeading('Tolak Verifikasi? 🛑🤔')
->modalDescription('Yakin mau ditolak secara permanen? Pastikan alasannya sudah sreg di hati ya! 😔📝')
->modalSubmitActionLabel('Ya, Tolak')
->schema([
Textarea::make('note')

View File

@ -25,8 +25,8 @@ protected function setUp(): void
->color('warning')
->icon('heroicon-o-pencil-square')
->size('sm')
->modalHeading('Minta Revisi')
->modalDescription('Pengguna akan diminta untuk memperbaiki data sesuai catatan yang diberikan.')
->modalHeading('Minta Revisi Data 📝⚠️')
->modalDescription('Siap kirim instruksi perbaikan? Kasih catatan yang jelas ya biar pengguna nggak bingung! 😊')
->schema([
Textarea::make('note')
->label('Catatan Revisi')

View File

@ -288,7 +288,8 @@ public function saveAction(): Action
return Action::make('save')
->label('Simpan')
->modalHeading('Ajukan Perubahan')
->modalHeading('Ajukan Perubahan Profil 📝✨')
->modalDescription('Yakin ingin mengubah data perusahaan? Jelaskan alasannya supaya proses verifikasi makin lancar! 😊')
->modal($needsReview)
->schema(
$needsReview

View File

@ -236,7 +236,8 @@ public function saveAction(): Action
return Action::make('save')
->label('Simpan')
->modalHeading('Ajukan Perubahan')
->modalHeading('Ajukan Perubahan Media 📝✨')
->modalDescription('Mau mengubah data media? Sertakan alasan yang jelas ya biar admin makin yakin! 😊')
->modal($needsReview)
->schema(
$needsReview

View File

@ -37,8 +37,8 @@ public function form(Schema $schema): Schema
{
return $schema
->components([
Section::make('Informasi')
->description('Atur informasi untuk ditampilkan di halaman utama.')
Section::make('Informasi Dasar 📋✨')
->description('Atur info penting website kita di sini biar makin lengkap! 🚀😊')
->schema([
TextInput::make('site_name')
->label('Nama')
@ -84,7 +84,8 @@ public function form(Schema $schema): Schema
->columnSpanFull(),
])->columnSpan(2),
Section::make('Lampiran')
Section::make('Logo & Ikon 🖼️✨')
->description('Unggah logo dan ikon biar branding kita makin cakep! 🎨👌')
->schema([
FileUpload::make('site_logo')
->label('Logo')
@ -104,6 +105,6 @@ public function form(Schema $schema): Schema
public function getSavedNotification(): ?Notification
{
return CheerfulNotification::update()->send();
return CheerfulNotification::update();
}
}

View File

@ -35,8 +35,8 @@ public function form(Schema $schema): Schema
{
return $schema
->components([
Section::make('Search Engine Optimization')
->description('Atur bagaimana website Anda muncul di mesin pencari.')
Section::make('Search Engine Optimization 🔍✨')
->description('Atur kata kunci dan deskripsi biar website kita gampang dicari orang ya! 🚀📈')
->schema([
TextInput::make('title')
->label('SEO Title')
@ -63,6 +63,6 @@ public function form(Schema $schema): Schema
public function getSavedNotification(): ?Notification
{
return CheerfulNotification::update()->send();
return CheerfulNotification::update();
}
}

View File

@ -35,8 +35,8 @@ public function form(Schema $schema): Schema
{
return $schema
->components([
Section::make('Link Media Sosial')
->description('Atur link media sosial resmi Anda.')
Section::make('Link Media Sosial 🔗✨')
->description('Hubungkan semua media sosial resmi kita di sini untuk menjangkau lebih banyak orang! 🌐🤩')
->schema([
Grid::make(2)
->schema([
@ -72,6 +72,6 @@ public function form(Schema $schema): Schema
public function getSavedNotification(): ?Notification
{
return CheerfulNotification::update()->send();
return CheerfulNotification::update();
}
}

View File

@ -6,6 +6,7 @@
use App\Filament\Pages\Company as PagesCompany;
use App\Filament\Resources\Manage\Journalists\Pages\ManageJournalists;
use App\Filament\Resources\Manage\Partners\PartnerResource;
use App\Filament\Support\CheerfulNotification;
use App\Models\Company;
use App\Models\User;
use App\Models\VerificationRequest;
@ -17,7 +18,6 @@
use Filament\Actions\Contracts\HasActions;
use Filament\Forms\Concerns\InteractsWithForms;
use Filament\Forms\Contracts\HasForms;
use Filament\Notifications\Notification;
use Filament\Pages\Page;
use Filament\Support\Icons\Heroicon;
use Illuminate\Support\Collection;
@ -112,24 +112,27 @@ public function submitVerificationAction(): Action
->icon('heroicon-o-paper-airplane')
->color('primary')
->requiresConfirmation()
->modalHeading('Ajukan Verifikasi')
->modalHeading('Ajukan Verifikasi Sekarang? 🚀✨')
->modalDescription(function () use ($progress): string {
if (! $progress['isDataComplete']) {
return 'Data belum lengkap. Silakan lengkapi terlebih dahulu: '.implode(', ', $progress['missingData']);
return 'Aduh, data belum lengkap nih! 😅 Silakan lengkapi dulu bagian: '.implode(', ', $progress['missingData']).' ya!';
}
return 'Apakah Anda yakin ingin mengajukan verifikasi? Pastikan semua data sudah benar dan lengkap.';
if ($this->verificationRequest && $this->verificationRequest->status === VerificationStatus::NEED_REVISION) {
return 'Ayo kirim ulang perbaikannya! Pastikan semuanya sudah sesuai catatan admin biar langsung gaspol! 💪✨';
}
return 'Apakah Anda yakin ingin mengajukan verifikasi? Pastikan semua data sudah benar dan lengkap ya! Pasti bisa! 😊👍';
})
->modalSubmitActionLabel('Ya, Ajukan')
->visible(fn (): bool => $progress['canSubmit'])
->disabled(fn (): bool => ! $progress['isDataComplete'])
->action(function () use ($progress): void {
if (! $progress['isDataComplete']) {
Notification::make()
->title('Data Belum Lengkap')
->body('Silakan lengkapi data terlebih dahulu: '.implode(', ', $progress['missingData']))
->danger()
->send();
CheerfulNotification::danger(
'Data Belum Lengkap! 😅',
'Silakan lengkapi data terlebih dahulu sebelum mengajukan verifikasi ya: '.implode(', ', $progress['missingData'])
)->send();
return;
}
@ -138,11 +141,10 @@ public function submitVerificationAction(): Action
$this->verificationRequest = $this->submitVerification();
Notification::make()
->title('Berhasil Diajukan! 🚀')
->body('Yeay! Pengajuan verifikasi Anda sudah terkirim ke Admin. Mohon ditunggu ya, semoga hasilnya memuaskan! ✨')
->success()
->send();
CheerfulNotification::success(
'Berhasil Diajukan! 🚀',
'Yeay! Pengajuan verifikasi Anda sudah terkirim ke Admin. Mohon ditunggu ya, semoga hasilnya memuaskan! ✨'
)->send();
User::superAdmin()
->get()

View File

@ -19,8 +19,8 @@ protected function setUp(): void
$this->label('Balas')
->icon(Heroicon::OutlinedChatBubbleLeftRight)
->color('success')
->modalHeading('Balas Pesan Kontak')
->modalDescription('Pesan balasan tidak bisa diubah setelah dikirim.')
->modalHeading('Balas Pesan Kontak ✨✉️')
->modalDescription('Tuliskan jawaban terbaik Anda di sini ya! Hati-hati, setelah dikirim tidak bisa ditarik kembali. 👋😊')
->schema([
Textarea::make('reply_message')
->label('Pesan Balasan')

View File

@ -19,8 +19,8 @@ protected function setUp(): void
->icon(Heroicon::OutlinedCheckBadge)
->color('success')
->requiresConfirmation()
->modalHeading('Selesaikan Kerja Sama')
->modalDescription('Apakah Anda yakin ingin menyelesaikan kerja sama ini? Pastikan semua pembayaran kepada media yang bekerja sama telah lunas.')
->modalHeading('Selesaikan Kerja Sama? 🏁✨')
->modalDescription('Yakin mau menyelesaikan kerja sama ini? Pastikan semua pembayaran ke media sudah lunas dan aman ya! 🤝😊')
->action(function (Cooperation $record): void {
// Verify all accepted media are paid
$acceptedMedia = $record->cooperationMedia()->accepted()->get();

View File

@ -98,7 +98,8 @@ protected function setUp(): void
'Mantap! Penugasan telah dibuat dan semua media terkait sudah diberi tahu. Mari kita pantau progresnya! 💪'
)->send();
})
->modalHeading('Buat Penugasan')
->modalHeading('Buat Penugasan Baru 📝✨')
->modalDescription('Waktunya bagi-bagi tugas! Tentukan detail penugasan untuk para media biar mereka bisa langsung gaspol! 🚀💪')
->modalSubmitActionLabel('Simpan')
->visible(function (Cooperation $record): bool {
$user = auth()->user();

View File

@ -20,8 +20,8 @@ protected function setUp(): void
->icon(Heroicon::OutlinedBanknotes)
->color('success')
->requiresConfirmation()
->modalHeading('Lanjutkan ke Pembayaran?')
->modalDescription('Apakah Anda yakin ingin melanjutkan kerja sama ini ke tahap pembayaran? Pastikan semua laporan telah diverifikasi.')
->modalHeading('Lanjut ke Pembayaran? 💸💳')
->modalDescription('Siap buat lanjut ke tahap pembayaran? Pastikan semua laporan sudah diverifikasi dulu ya! ✅😊')
->action(function (Cooperation $record): void {
$record->update([
'status' => CooperationStatus::PAYMENT,

View File

@ -117,7 +117,8 @@ protected function setUp(): void
});
}
})
->modalHeading('Proposal Kerja Sama')
->modalHeading('Ajukan Proposal Kerja Sama 🚀📝')
->modalDescription('Ayo kirimkan proposal terbaikmu! Pastikan semua dokumen sudah lengkap ya biar admin makin sreg! ✨😊')
->modalSubmitActionLabel('Kirim Proposal')
->visible(function (Cooperation $record): bool {
$user = auth()->user();

View File

@ -5,11 +5,11 @@
use App\Enums\ApprovalStatus;
use App\Enums\RoleEnum;
use App\Filament\Resources\Manage\Cooperations\CooperationResource;
use App\Filament\Support\CheerfulNotification;
use App\Models\CooperationProposal;
use App\Models\User;
use App\Notifications\BroadcastNotification;
use Filament\Actions\Action;
use Filament\Notifications\Notification;
use Filament\Support\Icons\Heroicon;
class AcceptAction extends Action
@ -21,17 +21,19 @@ protected function setUp(): void
$this->label('Terima')
->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! 😊')
->action(function (CooperationProposal $record): void {
$record->update([
'status' => ApprovalStatus::ACCEPTED,
'responded_at' => now(),
]);
Notification::make()
->title('Berhasil Diproses! ✨')
->body("Mantap! Proposal dari {$record->partnerMedia->name} telah diterima. Notifikasi sudah dikirim! 💪")
->success()
->send();
CheerfulNotification::success(
'Proposal Diterima! ✅✨',
"Mantap! Proposal dari '{$record->partnerMedia->name}' telah berhasil diterima. Mari kita lanjut ke tahap berikutnya! 💪"
)->send();
// Notify User (Partner)
$partnerUser = $record->partnerMedia?->company?->user;

View File

@ -5,12 +5,12 @@
use App\Enums\ApprovalStatus;
use App\Enums\RoleEnum;
use App\Filament\Resources\Manage\Cooperations\CooperationResource;
use App\Filament\Support\CheerfulNotification;
use App\Models\CooperationProposal;
use App\Models\User;
use App\Notifications\BroadcastNotification;
use Filament\Actions\Action;
use Filament\Forms\Components\Textarea;
use Filament\Notifications\Notification;
use Filament\Support\Enums\Width;
use Filament\Support\Icons\Heroicon;
@ -23,6 +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! 📝😊')
->schema([
Textarea::make('reason')
->label('Alasan Penolakan')
@ -37,11 +39,10 @@ protected function setUp(): void
$record->rejectionReasons()->create(['reason' => $data['reason']]);
Notification::make()
->title('Berhasil Diproses! ✨')
->body("Proposal dari {$record->partnerMedia->name} telah ditolak. Notifikasi sudah dikirim! 🙏")
->warning()
->send();
CheerfulNotification::warning(
'Proposal Ditolak! 🛑',
"Proposal dari '{$record->partnerMedia->name}' telah ditolak. Media terkait akan segera mendapatkan notifikasi. 🙏"
)->send();
// Notify User (Partner)
$partnerUser = $record->partnerMedia?->company?->user;

View File

@ -6,10 +6,10 @@
use App\Enums\CooperationStatus;
use App\Enums\RoleEnum;
use App\Filament\Resources\Manage\Cooperations\CooperationResource;
use App\Filament\Support\CheerfulNotification;
use App\Models\Report;
use App\Notifications\BroadcastNotification;
use Filament\Actions\Action;
use Filament\Notifications\Notification;
use Filament\Support\Icons\Heroicon;
class AcceptAction extends Action
@ -26,11 +26,10 @@ protected function setUp(): void
'status' => ApprovalStatus::ACCEPTED,
]);
Notification::make()
->title('Berhasil Diproses! ✨')
->body("Laporan '{$record->title}' telah diterima. Notifikasi sudah dikirim ke media! 💪")
->success()
->send();
CheerfulNotification::success(
'Laporan Diterima! ✅✨',
"Laporan '{$record->title}' telah berhasil diproses. Notifikasi sudah dikirim ke media terkait! 💪"
)->send();
$partnerUser = $record->mediaTaskAssignment?->partnerMedia?->company?->user;
if ($partnerUser) {

View File

@ -6,11 +6,11 @@
use App\Enums\CooperationStatus;
use App\Enums\RoleEnum;
use App\Filament\Resources\Manage\Cooperations\CooperationResource;
use App\Filament\Support\CheerfulNotification;
use App\Models\Report;
use App\Notifications\BroadcastNotification;
use Filament\Actions\Action;
use Filament\Forms\Components\Textarea;
use Filament\Notifications\Notification;
use Filament\Support\Enums\Width;
use Filament\Support\Icons\Heroicon;
@ -29,6 +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! 📝😊')
->action(function (Report $record, array $data): void {
$record->update([
'status' => ApprovalStatus::REJECTED,
@ -36,11 +38,10 @@ protected function setUp(): void
$record->rejectionReasons()->create(['reason' => $data['reason']]);
Notification::make()
->title('Berhasil Diproses! ✨')
->body("Laporan '{$record->title}' telah ditolak. Media terkait akan segera mendapatkan notifikasi perbaikan. 🙏")
->warning()
->send();
CheerfulNotification::warning(
'Laporan Ditolak! 🛑',
"Laporan '{$record->title}' telah ditolak. Media terkait akan segera mendapatkan notifikasi untuk perbaikan. 🙏"
)->send();
$partnerUser = $record->mediaTaskAssignment?->partnerMedia?->company?->user;
if ($partnerUser) {

View File

@ -7,12 +7,12 @@
use App\Filament\Columns\RowIndexColumn;
use App\Filament\Resources\Manage\Cooperations\Actions\Proposal\AcceptAction;
use App\Filament\Resources\Manage\Cooperations\Actions\Proposal\RejectAction;
use App\Filament\Support\CheerfulNotification;
use App\Models\CooperationProposal;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\ViewAction;
use Filament\Infolists\Components\TextEntry;
use Filament\Notifications\Notification;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Schemas\Components\Grid;
use Filament\Schemas\Schema;
@ -107,10 +107,10 @@ public function table(Table $table): Table
BulkActionGroup::make([
DeleteBulkAction::make()
->successNotification(
Notification::make()
->title('Proposal Dihapus! 🗑️')
->body('Semua proposal yang dipilih telah berhasil dihapus. 👋')
->success()
CheerfulNotification::delete(
'Proposal Dihapus! 🗑️',
'Semua proposal yang dipilih telah berhasil dihapus dari sistem. 👋'
)
),
]),
])

View File

@ -154,7 +154,8 @@ public function table(Table $table): Table
CreateAction::make()
->label('Buat Laporan')
->modalWidth(Width::Large)
->modalHeading('Buat Laporan')
->modalHeading('Sampaikan Laporan Baru 📝🚀')
->modalDescription('Ayo kirimkan hasil kerja kerasmu! Isi detail laporannya biar admin bisa langsung verifikasi ya! 💪✨')
->mutateDataUsing(function (array $data): array {
$taskAssignment = $this->getOwnerRecord()->taskAssignment;

View File

@ -8,9 +8,9 @@
use App\Filament\Actions\Cheerful\DeleteAction;
use App\Filament\Actions\Cheerful\EditAction;
use App\Filament\Columns\RowIndexColumn;
use App\Filament\Support\CheerfulNotification;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Notifications\Notification;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Columns\TextColumn;
@ -73,37 +73,37 @@ public function table(Table $table): Table
&& ! $cooperation->taskAssignment()->exists();
})
->successNotification(
Notification::make()
->title('Penugasan Dibuat! 🚀✨')
->body('Tugas baru berhasil ditetapkan. Media terkait akan segera mengetahuinya! 💪')
->success()
CheerfulNotification::create(
'Penugasan Dibuat! 🚀✨',
'Tugas baru berhasil ditetapkan. Media terkait akan segera mengetahuinya! 💪'
)
),
])
->recordActions([
EditAction::make()
->successNotification(
Notification::make()
->title('Penugasan Diperbarui! ✅')
->body('Perubahan pada penugasan berhasil disimpan. 👍')
->success()
CheerfulNotification::update(
'Penugasan Diperbarui! ✅',
'Perubahan pada penugasan berhasil disimpan dengan aman. 👍'
)
),
DeleteAction::make()
->successNotification(
Notification::make()
->title('Penugasan Dihapus! 🗑️')
->body('Penugasan telah berhasil dihapus dari sistem. 👋')
->success()
CheerfulNotification::delete(
'Penugasan Dihapus! 🗑️',
'Penugasan telah berhasil dihapus dari sistem. 👋'
)
),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make()
->successNotification(
Notification::make()
->title('Banyak Penugasan Dihapus! 🗑️👋')
->body('Semua penugasan yang dipilih telah dihapus. 🧹')
->success()
CheerfulNotification::delete(
'Banyak Penugasan Dihapus! 🗑️👋',
'Semua penugasan yang dipilih telah dihapus dari sistem. 🧹'
)
),
]),
])

View File

@ -24,8 +24,8 @@ protected function setUp(): void
->icon(Heroicon::OutlinedCheck)
->color('success')
->requiresConfirmation()
->modalHeading('Setujui Perubahan Data')
->modalDescription('Apakah Anda yakin ingin menyetujui dan menerapkan perubahan data ini?')
->modalHeading('Setujui Perubahan Data? ✅✨')
->modalDescription('Siap untuk menerapkan perubahan data ini secara otomatis ke sistem? Pastikan semuanya sudah sesuai ya! 🚀😊')
->action(function (DataChangeRequest $record): void {
$entity = $record->entity;
$newData = $record->new_data;

View File

@ -29,7 +29,8 @@ protected function setUp(): void
->placeholder('Berikan alasan mengapa permohonan ini ditolak...')
->required(),
])
->modalHeading('Tolak Perubahan Data')
->modalHeading('Tolak Perubahan Data? 🛑🤔')
->modalDescription('Yakin ingin menolak permohonan ini? Pastikan alasannya jelas biar pemohon nggak bingung ya! 😔📝')
->action(function (DataChangeRequest $record, array $data): void {
$record->update([
'status' => DataChangeStatus::REJECTED,

View File

@ -21,7 +21,8 @@ protected function setUp(): void
parent::setUp();
$this->label('Tambah')
->modalHeading('Tambah Jurnalis')
->modalHeading('Tambah Jurnalis Baru 🚀✨')
->modalDescription('Yuk, masukkan data jurnalisnya dengan lengkap biar sistem makin mantap! 💪😊')
->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal')
->successNotification(null)

View File

@ -23,7 +23,7 @@ protected function setUp(): void
$this->successNotification(null);
$this->modalHeading(fn () => auth()->user()->company?->verificationRequest?->status === VerificationStatus::APPROVED ? 'Ajukan Penghapusan Jurnalis' : 'Hapus Jurnalis');
$this->modalHeading(fn () => auth()->user()->company?->verificationRequest?->status === VerificationStatus::APPROVED ? 'Mau Ajukan Penghapusan Jurnalis? 🗑️📬' : 'Betulan Mau Hapus Jurnalis? 🗑️🤔');
$this->schema(fn () => auth()->user()->company?->verificationRequest?->status === VerificationStatus::APPROVED ? [
Textarea::make('deletion_reason')

View File

@ -22,7 +22,9 @@ protected function setUp(): void
{
parent::setUp();
$this->modalWidth(Width::Large)
$this->modalHeading('Sempurnakan Data Jurnalis 📝✨')
->modalDescription('Ayo kita perbarui supaya data jurnalis makin akurat dan segar lagi! 🛠️👌')
->modalWidth(Width::Large)
->successNotification(null)
->fillForm(function (Journalist $journalist): array {
$data = $journalist->attributesToArray();

View File

@ -18,7 +18,8 @@ protected function getHeaderActions(): array
return [
CreateAction::make()
->label('Tambah')
->modalHeading('Tambah Kategori')
->modalHeading('Tambah Kategori Baru 🏷️✨')
->modalDescription('Tambahkan kategori baru biar data makin teratur dan rapi! 📁😊')
->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal')
->extraModalFooterActions(fn (CreateAction $action): array => [

View File

@ -18,7 +18,8 @@ protected function getHeaderActions(): array
return [
CreateAction::make()
->label('Tambah')
->modalHeading('Tambah Klasifikasi')
->modalHeading('Tambah Klasifikasi Baru 📂✨')
->modalDescription('Bantu sistem mengelompokkan data dengan klasifikasi yang pas! 🧩😊')
->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal')
->extraModalFooterActions(fn (CreateAction $action): array => [

View File

@ -18,7 +18,8 @@ protected function getHeaderActions(): array
return [
CreateAction::make()
->label('Tambah')
->modalHeading('Tambah OPD')
->modalHeading('Tambah OPD Baru 🏢✨')
->modalDescription('Daftarkan instansi/OPD baru ke dalam sistem kita! 💪😊')
->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal')
->extraModalFooterActions(fn (CreateAction $action): array => [

View File

@ -18,7 +18,8 @@ protected function getHeaderActions(): array
return [
CreateAction::make()
->label('Tambah')
->modalHeading('Tambah Lokus')
->modalHeading('Tambah Lokus Baru 📍✨')
->modalDescription('Tentukan titik lokasi baru biar datanya makin presisi! 🗺️😊')
->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal')
->extraModalFooterActions(fn (CreateAction $action): array => [

View File

@ -18,7 +18,8 @@ protected function getHeaderActions(): array
return [
CreateAction::make()
->label('Tambah')
->modalHeading('Tambah Sub Klasifikasi')
->modalHeading('Tambah Sub Klasifikasi Baru 📑✨')
->modalDescription('Perdalam klasifikasi data biar makin detail dan tertata! 🗂️😊')
->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal')
->extraModalFooterActions(fn (CreateAction $action): array => [

View File

@ -12,13 +12,13 @@
use App\Filament\Columns\RowIndexColumn;
use App\Filament\Columns\TimestampColumns;
use App\Filament\Resources\Master\SubClassifications\Pages\ManageSubClassifications;
use App\Filament\Support\CheerfulNotification;
use App\Models\Classification;
use App\Models\SubClassification;
use BackedEnum;
use Filament\Actions\BulkActionGroup;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Notifications\Notification;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Enums\Width;
@ -91,11 +91,10 @@ public static function table(Table $table): Table
$record->is_active = $state ? IsActive::ACTIVE : IsActive::INACTIVE;
$record->save();
Notification::make()
->title('Status Berubah! 🔄✨')
->body('Status data berhasil diperbarui. Perubahan langsung aktif ya! 👍')
->success()
->send();
CheerfulNotification::success(
'Status Berubah! 🔄✨',
'Status data berhasil diperbarui. Perubahan langsung aktif ya! 👍'
)->send();
}),
...TimestampColumns::make(),

View File

@ -18,7 +18,8 @@ protected function getHeaderActions(): array
return [
CreateAction::make()
->label('Tambah')
->modalHeading('Tambah Sub Lokus')
->modalHeading('Tambah Sub Lokus Baru 📌✨')
->modalDescription('Detailkan lebih dalam lagi titik lokasinya, ya! 📍😊')
->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal')
->extraModalFooterActions(fn (CreateAction $action): array => [

View File

@ -18,7 +18,8 @@ protected function getHeaderActions(): array
return [
CreateAction::make()
->label('Tambah')
->modalHeading('Tambah Tema')
->modalHeading('Tambah Tema Baru 📂✨')
->modalDescription('Ayo tambahkan tema biar pengelompokan makin lengkap! 📚😊')
->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal')
->extraModalFooterActions(fn (CreateAction $action): array => [

View File

@ -18,7 +18,8 @@ protected function getHeaderActions(): array
return [
CreateAction::make()
->label('Tambah')
->modalHeading('Tambah Pengguna')
->modalHeading('Tambah Pengguna Baru 🚀✨')
->modalDescription('Yuk, buat akun baru biar makin lengkap penggunanya! 💪😊')
->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal')
->extraModalFooterActions(fn (CreateAction $action): array => [

View File

@ -13,13 +13,13 @@
use App\Filament\Columns\TimestampColumns;
use App\Filament\Resources\Master\Users\Actions\ChangePasswordAction;
use App\Filament\Resources\Master\Users\Pages\ManageUsers;
use App\Filament\Support\CheerfulNotification;
use App\Models\User;
use BackedEnum;
use Filament\Actions\BulkActionGroup;
use Filament\Forms\Components\Hidden;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Notifications\Notification;
use Filament\Resources\Resource;
use Filament\Schemas\Components\Grid;
use Filament\Schemas\Schema;
@ -139,11 +139,10 @@ public static function table(Table $table): Table
->delete();
}
Notification::make()
->title($state ? 'Pengguna Diaktifkan! ✅' : 'Pengguna Dinonaktifkan ⛔')
->body($state ? 'Status akun pengguna berhasil diaktifkan kembali. Siap beraksi! 🚀' : 'Status akun pengguna berhasil dinonaktifkan. Istirahat dulu ya... 😴')
->success()
->send();
CheerfulNotification::success(
$state ? 'Pengguna Diaktifkan! ✅' : 'Pengguna Dinonaktifkan ⛔',
$state ? 'Status akun pengguna berhasil diaktifkan kembali. Siap beraksi! 🚀' : 'Status akun pengguna berhasil dinonaktifkan. Istirahat dulu ya... 😴'
)->send();
})
->disabled(fn (User $record): bool => $record->hasRole(RoleEnum::PERUSAHAAN->value)),

View File

@ -23,7 +23,8 @@ protected function getHeaderActions(): array
return [
CreateAction::make()
->label('Tambah')
->modalHeading('Tambah Pengumuman')
->modalHeading('Buat Pengumuman Baru 📢✨')
->modalDescription('Siarkan kabar terbaru ke seluruh sistem biar semua orang tetap update! 🚀😊')
->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal')
->extraModalFooterActions(fn (CreateAction $action): array => [