From c7a89ae74be89ffea13e92a087d5959c7bd56cf2 Mon Sep 17 00:00:00 2001 From: Daniyar Itegulov Date: Thu, 28 May 2020 18:39:49 +1000 Subject: [PATCH] Make book player display an error on non-epub books --- src/components/bookPlayer/plugin.js | 23 +++++++++++++++++++++-- src/components/bookPlayer/style.css | 4 ++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/components/bookPlayer/plugin.js b/src/components/bookPlayer/plugin.js index 3893d7ada..55b358306 100644 --- a/src/components/bookPlayer/plugin.js +++ b/src/components/bookPlayer/plugin.js @@ -170,13 +170,32 @@ export class BookPlayer { } setCurrentSrc(elem, options) { - let serverId = options.items[0].ServerId; + let item = options.items[0]; + if (!item.Path.endsWith('.epub')) { + return new Promise((resolve, reject) => { + let errorDialog = dialogHelper.createDialog({ + size: 'small', + autoFocus: false, + removeOnClose: true + }); + + errorDialog.innerHTML = '

This book type is not supported yet

'; + + this.stop(); + + dialogHelper.open(errorDialog); + loading.hide(); + + return resolve(); + }); + } + let serverId = item.ServerId; let apiClient = connectionManager.getApiClient(serverId); const self = this; return new Promise(function (resolve, reject) { require(['epubjs'], function (epubjs) { - let downloadHref = apiClient.getItemDownloadUrl(options.items[0].Id); + let downloadHref = apiClient.getItemDownloadUrl(item.Id); let book = epubjs.default(downloadHref, {openAs: 'epub'}); let rendition = book.renderTo(elem, {width: '100%', height: '97%'}); diff --git a/src/components/bookPlayer/style.css b/src/components/bookPlayer/style.css index 581438a00..e37b995f3 100644 --- a/src/components/bookPlayer/style.css +++ b/src/components/bookPlayer/style.css @@ -33,3 +33,7 @@ .toc li { margin-bottom: 5px; } + +.bookplayerErrorMsg { + text-align: center; +}