mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-31 17:38:28 +00:00
[ACA-4644] Inherited & linked rules that are disabled should not be listed (#2843)
* [ACA-4644] Inherited & linked rules that are disabled should not be listed * Added condition for linked rule sets to need only enabled rules * Added a bypass for the empty rules list for linked rule sets that have only disabled rules * Replaced array filter with some
This commit is contained in:
@@ -35,7 +35,7 @@
|
||||
</div>
|
||||
|
||||
<div
|
||||
*ngIf="mainRuleSetGroupingItems.length > 0"
|
||||
*ngIf="mainRuleSetGroupingItems.length > 0 || isMainRuleSetLinked"
|
||||
class="aca-rule-list__item"
|
||||
data-automation-id="rule-list-item"
|
||||
[ngClass]="{ expanded: mainRuleSetExpanded }">
|
||||
@@ -66,14 +66,25 @@
|
||||
</mat-icon>
|
||||
</div>
|
||||
|
||||
<aca-rule-list-grouping
|
||||
*ngIf="mainRuleSetExpanded"
|
||||
[items]="mainRuleSetGroupingItems"
|
||||
[selectedRule]="selectedRule"
|
||||
[showEnabledToggles]="isMainRuleSetOwned"
|
||||
(selectRule)="onSelectRule($event)"
|
||||
(ruleEnabledChanged)="onRuleEnabledChanged($event)"
|
||||
(loadMoreRules)="onLoadMoreRules($event)">
|
||||
</aca-rule-list-grouping>
|
||||
<ng-container *ngIf="mainRuleSetExpanded">
|
||||
<aca-rule-list-grouping
|
||||
*ngIf="mainRuleSetGroupingItems.length > 0; else emptyLinkedRuleSet"
|
||||
[items]="mainRuleSetGroupingItems"
|
||||
[selectedRule]="selectedRule"
|
||||
[showEnabledToggles]="isMainRuleSetOwned"
|
||||
(selectRule)="onSelectRule($event)"
|
||||
(ruleEnabledChanged)="onRuleEnabledChanged($event)"
|
||||
(loadMoreRules)="onLoadMoreRules($event)">
|
||||
</aca-rule-list-grouping>
|
||||
|
||||
<ng-template #emptyLinkedRuleSet>
|
||||
<div class="aca-rule-list__item__all-linked-rules-are-disabled">
|
||||
{{ 'ACA_FOLDER_RULES.RULE_LIST.ALL_LINKED_RULES_ARE_DISABLED' | translate }}
|
||||
<button mat-stroked-button [routerLink]="['/nodes', mainRuleSet.owningFolder.id, 'rules']">
|
||||
{{ 'ACA_FOLDER_RULES.MANAGE_RULES.TOOLBAR.ACTIONS.SEE_IN_FOLDER' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
</ng-container>
|
||||
|
||||
</div>
|
||||
|
@@ -46,5 +46,18 @@
|
||||
border-bottom: 1px solid var(--theme-border-color);
|
||||
}
|
||||
}
|
||||
|
||||
&__all-linked-rules-are-disabled {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
color: var(--theme-disabled-text-color);
|
||||
font-style: italic;
|
||||
text-align: center;
|
||||
padding: 0.5em 0;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -69,14 +69,17 @@ export class RuleListUiComponent {
|
||||
get isMainRuleSetOwned(): boolean {
|
||||
return FolderRuleSetsService.isOwnedRuleSet(this.mainRuleSet, this.folderId);
|
||||
}
|
||||
get isMainRuleSetLinked(): boolean {
|
||||
return FolderRuleSetsService.isLinkedRuleSet(this.mainRuleSet, this.folderId);
|
||||
}
|
||||
|
||||
get mainRuleSetGroupingItems(): RuleGroupingItem[] {
|
||||
return this.mainRuleSet ? this.getRuleSetGroupingItems(this.mainRuleSet) : [];
|
||||
return this.mainRuleSet ? this.getRuleSetGroupingItems(this.mainRuleSet, !this.isMainRuleSetOwned) : [];
|
||||
}
|
||||
|
||||
get inheritedRuleSetGroupingItems(): RuleGroupingItem[] {
|
||||
const items = this.inheritedRuleSets.reduce((accumulator: RuleGroupingItem[], currentRuleSet: RuleSet) => {
|
||||
accumulator.push(...this.getRuleSetGroupingItems(currentRuleSet));
|
||||
accumulator.push(...this.getRuleSetGroupingItems(currentRuleSet, true));
|
||||
return accumulator;
|
||||
}, []);
|
||||
if (this.ruleSetsLoading || this.hasMoreRuleSets) {
|
||||
@@ -87,11 +90,13 @@ export class RuleListUiComponent {
|
||||
return items;
|
||||
}
|
||||
|
||||
getRuleSetGroupingItems(ruleSet: RuleSet): RuleGroupingItem[] {
|
||||
const items: RuleGroupingItem[] = ruleSet.rules.map((rule: Rule) => ({
|
||||
type: 'rule',
|
||||
rule
|
||||
}));
|
||||
getRuleSetGroupingItems(ruleSet: RuleSet, filterOutDisabledRules: boolean): RuleGroupingItem[] {
|
||||
const items: RuleGroupingItem[] = ruleSet.rules
|
||||
.filter((rule: Rule) => rule.isEnabled || !filterOutDisabledRules)
|
||||
.map((rule: Rule) => ({
|
||||
type: 'rule',
|
||||
rule
|
||||
}));
|
||||
if (ruleSet.loadingRules || ruleSet.hasMoreRules) {
|
||||
items.push(
|
||||
ruleSet.loadingRules
|
||||
|
Reference in New Issue
Block a user