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 |
`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
Alternatively you can build component from sources with the following commands:

View File

@ -47,7 +47,6 @@ describe('ViewerComponent', () => {
jasmine.Ajax.install();
component.urlFile = 'base/src/assets/fake-test-file.pdf';
component.overlayMode = true;
viewerComponentFixture.detectChanges();
@ -118,7 +117,7 @@ describe('ViewerComponent', () => {
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);
viewerComponentFixture.detectChanges();
expect(element.querySelector('#viewer-main-container')).not.toBeNull();
@ -289,6 +288,7 @@ describe('ViewerComponent', () => {
component.ngOnChanges().then(() => {
viewerComponentFixture.detectChanges();
console.log(element.querySelector('media-player'));
expect(element.querySelector('media-player')).not.toBeNull();
done();
});
@ -304,5 +304,16 @@ describe('ViewerComponent', () => {
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
*
* @param {string} url - url file
* @returns {string} name file
*/
getFilenameFromUrl(url: string) {
@ -163,7 +164,7 @@ export class ViewerComponent {
* @returns {boolean}
*/
private isMedia() {
return this.isMediaExtension() || this.isMediaMimeType();
return this.isMediaExtension(this.extension) || this.isMediaMimeType();
}
/**
@ -182,16 +183,21 @@ export class ViewerComponent {
* @returns {boolean}
*/
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
* @param {string} extension
*
* @returns {boolean}
*/
private isMediaExtension() {
return this.extension === 'mp4' || this.extension === 'WebM' || this.extension === 'Ogg';
private isMediaExtension(extension: string) {
return extension === 'mp4' || extension === 'WebM' || extension === 'Ogg';
}
/**