From 98f19da5f416691f5cd3509f770ab22790f67871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Wed, 3 May 2023 23:20:20 +0200 Subject: [PATCH] fix: selector unlabeled attr handling --- webui/src/components/utils/Selector.svelte | 34 +++++++++++++++------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/webui/src/components/utils/Selector.svelte b/webui/src/components/utils/Selector.svelte index 8eaa0b9..1423160 100644 --- a/webui/src/components/utils/Selector.svelte +++ b/webui/src/components/utils/Selector.svelte @@ -77,13 +77,21 @@ attribute, }; }); - options.push({ - attribute: { - labels: [], - name: inputValue.toUpperCase().replaceAll(/[^A-Z0-9]/g, "_"), - }, - labelToCreate: inputValue, - }); + + const attributeToCreate = inputValue + .toUpperCase() + .replaceAll(/[^A-Z0-9]/g, "_"); + if ( + !allAttributes.map((attr) => attr.name).includes(attributeToCreate) + ) { + options.push({ + attribute: { + labels: [], + name: attributeToCreate, + }, + labelToCreate: inputValue, + }); + } options = options; break; } @@ -313,16 +321,20 @@ }} > {#if option.attribute} - {#if option.attribute.labels.length} + {#if option.labelToCreate} +
{option.labelToCreate}
+
Create attribute ({option.attribute.name})
+ {:else if option.attribute.labels.length}
{#each option.attribute.labels as label}
{label}
{/each}
{option.attribute.name}
- {:else if option.labelToCreate} -
{option.labelToCreate}
-
Create attribute ({option.attribute.name})
+ {:else} +
+ {option.attribute.name} +
{/if} {:else if option.value} {#if option.value.t == "Address"}