diff --git a/ng2-components/ng2-alfresco-viewer/src/services/viewer.service.ts b/ng2-components/ng2-alfresco-viewer/src/services/viewer.service.ts index 795918c93f..5bfa511e73 100644 --- a/ng2-components/ng2-alfresco-viewer/src/services/viewer.service.ts +++ b/ng2-components/ng2-alfresco-viewer/src/services/viewer.service.ts @@ -17,7 +17,7 @@ import { Injectable } from '@angular/core'; import { MdDialog } from '@angular/material'; -import { MinimalNodeEntryEntity } from 'alfresco-js-api'; +import { MinimalNodeEntity, MinimalNodeEntryEntity } from 'alfresco-js-api'; import { AlfrescoApiService } from 'ng2-alfresco-core'; import { ViewerDialogComponent } from './../components/viewer-dialog.component'; @@ -34,6 +34,10 @@ export class ViewerService { return this.apiService.getInstance().content; } + private get nodesApi() { + return this.apiService.getInstance().nodes; + } + showViewerForNode(node: MinimalNodeEntryEntity): Promise { return new Promise((resolve, reject) => { const settings: ViewerDialogSettings = { @@ -53,4 +57,18 @@ export class ViewerService { }); }); } + + showViewerForNodeId(nodeId: string): Promise { + return new Promise((resolve, reject) => { + this.nodesApi.getNode(nodeId).then( + (node: MinimalNodeEntity) => { + if (node && node.entry && node.entry.isFile) { + return this.showViewerForNode(node.entry); + } else { + resolve(false); + } + } + ); + }); + } }