From 45142bba4bcbd7f937d1b27a6d1596cc0b61bc8d Mon Sep 17 00:00:00 2001 From: mariomitte Date: Sat, 1 Aug 2026 10:36:20 +0200 Subject: [PATCH] Fix task refresh after work order close Keep the linked work order visible in task details and force-refresh tasks immediately after work order changes so the dashboard table updates without a hard refresh. --- .../components/dashboard/FleetDashboardShell.jsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/dashboard/FleetDashboardShell.jsx b/frontend/src/components/dashboard/FleetDashboardShell.jsx index 48c3373..40b764c 100644 --- a/frontend/src/components/dashboard/FleetDashboardShell.jsx +++ b/frontend/src/components/dashboard/FleetDashboardShell.jsx @@ -566,10 +566,17 @@ export default function FleetDashboardShell({ initialSection = 'dashboard', page }, [serviceRecords, selectedTask?.id]); const selectedTaskWorkOrders = useMemo(() => { if (!selectedTask) return []; - // Only open work orders in the dropdown — closed ones cannot receive new tasks. + // Keep dropdown focused on open work orders, but preserve the task's already assigned + // work order even when it is closed so the reference remains visible/editable in task details. // Cross-crane sharing allowed: no vehicle filter. + const selectedWorkOrderId = String(selectedTask.work_order || ''); return [...workOrders] - .filter((order) => String(order.status || '').toLowerCase() !== 'closed') + .filter((order) => { + const orderId = String(order.id || ''); + const isClosed = String(order.status || '').toLowerCase() === 'closed'; + if (!isClosed) return true; + return selectedWorkOrderId && orderId === selectedWorkOrderId; + }) .sort((a, b) => String(b.date || '').localeCompare(String(a.date || ''))); }, [selectedTask, workOrders]); @@ -614,7 +621,7 @@ export default function FleetDashboardShell({ initialSection = 'dashboard', page await updateWorkOrder(workOrder.id, changes); showToast('Nalog je uspješno ažuriran.', 'success'); await fetchFleetDashboardData({ silent: true }); - await fetchTasks(); + await fetchTasks({ force: true }); } catch (error) { showToast(error?.message || 'Ažuriranje naloga nije uspjelo.', 'error'); }