diff --git a/frontend/src/components/AdminConfigValueEditor.vue b/frontend/src/components/AdminConfigValueEditor.vue index 5af001a..4a6d6f4 100644 --- a/frontend/src/components/AdminConfigValueEditor.vue +++ b/frontend/src/components/AdminConfigValueEditor.vue @@ -18,6 +18,7 @@ import type { AdminConfiguratorDescribe } from '@/utils/adminConfiguratorDescrip export type AdminConfigEditorLabels = { addField: string + addJob: string addRow: string configuredSecret: string convertToList: string @@ -27,6 +28,7 @@ export type AdminConfigEditorLabels = { emptyTable: string entry: string general: string + jobPlaceholder: string keyPlaceholder: string list: string remove: string @@ -149,6 +151,11 @@ const canExtendTable = computed( !vectorType.value && (!tableStructure.value || tableStructure.value.mutableKeys === true), ) +const isJobTable = computed( + () => + props.path === 'Radio.DisplayName.AllowedJobs' || + /^Radio\.LockedChannels\[\d+\]\.jobs$/.test(props.path), +) const usesFixedTableLayout = computed( () => Boolean(tableStructure.value) && tableStructure.value?.mutableKeys !== true, @@ -371,6 +378,19 @@ function updateOptionalString(event: Event): void { } } +function updateNewObjectKey(event: Event): void { + const target = event.target + if (!(target instanceof HTMLInputElement)) return + const value = isJobTable.value + ? target.value + .toLowerCase() + .replace(/[^a-z0-9_-]/g, '') + .slice(0, 64) + : target.value + newObjectKey.value = value + target.value = value +} + function toggleOptionalString(event: Event): void { const target = event.target if (!(target instanceof HTMLInputElement)) return @@ -1015,11 +1035,15 @@ function mapEntryStructure( @submit.prevent="addTableField" >