refactor: Update modal headings and descriptions for clarity, enhance date formatting, and improve user notifications in verification processes.
This commit is contained in:
parent
87b0275151
commit
6574684f46
@ -5,6 +5,7 @@
|
||||
use App\Enums\DecisionAdmin;
|
||||
use App\Enums\VerificationStatus;
|
||||
use App\Filament\Resources\Manage\Partners\Pages\ViewPartner;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use App\Models\User;
|
||||
use App\Models\VerificationRequest;
|
||||
use App\Notifications\BroadcastNotification;
|
||||
@ -161,8 +162,8 @@ public function approveAction(): Action
|
||||
->icon('heroicon-o-check')
|
||||
->size('sm')
|
||||
->requiresConfirmation()
|
||||
->modalHeading('Setujui Verifikasi Lengkap')
|
||||
->modalDescription('Apakah Anda yakin ingin menyetujui verifikasi ini? Status akan diterapkan pada Perusahaan, Media, dan semua Jurnalis sekaligus.')
|
||||
->modalHeading('Setujui Verifikasi')
|
||||
->modalDescription('Apakah Anda yakin ingin menyetujui verifikasi ini? Pastikan data sudah benar dan lengkap.')
|
||||
->modalSubmitActionLabel('Ya, Setujui')
|
||||
->action(function (array $arguments, array $data): void {
|
||||
$this->processReview($arguments['id'], DecisionAdmin::APPROVED, $data['note'] ?? null);
|
||||
@ -180,13 +181,12 @@ public function revisionAction(): Action
|
||||
->icon('heroicon-o-pencil-square')
|
||||
->size('sm')
|
||||
->modalHeading('Minta Revisi')
|
||||
->modalDescription('User akan diminta untuk memperbaiki data sesuai catatan yang diberikan.')
|
||||
->modalDescription('Pengguna akan diminta untuk memperbaiki data sesuai catatan yang diberikan.')
|
||||
->schema([
|
||||
Textarea::make('note')
|
||||
->label('Catatan Revisi')
|
||||
->required()
|
||||
->placeholder('Jelaskan bagian yang perlu diperbaiki (Perusahaan, Media, atau Jurnalis)...')
|
||||
->helperText('Catatan ini akan ditampilkan kepada user.')
|
||||
->autocomplete(false)
|
||||
->autofocus(),
|
||||
])
|
||||
@ -206,15 +206,14 @@ public function rejectAction(): Action
|
||||
->icon('heroicon-o-x-mark')
|
||||
->size('sm')
|
||||
->requiresConfirmation()
|
||||
->modalHeading('Tolak Verifikasi Lengkap')
|
||||
->modalDescription('Pengajuan akan ditolak secara permanen. Status REJECTED akan diterapkan pada Perusahaan, Media, dan semua Jurnalis. User tidak dapat mengajukan ulang untuk data ini.')
|
||||
->modalHeading('Tolak Verifikasi')
|
||||
->modalDescription('Pengajuan akan ditolak secara permanen. Pengguna tidak dapat mengajukan ulang untuk data ini.')
|
||||
->modalSubmitActionLabel('Ya, Tolak')
|
||||
->schema([
|
||||
Textarea::make('note')
|
||||
->label('Alasan Penolakan')
|
||||
->required()
|
||||
->placeholder('Jelaskan alasan pengajuan ditolak...')
|
||||
->helperText('Alasan ini akan ditampilkan kepada user.')
|
||||
->autocomplete(false)
|
||||
->autofocus(),
|
||||
])
|
||||
@ -249,16 +248,10 @@ protected function processReview(int $requestId, DecisionAdmin $decision, ?strin
|
||||
DecisionAdmin::REJECTED => 'ditolak',
|
||||
};
|
||||
|
||||
$color = match ($decision) {
|
||||
DecisionAdmin::APPROVED => 'success',
|
||||
DecisionAdmin::NEED_REVISION => 'info',
|
||||
DecisionAdmin::REJECTED => 'danger',
|
||||
};
|
||||
|
||||
Notification::make()
|
||||
->title('Berhasil Diproses! ✨')
|
||||
->body("Mantap! Verifikasi telah {$actionLabel} dan notifikasi sudah dikirim ke user. Kerja bagus, Admin! 💪")
|
||||
->color($color)
|
||||
CheerfulNotification::success(
|
||||
'Berhasil Diproses! ✨',
|
||||
"Mantap! Verifikasi telah {$actionLabel} dan notifikasi sudah dikirim ke user. Kerja bagus, Admin! 💪"
|
||||
)
|
||||
->send();
|
||||
|
||||
// Notify User
|
||||
@ -271,7 +264,7 @@ protected function processReview(int $requestId, DecisionAdmin $decision, ?strin
|
||||
};
|
||||
|
||||
$body = match ($decision) {
|
||||
DecisionAdmin::APPROVED => 'Yeay! Pengajuan verifikasi perusahaan Anda telah disetujui. Sekarang Anda sudah resmi terverifikasi! 🎊',
|
||||
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. 💔',
|
||||
};
|
||||
|
||||
@ -77,7 +77,7 @@ public function getVerificationProgress(): array
|
||||
// Add additional data for view
|
||||
$progress['missingDataButtons'] = $this->verificationService->getMissingDataButtons($this->company);
|
||||
$progress['alert'] = $this->verificationService->getAlertData($this->verificationRequest);
|
||||
$progress['lastSubmittedAt'] = $this->verificationRequest?->updated_at?->format('d M Y, H:i');
|
||||
$progress['lastSubmittedAt'] = $this->verificationRequest?->updated_at?->translatedFormat('l, d M Y H:i');
|
||||
|
||||
return $progress;
|
||||
}
|
||||
@ -96,13 +96,13 @@ public function submitVerificationAction(): Action
|
||||
->icon('heroicon-o-paper-airplane')
|
||||
->color('primary')
|
||||
->requiresConfirmation()
|
||||
->modalHeading('Ajukan Verifikasi Lengkap')
|
||||
->modalHeading('Ajukan Verifikasi')
|
||||
->modalDescription(function () use ($progress): string {
|
||||
if (! $progress['isDataComplete']) {
|
||||
return 'Data belum lengkap. Silakan lengkapi terlebih dahulu: '.implode(', ', $progress['missingData']);
|
||||
}
|
||||
|
||||
return 'Apakah Anda yakin ingin mengajukan verifikasi untuk Perusahaan, Media, dan Jurnalis? Pastikan semua data sudah benar dan lengkap.';
|
||||
return 'Apakah Anda yakin ingin mengajukan verifikasi? Pastikan semua data sudah benar dan lengkap.';
|
||||
})
|
||||
->modalSubmitActionLabel('Ya, Ajukan')
|
||||
->visible(fn (): bool => $progress['canSubmit'])
|
||||
|
||||
@ -335,7 +335,7 @@ public function getAlertData(?VerificationRequest $verificationRequest): ?array
|
||||
'type' => 'approved',
|
||||
'icon' => 'check-circle',
|
||||
'title' => 'Verifikasi Diterima',
|
||||
'message' => 'Verifikasi lengkap Anda telah diterima dan disetujui oleh admin. Seluruh data (Perusahaan, Media, dan Jurnalis) telah terverifikasi.',
|
||||
'message' => 'Verifikasi Anda telah diterima dan disetujui oleh admin. Sekarang Anda sudah resmi terverifikasi dan bekerja sama dengan kami!',
|
||||
'color' => 'success',
|
||||
];
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ public function definition(): array
|
||||
'email' => fake()->unique()->safeEmail(),
|
||||
'username' => $this->faker->unique()->bothify('?????#####'),
|
||||
'email_verified_at' => now(),
|
||||
'password' => static::$password ??= Hash::make('password'),
|
||||
'password' => static::$password ??= Hash::make(config('auth.password_default')),
|
||||
'remember_token' => Str::random(10),
|
||||
];
|
||||
}
|
||||
|
||||
@ -113,9 +113,6 @@
|
||||
title="{{ $card['companyName'] }}">
|
||||
{{ $card['companyName'] }}
|
||||
</h3>
|
||||
<p class="text-sm text-gray-500 dark:text-gray-400 mt-1">
|
||||
Perusahaan, Media & Jurnalis
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{{-- Status Badge --}}
|
||||
@ -194,17 +191,18 @@ class="w-10 h-10 rounded-full bg-primary-100 dark:bg-primary-500/20 flex items-c
|
||||
<div>
|
||||
<p class="text-xs text-gray-500 dark:text-gray-400 uppercase font-semibold">Diajukan</p>
|
||||
<p class="text-gray-700 dark:text-gray-300">
|
||||
{{ $verification->created_at->format('d M Y') }}
|
||||
{{ $verification->created_at->translatedFormat('l, d M Y H:i') }}
|
||||
</p>
|
||||
<p class="text-xs text-gray-500">
|
||||
{{ $verification->created_at->format('H:i') }}
|
||||
{{ $verification->created_at->diffForHumans() }}
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-xs text-gray-500 dark:text-gray-400 uppercase font-semibold">Update Terakhir
|
||||
<p class="text-xs text-gray-500 dark:text-gray-400 uppercase font-semibold">Pembaruan
|
||||
Terakhir
|
||||
</p>
|
||||
<p class="text-gray-700 dark:text-gray-300">
|
||||
{{ $verification->updated_at->format('d M Y') }}
|
||||
{{ $verification->updated_at->translatedFormat('l, d M Y H:i') }}
|
||||
</p>
|
||||
<p class="text-xs text-gray-500">
|
||||
{{ $verification->updated_at->diffForHumans() }}
|
||||
@ -284,7 +282,7 @@ class="w-4 h-4 text-gray-500 transition-transform duration-200"
|
||||
@endif
|
||||
</div>
|
||||
<div class="shrink-0 text-xs text-gray-400">
|
||||
{{ $review->created_at->format('d M Y, H:i') }}
|
||||
{{ $review->created_at->translatedFormat('l, d M Y H:i') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -314,7 +312,7 @@ class="w-4 h-4 text-gray-500 transition-transform duration-200"
|
||||
<span
|
||||
class="flex items-center gap-1 text-xs text-warning-600 dark:text-warning-400 font-medium italic">
|
||||
<x-heroicon-s-clock class="w-3 h-3 animate-pulse" />
|
||||
Menunggu revisi dari user...
|
||||
Menunggu revisi dari pengguna...
|
||||
</span>
|
||||
@elseif($card['isApproved'])
|
||||
<span
|
||||
|
||||
@ -173,7 +173,7 @@ class="w-full flex items-center justify-between p-4 bg-gray-50 dark:bg-gray-800
|
||||
@endif
|
||||
</div>
|
||||
<div class="shrink-0 text-xs text-gray-400">
|
||||
{{ $review->created_at->format('d M Y, H:i') }}
|
||||
{{ $review->created_at->translatedFormat('l, d M Y H:i') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user