mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-2032] viewer reopening fixes (#2739)
* viewer reopening fixes * docs update
This commit is contained in:
committed by
Eugenio Romano
parent
82dca30d7f
commit
2746b29984
@@ -20,6 +20,7 @@
|
|||||||
"TAG": "Tag",
|
"TAG": "Tag",
|
||||||
"SOCIAL": "Social",
|
"SOCIAL": "Social",
|
||||||
"SETTINGS": "Settings",
|
"SETTINGS": "Settings",
|
||||||
|
"OVERLAY_VIEWER": "Overlay Viewer",
|
||||||
"ABOUT": "About"
|
"ABOUT": "About"
|
||||||
},
|
},
|
||||||
"DOCUMENT_LIST": {
|
"DOCUMENT_LIST": {
|
||||||
|
@@ -20,6 +20,7 @@ import { AboutComponent } from './components/about/about.component';
|
|||||||
import { FormComponent } from './components/form/form.component';
|
import { FormComponent } from './components/form/form.component';
|
||||||
import { FormListComponent } from './components/form/form-list.component';
|
import { FormListComponent } from './components/form/form-list.component';
|
||||||
import { CustomSourcesComponent } from './components/files/custom-sources.component';
|
import { CustomSourcesComponent } from './components/files/custom-sources.component';
|
||||||
|
import { OverlayViewerComponent } from './components/overlay-viewer/overlay-viewer.component';
|
||||||
|
|
||||||
import { ProcessServiceComponent } from './components/process-service/process-service.component';
|
import { ProcessServiceComponent } from './components/process-service/process-service.component';
|
||||||
import { ShowDiagramComponent } from './components/process-service/show-diagram.component';
|
import { ShowDiagramComponent } from './components/process-service/show-diagram.component';
|
||||||
@@ -83,7 +84,8 @@ import { ProcessAttachmentsComponent } from './components/process-service/proces
|
|||||||
CustomSourcesComponent,
|
CustomSourcesComponent,
|
||||||
VersionManagerDialogAdapterComponent,
|
VersionManagerDialogAdapterComponent,
|
||||||
TaskAttachmentsComponent,
|
TaskAttachmentsComponent,
|
||||||
ProcessAttachmentsComponent
|
ProcessAttachmentsComponent,
|
||||||
|
OverlayViewerComponent
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
TranslateService,
|
TranslateService,
|
||||||
|
@@ -41,6 +41,7 @@ import { UploadButtonComponent } from '@alfresco/adf-content-services';
|
|||||||
import { FileViewComponent } from './components/file-view/file-view.component';
|
import { FileViewComponent } from './components/file-view/file-view.component';
|
||||||
import { CustomSourcesComponent } from './components/files/custom-sources.component';
|
import { CustomSourcesComponent } from './components/files/custom-sources.component';
|
||||||
import { FormListComponent } from './components/form/form-list.component';
|
import { FormListComponent } from './components/form/form-list.component';
|
||||||
|
import { OverlayViewerComponent } from './components/overlay-viewer/overlay-viewer.component';
|
||||||
|
|
||||||
export const appRoutes: Routes = [
|
export const appRoutes: Routes = [
|
||||||
{ path: 'login', component: LoginComponent },
|
{ path: 'login', component: LoginComponent },
|
||||||
@@ -149,7 +150,12 @@ export const appRoutes: Routes = [
|
|||||||
},
|
},
|
||||||
{ path: 'about', component: AboutComponent },
|
{ path: 'about', component: AboutComponent },
|
||||||
{ path: 'form', component: FormComponent },
|
{ path: 'form', component: FormComponent },
|
||||||
{ path: 'form-list', component: FormListComponent }
|
{ path: 'form-list', component: FormListComponent },
|
||||||
|
{
|
||||||
|
path: 'overlay-viewer',
|
||||||
|
component: OverlayViewerComponent,
|
||||||
|
canActivate: [AuthGuardEcm]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@@ -41,6 +41,7 @@ export class AppLayoutComponent {
|
|||||||
{ href: '/tag', icon: 'local_offer', title: 'APP_LAYOUT.TAG' },
|
{ href: '/tag', icon: 'local_offer', title: 'APP_LAYOUT.TAG' },
|
||||||
{ href: '/social', icon: 'thumb_up', title: 'APP_LAYOUT.SOCIAL' },
|
{ href: '/social', icon: 'thumb_up', title: 'APP_LAYOUT.SOCIAL' },
|
||||||
{ href: '/settings', icon: 'settings', title: 'APP_LAYOUT.SETTINGS' },
|
{ href: '/settings', icon: 'settings', title: 'APP_LAYOUT.SETTINGS' },
|
||||||
|
{ href: '/overlay-viewer', icon: 'pageview', title: 'APP_LAYOUT.OVERLAY_VIEWER' },
|
||||||
{ href: '/about', icon: 'info_outline', title: 'APP_LAYOUT.ABOUT' }
|
{ href: '/about', icon: 'info_outline', title: 'APP_LAYOUT.ABOUT' }
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@@ -0,0 +1,12 @@
|
|||||||
|
<h1>Overlay Viewer</h1>
|
||||||
|
|
||||||
|
<adf-document-list
|
||||||
|
currentFolderId="-my-"
|
||||||
|
(preview)="showPreview($event)">
|
||||||
|
</adf-document-list>
|
||||||
|
|
||||||
|
<adf-viewer
|
||||||
|
[(showViewer)]="showViewer"
|
||||||
|
[overlayMode]="true"
|
||||||
|
[fileNodeId]="nodeId">
|
||||||
|
</adf-viewer>
|
@@ -0,0 +1,36 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { Component, Input } from '@angular/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
templateUrl: 'overlay-viewer.component.html'
|
||||||
|
})
|
||||||
|
export class OverlayViewerComponent {
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
showViewer: boolean = false;
|
||||||
|
|
||||||
|
nodeId: string;
|
||||||
|
|
||||||
|
showPreview(event) {
|
||||||
|
if (event.value.entry.isFile) {
|
||||||
|
this.nodeId = event.value.entry.id;
|
||||||
|
this.showViewer = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -67,6 +67,42 @@ Using with file url:
|
|||||||
| print | any | Yes | Raised when user clicks the 'Print' button. |
|
| print | any | Yes | Raised when user clicks the 'Print' button. |
|
||||||
| share | any | Yes | Raised when user clicks the 'Share' button. |
|
| share | any | Yes | Raised when user clicks the 'Share' button. |
|
||||||
|
|
||||||
|
## Integrating with DocumentList component
|
||||||
|
|
||||||
|
Below is the most simple integration of Pagination and DocumentList components within your custom component:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<adf-document-list
|
||||||
|
currentFolderId="-my-"
|
||||||
|
(preview)="showPreview($event)">
|
||||||
|
</adf-document-list>
|
||||||
|
|
||||||
|
<adf-viewer
|
||||||
|
[(showViewer)]="showViewer"
|
||||||
|
[overlayMode]="true"
|
||||||
|
[fileNodeId]="nodeId">
|
||||||
|
</adf-viewer>
|
||||||
|
```
|
||||||
|
|
||||||
|
And the component controller class implementation can look like the following:
|
||||||
|
|
||||||
|
```ts
|
||||||
|
export class OverlayViewerComponent {
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
showViewer: boolean = false;
|
||||||
|
|
||||||
|
nodeId: string;
|
||||||
|
|
||||||
|
showPreview(event) {
|
||||||
|
if (event.value.entry.isFile) {
|
||||||
|
this.nodeId = event.value.entry.id;
|
||||||
|
this.showViewer = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Details
|
## Details
|
||||||
|
|
||||||
### Supported file formats
|
### Supported file formats
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
import { Location } from '@angular/common';
|
import { Location } from '@angular/common';
|
||||||
import {
|
import {
|
||||||
Component, ContentChild, EventEmitter, HostListener,
|
Component, ContentChild, EventEmitter, HostListener,
|
||||||
Input, OnChanges, OnDestroy, Output, TemplateRef, ViewEncapsulation
|
Input, OnChanges, Output, SimpleChanges, TemplateRef, ViewEncapsulation
|
||||||
} from '@angular/core';
|
} from '@angular/core';
|
||||||
import { MinimalNodeEntryEntity } from 'alfresco-js-api';
|
import { MinimalNodeEntryEntity } from 'alfresco-js-api';
|
||||||
import { BaseEvent } from '../../events';
|
import { BaseEvent } from '../../events';
|
||||||
@@ -37,7 +37,7 @@ import { ViewerToolbarComponent } from './viewer-toolbar.component';
|
|||||||
host: { 'class': 'adf-viewer' },
|
host: { 'class': 'adf-viewer' },
|
||||||
encapsulation: ViewEncapsulation.None
|
encapsulation: ViewEncapsulation.None
|
||||||
})
|
})
|
||||||
export class ViewerComponent implements OnDestroy, OnChanges {
|
export class ViewerComponent implements OnChanges {
|
||||||
|
|
||||||
@ContentChild(ViewerToolbarComponent)
|
@ContentChild(ViewerToolbarComponent)
|
||||||
toolbar: ViewerToolbarComponent;
|
toolbar: ViewerToolbarComponent;
|
||||||
@@ -146,7 +146,7 @@ export class ViewerComponent implements OnDestroy, OnChanges {
|
|||||||
private renditionService: RenditionsService) {
|
private renditionService: RenditionsService) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges(changes) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
if (this.showViewer) {
|
if (this.showViewer) {
|
||||||
if (!this.urlFile && !this.blobFile && !this.fileNodeId) {
|
if (!this.urlFile && !this.blobFile && !this.fileNodeId) {
|
||||||
throw new Error('Attribute urlFile or fileNodeId or blobFile is required');
|
throw new Error('Attribute urlFile or fileNodeId or blobFile is required');
|
||||||
@@ -308,26 +308,10 @@ export class ViewerComponent implements OnDestroy, OnChanges {
|
|||||||
if (this.otherMenu) {
|
if (this.otherMenu) {
|
||||||
this.otherMenu.hidden = false;
|
this.otherMenu.hidden = false;
|
||||||
}
|
}
|
||||||
this.cleanup();
|
|
||||||
this.showViewer = false;
|
this.showViewer = false;
|
||||||
this.showViewerChange.emit(this.showViewer);
|
this.showViewerChange.emit(this.showViewer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* cleanup before the close
|
|
||||||
*/
|
|
||||||
cleanup() {
|
|
||||||
this.urlFileContent = '';
|
|
||||||
this.displayName = '';
|
|
||||||
this.fileNodeId = null;
|
|
||||||
this.extension = null;
|
|
||||||
this.mimeType = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
ngOnDestroy() {
|
|
||||||
this.cleanup();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get File name from url
|
* get File name from url
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user