diff --git a/src/plugins/bookPlayer/plugin.js b/src/plugins/bookPlayer/plugin.js index 7d7a8b89be..2001bfc157 100644 --- a/src/plugins/bookPlayer/plugin.js +++ b/src/plugins/bookPlayer/plugin.js @@ -1,14 +1,19 @@ +import { Events } from 'jellyfin-apiclient'; +import 'material-design-icons-iconfont'; + import loading from '../../components/loading/loading'; import keyboardnavigation from '../../scripts/keyboardNavigation'; import dialogHelper from '../../components/dialogHelper/dialogHelper'; -import '../../scripts/dom'; -import { Events } from 'jellyfin-apiclient'; -import './style.css'; -import 'material-design-icons-iconfont'; -import '../../elements/emby-button/paper-icon-button-light'; import ServerConnections from '../../components/ServerConnections'; import TableOfContents from './tableOfContents'; import browser from '../../scripts/browser'; +import { translateHtml } from '../../scripts/globalize'; + +import '../../scripts/dom'; +import '../../elements/emby-button/paper-icon-button-light'; + +import html from './template.html'; +import './style.scss'; export class BookPlayer { constructor() { @@ -17,6 +22,13 @@ export class BookPlayer { this.id = 'bookplayer'; this.priority = 1; + this.epubOptions = { + width: '100%', + height: '100%', + // TODO: Add option for scrolled-doc + flow: 'paginated' + }; + this.onDialogClosed = this.onDialogClosed.bind(this); this.openTableOfContents = this.openTableOfContents.bind(this); this.prevChapter = this.prevChapter.bind(this); @@ -134,10 +146,8 @@ export class BookPlayer { elem.addEventListener('close', this.onDialogClosed, {once: true}); elem.querySelector('#btnBookplayerExit').addEventListener('click', this.onDialogClosed, {once: true}); elem.querySelector('#btnBookplayerToc').addEventListener('click', this.openTableOfContents); - if (browser.mobile) { - elem.querySelector('#btnBookplayerPrev').addEventListener('click', this.prevChapter); - elem.querySelector('#btnBookplayerNext').addEventListener('click', this.nextChapter); - } + elem.querySelector('#btnBookplayerPrev')?.addEventListener('click', this.prevChapter); + elem.querySelector('#btnBookplayerNext')?.addEventListener('click', this.nextChapter); } bindEvents() { @@ -155,10 +165,8 @@ export class BookPlayer { elem.removeEventListener('close', this.onDialogClosed); elem.querySelector('#btnBookplayerExit').removeEventListener('click', this.onDialogClosed); elem.querySelector('#btnBookplayerToc').removeEventListener('click', this.openTableOfContents); - if (browser.mobile) { - elem.querySelector('#btnBookplayerPrev').removeEventListener('click', this.prevChapter); - elem.querySelector('#btnBookplayerNext').removeEventListener('click', this.nextChapter); - } + elem.querySelector('#btnBookplayerPrev')?.removeEventListener('click', this.prevChapter); + elem.querySelector('#btnBookplayerNext')?.removeEventListener('click', this.nextChapter); } unbindEvents() { @@ -180,12 +188,12 @@ export class BookPlayer { } prevChapter(e) { - this._rendition.prev(); + this.rendition.prev(); e.preventDefault(); } nextChapter(e) { - this._rendition.next(); + this.rendition.next(); e.preventDefault(); } @@ -206,25 +214,8 @@ export class BookPlayer { removeOnClose: true }); - let html = ''; - - if (browser.mobile) { - html += '
'; - } - - html += '