From a7ab7ea4c7fdd3daf076d0c534fa61317dc4a09c Mon Sep 17 00:00:00 2001 From: tchoumi313 Date: Mon, 17 Nov 2025 14:01:08 +0100 Subject: [PATCH 1/3] added placeholder support to empty lists of applied controls in selectors --- frontend/messages/en.json | 3 ++- frontend/messages/fr.json | 3 ++- frontend/src/lib/components/Forms/AutocompleteSelect.svelte | 3 +++ frontend/src/lib/components/Forms/ModelForm/FindingForm.svelte | 1 + .../components/Forms/ModelForm/SecurityExceptionForm.svelte | 1 + .../src/lib/components/Forms/ModelForm/StakeholderForm.svelte | 1 + .../src/lib/components/Forms/ModelForm/TaskTemplateForm.svelte | 1 + .../lib/components/Forms/ModelForm/VulnerabilitiesForm.svelte | 1 + .../(internal)/risk-scenarios/[id=uuid]/edit/+page.svelte | 2 ++ .../requirement-assessments/[id=uuid]/edit/+page.svelte | 1 + 10 files changed, 15 insertions(+), 2 deletions(-) diff --git a/frontend/messages/en.json b/frontend/messages/en.json index ba2d19264b..03ae4aa527 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -2670,5 +2670,6 @@ "doraAlternativeProviders": "Alternative Providers", "doraAttributes": "DORA Attributes", "doraAssessment": "DORA Assessment", - "moreOnTerminologiesHelpText": "Hint: more options can be defined through terminologies" + "moreOnTerminologiesHelpText": "Hint: more options can be defined through terminologies", + "selectExistingAppliedControls": "Select existing applied controls..." } diff --git a/frontend/messages/fr.json b/frontend/messages/fr.json index dd93402014..74cddcc011 100644 --- a/frontend/messages/fr.json +++ b/frontend/messages/fr.json @@ -2670,5 +2670,6 @@ "webhookEndpointUrlHelpText": "L'URL où l'application recevra les webhooks entrants du service tiers.", "webhookSecret": "Secret webhook", "webhookSecretAlreadySetHelpText": "Le secret webhook est déjà défini.", - "webhookUrl": "URL webhook" + "webhookUrl": "URL webhook", + "selectExistingAppliedControls": "Sélectionnez des mesures appliquées existantes..." } diff --git a/frontend/src/lib/components/Forms/AutocompleteSelect.svelte b/frontend/src/lib/components/Forms/AutocompleteSelect.svelte index 48e6be0c0e..208352225e 100644 --- a/frontend/src/lib/components/Forms/AutocompleteSelect.svelte +++ b/frontend/src/lib/components/Forms/AutocompleteSelect.svelte @@ -40,6 +40,7 @@ disabled?: boolean; hidden?: boolean; translateOptions?: boolean; + placeholder?: string | null; options?: Option[]; optionsEndpoint?: string; optionsDetailedUrlParameters?: [string, string][]; @@ -88,6 +89,7 @@ disabled = false, hidden = false, translateOptions = true, + placeholder = null, options = [], optionsEndpoint = '', optionsDetailedUrlParameters = [], @@ -457,6 +459,7 @@ duplicates={false} key={JSON.stringify} filterFunc={fastFilter} + {placeholder} > {#snippet option({ option })} {#if optionSnippet} diff --git a/frontend/src/lib/components/Forms/ModelForm/FindingForm.svelte b/frontend/src/lib/components/Forms/ModelForm/FindingForm.svelte index 274853e2ac..fd4b3d47ec 100644 --- a/frontend/src/lib/components/Forms/ModelForm/FindingForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/FindingForm.svelte @@ -157,6 +157,7 @@ optionsExtraFields={[['folder', 'str']]} field="applied_controls" label={m.appliedControls()} + placeholder={m.selectExistingAppliedControls()} /> {/key} diff --git a/frontend/src/lib/components/Forms/ModelForm/SecurityExceptionForm.svelte b/frontend/src/lib/components/Forms/ModelForm/SecurityExceptionForm.svelte index ca5fad4b77..86b959495c 100644 --- a/frontend/src/lib/components/Forms/ModelForm/SecurityExceptionForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/SecurityExceptionForm.svelte @@ -154,6 +154,7 @@ optionsExtraFields={[['folder', 'str']]} field="applied_controls" label={m.appliedControls()} + placeholder={m.selectExistingAppliedControls()} /> {/key} diff --git a/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte b/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte index 90c3812557..c6672a20e4 100644 --- a/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte @@ -297,6 +297,7 @@ optionsExtraFields={[['folder', 'str']]} field="applied_controls" label={m.appliedControls()} + placeholder={m.selectExistingAppliedControls()} />
diff --git a/frontend/src/lib/components/Forms/ModelForm/TaskTemplateForm.svelte b/frontend/src/lib/components/Forms/ModelForm/TaskTemplateForm.svelte index cb6ee918fc..33c33c7325 100644 --- a/frontend/src/lib/components/Forms/ModelForm/TaskTemplateForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/TaskTemplateForm.svelte @@ -269,6 +269,7 @@ optionsExtraFields={[['folder', 'str']]} field="applied_controls" label={m.appliedControls()} + placeholder={m.selectExistingAppliedControls()} /> {/key}
@@ -380,6 +381,7 @@ field="applied_controls" label={m.extraAppliedControls()} helpText={m.extraControlsHelper()} + placeholder={m.selectExistingAppliedControls()} /> {/key} diff --git a/frontend/src/routes/(app)/(third-party)/requirement-assessments/[id=uuid]/edit/+page.svelte b/frontend/src/routes/(app)/(third-party)/requirement-assessments/[id=uuid]/edit/+page.svelte index ef87285ade..2dcdce0027 100644 --- a/frontend/src/routes/(app)/(third-party)/requirement-assessments/[id=uuid]/edit/+page.svelte +++ b/frontend/src/routes/(app)/(third-party)/requirement-assessments/[id=uuid]/edit/+page.svelte @@ -530,6 +530,7 @@ ]} optionsExtraFields={[['folder', 'str']]} field="applied_controls" + placeholder={m.selectExistingAppliedControls()} /> {/key} Date: Mon, 24 Nov 2025 12:34:16 +0100 Subject: [PATCH 2/3] update --- frontend/messages/en.json | 2 +- frontend/messages/fr.json | 2 +- .../lib/components/Forms/AutocompleteSelect.svelte | 11 +++++++++-- .../lib/components/Forms/ModelForm/FindingForm.svelte | 1 - .../Forms/ModelForm/SecurityExceptionForm.svelte | 1 - .../components/Forms/ModelForm/StakeholderForm.svelte | 1 - .../Forms/ModelForm/TaskTemplateForm.svelte | 1 - .../Forms/ModelForm/VulnerabilitiesForm.svelte | 1 - .../src/lib/components/ModelTable/ModelTable.svelte | 6 ++++-- .../risk-scenarios/[id=uuid]/edit/+page.svelte | 2 -- .../[id=uuid]/edit/+page.svelte | 1 - 11 files changed, 15 insertions(+), 14 deletions(-) diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 548f9da725..ddaa919068 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -2671,7 +2671,7 @@ "doraAttributes": "DORA Attributes", "doraAssessment": "DORA Assessment", "moreOnTerminologiesHelpText": "Hint: more options can be defined through terminologies", - "selectExistingAppliedControls": "Select existing applied controls...", + "selectPlaceholder": "Select...", "ebiosRmSyncModalTitle": "Risk Assessment Options", "ebiosRmSyncModalBody": "A risk assessment already exists for this EBIOS RM study: \"{name}\"\n\nWould you like to:", "ebiosRmSyncExisting": "Sync Existing", diff --git a/frontend/messages/fr.json b/frontend/messages/fr.json index 85254c686c..423c76eed3 100644 --- a/frontend/messages/fr.json +++ b/frontend/messages/fr.json @@ -2671,7 +2671,7 @@ "webhookSecret": "Secret webhook", "webhookSecretAlreadySetHelpText": "Le secret webhook est déjà défini.", "webhookUrl": "URL webhook", - "selectExistingAppliedControls": "Sélectionnez des mesures appliquées existantes...", + "selectPlaceholder": "Sélectionner...", "ebiosRmSyncModalTitle": "Options d'analyse de risque", "ebiosRmSyncModalBody": "Une analyse de risque existe déjà pour cette étude EBIOS RM : \"{name}\"\n\nQue souhaitez-vous faire :", "ebiosRmSyncExisting": "Synchroniser l'existante", diff --git a/frontend/src/lib/components/Forms/AutocompleteSelect.svelte b/frontend/src/lib/components/Forms/AutocompleteSelect.svelte index 208352225e..fed6814a1a 100644 --- a/frontend/src/lib/components/Forms/AutocompleteSelect.svelte +++ b/frontend/src/lib/components/Forms/AutocompleteSelect.svelte @@ -89,7 +89,7 @@ disabled = false, hidden = false, translateOptions = true, - placeholder = null, + placeholder = m.selectPlaceholder(), options = [], optionsEndpoint = '', optionsDetailedUrlParameters = [], @@ -373,7 +373,7 @@ cachedOptions = selected; }); - run(() => { + $effect(() => { // Only update value after options are loaded if (!isInternalUpdate && optionsLoaded && !arraysEqual(selectedValues, $value)) { isInternalUpdate = true; @@ -460,6 +460,7 @@ key={JSON.stringify} filterFunc={fastFilter} {placeholder} + --sms-placeholder-color="#9ca3af" > {#snippet option({ option })} {#if optionSnippet} @@ -555,3 +556,9 @@

{helpText}

{/if} + + diff --git a/frontend/src/lib/components/Forms/ModelForm/FindingForm.svelte b/frontend/src/lib/components/Forms/ModelForm/FindingForm.svelte index fd4b3d47ec..274853e2ac 100644 --- a/frontend/src/lib/components/Forms/ModelForm/FindingForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/FindingForm.svelte @@ -157,7 +157,6 @@ optionsExtraFields={[['folder', 'str']]} field="applied_controls" label={m.appliedControls()} - placeholder={m.selectExistingAppliedControls()} /> {/key} diff --git a/frontend/src/lib/components/Forms/ModelForm/SecurityExceptionForm.svelte b/frontend/src/lib/components/Forms/ModelForm/SecurityExceptionForm.svelte index 86b959495c..ca5fad4b77 100644 --- a/frontend/src/lib/components/Forms/ModelForm/SecurityExceptionForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/SecurityExceptionForm.svelte @@ -154,7 +154,6 @@ optionsExtraFields={[['folder', 'str']]} field="applied_controls" label={m.appliedControls()} - placeholder={m.selectExistingAppliedControls()} /> {/key} diff --git a/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte b/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte index c6672a20e4..90c3812557 100644 --- a/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/StakeholderForm.svelte @@ -297,7 +297,6 @@ optionsExtraFields={[['folder', 'str']]} field="applied_controls" label={m.appliedControls()} - placeholder={m.selectExistingAppliedControls()} />
diff --git a/frontend/src/lib/components/Forms/ModelForm/TaskTemplateForm.svelte b/frontend/src/lib/components/Forms/ModelForm/TaskTemplateForm.svelte index 33c33c7325..cb6ee918fc 100644 --- a/frontend/src/lib/components/Forms/ModelForm/TaskTemplateForm.svelte +++ b/frontend/src/lib/components/Forms/ModelForm/TaskTemplateForm.svelte @@ -269,7 +269,6 @@ optionsExtraFields={[['folder', 'str']]} field="applied_controls" label={m.appliedControls()} - placeholder={m.selectExistingAppliedControls()} /> 0); + $tableHandlers[baseEndpoint] = handler; handler.onChange((state: State) => @@ -249,7 +252,6 @@ featureFlags: page.data?.featureflags }) ); - onMount(() => { if (orderBy) { orderBy.direction === 'asc' @@ -472,7 +474,7 @@ {/snippet} {/if} - {#if search} + {#if showSearch} {/if} {#if pagination && rowsPerPage} diff --git a/frontend/src/routes/(app)/(internal)/risk-scenarios/[id=uuid]/edit/+page.svelte b/frontend/src/routes/(app)/(internal)/risk-scenarios/[id=uuid]/edit/+page.svelte index 471e86401f..eea16eb81a 100644 --- a/frontend/src/routes/(app)/(internal)/risk-scenarios/[id=uuid]/edit/+page.svelte +++ b/frontend/src/routes/(app)/(internal)/risk-scenarios/[id=uuid]/edit/+page.svelte @@ -304,7 +304,6 @@ field="existing_applied_controls" label={m.existingControls()} helpText={m.existingControlsHelper()} - placeholder={m.selectExistingAppliedControls()} /> {/key}
@@ -381,7 +380,6 @@ field="applied_controls" label={m.extraAppliedControls()} helpText={m.extraControlsHelper()} - placeholder={m.selectExistingAppliedControls()} /> {/key} diff --git a/frontend/src/routes/(app)/(third-party)/requirement-assessments/[id=uuid]/edit/+page.svelte b/frontend/src/routes/(app)/(third-party)/requirement-assessments/[id=uuid]/edit/+page.svelte index 2dcdce0027..ef87285ade 100644 --- a/frontend/src/routes/(app)/(third-party)/requirement-assessments/[id=uuid]/edit/+page.svelte +++ b/frontend/src/routes/(app)/(third-party)/requirement-assessments/[id=uuid]/edit/+page.svelte @@ -530,7 +530,6 @@ ]} optionsExtraFields={[['folder', 'str']]} field="applied_controls" - placeholder={m.selectExistingAppliedControls()} /> {/key} Date: Mon, 24 Nov 2025 12:41:51 +0100 Subject: [PATCH 3/3] update --- .../src/lib/components/Forms/AutocompleteSelect.svelte | 2 +- frontend/src/lib/components/ModelTable/Search.svelte | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/src/lib/components/Forms/AutocompleteSelect.svelte b/frontend/src/lib/components/Forms/AutocompleteSelect.svelte index fed6814a1a..23db44759a 100644 --- a/frontend/src/lib/components/Forms/AutocompleteSelect.svelte +++ b/frontend/src/lib/components/Forms/AutocompleteSelect.svelte @@ -558,7 +558,7 @@ diff --git a/frontend/src/lib/components/ModelTable/Search.svelte b/frontend/src/lib/components/ModelTable/Search.svelte index 58373fa2ec..bec605a2ec 100644 --- a/frontend/src/lib/components/ModelTable/Search.svelte +++ b/frontend/src/lib/components/ModelTable/Search.svelte @@ -28,3 +28,10 @@ bind:value oninput={search} /> + +