From dd7dd435c003999f5240a76325f4e91d963083b1 Mon Sep 17 00:00:00 2001 From: Cam Proudlock Date: Sat, 29 Aug 2026 19:38:07 -0400 Subject: [PATCH] Put the dual-bay sibling in the triage band, and fix the gage counterpart The machine page opened with a dual-bay banner directly above a hero band saying 'Controlled by'. Both answer 'what am I looking at', so the sibling is now a chip in the band. The band takes a generic extraitems prop rather than learning what dualpath is - the pairing is resolved by the machines plugin, not from the relationships endpoint. MeasuringToolDetail filtered for a machine counterpart, but the import creates a controls edge PC -> tool, so a gage's counterpart is a computer. It rendered nothing on every metrology station that has a PC. Verified on screen. Full suite 2178 passed, frontend 280 passed. --- frontend/src/components/AssetTriageBand.vue | 25 +++++++++- .../machines/frontend/views/MachineDetail.vue | 47 +++++++++---------- .../frontend/views/MeasuringToolDetail.vue | 17 +++++-- 3 files changed, 57 insertions(+), 32 deletions(-) diff --git a/frontend/src/components/AssetTriageBand.vue b/frontend/src/components/AssetTriageBand.vue index 15556f89..62a0d5e3 100644 --- a/frontend/src/components/AssetTriageBand.vue +++ b/frontend/src/components/AssetTriageBand.vue @@ -19,6 +19,20 @@ +
+ {{ item.label }} + + {{ link.text }} + +
+
Remote access @@ -86,7 +100,15 @@ const props = defineProps({ // printer through usesprinter and defaultprinter. Hardcoding 'controls' // left the band blank on the printer page, which is the one page where the // link is not obvious from the asset itself. - relationshiptypes: { type: Array, default: () => ['controls'] } + relationshiptypes: { type: Array, default: () => ['controls'] }, + // Triage facts a page knows but core cannot derive from a relationship + // edge. The machine page's dual-bay sibling is the case this exists for: + // it is resolved by the machines plugin, not from the relationships + // endpoint, and it used to sit in its own banner above the hero - two + // strips of chrome saying two halves of the same "what am I looking at". + // Shape: [{ label, links: [{ text, to }] }]. A link with no `to` renders + // as plain text rather than a dead chip. + extraitems: { type: Array, default: () => [] } }) const machines = ref([]) @@ -102,6 +124,7 @@ const hasAnything = computed(() => Boolean(slots.actions) || Boolean(props.liveness) || machines.value.length > 0 || + props.extraitems.length > 0 || (props.accessmethods && props.accessmethods.length > 0) || Boolean(props.locationname) ) diff --git a/plugins/machines/frontend/views/MachineDetail.vue b/plugins/machines/frontend/views/MachineDetail.vue index f9d49c88..b7e0867d 100644 --- a/plugins/machines/frontend/views/MachineDetail.vue +++ b/plugins/machines/frontend/views/MachineDetail.vue @@ -20,16 +20,6 @@
Loading...