From 6418e8ee305f98adb319f8e08b1dd2e59c8f8c74 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Wed, 26 Feb 2020 13:40:06 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BD=D0=B0=20quasar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/App.vue | 6 +++++ client/components/Reader/Reader.vue | 10 +++----- .../Reader/SettingsPage/SettingsPage.vue | 23 ++++++++----------- 3 files changed, 18 insertions(+), 21 deletions(-) diff --git a/client/components/App.vue b/client/components/App.vue index 1c40ab53..a4b4453f 100644 --- a/client/components/App.vue +++ b/client/components/App.vue @@ -52,6 +52,7 @@
+ @@ -62,9 +63,13 @@ //----------------------------------------------------------------------------- import Vue from 'vue'; import Component from 'vue-class-component'; +import StdDialog from './share/StdDialog.vue'; import * as utils from '../share/utils'; export default @Component({ + components: { + StdDialog, + }, watch: { mode: function() { this.setAppTitle(); @@ -135,6 +140,7 @@ class App extends Vue { } mounted() { + this.$root.stdDialog = this.$refs.stdDialog; this.dispatch('config/loadConfig'); this.$watch('apiError', function(newError) { if (newError) { diff --git a/client/components/Reader/Reader.vue b/client/components/Reader/Reader.vue index 7aa769cc..51e0fa6a 100644 --- a/client/components/Reader/Reader.vue +++ b/client/components/Reader/Reader.vue @@ -1,6 +1,5 @@ - -
{ @@ -350,7 +345,7 @@ class SettingsPage extends Vue { async setDefaults() { try { - if (await this.stdDialog.confirm('Подтвердите установку настроек по умолчанию:', ' ')) { + if (await this.$root.stdDialog.confirm('Подтвердите установку настроек по умолчанию:', ' ')) { this.form = Object.assign({}, rstore.settingDefaults); for (let prop in rstore.settingDefaults) { this[prop] = this.form[prop]; @@ -368,15 +363,15 @@ class SettingsPage extends Vue { async addProfile() { try { if (Object.keys(this.profiles).length >= 100) { - this.stdDialog.alert('Достигнут предел количества профилей', 'Ошибка'); + this.$root.stdDialog.alert('Достигнут предел количества профилей', 'Ошибка'); return; } - const result = await this.stdDialog.prompt('Введите произвольное название для профиля устройства:', ' ', { + const result = await this.$root.stdDialog.prompt('Введите произвольное название для профиля устройства:', ' ', { inputValidator: (str) => { if (!str) return 'Название не должно быть пустым'; else if (str.length > 50) return 'Слишком длинное название'; else return true; }, }); if (result && result.value) { if (this.profiles[result.value]) { - this.stdDialog.alert('Такой профиль уже существует', 'Ошибка'); + this.$root.stdDialog.alert('Такой профиль уже существует', 'Ошибка'); } else { const newProfiles = Object.assign({}, this.profiles, {[result.value]: 1}); this.commit('reader/setAllowProfilesSave', true); @@ -397,7 +392,7 @@ class SettingsPage extends Vue { return; try { - const result = await this.stdDialog.prompt(`Предупреждение! Удаление профиля '${this.currentProfile}' необратимо.` + + const result = await this.$root.stdDialog.prompt(`Предупреждение! Удаление профиля '${this.currentProfile}' необратимо.` + `
Все настройки профиля будут потеряны, однако список читаемых книг сохранится.` + `

Введите 'да' для подтверждения удаления:`, ' ', { inputValidator: (str) => { if (str && str.toLowerCase() === 'да') return true; else return 'Удаление не подтверждено'; }, @@ -425,7 +420,7 @@ class SettingsPage extends Vue { return; try { - const result = await this.stdDialog.prompt(`Предупреждение! Удаление ВСЕХ профилей с настройками необратимо.` + + const result = await this.$root.stdDialog.prompt(`Предупреждение! Удаление ВСЕХ профилей с настройками необратимо.` + `

Введите 'да' для подтверждения удаления:`, ' ', { inputValidator: (str) => { if (str && str.toLowerCase() === 'да') return true; else return 'Удаление не подтверждено'; }, }); @@ -459,7 +454,7 @@ class SettingsPage extends Vue { async enterServerStorageKey(key) { try { - const result = await this.stdDialog.prompt(`Предупреждение! Изменение ключа доступа приведет к замене всех профилей и читаемых книг в читалке.` + + const result = await this.$root.stdDialog.prompt(`Предупреждение! Изменение ключа доступа приведет к замене всех профилей и читаемых книг в читалке.` + `

Введите новый ключ доступа:`, ' ', { inputValidator: (str) => { try { @@ -484,7 +479,7 @@ class SettingsPage extends Vue { async generateServerStorageKey() { try { - const result = await this.stdDialog.prompt(`Предупреждение! Генерация нового ключа доступа приведет к удалению всех профилей и читаемых книг в читалке.` + + const result = await this.$root.stdDialog.prompt(`Предупреждение! Генерация нового ключа доступа приведет к удалению всех профилей и читаемых книг в читалке.` + `

Введите 'да' для подтверждения генерации нового ключа:`, ' ', { inputValidator: (str) => { if (str && str.toLowerCase() === 'да') return true; else return 'Генерация не подтверждена'; }, }); @@ -499,7 +494,7 @@ class SettingsPage extends Vue { } keyHook(event) { - if (!this.stdDialog.active && event.type == 'keydown' && event.code == 'Escape') { + if (!this.$root.stdDialog.active && event.type == 'keydown' && event.code == 'Escape') { this.close(); } return true;