From e131bc7bc978cd46c64b224cbefae69ff49d2e1b Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Tue, 15 Jan 2019 21:30:10 +0700 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B1=D0=B0=D0=B3=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/Reader/Reader.vue | 33 +++++++++++-------- .../components/Reader/TextPage/TextPage.vue | 1 - 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/client/components/Reader/Reader.vue b/client/components/Reader/Reader.vue index 3e6eb7d6..b3ae6028 100644 --- a/client/components/Reader/Reader.vue +++ b/client/components/Reader/Reader.vue @@ -41,6 +41,7 @@ +
{{ lastOpenedBook }}
@@ -83,7 +84,7 @@ export default @Component({ }, routeParamUrl: function(newValue) { if (newValue !== '' && newValue !== this.lastOpenedBook.url) { - this.loadBook({url: newValue}); + this.loadBook({url: newValue, bookPos: this.routeParamPos}); } } }, @@ -107,11 +108,15 @@ class Reader extends Vue { /*while (this.lastOpenedBook) { this.commit('reader/delOpenedBook', this.lastOpenedBook); }*/ - const lastUrl = (this.lastOpenedBook ? this.lastOpenedBook.url : ''); - if (this.$root.rootRoute == '/reader' && this.routeParamUrl && this.routeParamUrl != lastUrl) { - this.loaderActive = true; - this.loadBook({url: this.routeParamUrl, bookPos: this.routeParamPos}); - } + if (this.$root.rootRoute == '/reader') { + if (this.routeParamUrl) { + this.loadBook({url: this.routeParamUrl, bookPos: this.routeParamPos}); + } else if (this.lastOpenedBook) { + this.loadBook({url: this.lastOpenedBook.url}); + } else { + this.loaderActive = true; + } + } } get routeParamPos() { @@ -126,9 +131,12 @@ class Reader extends Vue { return (result ? parseInt(result, 10) || 0 : result); } - updateRoute() { + updateRoute(isNewRoute) { const pos = (this.bookPos != undefined ? `__p=${this.bookPos}&` : ''); - this.$router.replace(`/reader?${pos}url=${this.lastOpenedBook.url}`); + if (isNewRoute) + this.$router.push(`/reader?${pos}url=${this.lastOpenedBook.url}`); + else + this.$router.replace(`/reader?${pos}url=${this.lastOpenedBook.url}`); } get routeParamUrl() { @@ -194,20 +202,18 @@ class Reader extends Vue { //акивируем страницу с текстом this.$nextTick(async() => { const last = this.lastOpenedBook; + const isParsed = await bookManager.hasBookParsed(last); if (!isParsed) { this.$root.$emit('set-app-title'); - this.loadBook({url: last.url}); return; - } else { - this.bookPos = last.bookPos; } this.updateRoute(); const textPage = this.$refs.page; if (textPage.showBook) { textPage.lastBook = last; - textPage.bookPos = (this.bookPos !== undefined ? this.bookPos : 0); + textPage.bookPos = (last.bookPos !== undefined ? last.bookPos : 0); textPage.showBook(); } @@ -236,10 +242,8 @@ class Reader extends Vue { }); if (bookParsed) { - const bookPos = (opts.bookPos !== undefined ? opts.bookPos : wasOpened.bookPos); this.commit('reader/setOpenedBook', Object.assign({bookPos}, bookManager.metaOnly(bookParsed))); - this.loaderActive = false; progress.hide(); this.progressActive = false; return; @@ -258,6 +262,7 @@ class Reader extends Vue { const bookPos = (opts.bookPos !== undefined ? opts.bookPos : wasOpened.bookPos); this.commit('reader/setOpenedBook', Object.assign({bookPos}, bookManager.metaOnly(addedBook))); + this.updateRoute(true); this.loaderActive = false; progress.hide(); this.progressActive = false; diff --git a/client/components/Reader/TextPage/TextPage.vue b/client/components/Reader/TextPage/TextPage.vue index f0a2c102..78ebf8a9 100644 --- a/client/components/Reader/TextPage/TextPage.vue +++ b/client/components/Reader/TextPage/TextPage.vue @@ -1,7 +1,6 @@