Compare commits

..

No commits in common. "5b55bd267b65404ae882b22e5848f1f1ecd35b68" and "72cdae3d1cc45b0e19278451f230567072a48640" have entirely different histories.

2 changed files with 16 additions and 11 deletions

View File

@ -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() {
<Button icon="history" onClick={load} disabled={loading}>
{loading ? 'Refreshing…' : 'Refresh'}
</Button>
<Button icon="edit" onClick={() => openActivity('edit')} disabled={!canEdit}>
<Button
icon="edit"
onClick={() => openActivity('edit')}
disabled={!canEdit}
title={canEdit ? undefined : 'Only an Available asset can be edited. Return it first.'}
>
Edit
</Button>
<Button
@ -289,7 +297,7 @@ export default function AssetDetails() {
}
/>
{!canEdit && (
{!isOpen && (
<div className="notice notice--warning" role="status">
<Icon name="alert" size={15} />
<span>

View File

@ -4,9 +4,6 @@ import react from "@vitejs/plugin-react";
export default defineConfig(({ command }) => ({
// Relative base: frontgen places one artifact at any mount path and injects <base href>.
base: "./",
// Not "assets": the app has an /assets route, and nginx answers 403 for a real
// folder with no index.html, so reloading /asset-management/assets/ broke.
build: { assetsDir: "static" },
plugins: [react()],
server: {
port: 5173,