Files
Verde-Web/routes/web.php
admin c2115b767e feat(web): replace remaining "Soon" stubs with real pages
- Live Tracking: Leaflet map (CDN) showing active truck positions,
  auto-refresh every 10s, sidebar list with speed + last update.
- Finance / Payments: filterable list of payments with mark-paid
  action that runs admin fulfillment.
- Settings: notification-preferences form bound to /me/notification-
  preferences.

Backend:
- New admin payments index endpoint
  GET /admin/payments + POST /admin/payments/{uuid}/mark-paid (moved
  out of /admin/live/* for clarity).

Sidebar groups now reflect what's live: Operations (Trips, Live
Tracking), Planning (Routes, Teams, Trucks, DOPs, Dumpsites), People
(Users, Households, Partner Stores), QR, Areas, Finance, Reports,
Settings. Trip Calendar + Incidents remain "Soon" — backends ready,
UI work pending. Dashboard backend-status copy updated to 13/13
modules / 171 tests.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 14:07:59 +08:00

42 lines
2.0 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
Route::redirect('/', '/login');
Route::view('/login', 'auth.login')->name('login');
Route::redirect('/dashboard', '/admin/dashboard');
Route::prefix('admin')->group(function () {
Route::view('/dashboard', 'admin.dashboard')->name('admin.dashboard');
Route::view('/households', 'admin.households')->name('admin.households');
Route::view('/service-areas', 'admin.service-areas')->name('admin.service-areas');
Route::view('/qr-batches', 'admin.qr-batches')->name('admin.qr-batches');
Route::view('/qr-search', 'admin.qr-search')->name('admin.qr-search');
Route::view('/drop-off-points', 'admin.drop-off-points')->name('admin.drop-off-points');
Route::view('/dumpsites', 'admin.dumpsites')->name('admin.dumpsites');
Route::view('/routes', 'admin.routes')->name('admin.routes');
Route::view('/users', 'admin.users')->name('admin.users');
Route::view('/teams', 'admin.teams')->name('admin.teams');
Route::view('/trucks', 'admin.trucks')->name('admin.trucks');
Route::view('/trips', 'admin.trips')->name('admin.trips');
Route::view('/partner-stores', 'admin.partner-stores')->name('admin.partner-stores');
Route::view('/reports', 'admin.reports')->name('admin.reports');
// New from this batch
Route::view('/operations/live', 'admin.live-tracking')->name('admin.live-tracking');
Route::view('/finance', 'admin.finance')->name('admin.finance');
Route::view('/settings', 'admin.settings')->name('admin.settings');
// Still stubs — UI work needed (backends are ready, just no page yet)
Route::view('/operations/calendar', 'admin.coming-soon', [
'title' => 'Trip Calendar',
'description' => 'Drag-to-create week/month calendar — UI work pending. Use the Trips list for now.',
]);
Route::view('/operations/incidents', 'admin.coming-soon', [
'title' => 'Incidents',
'description' => 'Filtered view of trip incident events — UI work pending. Visible inline in each Trip detail.',
]);
});