From 4b483c093b98a43cc31bc211f3c1880739781e67 Mon Sep 17 00:00:00 2001 From: ramram1515 Date: Mon, 29 Jun 2026 12:17:34 +0800 Subject: [PATCH 1/3] fix: increase per_page validation limit to 500 on admin endpoints to allow drop-down populating --- .../Controllers/Api/V1/Admin/AdminDropOffPointController.php | 2 +- app/Http/Controllers/Api/V1/Admin/AdminRouteController.php | 2 +- app/Http/Controllers/Api/V1/Admin/AdminTeamController.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Api/V1/Admin/AdminDropOffPointController.php b/app/Http/Controllers/Api/V1/Admin/AdminDropOffPointController.php index 8714e92..2b25b44 100644 --- a/app/Http/Controllers/Api/V1/Admin/AdminDropOffPointController.php +++ b/app/Http/Controllers/Api/V1/Admin/AdminDropOffPointController.php @@ -22,7 +22,7 @@ class AdminDropOffPointController extends ApiController 'status' => ['nullable', 'in:active,maintenance,closed'], 'barangay_id' => ['nullable', 'integer'], 'q' => ['nullable', 'string', 'max:100'], - 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:500'], ]); $perPage = (int) $request->input('per_page', 25); diff --git a/app/Http/Controllers/Api/V1/Admin/AdminRouteController.php b/app/Http/Controllers/Api/V1/Admin/AdminRouteController.php index 8ec6cdb..f5790f5 100644 --- a/app/Http/Controllers/Api/V1/Admin/AdminRouteController.php +++ b/app/Http/Controllers/Api/V1/Admin/AdminRouteController.php @@ -24,7 +24,7 @@ class AdminRouteController extends ApiController 'status' => ['nullable', 'in:active,inactive'], 'area_id' => ['nullable', 'integer'], 'q' => ['nullable', 'string', 'max:100'], - 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:500'], ]); $perPage = (int) $request->input('per_page', 25); diff --git a/app/Http/Controllers/Api/V1/Admin/AdminTeamController.php b/app/Http/Controllers/Api/V1/Admin/AdminTeamController.php index 0bc92c6..99de8b0 100644 --- a/app/Http/Controllers/Api/V1/Admin/AdminTeamController.php +++ b/app/Http/Controllers/Api/V1/Admin/AdminTeamController.php @@ -22,7 +22,7 @@ class AdminTeamController extends ApiController 'status' => ['nullable', 'in:active,inactive'], 'area_id' => ['nullable', 'integer'], 'q' => ['nullable', 'string', 'max:100'], - 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:500'], ]); $perPage = (int) $request->input('per_page', 25); From 91df4d05f09884612de04648d4a40fbf0fa84a70 Mon Sep 17 00:00:00 2001 From: ramram1515 Date: Mon, 29 Jun 2026 12:26:37 +0800 Subject: [PATCH 2/3] fix: increase per_page validation limit to 500 across all remaining admin endpoints --- app/Http/Controllers/Api/V1/Admin/AdminDumpsiteController.php | 2 +- app/Http/Controllers/Api/V1/Admin/AdminHouseholdController.php | 2 +- .../Controllers/Api/V1/Admin/AdminPartnerStoreController.php | 2 +- app/Http/Controllers/Api/V1/Admin/AdminQrBatchController.php | 2 +- app/Http/Controllers/Api/V1/Admin/AdminTripController.php | 2 +- app/Http/Controllers/Api/V1/Admin/AdminTruckController.php | 2 +- app/Http/Controllers/Api/V1/Admin/AdminUserController.php | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Api/V1/Admin/AdminDumpsiteController.php b/app/Http/Controllers/Api/V1/Admin/AdminDumpsiteController.php index cdf8779..543cb2b 100644 --- a/app/Http/Controllers/Api/V1/Admin/AdminDumpsiteController.php +++ b/app/Http/Controllers/Api/V1/Admin/AdminDumpsiteController.php @@ -21,7 +21,7 @@ class AdminDumpsiteController extends ApiController 'status' => ['nullable', 'in:active,maintenance,closed'], 'city_municipality_id' => ['nullable', 'integer'], 'q' => ['nullable', 'string', 'max:100'], - 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:500'], ]); $perPage = (int) $request->input('per_page', 25); diff --git a/app/Http/Controllers/Api/V1/Admin/AdminHouseholdController.php b/app/Http/Controllers/Api/V1/Admin/AdminHouseholdController.php index 6d52dc9..d244609 100644 --- a/app/Http/Controllers/Api/V1/Admin/AdminHouseholdController.php +++ b/app/Http/Controllers/Api/V1/Admin/AdminHouseholdController.php @@ -18,7 +18,7 @@ class AdminHouseholdController extends ApiController 'verification_status' => ['nullable', 'in:pending,approved,rejected'], 'barangay_id' => ['nullable', 'integer'], 'q' => ['nullable', 'string', 'max:100'], - 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:500'], ]); $perPage = (int) $request->input('per_page', 25); diff --git a/app/Http/Controllers/Api/V1/Admin/AdminPartnerStoreController.php b/app/Http/Controllers/Api/V1/Admin/AdminPartnerStoreController.php index 1d6618d..d061323 100644 --- a/app/Http/Controllers/Api/V1/Admin/AdminPartnerStoreController.php +++ b/app/Http/Controllers/Api/V1/Admin/AdminPartnerStoreController.php @@ -22,7 +22,7 @@ class AdminPartnerStoreController extends ApiController $request->validate([ 'status' => ['nullable', 'in:pending_kyc,active,suspended'], 'q' => ['nullable', 'string', 'max:100'], - 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:500'], ]); $perPage = (int) $request->input('per_page', 25); diff --git a/app/Http/Controllers/Api/V1/Admin/AdminQrBatchController.php b/app/Http/Controllers/Api/V1/Admin/AdminQrBatchController.php index 3352829..25ce9be 100644 --- a/app/Http/Controllers/Api/V1/Admin/AdminQrBatchController.php +++ b/app/Http/Controllers/Api/V1/Admin/AdminQrBatchController.php @@ -26,7 +26,7 @@ class AdminQrBatchController extends ApiController 'purpose' => ['nullable', 'in:free_allocation,store_inventory,promotional'], 'target_area_id' => ['nullable', 'integer'], 'q' => ['nullable', 'string', 'max:100'], - 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:500'], ]); $perPage = (int) $request->input('per_page', 25); diff --git a/app/Http/Controllers/Api/V1/Admin/AdminTripController.php b/app/Http/Controllers/Api/V1/Admin/AdminTripController.php index 8757056..0c69798 100644 --- a/app/Http/Controllers/Api/V1/Admin/AdminTripController.php +++ b/app/Http/Controllers/Api/V1/Admin/AdminTripController.php @@ -20,7 +20,7 @@ class AdminTripController extends ApiController 'status' => ['nullable', 'in:scheduled,in_progress,at_dumpsite,completed,cancelled'], 'date' => ['nullable', 'date'], 'team_id' => ['nullable', 'integer'], - 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:500'], ]); $perPage = (int) $request->input('per_page', 25); diff --git a/app/Http/Controllers/Api/V1/Admin/AdminTruckController.php b/app/Http/Controllers/Api/V1/Admin/AdminTruckController.php index f39f510..67c3163 100644 --- a/app/Http/Controllers/Api/V1/Admin/AdminTruckController.php +++ b/app/Http/Controllers/Api/V1/Admin/AdminTruckController.php @@ -16,7 +16,7 @@ class AdminTruckController extends ApiController $request->validate([ 'status' => ['nullable', 'in:active,maintenance,retired'], 'q' => ['nullable', 'string', 'max:100'], - 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:500'], ]); $perPage = (int) $request->input('per_page', 25); diff --git a/app/Http/Controllers/Api/V1/Admin/AdminUserController.php b/app/Http/Controllers/Api/V1/Admin/AdminUserController.php index 685dcb7..f1be851 100644 --- a/app/Http/Controllers/Api/V1/Admin/AdminUserController.php +++ b/app/Http/Controllers/Api/V1/Admin/AdminUserController.php @@ -19,7 +19,7 @@ class AdminUserController extends ApiController 'status' => ['nullable', 'in:active,suspended,pending'], 'verification_status' => ['nullable', 'in:pending,approved,rejected'], 'q' => ['nullable', 'string', 'max:100'], - 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], + 'per_page' => ['nullable', 'integer', 'min:1', 'max:500'], ]); $perPage = (int) $request->input('per_page', 25); From 7a5cae3a6c618f2cd19703b4dc0c73ef8d265827 Mon Sep 17 00:00:00 2001 From: ramram1515 Date: Mon, 29 Jun 2026 12:37:20 +0800 Subject: [PATCH 3/3] feat: display detailed validation error messages on route creation --- resources/views/admin/routes.blade.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/resources/views/admin/routes.blade.php b/resources/views/admin/routes.blade.php index e803d24..b0cc3f0 100644 --- a/resources/views/admin/routes.blade.php +++ b/resources/views/admin/routes.blade.php @@ -223,8 +223,20 @@ method: 'POST', body: JSON.stringify(payload), }); - if (res.ok) { window.Verde.toast('Route created', 'success'); modal.classList.add('hidden'); e.target.reset(); selectedStops = []; load(); } - else window.Verde.toast(res.body?.message ?? 'Create failed', 'error'); + if (res.ok) { + window.Verde.toast('Route created', 'success'); + modal.classList.add('hidden'); + e.target.reset(); + selectedStops = []; + load(); + } else { + let msg = res.body?.message ?? 'Create failed'; + if (res.body?.errors) { + const errs = Object.values(res.body.errors).flat().join(' '); + msg += `: ${errs}`; + } + window.Verde.toast(msg, 'error'); + } }); loadDumpsites();