Добавлена проверка выхода новой версии читалки и уведомление об этом,
заодно попутный рефакторинг
This commit is contained in:
@@ -133,6 +133,9 @@ import ReaderDialogs from './ReaderDialogs/ReaderDialogs.vue';
|
||||
import bookManager from './share/bookManager';
|
||||
import rstore from '../../store/modules/reader';
|
||||
import readerApi from '../../api/reader';
|
||||
import miscApi from '../../api/misc';
|
||||
|
||||
import {versionHistory} from './versionHistory';
|
||||
import * as utils from '../../share/utils';
|
||||
|
||||
export default @Component({
|
||||
@@ -229,7 +232,6 @@ class Reader extends Vue {
|
||||
this.rstore = rstore;
|
||||
this.loading = true;
|
||||
this.commit = this.$store.commit;
|
||||
this.dispatch = this.$store.dispatch;
|
||||
this.reader = this.$store.state.reader;
|
||||
this.config = this.$store.state.config;
|
||||
|
||||
@@ -292,6 +294,32 @@ class Reader extends Vue {
|
||||
this.updateRoute();
|
||||
|
||||
await this.$refs.dialogs.init();
|
||||
|
||||
await utils.sleep(15*1000); //подождем 15 секунд, чтобы прогрузился ServiceWorker при выходе новой версии
|
||||
this.isFirstNeedUpdateNotify = true;
|
||||
//вечный цикл, запрашиваем периодически конфиг для проверки выхода новой версии читалки
|
||||
while (true) {// eslint-disable-line no-constant-condition
|
||||
if (this.showNeedUpdateNotify) {
|
||||
try {
|
||||
const config = await miscApi.loadConfig();
|
||||
this.commit('config/setConfig', config);
|
||||
|
||||
let againMes = '';
|
||||
if (this.isFirstNeedUpdateNotify) {
|
||||
againMes = ' ЕЩЕ один раз';
|
||||
}
|
||||
|
||||
if (this.version != this.clientVersion)
|
||||
this.$root.notify.info(`Вышла новая версия (v${this.version}) читалки.<br>Пожалуйста, обновите страницу${againMes}.`, 'Обновление');
|
||||
} catch(e) {
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
await utils.sleep(3600*1000); //каждый час
|
||||
this.isFirstNeedUpdateNotify = false;
|
||||
}
|
||||
//дальше кода нет
|
||||
})();
|
||||
}
|
||||
|
||||
@@ -304,6 +332,7 @@ class Reader extends Vue {
|
||||
this.blinkCachedLoad = settings.blinkCachedLoad;
|
||||
this.showToolButton = settings.showToolButton;
|
||||
this.enableSitesFilter = settings.enableSitesFilter;
|
||||
this.showNeedUpdateNotify = settings.showNeedUpdateNotify;
|
||||
|
||||
this.readerActionByKeyCode = utils.userHotKeysObjectSwap(settings.userHotKeys);
|
||||
this.$root.readerActionByKeyEvent = (event) => {
|
||||
@@ -394,6 +423,16 @@ class Reader extends Vue {
|
||||
return this.$store.state.config.mode;
|
||||
}
|
||||
|
||||
get version() {
|
||||
return this.$store.state.config.version;
|
||||
}
|
||||
|
||||
get clientVersion() {
|
||||
let v = versionHistory[0].header;
|
||||
v = v.split(' ')[0];
|
||||
return v;
|
||||
}
|
||||
|
||||
get routeParamUrl() {
|
||||
let result = '';
|
||||
const path = this.$route.fullPath;
|
||||
|
||||
@@ -36,7 +36,18 @@
|
||||
Показывать уведомление "Что нового"
|
||||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||||
Показывать уведомления "Что нового"<br>
|
||||
при каждом выходе новой версии читалки
|
||||
при появлении новой версии читалки
|
||||
</q-tooltip>
|
||||
</q-checkbox>
|
||||
</div>
|
||||
|
||||
<div class="item row">
|
||||
<div class="label-6">Уведомление</div>
|
||||
<q-checkbox size="xs" v-model="showNeedUpdateNotify">
|
||||
Показывать уведомление о новой версии
|
||||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||||
Напоминать о необходимости обновления страницы<br>
|
||||
при появлении новой версии читалки
|
||||
</q-tooltip>
|
||||
</q-checkbox>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user