diff --git a/frontend/src/views/machines/MachineDetail.vue b/frontend/src/views/machines/MachineDetail.vue index 814cc8a..b6ef32b 100644 --- a/frontend/src/views/machines/MachineDetail.vue +++ b/frontend/src/views/machines/MachineDetail.vue @@ -252,13 +252,18 @@ const equipment = ref(null) const { warranties, heroWarranty, warrantyDate } = useWarrantyBadge(() => equipment.value?.assetid) const relationships = ref({ incoming: [], outgoing: [] }) +// type name is data, sites may seed 'controls' or 'Controls' - compare folded +function isControls(rel) { + return (rel.relationshiptypename || '').toLowerCase() === 'controls' +} + const controllingPc = computed(() => { // For equipment, find a related computer in any "Controls" relationship // Check both incoming (computer controls this) and outgoing (legacy data may have equipment -> computer) // First check incoming - computer as source controlling this equipment for (const rel of relationships.value.incoming || []) { - if (rel.sourceasset?.assettypename === 'computer' && rel.relationshiptypename === 'Controls') { + if (rel.sourceasset?.assettypename === 'computer' && isControls(rel)) { return { ...rel.sourceasset, relationshipType: rel.relationshiptypename @@ -268,7 +273,7 @@ const controllingPc = computed(() => { // Also check outgoing - legacy data may have equipment -> computer Controls relationships for (const rel of relationships.value.outgoing || []) { - if (rel.targetasset?.assettypename === 'computer' && rel.relationshiptypename === 'Controls') { + if (rel.targetasset?.assettypename === 'computer' && isControls(rel)) { return { ...rel.targetasset, relationshipType: rel.relationshiptypename diff --git a/frontend/src/views/machines/MachineForm.vue b/frontend/src/views/machines/MachineForm.vue index 09a65e4..dc734f1 100644 --- a/frontend/src/views/machines/MachineForm.vue +++ b/frontend/src/views/machines/MachineForm.vue @@ -473,8 +473,8 @@ onMounted(async () => { relationshipTypes.value = [{ relationshiptypeid: 1, relationshiptype: 'Controls' }] } - // Set default relationship type to "Controls" if available - const controlsType = relationshipTypes.value.find(t => t.relationshiptype === 'Controls') + // Set default relationship type to "Controls" if available (name is data, compare folded) + const controlsType = relationshipTypes.value.find(t => (t.relationshiptype || '').toLowerCase() === 'controls') if (controlsType) { relationshipTypeId.value = controlsType.relationshiptypeid } @@ -515,7 +515,7 @@ onMounted(async () => { // Check incoming relationships for a controlling PC for (const rel of relationships.incoming || []) { - if (rel.sourceasset?.assettypename === 'computer' && rel.relationshiptypename === 'Controls') { + if (rel.sourceasset?.assettypename === 'computer' && (rel.relationshiptypename || '').toLowerCase() === 'controls') { controllingPcId.value = rel.sourceasset.assetid relationshipTypeId.value = rel.relationshiptypeid existingRelationshipId.value = rel.assetrelationshipid diff --git a/frontend/src/views/pcs/PCDetail.vue b/frontend/src/views/pcs/PCDetail.vue index 368ef1c..d59b27f 100644 --- a/frontend/src/views/pcs/PCDetail.vue +++ b/frontend/src/views/pcs/PCDetail.vue @@ -272,13 +272,18 @@ const installedApps = ref([]) // Warranty fetch + hero badge (shared across asset detail pages). const { warranties, heroWarranty, warrantyDate: formatWarrantyDate } = useWarrantyBadge(() => computer.value?.assetid) +// type name is data, sites may seed 'controls' or 'Controls' - compare folded +function isControls(rel) { + return (rel.relationshiptypename || '').toLowerCase() === 'controls' +} + const controlledEquipment = computed(() => { // For computers, find related equipment in any "Controls" relationship const items = [] // Check outgoing - computer controls equipment for (const rel of relationships.value.outgoing || []) { - if (rel.targetasset?.assettypename === 'equipment' && rel.relationshiptypename === 'Controls') { + if (rel.targetasset?.assettypename === 'equipment' && isControls(rel)) { items.push({ ...rel.targetasset, relationshipid: rel.relationshipid, @@ -289,7 +294,7 @@ const controlledEquipment = computed(() => { // Also check incoming - legacy data may have equipment -> computer Controls relationships for (const rel of relationships.value.incoming || []) { - if (rel.sourceasset?.assettypename === 'equipment' && rel.relationshiptypename === 'Controls') { + if (rel.sourceasset?.assettypename === 'equipment' && isControls(rel)) { items.push({ ...rel.sourceasset, relationshipid: rel.relationshipid,