From 0651dc25d5858b90c47c236eeeed1364f00ba5f2 Mon Sep 17 00:00:00 2001 From: Mykyta Maliarchuk <84377976+nikita-web-ua@users.noreply.github.com> Date: Fri, 11 Jul 2025 10:37:50 +0200 Subject: [PATCH] [ACS-9790] Fix Tags and Categories content is missing during editing other panel (#11004) * [ACS-9790] Fix Tags and Categories content is missing during editing other panel in metadata sidebar * [ACS-9790] remove commented code * [ACS-9790] cr fix --- .../content-metadata.component.html | 6 +- .../content-metadata.component.spec.ts | 74 ++++++++++++++++++- .../content-metadata.component.ts | 4 +- 3 files changed, 77 insertions(+), 7 deletions(-) diff --git a/lib/content-services/src/lib/content-metadata/components/content-metadata/content-metadata.component.html b/lib/content-services/src/lib/content-metadata/components/content-metadata/content-metadata.component.html index 04f79db0ab..c50d87552f 100644 --- a/lib/content-services/src/lib/content-metadata/components/content-metadata/content-metadata.component.html +++ b/lib/content-services/src/lib/content-metadata/components/content-metadata/content-metadata.component.html @@ -98,7 +98,7 @@ -
@@ -161,7 +161,7 @@ -
+
@@ -241,7 +241,7 @@
-
+ { let component: ContentMetadataComponent; @@ -48,6 +55,7 @@ describe('ContentMetadataComponent', () => { let folderNode: Node; let tagService: TagService; let categoryService: CategoryService; + let testingUtils: UnitTestingUtils; let getClassSpy: jasmine.Spy; let notificationService: NotificationService; let getGroupedPropertiesSpy: jasmine.Spy; @@ -154,6 +162,8 @@ describe('ContentMetadataComponent', () => { const queryDom = (properties = 'properties') => fixture.debugElement.query(By.css(`[data-automation-id="adf-metadata-group-${properties}"]`)); + const getEmptyPanelMessage = (): DebugElement => testingUtils.getByCSS('.adf-metadata-no-item-added'); + /** * Get metadata categories * @@ -196,6 +206,7 @@ describe('ContentMetadataComponent', () => { }); fixture = TestBed.createComponent(ContentMetadataComponent); component = fixture.componentInstance; + testingUtils = new UnitTestingUtils(fixture.debugElement); contentMetadataService = TestBed.inject(ContentMetadataService); updateService = TestBed.inject(CardViewContentUpdateService); nodesApiService = TestBed.inject(NodesApiService); @@ -1484,6 +1495,36 @@ describe('ContentMetadataComponent', () => { const noEditableTagsContainer = fixture.debugElement.query(By.css('div.adf-metadata-properties-tags')); expect(noEditableTagsContainer).toBeNull(); }); + + it('should show existing tags when editing another panel and viewing tags panel', async () => { + component.displayTags = true; + component.readOnly = false; + fixture.detectChanges(); + spyOn(tagService, 'getTagsByNodeId').and.returnValue(of(tagPaging)); + + component.ngOnChanges({ + node: new SimpleChange(undefined, node, false) + }); + + toggleEditModeForGeneralInfo(); + expandTagsPanel(); + const tagElements = await findTagElements(); + expect(tagElements).toHaveSize(2); + expect(component.showEmptyTagMessage).toBeFalse(); + }); + + it('should show empty tag message when editing another panel and viewing tags panel', () => { + component.displayTags = true; + component.readOnly = false; + fixture.detectChanges(); + + toggleEditModeForGeneralInfo(); + expandTagsPanel(); + fixture.detectChanges(); + + expect(getEmptyPanelMessage()).toBeTruthy(); + expect(component.showEmptyTagMessage).toBeTrue(); + }); }); describe('Tags creator', () => { @@ -1677,6 +1718,35 @@ describe('ContentMetadataComponent', () => { toggleEditModeForCategories(); expect(getCategories().length).toBe(0); }); + + it('should show existing categories when editing another panel and viewing categories panel', async () => { + component.displayCategories = true; + component.readOnly = false; + fixture.detectChanges(); + + component.ngOnChanges({ + node: new SimpleChange(undefined, node, false) + }); + + toggleEditModeForGeneralInfo(); + expandCategoriesPanel(); + const categories = getCategories(); + expect(categories).toHaveSize(2); + expect(component.showEmptyCategoryMessage).toBeFalse(); + }); + + it('should show empty categories message when editing another panel and viewing categories panel', () => { + component.displayCategories = true; + component.readOnly = false; + fixture.detectChanges(); + + toggleEditModeForGeneralInfo(); + expandCategoriesPanel(); + fixture.detectChanges(); + + expect(getEmptyPanelMessage()).toBeTruthy(); + expect(component.showEmptyCategoryMessage).toBeTrue(); + }); }); describe('Categories management', () => { diff --git a/lib/content-services/src/lib/content-metadata/components/content-metadata/content-metadata.component.ts b/lib/content-services/src/lib/content-metadata/components/content-metadata/content-metadata.component.ts index 7a623334d8..ac333ae76a 100644 --- a/lib/content-services/src/lib/content-metadata/components/content-metadata/content-metadata.component.ts +++ b/lib/content-services/src/lib/content-metadata/components/content-metadata/content-metadata.component.ts @@ -341,11 +341,11 @@ export class ContentMetadataComponent implements OnChanges, OnInit { } get showEmptyTagMessage(): boolean { - return this.tags?.length === 0 && this.currentPanel.panelTitle === 'Tags' && !this.editing; + return this.tags?.length === 0 && !this.isPanelEditing('Tags'); } get showEmptyCategoryMessage(): boolean { - return this.categories?.length === 0 && this.currentPanel.panelTitle === 'Categories' && !this.editing; + return this.categories?.length === 0 && !this.isPanelEditing('Categories'); } toggleGroupEditing(panelTitle: string, event?: MouseEvent) {