Skip to content

Commit 1b4dc78

Browse files
authored
Merge pull request #23293 from abpframework/fix/#20331
Angular - If the child feature is disabled because of the edition, the parent should be too
2 parents b3ba97d + b54f384 commit 1b4dc78

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ <h4>{{ selectedGroupDisplayName }}</h4>
2929

3030
@for (feature of features[group.name]; track feature.id || i; let i = $index) {
3131
@let provider = feature.provider.name;
32-
@let isFeatureDisabled =
33-
provider !== providerName && provider !== defaultProviderName;
32+
@let isFeatureDisabled = !feature.parentName ? isParentDisabled(feature.name, group.name, provider) :
33+
(provider !== providerName && provider !== defaultProviderName);
3434

3535
<div class="mt-2" [ngStyle]="feature.style" (keyup.enter)="save()">
3636
@switch (feature.valueType?.name) {

npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,22 @@ export class FeatureManagementComponent
184184
}
185185
}
186186

187+
isParentDisabled(parentName: string, groupName: string, provider: string): boolean {
188+
const children = this.features[groupName]?.filter(f => f.parentName === parentName);
189+
190+
if (children?.length) {
191+
return children.some(child => {
192+
const childProvider = child.provider?.name;
193+
return (
194+
(childProvider !== this.providerName && childProvider !== this.defaultProviderName) ||
195+
(provider !== this.providerName && provider !== this.defaultProviderName)
196+
);
197+
});
198+
} else {
199+
return provider !== this.providerName && provider !== this.defaultProviderName;
200+
}
201+
}
202+
187203
private uncheckToggleDescendants(feature: FeatureDto) {
188204
this.findAllDescendantsOfByType(feature, ValueTypes.ToggleStringValueType).forEach(node =>
189205
this.setFeatureValue(node, false),

0 commit comments

Comments
 (0)