From 2424e96e74619ac05eba6f46b5408c31f3ae99fe Mon Sep 17 00:00:00 2001 From: natib21 Date: Thu, 2 Jul 2026 14:34:22 +0000 Subject: [PATCH] fix --- .../src/modules/drivers/drivers.service.ts | 10 ++++------ .../src/modules/vehicles/vehicles.service.ts | 2 +- .../backoffice/src/pages/fleet/FleetResourcePage.tsx | 9 +++++++-- .../backoffice/src/pages/fleet/config/vehicles.ts | 6 ++++++ 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/apps/edr-freight-api/src/modules/drivers/drivers.service.ts b/apps/edr-freight-api/src/modules/drivers/drivers.service.ts index d5176d14b..2464a26ac 100644 --- a/apps/edr-freight-api/src/modules/drivers/drivers.service.ts +++ b/apps/edr-freight-api/src/modules/drivers/drivers.service.ts @@ -48,12 +48,10 @@ export class DriversService { const qb = this.driverRepo.createQueryBuilder('d'); if (query.search) { - const searchTerm = `%${query.search}%`; - qb.where('d.firstName ILIKE :search', { search: searchTerm }) - .orWhere('d.lastName ILIKE :search', { search: searchTerm }) - .orWhere('d.email ILIKE :search', { search: searchTerm }) - .orWhere('d.licenseNumber ILIKE :search', { search: searchTerm }) - .orWhere('d.phoneNumber ILIKE :search', { search: searchTerm }); + qb.where( + '(d.firstName ILIKE :search OR d.lastName ILIKE :search OR d.email ILIKE :search OR d.licenseNumber ILIKE :search OR d.phoneNumber ILIKE :search)', + { search: `%${query.search}%` }, + ); } if (query.status) { diff --git a/apps/edr-freight-api/src/modules/vehicles/vehicles.service.ts b/apps/edr-freight-api/src/modules/vehicles/vehicles.service.ts index 5da3b448d..5e151f1ea 100644 --- a/apps/edr-freight-api/src/modules/vehicles/vehicles.service.ts +++ b/apps/edr-freight-api/src/modules/vehicles/vehicles.service.ts @@ -50,7 +50,7 @@ export class VehiclesService { if (query.search) { qb = qb.where( - 'v.plateNumber ILIKE :search OR v.manufacturer ILIKE :search', + '(v.plateNumber ILIKE :search OR v.manufacturer ILIKE :search OR v.model ILIKE :search)', { search: `%${query.search}%` }, ); } diff --git a/apps/edr-freight-web/backoffice/src/pages/fleet/FleetResourcePage.tsx b/apps/edr-freight-web/backoffice/src/pages/fleet/FleetResourcePage.tsx index 5310a6f12..13be9ef71 100644 --- a/apps/edr-freight-web/backoffice/src/pages/fleet/FleetResourcePage.tsx +++ b/apps/edr-freight-web/backoffice/src/pages/fleet/FleetResourcePage.tsx @@ -46,17 +46,22 @@ const FleetResourcePage = () => { const { viewMode, setViewMode } = useFleetViewMode(slug); const serverListFilters = useMemo((): FleetListFilters | undefined => { - if (slug !== "wagons" && slug !== "locomotives") return undefined; + const serverFilteredSlugs: FleetResourceSlug[] = ["wagons", "locomotives", "vehicles", "drivers"]; + if (!serverFilteredSlugs.includes(slug)) return undefined; const filters: FleetListFilters = {}; const status = listFilterValues.status; const currentYardId = listFilterValues.currentYardId; + const availability = listFilterValues.availability; if (status && status !== "ALL") { (filters as { status?: string }).status = status; } if (currentYardId && currentYardId !== "ALL") { filters.currentYardId = currentYardId; } - if (slug === "wagons" && search.trim()) { + if (availability && availability !== "ALL") { + (filters as { availability?: string }).availability = availability; + } + if (slug !== "locomotives" && search.trim()) { filters.search = search.trim(); } return filters; diff --git a/apps/edr-freight-web/backoffice/src/pages/fleet/config/vehicles.ts b/apps/edr-freight-web/backoffice/src/pages/fleet/config/vehicles.ts index a8c8e90dd..de6eb09c7 100644 --- a/apps/edr-freight-web/backoffice/src/pages/fleet/config/vehicles.ts +++ b/apps/edr-freight-web/backoffice/src/pages/fleet/config/vehicles.ts @@ -49,6 +49,12 @@ export const vehiclesConfig: FleetResourceConfig = { allLabel: "All statuses", options: VEHICLE_STATUS_OPTIONS, }, + { + key: "availability", + label: "Availability", + allLabel: "All availability", + options: VEHICLE_AVAILABILITY_OPTIONS, + }, ], searchKeys: ["plateNumber", "registrationNumber", "manufacturer", "model", "vehicleType", "status"], columns: [