diff --git a/app/Http/Controllers/ActivityLogController.php b/app/Http/Controllers/ActivityLogController.php
new file mode 100644
index 0000000..3eafc2e
--- /dev/null
+++ b/app/Http/Controllers/ActivityLogController.php
@@ -0,0 +1,21 @@
+limit(200)->get()->map(fn($l) => [
+ 'id' => $l->id,
+ 'user' => $l->user_name ?? 'Sistem',
+ 'action' => $l->action,
+ 'description' => $l->description,
+ 'ip' => $l->ip_address,
+ 'created_at' => $l->created_at?->format('d/m/Y H:i:s'),
+ ]);
+ return response()->json($logs);
+ }
+}
diff --git a/resources/views/admin/logs.blade.php b/resources/views/admin/logs.blade.php
new file mode 100644
index 0000000..098f976
--- /dev/null
+++ b/resources/views/admin/logs.blade.php
@@ -0,0 +1,105 @@
+
+
+
+
diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php
index 35c4329..f3384a5 100644
--- a/resources/views/dashboard.blade.php
+++ b/resources/views/dashboard.blade.php
@@ -52,6 +52,11 @@
Admin
+
+
+ Log
+
+
@endif
diff --git a/resources/views/data.blade.php b/resources/views/data.blade.php
index 62355eb..e36c7b0 100644
--- a/resources/views/data.blade.php
+++ b/resources/views/data.blade.php
@@ -47,6 +47,11 @@
Admin
+
+
+ Log
+
+
@endif
diff --git a/resources/views/map.blade.php b/resources/views/map.blade.php
index 4025b87..fa4ad6c 100644
--- a/resources/views/map.blade.php
+++ b/resources/views/map.blade.php
@@ -99,6 +99,11 @@
Admin
+
+
+ Log
+
+
@endif
diff --git a/routes/web.php b/routes/web.php
index 9029310..c4f456e 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -1,5 +1,6 @@
group(function () {
// Admin routes — hanya administrator
Route::middleware('role:administrator')->group(function () {
Route::get('/admin/users', fn() => view('admin.users'))->name('admin.users');
+ Route::get('/admin/logs', fn() => view('admin.logs'))->name('admin.logs');
Route::prefix('api/admin')->group(function () {
Route::get('/users', [AdminUserController::class, 'index']);
@@ -67,6 +69,8 @@ Route::middleware('auth')->group(function () {
Route::post('/import/miskin', [ImportController::class, 'miskin']);
Route::get('/backup', [BackupController::class, 'download'])->name('admin.backup');
+
+ Route::get('/logs', [ActivityLogController::class, 'index']);
});
});
});