This is an automated email from the ASF dual-hosted git repository.

mcgilman pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 7635a62b4d [NIFI-13533] - Support dots in parameter names - parameter 
provider (#9336)
7635a62b4d is described below

commit 7635a62b4d7020f96861b5dae026d8fee20e1b85
Author: Rob Fellows <[email protected]>
AuthorDate: Wed Oct 2 18:10:40 2024 -0400

    [NIFI-13533] - Support dots in parameter names - parameter provider (#9336)
    
    This closes #9336
---
 ...etch-parameter-provider-parameters.component.ts | 44 ++++++++++++++--------
 1 file changed, 28 insertions(+), 16 deletions(-)

diff --git 
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/fetch-parameter-provider-parameters.component.ts
 
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/fetch-parameter-provider-parameters.component.ts
index 9e25f35b48..3c46bed904 100644
--- 
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/fetch-parameter-provider-parameters.component.ts
+++ 
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/fetch-parameter-provider-parameters.component.ts
@@ -117,6 +117,12 @@ export class FetchParameterProviderParameters extends 
CloseOnEscapeDialog implem
         this.parameterGroupConfigurations = 
this.parameterProvider.component.parameterGroupConfigurations.slice();
         this.parameterGroupConfigurations.forEach((parameterGroupConfig) => {
             const params = 
this.getParameterSensitivitiesAsFormControls(parameterGroupConfig);
+
+            const sensitivitiesGroup = this.formBuilder.group({});
+            Object.entries(params).forEach(([name, control]) => {
+                sensitivitiesGroup.addControl(name, control);
+            });
+
             this.fetchParametersForm.addControl(
                 parameterGroupConfig.groupName,
                 this.formBuilder.group({
@@ -125,7 +131,7 @@ export class FetchParameterProviderParameters extends 
CloseOnEscapeDialog implem
                         parameterGroupConfig.parameterContextName,
                         Validators.required
                     ),
-                    parameterSensitivities: this.formBuilder.group(params)
+                    parameterSensitivities: sensitivitiesGroup
                 })
             );
             this.parameterGroupNames.push(parameterGroupConfig.groupName);
@@ -168,7 +174,7 @@ export class FetchParameterProviderParameters extends 
CloseOnEscapeDialog implem
             // watch for changes to the parameter context name inputs, update 
the local map
             this.parameterGroupConfigurations.forEach((groupConfig) => {
                 this.fetchParametersForm
-                    .get(`${groupConfig.groupName}.parameterContextName`)
+                    .get([groupConfig.groupName, 'parameterContextName'])
                     ?.valueChanges.pipe(debounceTime(200), 
takeUntilDestroyed(this.destroyRef))
                     .subscribe((name) => {
                         if (Object.hasOwn(this.parameterContextsToCreate, 
groupConfig.groupName)) {
@@ -222,14 +228,14 @@ export class FetchParameterProviderParameters extends 
CloseOnEscapeDialog implem
 
     canEditParameterContextName(parameterGroupConfig: 
ParameterGroupConfiguration): boolean {
         // can only edit the context name if the create parameter context 
checkbox is checked.
-        return 
this.fetchParametersForm.get(`${parameterGroupConfig.groupName}.createParameterContext`)?.value;
+        return this.fetchParametersForm.get([parameterGroupConfig.groupName, 
'createParameterContext'])?.value;
     }
 
     showParameterList(parameterGroupConfig: ParameterGroupConfiguration): 
boolean {
         // show only a list of parameters if the group is not synced with a 
parameter context and the user isn't actively trying to create a context for it
         return (
             !this.isSynced(parameterGroupConfig) &&
-            
!this.fetchParametersForm.get(`${parameterGroupConfig.groupName}.createParameterContext`)?.value
+            !this.fetchParametersForm.get([parameterGroupConfig.groupName, 
'createParameterContext'])?.value
         );
     }
 
@@ -266,9 +272,11 @@ export class FetchParameterProviderParameters extends 
CloseOnEscapeDialog implem
     }
 
     getFormControl(parameter: ParameterSensitivity, parameterGroupConfig: 
ParameterGroupConfiguration): FormControl {
-        return this.fetchParametersForm.get(
-            
`${parameterGroupConfig.groupName}.parameterSensitivities.${parameter.name}`
-        ) as FormControl;
+        return this.fetchParametersForm.get([
+            parameterGroupConfig.groupName,
+            'parameterSensitivities',
+            parameter.name
+        ]) as FormControl;
     }
 
     private getParameterMapping(parameterGroupConfig: 
ParameterGroupConfiguration): {
@@ -560,23 +568,27 @@ export class FetchParameterProviderParameters extends 
CloseOnEscapeDialog implem
         const groupConfigs: ParameterGroupConfiguration[] = 
this.parameterGroupConfigurations
             .filter((initialGroup) => {
                 // filter out any non-synchronized groups that the user hasn't 
decided to create a parameter context for
-                const createParameterContext = this.fetchParametersForm.get(
-                    `${initialGroup.groupName}.createParameterContext`
-                );
+                const createParameterContext = this.fetchParametersForm.get([
+                    initialGroup.groupName,
+                    'createParameterContext'
+                ]);
                 return initialGroup.synchronized || 
!!createParameterContext?.value;
             })
             .map((initialGroup) => {
                 const parameterSensitivities: { [key: string]: null | 
'SENSITIVE' | 'NON_SENSITIVE' } = {};
 
-                const parameterContextName = this.fetchParametersForm.get(
-                    `${initialGroup.groupName}.parameterContextName`
-                )?.value;
+                const parameterContextName = this.fetchParametersForm.get([
+                    initialGroup.groupName,
+                    'parameterContextName'
+                ])?.value;
 
                 // convert to the backend model for sensitivities
                 
Object.entries(initialGroup.parameterSensitivities).forEach(([key, value]) => {
-                    const formParamSensitivity = this.fetchParametersForm.get(
-                        
`${initialGroup.groupName}.parameterSensitivities.${key}`
-                    );
+                    const formParamSensitivity = this.fetchParametersForm.get([
+                        initialGroup.groupName,
+                        'parameterSensitivities',
+                        key
+                    ]);
                     if (formParamSensitivity) {
                         parameterSensitivities[key] = 
formParamSensitivity.value ? 'SENSITIVE' : 'NON_SENSITIVE';
                     } else {

Reply via email to