mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2026-09-09 18:02:54 +00:00
[ACS-11975] [ACA] Files can be marked as selected in the link rules dialog (#5221)
This commit is contained in:
+3
-2
@@ -10,11 +10,12 @@
|
|||||||
<mat-dialog-content class="aca-rule-set-picker__content">
|
<mat-dialog-content class="aca-rule-set-picker__content">
|
||||||
<adf-content-node-selector-panel
|
<adf-content-node-selector-panel
|
||||||
class="aca-rule-set-picker__content__node-selector"
|
class="aca-rule-set-picker__content__node-selector"
|
||||||
[currentFolderId]="defaultNodeId"
|
|
||||||
(select)="onNodeSelect($event)"
|
(select)="onNodeSelect($event)"
|
||||||
(folderLoaded)="setFolderLoading(false)"
|
(folderLoaded)="setFolderLoading(false)"
|
||||||
(navigationChange)="setFolderLoading(true)"
|
(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 }">
|
<div class="aca-rule-set-picker__content__rule-list" [ngClass]="{ 'aca-justify': rulesLoading$ | async }">
|
||||||
<ng-container *ngIf="rulesLoading$ | async; else rulesLoaded">
|
<ng-container *ngIf="rulesLoading$ | async; else rulesLoaded">
|
||||||
|
|||||||
+14
@@ -35,6 +35,7 @@ import {
|
|||||||
AlfrescoApiServiceMock,
|
AlfrescoApiServiceMock,
|
||||||
ContentNodeSelectorPanelComponent,
|
ContentNodeSelectorPanelComponent,
|
||||||
NodeEntryEvent,
|
NodeEntryEvent,
|
||||||
|
ShareDataRow,
|
||||||
SitesService
|
SitesService
|
||||||
} from '@alfresco/adf-content-services';
|
} from '@alfresco/adf-content-services';
|
||||||
import { provideRouter } from '@angular/router';
|
import { provideRouter } from '@angular/router';
|
||||||
@@ -48,6 +49,7 @@ import { RuleSet } from '../model/rule-set.model';
|
|||||||
})
|
})
|
||||||
class MockContentNodeSelectorPanelComponent {
|
class MockContentNodeSelectorPanelComponent {
|
||||||
@Input() currentFolderId: string;
|
@Input() currentFolderId: string;
|
||||||
|
@Input() rowFilter: (row: ShareDataRow) => boolean;
|
||||||
@Output() folderLoaded = new EventEmitter<void>();
|
@Output() folderLoaded = new EventEmitter<void>();
|
||||||
@Output() navigationChange = new EventEmitter<NodeEntryEvent>();
|
@Output() navigationChange = new EventEmitter<NodeEntryEvent>();
|
||||||
@Output() siteChange = new EventEmitter<string>();
|
@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', () => {
|
it('should load the rule sets of a node once it has been selected', () => {
|
||||||
expect(loadRuleSetsSpy).not.toHaveBeenCalled();
|
expect(loadRuleSetsSpy).not.toHaveBeenCalled();
|
||||||
component.onNodeSelect([folderToLinkMock]);
|
component.onNodeSelect([folderToLinkMock]);
|
||||||
|
|||||||
+5
-1
@@ -37,7 +37,7 @@ import { MatIconModule } from '@angular/material/icon';
|
|||||||
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
||||||
import { RuleListItemUiComponent } from '../rule-list/rule-list-item/rule-list-item.ui-component';
|
import { RuleListItemUiComponent } from '../rule-list/rule-list-item/rule-list-item.ui-component';
|
||||||
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
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 {
|
export interface RuleSetPickerOptions {
|
||||||
nodeId: string;
|
nodeId: string;
|
||||||
@@ -104,6 +104,10 @@ export class RuleSetPickerSmartComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rowFilter(row: ShareDataRow): boolean {
|
||||||
|
return row.node.entry.isFolder;
|
||||||
|
}
|
||||||
|
|
||||||
setFolderLoading(isLoading: boolean) {
|
setFolderLoading(isLoading: boolean) {
|
||||||
this.folderLoading$.next(isLoading);
|
this.folderLoading$.next(isLoading);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user