From 72cdae3d1cc45b0e19278451f230567072a48640 Mon Sep 17 00:00:00 2001 From: "vamsi.balaga" Date: Tue, 27 Oct 2026 18:53:44 +0530 Subject: [PATCH] fix: allow Edit only on Available assets The builder only allows the Asset details activity in Available, so the runtime rejected Edit in Assigned and Under Repair. Disable the button outside Available with a hint to return the asset first, and keep the closed-asset notice keyed to the open states. Co-Authored-By: Claude Opus 5.5 --- src/pages/assets/AssetDetails.jsx | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/pages/assets/AssetDetails.jsx b/src/pages/assets/AssetDetails.jsx index dc99191..ddf9556 100644 --- a/src/pages/assets/AssetDetails.jsx +++ b/src/pages/assets/AssetDetails.jsx @@ -168,18 +168,21 @@ export default function AssetDetails() { const isAssigned = isAssetState(row, ASSET_STATE.ASSIGNED) const isAvailable = isAssetState(row, ASSET_STATE.AVAILABLE) const isUnderRepair = isAssetState(row, ASSET_STATE.UNDER_REPAIR) - // ASSIGNED and Send for Repair run in Available; Reassigned in Assigned; Lost - // in either; Repair Completed in Under Repair; Edit in all three. RETURNED - // runs in any state but Closed, and the runtime says if the state doesn't - // allow it. If the view sends no state, let the runtime decide rather than - // hiding the buttons. + // ASSIGNED, Send for Repair and Edit (Asset details) run in Available; + // Reassigned in Assigned; Lost in either; Repair Completed in Under Repair. + // The builder has Asset details in Available only, so the runtime rejects it + // elsewhere ("Asset details" is not allowed in "Assigned"). RETURNED runs in + // any state but Closed, and the runtime says if the state doesn't allow it. + // If the view sends no state, let the runtime decide rather than hiding the + // buttons. + const isOpen = !state || isAvailable || isAssigned || isUnderRepair const canAssign = !state || isAvailable const canReassign = !state || isAssigned const canReturn = !isAssetState(row, ASSET_STATE.CLOSED) && !isEndState(row) const canReportLost = !state || isAvailable || isAssigned const canSendForRepair = !state || isAvailable const canCompleteRepair = !state || isUnderRepair - const canEdit = !state || isAvailable || isAssigned || isUnderRepair + const canEdit = !state || isAvailable // Assigned or reassigned, whichever is newer, is who has it now. const current = currentAssignment(row) @@ -251,7 +254,12 @@ export default function AssetDetails() { -