From 30211d278de706486378fdf4217be6f810495be5 Mon Sep 17 00:00:00 2001 From: Kevin L'Hereec Date: Mon, 8 Jun 2026 13:07:43 +0000 Subject: [PATCH] fix: map plural API keys (manufacturers/ouis/productClasses) to singular suggestion fields in CriteriaEditor and FirmwareCatalog forms Generated with [Continue](https://continue.dev) Co-Authored-By: Continue --- inertia/components/configuration/CriteriaEditor.vue | 13 ++++++++++++- .../firmware_catalog/FirmwareCatalogCreate.vue | 2 +- .../pages/firmware_catalog/FirmwareCatalogEdit.vue | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/inertia/components/configuration/CriteriaEditor.vue b/inertia/components/configuration/CriteriaEditor.vue index fd3ffff..6c94e2d 100644 --- a/inertia/components/configuration/CriteriaEditor.vue +++ b/inertia/components/configuration/CriteriaEditor.vue @@ -31,7 +31,18 @@ onMounted(async () => { try { const res = await fetch('/api/v1/devices/criteria-values') if (res.ok) { - suggestions.value = await res.json() + const data = await res.json() + // API returns plural keys, map to singular keys used by the form fields + suggestions.value = { + ...suggestions.value, + manufacturer: data.manufacturers ?? [], + oui: data.ouis ?? [], + productClass: data.productClasses ?? [], + serialNumber: data.serialNumbers ?? [], + modelName: data.modelNames ?? [], + hardwareVersion: data.hardwareVersions ?? [], + softwareVersion: data.softwareVersions ?? [], + } } } catch { // silently fail diff --git a/inertia/pages/firmware_catalog/FirmwareCatalogCreate.vue b/inertia/pages/firmware_catalog/FirmwareCatalogCreate.vue index 6a05b6c..2b91c4c 100644 --- a/inertia/pages/firmware_catalog/FirmwareCatalogCreate.vue +++ b/inertia/pages/firmware_catalog/FirmwareCatalogCreate.vue @@ -20,7 +20,7 @@ const productClasses = ref([]) onMounted(async () => { try { const res = await fetch('/api/v1/devices/criteria-values') - if (res.ok) productClasses.value = (await res.json()).productClass || [] + if (res.ok) productClasses.value = (await res.json()).productClasses || [] } catch { /* optional */ } }) diff --git a/inertia/pages/firmware_catalog/FirmwareCatalogEdit.vue b/inertia/pages/firmware_catalog/FirmwareCatalogEdit.vue index 9bab00f..ceff856 100644 --- a/inertia/pages/firmware_catalog/FirmwareCatalogEdit.vue +++ b/inertia/pages/firmware_catalog/FirmwareCatalogEdit.vue @@ -30,7 +30,7 @@ onMounted(async () => { entry.value = data.data const d = data.data form.value = { productClass: d.productClass, version: d.version, downloadUrl: d.downloadUrl, checksum: d.checksum, checksumType: d.checksumType || 'sha256', fileSize: d.fileSize ?? null } - if (suggestRes.ok) productClasses.value = (await suggestRes.json()).productClass || [] + if (suggestRes.ok) productClasses.value = (await suggestRes.json()).productClasses || [] } catch { router.get('/firmware-catalog') } })