From 470ee63714d9b0e4645e2c3c2185095d0429a89b Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sat, 26 Jan 2019 05:17:03 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=B4=20HistoryPage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reader/HistoryPage/HistoryPage.vue | 17 ++++++++++++----- client/components/Reader/Reader.vue | 8 +++++--- client/components/Reader/TextPage/TextPage.vue | 5 +++-- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/client/components/Reader/HistoryPage/HistoryPage.vue b/client/components/Reader/HistoryPage/HistoryPage.vue index ba03f2fb..b98962cc 100644 --- a/client/components/Reader/HistoryPage/HistoryPage.vue +++ b/client/components/Reader/HistoryPage/HistoryPage.vue @@ -26,8 +26,10 @@ Время
просм. @@ -46,8 +48,8 @@ > @@ -113,12 +115,17 @@ class HistoryPage extends Vue { d.setTime(book.touchTime); const t = formatDate(d).split(' '); + let perc = ''; + const p = (book.bookPosSeen ? book.bookPosSeen : (book.bookPos ? book.bookPos : 0)); + if (book.textLength) + perc = ` [${((p/book.textLength)*100).toFixed(2)}%]`; + result.push({ touchDateTime: book.touchTime, touchDate: t[0], touchTime: t[1], desc: { - title: book.fb2.bookTitle, + title: `"${book.fb2.bookTitle}"${perc}`, author: _.compact([ book.fb2.lastName, book.fb2.firstName, diff --git a/client/components/Reader/Reader.vue b/client/components/Reader/Reader.vue index 31c88066..052140b3 100644 --- a/client/components/Reader/Reader.vue +++ b/client/components/Reader/Reader.vue @@ -84,7 +84,7 @@ export default @Component({ textPage.bookPos = newValue; } if (this.lastOpenedBook && this.lastOpenedBook.bookPos != newValue) { - this.commit('reader/setOpenedBook', Object.assign({}, this.lastOpenedBook, {bookPos: newValue})); + this.commit('reader/setOpenedBook', Object.assign({}, this.lastOpenedBook, {bookPos: newValue, bookPosSeen: this.bookPosSeen})); } } }, @@ -168,6 +168,7 @@ class Reader extends Vue { } bookPosChanged(event) { + this.bookPosSeen = event.bookPosSeen; this.bookPos = event.bookPos; this.updateRoute(); } @@ -311,6 +312,7 @@ class Reader extends Vue { let wasOpened = this.reader.openedBook[key]; wasOpened = (wasOpened ? wasOpened : {}); const bookPos = (opts.bookPos !== undefined ? opts.bookPos : wasOpened.bookPos); + const bookPosSeen = (opts.bookPos !== undefined ? opts.bookPos : wasOpened.bookPosSeen); let book = null; @@ -322,7 +324,7 @@ class Reader extends Vue { // если есть в локальном кеше if (bookParsed) { - this.commit('reader/setOpenedBook', Object.assign({bookPos}, bookManager.metaOnly(bookParsed))); + this.commit('reader/setOpenedBook', Object.assign({bookPos, bookPosSeen}, bookManager.metaOnly(bookParsed))); this.loaderActive = false; progress.hide(); this.progressActive = false; return; @@ -358,7 +360,7 @@ class Reader extends Vue { }); // добавляем в историю - this.commit('reader/setOpenedBook', Object.assign({bookPos}, bookManager.metaOnly(addedBook))); + this.commit('reader/setOpenedBook', Object.assign({bookPos, bookPosSeen}, bookManager.metaOnly(addedBook))); this.updateRoute(true); this.loaderActive = false; diff --git a/client/components/Reader/TextPage/TextPage.vue b/client/components/Reader/TextPage/TextPage.vue index 89a864f4..8e4d7ada 100644 --- a/client/components/Reader/TextPage/TextPage.vue +++ b/client/components/Reader/TextPage/TextPage.vue @@ -68,7 +68,7 @@ class TextPage extends Vue { this.reader = this.$store.state.reader; this.debouncedEmitPosChange = _.debounce((newValue) => { - this.$emit('book-pos-changed', {bookPos: newValue}); + this.$emit('book-pos-changed', {bookPos: newValue, bookPosSeen: this.bookPosSeen}); }, 1000); this.debouncedStartClickRepeat = _.debounce((x, y) => { @@ -285,7 +285,7 @@ class TextPage extends Vue { await this.loadFonts(); //this.draw(); - + // шрифты хрен знает когда подгружаются, поэтому let i = 0; this.parsed.force = true; @@ -459,6 +459,7 @@ class TextPage extends Vue { if (i >= 0) { this.statusBar = this.drawHelper.drawStatusBar(this.statusBarTop, this.statusBarHeight, lines[i].end, this.parsed.textLength, this.title); + this.bookPosSeen = lines[i].end; } } }