Переход на quasar
This commit is contained in:
@@ -52,6 +52,7 @@
|
|||||||
</q-page-container>
|
</q-page-container>
|
||||||
</q-layout-->
|
</q-layout-->
|
||||||
<div class="fit row">
|
<div class="fit row">
|
||||||
|
<StdDialog ref="stdDialog"/>
|
||||||
<keep-alive>
|
<keep-alive>
|
||||||
<router-view class="col"></router-view>
|
<router-view class="col"></router-view>
|
||||||
</keep-alive>
|
</keep-alive>
|
||||||
@@ -62,9 +63,13 @@
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import Component from 'vue-class-component';
|
import Component from 'vue-class-component';
|
||||||
|
import StdDialog from './share/StdDialog.vue';
|
||||||
import * as utils from '../share/utils';
|
import * as utils from '../share/utils';
|
||||||
|
|
||||||
export default @Component({
|
export default @Component({
|
||||||
|
components: {
|
||||||
|
StdDialog,
|
||||||
|
},
|
||||||
watch: {
|
watch: {
|
||||||
mode: function() {
|
mode: function() {
|
||||||
this.setAppTitle();
|
this.setAppTitle();
|
||||||
@@ -135,6 +140,7 @@ class App extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.$root.stdDialog = this.$refs.stdDialog;
|
||||||
this.dispatch('config/loadConfig');
|
this.dispatch('config/loadConfig');
|
||||||
this.$watch('apiError', function(newError) {
|
this.$watch('apiError', function(newError) {
|
||||||
if (newError) {
|
if (newError) {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="column no-wrap">
|
<div class="column no-wrap">
|
||||||
<StdDialog ref="stdDialog"/>
|
|
||||||
<div ref="header" class="header" v-show="toolBarActive">
|
<div ref="header" class="header" v-show="toolBarActive">
|
||||||
<div ref="buttons" class="row justify-between no-wrap">
|
<div ref="buttons" class="row justify-between no-wrap">
|
||||||
<button ref="loader" class="tool-button" :class="buttonActiveClass('loader')" @click="buttonClick('loader')" v-ripple>
|
<button ref="loader" class="tool-button" :class="buttonActiveClass('loader')" @click="buttonClick('loader')" v-ripple>
|
||||||
@@ -159,7 +158,6 @@ import Component from 'vue-class-component';
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import {Buffer} from 'safe-buffer';
|
import {Buffer} from 'safe-buffer';
|
||||||
|
|
||||||
import StdDialog from '../share/StdDialog.vue';
|
|
||||||
import LoaderPage from './LoaderPage/LoaderPage.vue';
|
import LoaderPage from './LoaderPage/LoaderPage.vue';
|
||||||
import TextPage from './TextPage/TextPage.vue';
|
import TextPage from './TextPage/TextPage.vue';
|
||||||
import ProgressPage from './ProgressPage/ProgressPage.vue';
|
import ProgressPage from './ProgressPage/ProgressPage.vue';
|
||||||
@@ -180,7 +178,6 @@ import {versionHistory} from './versionHistory';
|
|||||||
|
|
||||||
export default @Component({
|
export default @Component({
|
||||||
components: {
|
components: {
|
||||||
StdDialog,
|
|
||||||
LoaderPage,
|
LoaderPage,
|
||||||
TextPage,
|
TextPage,
|
||||||
ProgressPage,
|
ProgressPage,
|
||||||
@@ -300,7 +297,6 @@ class Reader extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.stdDialog = this.$refs.stdDialog;
|
|
||||||
this.updateHeaderMinWidth();
|
this.updateHeaderMinWidth();
|
||||||
|
|
||||||
(async() => {
|
(async() => {
|
||||||
@@ -1033,7 +1029,7 @@ class Reader extends Vue {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
progress.hide(); this.progressActive = false;
|
progress.hide(); this.progressActive = false;
|
||||||
this.loaderActive = true;
|
this.loaderActive = true;
|
||||||
this.stdDialog.alert(e.message, 'Ошибка', {type: 'negative'});
|
this.$root.stdDialog.alert(e.message, 'Ошибка', {type: 'negative'});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1057,7 +1053,7 @@ class Reader extends Vue {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
progress.hide(); this.progressActive = false;
|
progress.hide(); this.progressActive = false;
|
||||||
this.loaderActive = true;
|
this.loaderActive = true;
|
||||||
this.stdDialog.alert(e.message, 'Ошибка', {type: 'negative'});
|
this.$root.stdDialog.alert(e.message, 'Ошибка', {type: 'negative'});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1091,7 +1087,7 @@ class Reader extends Vue {
|
|||||||
|
|
||||||
keyHook(event) {
|
keyHook(event) {
|
||||||
if (this.$root.rootRoute() == '/reader') {
|
if (this.$root.rootRoute() == '/reader') {
|
||||||
if (this.stdDialog.active)
|
if (this.$root.stdDialog.active)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let handled = false;
|
let handled = false;
|
||||||
|
|||||||
@@ -4,8 +4,6 @@
|
|||||||
Настройки
|
Настройки
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<StdDialog ref="stdDialog"/>
|
|
||||||
|
|
||||||
<div class="col row">
|
<div class="col row">
|
||||||
<div class="full-height">
|
<div class="full-height">
|
||||||
<q-tabs
|
<q-tabs
|
||||||
@@ -78,7 +76,6 @@ import _ from 'lodash';
|
|||||||
import * as utils from '../../../share/utils';
|
import * as utils from '../../../share/utils';
|
||||||
import Window from '../../share/Window.vue';
|
import Window from '../../share/Window.vue';
|
||||||
import NumInput from '../../share/NumInput.vue';
|
import NumInput from '../../share/NumInput.vue';
|
||||||
import StdDialog from '../../share/StdDialog.vue';
|
|
||||||
import rstore from '../../../store/modules/reader';
|
import rstore from '../../../store/modules/reader';
|
||||||
import defPalette from './defPalette';
|
import defPalette from './defPalette';
|
||||||
import * as notify from '../../share/notify';
|
import * as notify from '../../share/notify';
|
||||||
@@ -89,7 +86,6 @@ export default @Component({
|
|||||||
components: {
|
components: {
|
||||||
Window,
|
Window,
|
||||||
NumInput,
|
NumInput,
|
||||||
StdDialog,
|
|
||||||
},
|
},
|
||||||
data: function() {
|
data: function() {
|
||||||
return Object.assign({}, rstore.settingDefaults);
|
return Object.assign({}, rstore.settingDefaults);
|
||||||
@@ -168,7 +164,6 @@ class SettingsPage extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.stdDialog = this.$refs.stdDialog;
|
|
||||||
this.$watch(
|
this.$watch(
|
||||||
'$refs.tabs.scrollable',
|
'$refs.tabs.scrollable',
|
||||||
(newValue) => {
|
(newValue) => {
|
||||||
@@ -350,7 +345,7 @@ class SettingsPage extends Vue {
|
|||||||
|
|
||||||
async setDefaults() {
|
async setDefaults() {
|
||||||
try {
|
try {
|
||||||
if (await this.stdDialog.confirm('Подтвердите установку настроек по умолчанию:', ' ')) {
|
if (await this.$root.stdDialog.confirm('Подтвердите установку настроек по умолчанию:', ' ')) {
|
||||||
this.form = Object.assign({}, rstore.settingDefaults);
|
this.form = Object.assign({}, rstore.settingDefaults);
|
||||||
for (let prop in rstore.settingDefaults) {
|
for (let prop in rstore.settingDefaults) {
|
||||||
this[prop] = this.form[prop];
|
this[prop] = this.form[prop];
|
||||||
@@ -368,15 +363,15 @@ class SettingsPage extends Vue {
|
|||||||
async addProfile() {
|
async addProfile() {
|
||||||
try {
|
try {
|
||||||
if (Object.keys(this.profiles).length >= 100) {
|
if (Object.keys(this.profiles).length >= 100) {
|
||||||
this.stdDialog.alert('Достигнут предел количества профилей', 'Ошибка');
|
this.$root.stdDialog.alert('Достигнут предел количества профилей', 'Ошибка');
|
||||||
return;
|
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; },
|
inputValidator: (str) => { if (!str) return 'Название не должно быть пустым'; else if (str.length > 50) return 'Слишком длинное название'; else return true; },
|
||||||
});
|
});
|
||||||
if (result && result.value) {
|
if (result && result.value) {
|
||||||
if (this.profiles[result.value]) {
|
if (this.profiles[result.value]) {
|
||||||
this.stdDialog.alert('Такой профиль уже существует', 'Ошибка');
|
this.$root.stdDialog.alert('Такой профиль уже существует', 'Ошибка');
|
||||||
} else {
|
} else {
|
||||||
const newProfiles = Object.assign({}, this.profiles, {[result.value]: 1});
|
const newProfiles = Object.assign({}, this.profiles, {[result.value]: 1});
|
||||||
this.commit('reader/setAllowProfilesSave', true);
|
this.commit('reader/setAllowProfilesSave', true);
|
||||||
@@ -397,7 +392,7 @@ class SettingsPage extends Vue {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await this.stdDialog.prompt(`<b>Предупреждение!</b> Удаление профиля '${this.currentProfile}' необратимо.` +
|
const result = await this.$root.stdDialog.prompt(`<b>Предупреждение!</b> Удаление профиля '${this.currentProfile}' необратимо.` +
|
||||||
`<br>Все настройки профиля будут потеряны, однако список читаемых книг сохранится.` +
|
`<br>Все настройки профиля будут потеряны, однако список читаемых книг сохранится.` +
|
||||||
`<br><br>Введите 'да' для подтверждения удаления:`, ' ', {
|
`<br><br>Введите 'да' для подтверждения удаления:`, ' ', {
|
||||||
inputValidator: (str) => { if (str && str.toLowerCase() === 'да') return true; else return 'Удаление не подтверждено'; },
|
inputValidator: (str) => { if (str && str.toLowerCase() === 'да') return true; else return 'Удаление не подтверждено'; },
|
||||||
@@ -425,7 +420,7 @@ class SettingsPage extends Vue {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await this.stdDialog.prompt(`<b>Предупреждение!</b> Удаление ВСЕХ профилей с настройками необратимо.` +
|
const result = await this.$root.stdDialog.prompt(`<b>Предупреждение!</b> Удаление ВСЕХ профилей с настройками необратимо.` +
|
||||||
`<br><br>Введите 'да' для подтверждения удаления:`, ' ', {
|
`<br><br>Введите 'да' для подтверждения удаления:`, ' ', {
|
||||||
inputValidator: (str) => { if (str && str.toLowerCase() === 'да') return true; else return 'Удаление не подтверждено'; },
|
inputValidator: (str) => { if (str && str.toLowerCase() === 'да') return true; else return 'Удаление не подтверждено'; },
|
||||||
});
|
});
|
||||||
@@ -459,7 +454,7 @@ class SettingsPage extends Vue {
|
|||||||
|
|
||||||
async enterServerStorageKey(key) {
|
async enterServerStorageKey(key) {
|
||||||
try {
|
try {
|
||||||
const result = await this.stdDialog.prompt(`<b>Предупреждение!</b> Изменение ключа доступа приведет к замене всех профилей и читаемых книг в читалке.` +
|
const result = await this.$root.stdDialog.prompt(`<b>Предупреждение!</b> Изменение ключа доступа приведет к замене всех профилей и читаемых книг в читалке.` +
|
||||||
`<br><br>Введите новый ключ доступа:`, ' ', {
|
`<br><br>Введите новый ключ доступа:`, ' ', {
|
||||||
inputValidator: (str) => {
|
inputValidator: (str) => {
|
||||||
try {
|
try {
|
||||||
@@ -484,7 +479,7 @@ class SettingsPage extends Vue {
|
|||||||
|
|
||||||
async generateServerStorageKey() {
|
async generateServerStorageKey() {
|
||||||
try {
|
try {
|
||||||
const result = await this.stdDialog.prompt(`<b>Предупреждение!</b> Генерация нового ключа доступа приведет к удалению всех профилей и читаемых книг в читалке.` +
|
const result = await this.$root.stdDialog.prompt(`<b>Предупреждение!</b> Генерация нового ключа доступа приведет к удалению всех профилей и читаемых книг в читалке.` +
|
||||||
`<br><br>Введите 'да' для подтверждения генерации нового ключа:`, ' ', {
|
`<br><br>Введите 'да' для подтверждения генерации нового ключа:`, ' ', {
|
||||||
inputValidator: (str) => { if (str && str.toLowerCase() === 'да') return true; else return 'Генерация не подтверждена'; },
|
inputValidator: (str) => { if (str && str.toLowerCase() === 'да') return true; else return 'Генерация не подтверждена'; },
|
||||||
});
|
});
|
||||||
@@ -499,7 +494,7 @@ class SettingsPage extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
keyHook(event) {
|
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();
|
this.close();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user