mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-09 18:03:21 +00:00
[ACS-9584] Refresh after the change of name of a node (#12060)
* [ACS-9584] Refresh after the change of name of a node * [ACS-9584] Add unit test for name change * [ACS-9584] Merge the changed fields onto the existing one * [ACS-9584] Refresh does not happen after name change of a file * [ACS-9584] Page only reload for extension and version change * [ACS-9584] Add sidebarTemplateContext to unit test * [ACS-9584] Add unit test for the changes in ngOnChanges * Render spinner visibility rather than internal field
This commit is contained in:
@@ -585,6 +585,35 @@ describe('AlfrescoViewerComponent', () => {
|
||||
expect(component.nodeMimeType).toEqual('application/msWord');
|
||||
});
|
||||
|
||||
it('should update fileName when the node name changes', async () => {
|
||||
const defaultNode = {
|
||||
id: '123',
|
||||
name: 'Mock_Node.pdf',
|
||||
content: { mimeType: 'application/pdf' },
|
||||
properties: { 'cm:versionLabel': 'mock-version-label' }
|
||||
} as Node;
|
||||
|
||||
component.nodeEntry = { entry: defaultNode };
|
||||
component.nodeId = '123';
|
||||
|
||||
component.sidebarRightTemplateContext = { node: defaultNode };
|
||||
component.sidebarLeftTemplateContext = { node: defaultNode };
|
||||
|
||||
fixture.detectChanges();
|
||||
|
||||
nodesApiService.nodeUpdated.next({
|
||||
...defaultNode,
|
||||
name: 'Renamed_Node.pdf',
|
||||
properties: { 'cm:versionLabel': 'mock-version-label' }
|
||||
} as Node);
|
||||
|
||||
await fixture.whenStable();
|
||||
|
||||
expect(component.fileName).toBe('Renamed_Node.pdf');
|
||||
expect(component.sidebarRightTemplateContext.node.name).toBe('Renamed_Node.pdf');
|
||||
expect(component.sidebarLeftTemplateContext.node.name).toBe('Renamed_Node.pdf');
|
||||
});
|
||||
|
||||
describe('versioned file with rendition', () => {
|
||||
const docxMimeType = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
|
||||
const xlsxMimeType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
||||
|
||||
@@ -265,7 +265,11 @@ export class AlfrescoViewerComponent implements OnChanges, OnInit {
|
||||
.pipe(
|
||||
filter(
|
||||
(node) =>
|
||||
node && node.id === this.nodeId && this.getNodeVersionProperty(this.nodeEntry.entry) !== this.getNodeVersionProperty(node)
|
||||
!!node &&
|
||||
node.id === this.nodeId &&
|
||||
!!this.nodeEntry?.entry &&
|
||||
(this.getNodeVersionProperty(this.nodeEntry.entry) !== this.getNodeVersionProperty(node) ||
|
||||
this.nodeEntry.entry.name !== node.name)
|
||||
),
|
||||
takeUntilDestroyed(this.destroyRef)
|
||||
)
|
||||
@@ -274,9 +278,22 @@ export class AlfrescoViewerComponent implements OnChanges, OnInit {
|
||||
|
||||
private async onNodeUpdated(node: Node) {
|
||||
if (node && node.id === this.nodeId) {
|
||||
this.generateCacheBusterNumber();
|
||||
const previousNode = this.nodeEntry.entry;
|
||||
const mergedNode = { ...previousNode, ...node };
|
||||
this.nodeEntry = new NodeEntry({ entry: mergedNode });
|
||||
|
||||
await this.setUpNodeFile(node);
|
||||
const versionChanged = this.getNodeVersionProperty(previousNode) !== this.getNodeVersionProperty(mergedNode);
|
||||
const extensionChanged =
|
||||
this.viewUtilService.getFileExtension(previousNode.name) !== this.viewUtilService.getFileExtension(mergedNode.name);
|
||||
|
||||
if (versionChanged || extensionChanged) {
|
||||
this.generateCacheBusterNumber();
|
||||
await this.setUpNodeFile(mergedNode);
|
||||
} else {
|
||||
this.fileName = mergedNode.name;
|
||||
this.sidebarRightTemplateContext.node.name = mergedNode.name;
|
||||
this.sidebarLeftTemplateContext.node.name = mergedNode.name;
|
||||
}
|
||||
this.cdr.detectChanges();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user