From 41cd679da59a9b9332309a457ac58a88c6e2d932 Mon Sep 17 00:00:00 2001 From: erdemcaygor Date: Fri, 11 Jul 2025 15:30:54 +0300 Subject: [PATCH 1/3] feature management updates --- .../feature-management/feature-management.component.html | 4 ++-- .../feature-management/feature-management.component.ts | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html index a81444e56c..bf223391e0 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html @@ -29,8 +29,8 @@ @for (feature of features[group.name]; track feature.id || i; let i = $index) { @let provider = feature.provider.name; - @let isFeatureDisabled = - provider !== providerName && provider !== defaultProviderName; + @let isFeatureDisabled = !feature.parentName ? isParentDisabled(feature.name, group.name) : + (provider !== providerName && provider !== defaultProviderName);
@switch (feature.valueType?.name) { diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts index 85ee18fb78..d580578564 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts @@ -184,6 +184,15 @@ export class FeatureManagementComponent } } + isParentDisabled(parentName: string, groupName: string): boolean { + const children = this.features[groupName]?.filter(f => f.parentName === parentName); + + return children.some(child => { + const provider = child.provider?.name; + return provider !== this.providerName && provider !== this.defaultProviderName; + }); + } + private uncheckToggleDescendants(feature: FeatureDto) { this.findAllDescendantsOfByType(feature, ValueTypes.ToggleStringValueType).forEach(node => this.setFeatureValue(node, false), From 59e5829cfd24e4c2f533f30c60a057f445c9504e Mon Sep 17 00:00:00 2001 From: erdemcaygor Date: Thu, 24 Jul 2025 10:39:40 +0300 Subject: [PATCH 2/3] fix --- .../feature-management.component.html | 2 +- .../feature-management.component.ts | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html index bf223391e0..257221add9 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html @@ -29,7 +29,7 @@ @for (feature of features[group.name]; track feature.id || i; let i = $index) { @let provider = feature.provider.name; - @let isFeatureDisabled = !feature.parentName ? isParentDisabled(feature.name, group.name) : + @let isFeatureDisabled = !feature.parentName ? isParentDisabled(feature.name, group.name, provider) : (provider !== providerName && provider !== defaultProviderName);
diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts index d580578564..ddcfba7482 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts @@ -184,13 +184,17 @@ export class FeatureManagementComponent } } - isParentDisabled(parentName: string, groupName: string): boolean { + isParentDisabled(parentName: string, groupName: string, provider: string): boolean { const children = this.features[groupName]?.filter(f => f.parentName === parentName); - return children.some(child => { - const provider = child.provider?.name; + if (children?.length) { + return children.some(child => { + const childProvider = child.provider?.name; + return childProvider !== this.providerName && childProvider !== this.defaultProviderName; + }); + } else { return provider !== this.providerName && provider !== this.defaultProviderName; - }); + } } private uncheckToggleDescendants(feature: FeatureDto) { From b54f384278e7edd5551786a3abdf1c9c2d79f63f Mon Sep 17 00:00:00 2001 From: erdemcaygor Date: Thu, 24 Jul 2025 10:46:19 +0300 Subject: [PATCH 3/3] fix --- .../feature-management/feature-management.component.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts index ddcfba7482..bfadbf65fb 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts @@ -190,7 +190,10 @@ export class FeatureManagementComponent if (children?.length) { return children.some(child => { const childProvider = child.provider?.name; - return childProvider !== this.providerName && childProvider !== this.defaultProviderName; + return ( + (childProvider !== this.providerName && childProvider !== this.defaultProviderName) || + (provider !== this.providerName && provider !== this.defaultProviderName) + ); }); } else { return provider !== this.providerName && provider !== this.defaultProviderName;