not show viewer for not supported video formats

This commit is contained in:
Eugenio Romano 2016-09-06 13:16:56 +02:00
parent 0743d1a6a3
commit 9516b84404
3 changed files with 33 additions and 6 deletions

View File

@ -146,6 +146,16 @@ Attribute | Options | Default | Description | Mandatory
`showViewer` | *boolean* | `true` | Hide or show the viewer | `showViewer` | *boolean* | `true` | Hide or show the viewer |
`showToolbar` | *boolean* | `true` | Hide or show the toolbars | `showToolbar` | *boolean* | `true` | Hide or show the toolbars |
#### Supported file formats
Type | extensions
--- | ---
Media | Mp4, WebM, Ogv
Images | png, jpg, jpeg, gif, bmp
Text | pdf
## Build from sources ## Build from sources
Alternatively you can build component from sources with the following commands: Alternatively you can build component from sources with the following commands:

View File

@ -47,7 +47,6 @@ describe('ViewerComponent', () => {
jasmine.Ajax.install(); jasmine.Ajax.install();
component.urlFile = 'base/src/assets/fake-test-file.pdf'; component.urlFile = 'base/src/assets/fake-test-file.pdf';
component.overlayMode = true; component.overlayMode = true;
viewerComponentFixture.detectChanges(); viewerComponentFixture.detectChanges();
@ -118,7 +117,7 @@ describe('ViewerComponent', () => {
expect(element.querySelector('#viewer-close-button')).toBeNull(); expect(element.querySelector('#viewer-close-button')).toBeNull();
}); });
it('Esc button should not hide the viewerls if is not overlay mode', () => { it('Esc button should not hide the viewer if is not overlay mode', () => {
EventMock.keyDown(27); EventMock.keyDown(27);
viewerComponentFixture.detectChanges(); viewerComponentFixture.detectChanges();
expect(element.querySelector('#viewer-main-container')).not.toBeNull(); expect(element.querySelector('#viewer-main-container')).not.toBeNull();
@ -289,6 +288,7 @@ describe('ViewerComponent', () => {
component.ngOnChanges().then(() => { component.ngOnChanges().then(() => {
viewerComponentFixture.detectChanges(); viewerComponentFixture.detectChanges();
console.log(element.querySelector('media-player'));
expect(element.querySelector('media-player')).not.toBeNull(); expect(element.querySelector('media-player')).not.toBeNull();
done(); done();
}); });
@ -304,5 +304,16 @@ describe('ViewerComponent', () => {
done(); done();
}); });
}); });
it('should not display the media player if the file identified by mimetype is a media but with not supported extension', (done) => {
component.urlFile = 'content';
component.mimeType = 'video/avi';
component.ngOnChanges().then(() => {
viewerComponentFixture.detectChanges();
expect(element.querySelector('media-player')).toBeNull();
done();
});
});
}); });
}); });

View File

@ -126,6 +126,7 @@ export class ViewerComponent {
/** /**
* get File name from url * get File name from url
* *
* @param {string} url - url file
* @returns {string} name file * @returns {string} name file
*/ */
getFilenameFromUrl(url: string) { getFilenameFromUrl(url: string) {
@ -163,7 +164,7 @@ export class ViewerComponent {
* @returns {boolean} * @returns {boolean}
*/ */
private isMedia() { private isMedia() {
return this.isMediaExtension() || this.isMediaMimeType(); return this.isMediaExtension(this.extension) || this.isMediaMimeType();
} }
/** /**
@ -182,16 +183,21 @@ export class ViewerComponent {
* @returns {boolean} * @returns {boolean}
*/ */
private isMediaMimeType() { private isMediaMimeType() {
return this.mimeType && this.mimeType.indexOf('video/') === 0; let mimeExtension;
if (this.mimeType && this.mimeType.indexOf('/')) {
mimeExtension = this.mimeType.substr(this.mimeType.indexOf('/') + 1, this.mimeType.length);
}
return this.mimeType && this.mimeType.indexOf('video/') === 0 && this.isMediaExtension(mimeExtension);
} }
/** /**
* check if the current file is a supported media extension * check if the current file is a supported media extension
* @param {string} extension
* *
* @returns {boolean} * @returns {boolean}
*/ */
private isMediaExtension() { private isMediaExtension(extension: string) {
return this.extension === 'mp4' || this.extension === 'WebM' || this.extension === 'Ogg'; return extension === 'mp4' || extension === 'WebM' || extension === 'Ogg';
} }
/** /**