[ADF-2625] updating viewer on node editing (#3160)

* update viewer on metadata changes

* add test and docs
This commit is contained in:
Denys Vuika
2018-04-10 11:00:35 +01:00
committed by Eugenio Romano
parent 2b8f12fa57
commit 11d38efe2b
5 changed files with 78 additions and 5 deletions

View File

@@ -19,7 +19,7 @@ import { Location } from '@angular/common';
import {
Component, ContentChild, EventEmitter, HostListener, ElementRef,
Input, OnChanges, Output, SimpleChanges, TemplateRef,
ViewEncapsulation
ViewEncapsulation, OnInit, OnDestroy
} from '@angular/core';
import { MinimalNodeEntryEntity, RenditionEntry } from 'alfresco-js-api';
import { BaseEvent } from '../../events';
@@ -29,6 +29,7 @@ import { ViewerMoreActionsComponent } from './viewer-more-actions.component';
import { ViewerOpenWithComponent } from './viewer-open-with.component';
import { ViewerSidebarComponent } from './viewer-sidebar.component';
import { ViewerToolbarComponent } from './viewer-toolbar.component';
import { Subscription } from 'rxjs/Subscription';
@Component({
selector: 'adf-viewer',
@@ -37,7 +38,7 @@ import { ViewerToolbarComponent } from './viewer-toolbar.component';
host: { 'class': 'adf-viewer' },
encapsulation: ViewEncapsulation.None
})
export class ViewerComponent implements OnChanges {
export class ViewerComponent implements OnChanges, OnInit, OnDestroy {
@ContentChild(ViewerToolbarComponent)
toolbar: ViewerToolbarComponent;
@@ -213,6 +214,8 @@ export class ViewerComponent implements OnChanges {
extension: string;
sidebarTemplateContext: { node: MinimalNodeEntryEntity } = { node: null };
private subscriptions: Subscription[] = [];
// Extensions that are supported by the Viewer without conversion
private extensions = {
image: ['png', 'jpg', 'jpeg', 'gif', 'bpm', 'svg'],
@@ -239,6 +242,23 @@ export class ViewerComponent implements OnChanges {
return (this.urlFile || this.blobFile || this.fileNodeId || this.sharedLinkId) ? true : false;
}
ngOnInit() {
this.subscriptions = this.subscriptions.concat([
this.apiService.nodeUpdated.subscribe(node => this.onNodeUpdated(node))
]);
}
ngOnDestroy() {
this.subscriptions.forEach(subscription => subscription.unsubscribe());
this.subscriptions = [];
}
private onNodeUpdated(node: MinimalNodeEntryEntity) {
if (node && node.id === this.fileNodeId) {
this.setUpNodeFile(node);
}
}
ngOnChanges(changes: SimpleChanges) {
if (this.showViewer) {
if (!this.isSourceDefined()) {