From 0147a82b0ad391a450968c89c04487661607cb1a Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sun, 17 Mar 2019 23:33:34 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B2=D0=B2=D0=BE=D0=B4=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF=D0=B0=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/Reader/Reader.vue | 26 ++++++++++++++++--- .../Reader/SettingsPage/SettingsPage.vue | 5 ++-- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/client/components/Reader/Reader.vue b/client/components/Reader/Reader.vue index a29c66c2..59a1fe0a 100644 --- a/client/components/Reader/Reader.vue +++ b/client/components/Reader/Reader.vue @@ -82,6 +82,9 @@ //----------------------------------------------------------------------------- import Vue from 'vue'; import Component from 'vue-class-component'; +import _ from 'lodash'; +import {Buffer} from 'safe-buffer'; + import LoaderPage from './LoaderPage/LoaderPage.vue'; import TextPage from './TextPage/TextPage.vue'; import ProgressPage from './ProgressPage/ProgressPage.vue'; @@ -97,8 +100,7 @@ import ServerStorage from './ServerStorage/ServerStorage.vue'; import bookManager from './share/bookManager'; import readerApi from '../../api/reader'; -import _ from 'lodash'; -import {sleep} from '../../share/utils'; +import * as utils from '../../share/utils'; import restoreOldSettings from './share/restoreOldSettings'; export default @Component({ @@ -216,6 +218,8 @@ class Reader extends Vue { this.loaderActive = true; } } + + this.checkSetStorageAccessKey(); this.loading = false; })(); } @@ -229,6 +233,20 @@ class Reader extends Vue { this.blinkCachedLoad = settings.blinkCachedLoad; } + checkSetStorageAccessKey() { + const q = this.$route.query; + + if (q['setStorageAccessKey']) { + this.$router.replace(`/reader`); + this.settingsToggle(); + this.$nextTick(() => { + this.$refs.settingsPage.enterServerStorageKey( + Buffer.from(utils.fromBase58(q['setStorageAccessKey'])).toString() + ); + }); + } + } + get routeParamPos() { let result = undefined; const q = this.$route.query; @@ -242,6 +260,8 @@ class Reader extends Vue { } updateRoute(isNewRoute) { + if (this.loading) + return; const recent = this.mostRecentBook(); const pos = (recent && recent.bookPos && this.allowUrlParamBookPos ? `__p=${recent.bookPos}&` : ''); const url = (recent ? `url=${recent.url}` : ''); @@ -762,7 +782,7 @@ class Reader extends Vue { this.showRefreshIcon = !this.showRefreshIcon; if (page.blinkCachedLoadMessage) page.blinkCachedLoadMessage(this.showRefreshIcon); - await sleep(500); + await utils.sleep(500); if (this.stopBlink) break; this.blinkCount--; diff --git a/client/components/Reader/SettingsPage/SettingsPage.vue b/client/components/Reader/SettingsPage/SettingsPage.vue index 8ac6b4d6..41acfa71 100644 --- a/client/components/Reader/SettingsPage/SettingsPage.vue +++ b/client/components/Reader/SettingsPage/SettingsPage.vue @@ -577,7 +577,7 @@ class SettingsPage extends Vue { } get setStorageKeyLink() { - return 'http://omnireader.ru/#/reader?setStorageKey=' + utils.toBase58(this.serverStorageKey); + return `http://${window.location.host}/#/reader?setStorageAccessKey=${utils.toBase58(this.serverStorageKey)}`; } get predefineTextColors() { @@ -721,7 +721,7 @@ class SettingsPage extends Vue { this.serverStorageKeyVisible = !this.serverStorageKeyVisible; } - async enterServerStorageKey() { + async enterServerStorageKey(key) { try { const result = await this.$prompt(`Предупреждение! Изменение ключа доступа приведет к потере всех профилей и читаемых книг, привязанных к предыдущему ключу.` + `

Введите новый ключ доступа:`, '', { @@ -729,6 +729,7 @@ class SettingsPage extends Vue { confirmButtonText: 'OK', cancelButtonText: 'Отмена', inputValidator: (str) => { if (str && str.length == 44) return true; else return 'Неверный формат ключа'; }, + inputValue: (key && _.isString(key) ? key : null), type: 'warning' });