feat: tambah database notifications dan widget activity log di dashboard

This commit is contained in:
2026-04-03 07:57:40 +07:00
parent 060d669d5c
commit 3a0373bc44
7 changed files with 152 additions and 5 deletions
+17
View File
@@ -4,6 +4,7 @@ namespace App\Observers;
use App\Models\Activity;
use App\Models\ActivityLog;
use App\Services\NotificationService;
use Illuminate\Support\Facades\Auth;
class ActivityObserver
@@ -36,6 +37,22 @@ class ActivityObserver
'model_id' => $activity->id,
'description' => "Status kegiatan '{$activity->title}' diubah dari {$old} menjadi {$new}",
]);
if ($new === 'pending') {
NotificationService::toRole('ketua', 'Kegiatan Menunggu Persetujuan',
"Kegiatan \"{$activity->title}\" diajukan untuk disetujui.", 'warning',
route('filament.admin.resources.activities.edit', $activity));
}
if (in_array($new, ['approved', 'rejected'])) {
NotificationService::send(
$activity->creator,
$new === 'approved' ? 'Kegiatan Disetujui' : 'Kegiatan Ditolak',
"Kegiatan \"{$activity->title}\" telah " . ($new === 'approved' ? 'disetujui.' : 'ditolak.'),
$new === 'approved' ? 'success' : 'danger',
route('filament.admin.resources.activities.edit', $activity)
);
}
}
}
+8
View File
@@ -5,6 +5,7 @@ namespace App\Observers;
use App\Models\ActivityLog;
use App\Models\MemberStatusLog;
use App\Models\User;
use App\Services\NotificationService;
use Illuminate\Support\Facades\Auth;
class UserObserver
@@ -28,6 +29,13 @@ class UserObserver
'model_id' => $user->id,
'description' => "Status anggota {$user->name} diubah dari {$user->getOriginal('status')} menjadi {$user->status}",
]);
NotificationService::send(
$user,
'Status Keanggotaan Diubah',
"Status Anda diubah menjadi {$user->status}" . ($user->inactive_reason ? ": {$user->inactive_reason}" : '.'),
$user->status === 'aktif' ? 'success' : 'warning'
);
}
}