[ACS-11975] [ACA] Files can be marked as selected in the link rules dialog (#5221)

This commit is contained in:
Dominik Iwanek
2026-06-15 12:08:40 +02:00
committed by GitHub
parent 2a49de437f
commit 0e6b5b9609
3 changed files with 22 additions and 3 deletions
@@ -10,11 +10,12 @@
<mat-dialog-content class="aca-rule-set-picker__content">
<adf-content-node-selector-panel
class="aca-rule-set-picker__content__node-selector"
[currentFolderId]="defaultNodeId"
(select)="onNodeSelect($event)"
(folderLoaded)="setFolderLoading(false)"
(navigationChange)="setFolderLoading(true)"
(siteChange)="setFolderLoading(true)" />
(siteChange)="setFolderLoading(true)"
[currentFolderId]="defaultNodeId"
[rowFilter]="rowFilter" />
<div class="aca-rule-set-picker__content__rule-list" [ngClass]="{ 'aca-justify': rulesLoading$ | async }">
<ng-container *ngIf="rulesLoading$ | async; else rulesLoaded">
@@ -35,6 +35,7 @@ import {
AlfrescoApiServiceMock,
ContentNodeSelectorPanelComponent,
NodeEntryEvent,
ShareDataRow,
SitesService
} from '@alfresco/adf-content-services';
import { provideRouter } from '@angular/router';
@@ -48,6 +49,7 @@ import { RuleSet } from '../model/rule-set.model';
})
class MockContentNodeSelectorPanelComponent {
@Input() currentFolderId: string;
@Input() rowFilter: (row: ShareDataRow) => boolean;
@Output() folderLoaded = new EventEmitter<void>();
@Output() navigationChange = new EventEmitter<NodeEntryEvent>();
@Output() siteChange = new EventEmitter<string>();
@@ -126,6 +128,18 @@ describe('RuleSetPickerSmartComponent', () => {
});
});
describe('rowFilter', () => {
it('should keep folder rows', () => {
const row = { node: { entry: { isFolder: true } } } as ShareDataRow;
expect(component.rowFilter(row)).toBe(true);
});
it('should filter out file rows', () => {
const row = { node: { entry: { isFolder: false } } } as ShareDataRow;
expect(component.rowFilter(row)).toBe(false);
});
});
it('should load the rule sets of a node once it has been selected', () => {
expect(loadRuleSetsSpy).not.toHaveBeenCalled();
component.onNodeSelect([folderToLinkMock]);
@@ -37,7 +37,7 @@ import { MatIconModule } from '@angular/material/icon';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { RuleListItemUiComponent } from '../rule-list/rule-list-item/rule-list-item.ui-component';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { ContentNodeSelectorPanelComponent } from '@alfresco/adf-content-services';
import { ContentNodeSelectorPanelComponent, ShareDataRow } from '@alfresco/adf-content-services';
export interface RuleSetPickerOptions {
nodeId: string;
@@ -104,6 +104,10 @@ export class RuleSetPickerSmartComponent implements OnInit {
}
}
rowFilter(row: ShareDataRow): boolean {
return row.node.entry.isFolder;
}
setFolderLoading(isLoading: boolean) {
this.folderLoading$.next(isLoading);
}