From 3f9fdd0e48fc6183be43a6cbc1eee455c20276fd Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Fri, 14 Nov 2025 16:52:14 +0100 Subject: [PATCH] Make sure fqdn generation works with single values --- src/servala/static/js/fqdn.js | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/servala/static/js/fqdn.js b/src/servala/static/js/fqdn.js index ec70dad..0996bda 100644 --- a/src/servala/static/js/fqdn.js +++ b/src/servala/static/js/fqdn.js @@ -1,9 +1,21 @@ const initializeFqdnGeneration = (prefix) => { const nameField = document.querySelector(`input#id_${prefix}-name`); + if (!nameField) return + + // Try to find array input first (DynamicArrayWidget), then fallback to regular text input const fqdnFieldContainer = document.getElementById(`${prefix}-spec.parameters.service.fqdn_container`) - if (!nameField || !fqdnFieldContainer) return - const fqdnField = fqdnFieldContainer.querySelector('input.array-item-input'); + let fqdnField = null; + let isArrayField = true; + + if (fqdnFieldContainer) { + let fqdnField = fqdnFieldContainer.querySelector('input.array-item-input'); + } else { + fqdnField = document.getElementById(`id_${prefix}-spec.parameters.service.fqdn`); + isArrayField = false; + } + + if (!fqdnField) return if (nameField && fqdnField) { const generateFqdn = (instanceName) => { @@ -14,9 +26,12 @@ const initializeFqdnGeneration = (prefix) => { nameField.addEventListener('input', function() { if (!fqdnField.dataset.manuallyEdited) { fqdnField.value = generateFqdn(this.value); - const container = fqdnField.closest('.dynamic-array-widget'); - if (container && window.updateHiddenInput) { - window.updateHiddenInput(container); + if (isArrayField) { + // Update hidden input for array fields + const container = fqdnField.closest('.dynamic-array-widget'); + if (container && window.updateHiddenInput) { + window.updateHiddenInput(container); + } } } }); @@ -27,9 +42,12 @@ const initializeFqdnGeneration = (prefix) => { if (nameField.value && !fqdnField.value) { fqdnField.value = generateFqdn(nameField.value); - const container = fqdnField.closest('.dynamic-array-widget'); - if (container && window.updateHiddenInput) { - window.updateHiddenInput(container); + if (isArrayField) { + // Update hidden input for array fields + const container = fqdnField.closest('.dynamic-array-widget'); + if (container && window.updateHiddenInput) { + window.updateHiddenInput(container); + } } } }