diff --git a/docs/content-services/components/content-node-selector-panel.component.md b/docs/content-services/components/content-node-selector-panel.component.md index c3ce9a4049..6443d81a10 100644 --- a/docs/content-services/components/content-node-selector-panel.component.md +++ b/docs/content-services/components/content-node-selector-panel.component.md @@ -45,6 +45,7 @@ Opens a [Content Node Selector](content-node-selector.component.md) in its own | showDropdownSiteList | `boolean` | | Toggle sites list dropdown rendering | | showFilesInResult | `void` | | Shows the files and folders in the search result | | showSearch | `boolean` | | Toggle search input rendering | +| showNodeCounter | `boolean` | false | Shows the node counter in the breadcrumb | ### Events diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.html b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.html index bc3260a1ef..621b208cd6 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.html +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.html @@ -43,7 +43,7 @@
- + {{ 'NODE_SELECTOR.SEARCH_RESULTS' | translate }} @@ -57,6 +57,7 @@ [root]="breadcrumbFolderTitle" data-automation-id="content-node-selector-content-breadcrumb"> + diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts index 22548813c7..e9b579a0d0 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts @@ -1387,6 +1387,12 @@ describe('ContentNodeSelectorPanelComponent', () => { expect(component.getSelectedCount()).toBe(0); }); + + it('should not render component input if `showNodeCounter` is false', () => { + component.showNodeCounter = false; + fixture.detectChanges(); + expect(fixture.debugElement.nativeElement.querySelector('adf-node-counter')).toBe(null); + }); }); }); }); diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts index 0e8c43eb47..e140f66aa5 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts @@ -76,6 +76,7 @@ export class ContentNodeSelectorPanelComponent implements OnInit, OnDestroy { private showSiteList = true; private showSearchField = true; + private showCounter = false; /** If true will restrict the search and breadcrumbs to the currentFolderId */ @Input() @@ -200,6 +201,16 @@ export class ContentNodeSelectorPanelComponent implements OnInit, OnDestroy { } } + /** Shows the node counter in the breadcrumb */ + @Input() + set showNodeCounter(value: boolean) { + this.showCounter = value ?? false; + } + + get showNodeCounter(): boolean { + return this.showCounter; + } + /** Emitted when the user has chosen an item. */ @Output() select: EventEmitter = new EventEmitter(); diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html index 58b0fb33e2..ef919d6c2c 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html @@ -24,6 +24,7 @@ [showSearch]="data?.showSearch" [showDropdownSiteList]="data?.showDropdownSiteList" [showFilesInResult]="data?.showFilesInResult" + [showNodeCounter]="isCounterVisible()" (currentFolder)="onCurrentFolder($event)" (folderLoaded)="onFolderLoaded()" (select)="onSelect($event)" @@ -35,7 +36,7 @@ - + + diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts index 29e637600f..399cb66693 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts @@ -446,5 +446,23 @@ describe('ContentNodeSelectorComponent', () => { expect(component.getSelectedCount()).toBe(1); }); + + it('should show the counter depending on the action', () => { + component.action = 'ATTACH'; + fixture.detectChanges(); + expect(fixture.debugElement.nativeElement.querySelector('adf-node-counter')).not.toBe(null); + + component.action = 'CHOOSE'; + fixture.detectChanges(); + expect(fixture.debugElement.nativeElement.querySelector('adf-node-counter')).not.toBe(null); + + component.action = 'COPY'; + fixture.detectChanges(); + expect(fixture.debugElement.nativeElement.querySelector('adf-node-counter')).toBe(null); + + component.action = 'MOVE'; + fixture.detectChanges(); + expect(fixture.debugElement.nativeElement.querySelector('adf-node-counter')).toBe(null); + }); }); }); diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts index 9b2c64f45b..350ad9c8ef 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts @@ -111,6 +111,10 @@ export class ContentNodeSelectorComponent implements OnInit { return this.chosenNode?.length || 0; } + isCounterVisible(): boolean { + return this.action === 'ATTACH' || this.action === 'CHOOSE'; + } + isMultipleSelection(): boolean { return this.data.selectionMode === 'multiple'; }