Fix case-sensitive relationship type compares

Relationship type names are data and the seeded rows mix casings
(controls, Controlled By, connectedto); the PC and machine detail/form
pages compared === Controls and silently showed no relationships.
Compares are now case-folded in all 7 sites.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2026-07-11 14:30:02 -04:00
parent 26c280df25
commit e6edbd23f8
3 changed files with 17 additions and 7 deletions

View File

@@ -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,