From e8f66322148e1df75846891cb2537ea063ec6a7f Mon Sep 17 00:00:00 2001 From: frankdelange Date: Tue, 21 Feb 2017 02:14:50 +0100 Subject: [PATCH] More and more and more changes, but still not quite there. --- reader/css/idevice.css | 33 - reader/js/.ready.js.swp | Bin 0 -> 32768 bytes reader/js/epubreader.js | 318 +++ reader/js/ready.js | 289 +- reader/lib/Db/ReaderEntity.php | 35 + reader/templates/.epubreader.php.swp | Bin 0 -> 45056 bytes reader/templates/cbreader.php | 46 +- reader/templates/epubreader.php | 422 +-- reader/vendor/bartaz/jquery.highlight.js | 108 + reader/vendor/bgrins/spectrum.css | 507 ++++ reader/vendor/bgrins/spectrum.js | 2323 +++++++++++++++++ reader/vendor/cbrjs/cbr.css | 35 +- reader/vendor/cbrjs/cbr.js | 72 +- reader/vendor/epubjs/css/.main.css.swp | Bin 0 -> 24576 bytes reader/vendor/epubjs/css/.sidebar.css.swp | Bin 0 -> 20480 bytes .../{ => vendor/epubjs}/css/annotations.css | 0 .../{ => vendor/epubjs}/css/font/fontello.eot | Bin .../{ => vendor/epubjs}/css/font/fontello.svg | 0 .../{ => vendor/epubjs}/css/font/fontello.ttf | Bin .../epubjs}/css/font/fontello.woff | Bin reader/vendor/epubjs/css/idevice.css | 13 + reader/vendor/epubjs/css/main.css | 376 +++ reader/{ => vendor/epubjs}/css/normalize.css | 0 reader/{ => vendor/epubjs}/css/popup.css | 0 reader/vendor/epubjs/css/sidebar.css | 369 +++ reader/{ => vendor/epubjs}/css/tooltip.css | 0 .../main.css => vendor/epubjs/epub.main.css} | 28 +- reader/vendor/epubjs/epub.min.js | 8 +- reader/vendor/epubjs/plugins/search.js | 142 + reader/vendor/epubjs/reader.min.js | 2 +- 30 files changed, 4769 insertions(+), 357 deletions(-) delete mode 100644 reader/css/idevice.css create mode 100644 reader/js/.ready.js.swp create mode 100644 reader/js/epubreader.js create mode 100644 reader/lib/Db/ReaderEntity.php create mode 100644 reader/templates/.epubreader.php.swp create mode 100644 reader/vendor/bartaz/jquery.highlight.js create mode 100644 reader/vendor/bgrins/spectrum.css create mode 100644 reader/vendor/bgrins/spectrum.js create mode 100644 reader/vendor/epubjs/css/.main.css.swp create mode 100644 reader/vendor/epubjs/css/.sidebar.css.swp rename reader/{ => vendor/epubjs}/css/annotations.css (100%) rename reader/{ => vendor/epubjs}/css/font/fontello.eot (100%) rename reader/{ => vendor/epubjs}/css/font/fontello.svg (100%) rename reader/{ => vendor/epubjs}/css/font/fontello.ttf (100%) rename reader/{ => vendor/epubjs}/css/font/fontello.woff (100%) create mode 100644 reader/vendor/epubjs/css/idevice.css create mode 100644 reader/vendor/epubjs/css/main.css rename reader/{ => vendor/epubjs}/css/normalize.css (100%) rename reader/{ => vendor/epubjs}/css/popup.css (100%) create mode 100644 reader/vendor/epubjs/css/sidebar.css rename reader/{ => vendor/epubjs}/css/tooltip.css (100%) rename reader/{css/main.css => vendor/epubjs/epub.main.css} (98%) create mode 100644 reader/vendor/epubjs/plugins/search.js diff --git a/reader/css/idevice.css b/reader/css/idevice.css deleted file mode 100644 index 888c060..0000000 --- a/reader/css/idevice.css +++ /dev/null @@ -1,33 +0,0 @@ -/* For iPad portrait layouts only */ -@media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation: portrait) { - #viewer iframe { - width: 460px; - height: 740px; - } -} - /*For iPad landscape layouts only */ -@media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation: landscape) { - #viewer iframe { - width: 460px; - height: 415px; - } -} -/* For iPhone portrait layouts only */ -@media only screen and (max-device-width: 480px) and (orientation: portrait) { - #viewer { - width: 256px; - height: 432px; - } - #viewer iframe { - width: 256px; - height: 432px; - } -} -/* For iPhone landscape layouts only */ -@media only screen and (max-device-width: 480px) and (orientation: landscape) { - #viewer iframe { - width: 256px; - height: 124px; - } -} - diff --git a/reader/js/.ready.js.swp b/reader/js/.ready.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..cda25ca4fab1a4ef55201ba5d2e7779b0ffbfc44 GIT binary patch literal 32768 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 -1 ) return; + + this.settings.bookmarks.push(cfi); + + this.trigger("reader:bookmarked", cfi); +}; + +EPUBJS.Reader.prototype.removeBookmark = function(cfi) { + var bookmark = this.isBookmarked(cfi); + if( bookmark === -1 ) return; + + this.settings.bookmarks.splice(bookmark, 1); + + this.trigger("reader:unbookmarked", bookmark); +}; + +EPUBJS.Reader.prototype.isBookmarked = function(cfi) { + var bookmarks = this.settings.bookmarks; + + return bookmarks.indexOf(cfi); +}; + +/* +EPUBJS.Reader.prototype.searchBookmarked = function(cfi) { + var bookmarks = this.settings.bookmarks, + len = bookmarks.length, + i; + + for(i = 0; i < len; i++) { + if (bookmarks[i]['cfi'] === cfi) return i; + } + return -1; +}; +*/ + +EPUBJS.Reader.prototype.clearBookmarks = function() { + this.settings.bookmarks = []; +}; + +//-- Notes +EPUBJS.Reader.prototype.addNote = function(note) { + this.settings.annotations.push(note); +}; + +EPUBJS.Reader.prototype.removeNote = function(note) { + var index = this.settings.annotations.indexOf(note); + if( index === -1 ) return; + + delete this.settings.annotations[index]; + +}; + +EPUBJS.Reader.prototype.clearNotes = function() { + this.settings.annotations = []; +}; + +//-- Settings +EPUBJS.Reader.prototype.setBookKey = function(identifier){ + if(!this.settings.bookKey) { + this.settings.bookKey = "epubjsreader:" + EPUBJS.VERSION + ":" + window.location.host + ":" + identifier; + } + return this.settings.bookKey; +}; + +//-- Checks if the book setting can be retrieved from localStorage +EPUBJS.Reader.prototype.isSaved = function(bookPath) { + var storedSettings; + + if(!localStorage) { + return false; + } + + storedSettings = localStorage.getItem(this.settings.bookKey); + + if(storedSettings === null) { + return false; + } else { + return true; + } +}; + +EPUBJS.Reader.prototype.removeSavedSettings = function() { + if(!localStorage) { + return false; + } + + localStorage.removeItem(this.settings.bookKey); +}; + +EPUBJS.Reader.prototype.applySavedSettings = function() { + var stored; + + if(!localStorage) { + return false; + } + + try { + stored = JSON.parse(localStorage.getItem(this.settings.bookKey)); + } catch (e) { // parsing error of localStorage + return false; + } + + if(stored) { + // Merge styles + if(stored.styles) { + this.settings.styles = EPUBJS.core.defaults(this.settings.styles || {}, stored.styles); + } + // Merge the rest + this.settings = EPUBJS.core.defaults(this.settings, stored); + return true; + } else { + return false; + } +}; + +EPUBJS.Reader.prototype.saveSettings = function(){ + if(this.book) { + this.settings.previousLocationCfi = this.book.getCurrentLocationCfi(); + } + + if(!localStorage) { + return false; + } + + localStorage.setItem(this.settings.bookKey, JSON.stringify(this.settings)); +}; + +EPUBJS.Reader.prototype.unload = function(){ + if(this.settings.restore && localStorage) { + this.saveSettings(); + } +}; + + +EPUBJS.Reader.prototype.hashChanged = function(){ + var hash = window.location.hash.slice(1); + this.book.goto(hash); +}; + +EPUBJS.Reader.prototype.selectedRange = function(range){ + var epubcfi = new EPUBJS.EpubCFI(); + var cfi = epubcfi.generateCfiFromRangeAnchor(range, this.book.renderer.currentChapter.cfiBase); + var cfiFragment = "#"+cfi; + + // Update the History Location + if(this.settings.history && + window.location.hash != cfiFragment) { + // Add CFI fragment to the history + history.pushState({}, '', cfiFragment); + this.currentLocationCfi = cfi; + } +}; + +//-- Enable binding events to reader +RSVP.EventTarget.mixin(EPUBJS.Reader.prototype); diff --git a/reader/js/ready.js b/reader/js/ready.js index 1a434a6..e6dab27 100644 --- a/reader/js/ready.js +++ b/reader/js/ready.js @@ -14,7 +14,7 @@ function addStyleSheet() { function getCSSRule(sheet, selector, del) { lcSelector = selector.toLowerCase(); - for ( var i=0; i').attr('href', document.getElementsByTagName("base").item(0).href + 'css/idevice.css')); + $('head').append($(' - - - - - - - - - - - - - - -
-