Files
Verde-Web/routes/web.php
Developer 6f5327bbcd feat: implement trip incident dashboard, drop-off geofence validation, and calendar updates
- **Trip Incidents**: Created the `AdminTripController@incidents` API endpoint, built the `incidents.blade.php` view, enabled the incidents sidebar link, and added test coverage (`TripIncidentDashboardTest.php`).
- **Drop-off Points (LGU Geofence)**: Added a Barangay (LGU) dropdown to the drop-off point form. Integrated `Turf.js` to render the LGU boundary polygon on Leaflet and restrict pin placement (clicks, drags, and address search) to within the selected boundary.
- **Trip Calendar**: Changed the shortcut for opening the Daily Digest from Ctrl+Click to Shift+Click on calendar dates.
- **API fixes**: Corrected the Barangay fetch endpoint to `/api/v1/geo/barangays` in the Drop-off points view.
2026-07-06 12:39:51 +08:00

53 lines
2.7 KiB
PHP

<?php
use App\Http\Controllers\Store\StoreDashboardController;
use Illuminate\Support\Facades\Route;
Route::redirect('/', '/login');
Route::view('/login', 'auth.login')->name('login');
Route::redirect('/dashboard', '/admin/dashboard');
Route::get('/qr/{serial}', function ($serial) {
return "Scan QR {$serial}";
})->name('qr.verify');
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');
Route::view('/lgus', 'admin.lgus')->name('admin.lgus');
Route::view('/system-users', 'admin.system-users')->name('admin.system-users');
Route::view('/barangays', 'admin.barangays')->name('admin.barangays');
Route::view('/operations/calendar', 'admin.calendar')->name('admin.calendar');
Route::view('/operations/incidents', 'admin.incidents')->name('admin.incidents');
});
Route::prefix('store')->name('store.')->group(function () {
Route::redirect('/', '/store/dashboard')->name('root');
Route::get('/dashboard', [StoreDashboardController::class, 'index'])->name('dashboard');
Route::get('/sales', [StoreDashboardController::class, 'sales'])->name('sales');
Route::get('/inventory', [StoreDashboardController::class, 'inventory'])->name('inventory');
Route::get('/qr-purchases', [StoreDashboardController::class, 'qrPurchases'])->name('qr-purchases');
Route::get('/financials', [StoreDashboardController::class, 'financials'])->name('financials');
Route::get('/profile', [StoreDashboardController::class, 'profile'])->name('profile');
});