Поправки багов
This commit is contained in:
@@ -310,14 +310,24 @@ class Reader extends Vue {
|
||||
}
|
||||
|
||||
if (eventName == 'recent-changed' || eventName == 'save-recent') {
|
||||
if (this.historyActive) {
|
||||
this.$refs.historyPage.updateTableData();
|
||||
}
|
||||
|
||||
(async() => {
|
||||
const oldBook = this.mostRecentBookReactive;
|
||||
const newBook = bookManager.mostRecentBook();
|
||||
|
||||
if (oldBook && newBook) {
|
||||
if (oldBook.key != newBook.key) {
|
||||
await this.loadBook(newBook);
|
||||
this.loadingBook = true;
|
||||
try {
|
||||
await this.loadBook(newBook);
|
||||
} finally {
|
||||
this.loadingBook = false;
|
||||
}
|
||||
} else if (oldBook.bookPos != newBook.bookPos) {
|
||||
while (this.loadingBook) await utils.sleep(100);
|
||||
this.bookPosChanged({bookPos: newBook.bookPos});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ class ServerStorage extends Vue {
|
||||
await this.currentProfileChanged();
|
||||
await this.loadRecent();
|
||||
this.oldRecent = _.cloneDeep(bookManager.recent);
|
||||
this.oldRecentLast = _.cloneDeep(bookManager.recentLast);
|
||||
this.oldRecentLast = _.cloneDeep(bookManager.recentLast) || {};
|
||||
} finally {
|
||||
this.inited = true;
|
||||
}
|
||||
@@ -71,7 +71,7 @@ class ServerStorage extends Vue {
|
||||
async generateNewServerStorageKey() {
|
||||
const key = utils.toBase58(utils.randomArray(32));
|
||||
this.commit('reader/setServerStorageKey', key);
|
||||
await this.serverStorageKeyChanged();
|
||||
await this.serverStorageKeyChanged(true);
|
||||
}
|
||||
|
||||
async serverSyncEnabledChanged() {
|
||||
@@ -89,6 +89,8 @@ class ServerStorage extends Vue {
|
||||
await this.loadProfiles(force);
|
||||
this.checkCurrentProfile();
|
||||
await this.loadRecent();
|
||||
if (force)
|
||||
await this.saveRecent();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -462,6 +464,7 @@ class ServerStorage extends Vue {
|
||||
const bm = bookManager;
|
||||
let recentLast = bm.recentLast;
|
||||
recentLast = (recentLast ? recentLast : {});
|
||||
let lastRev = bm.recentLastRev;
|
||||
|
||||
const diff = utils.getObjDiff(this.oldRecentLast, recentLast);
|
||||
if (utils.isEmptyObjDiff(diff))
|
||||
@@ -472,8 +475,19 @@ class ServerStorage extends Vue {
|
||||
let result = {state: ''};
|
||||
let tries = 0;
|
||||
while (result.state != 'success' && tries < maxSetTries) {
|
||||
if (force) {
|
||||
try {
|
||||
const revs = await this.storageCheck({recentLast: {}});
|
||||
if (revs.items.recentLast.rev)
|
||||
lastRev = revs.items.recentLast.rev;
|
||||
} catch(e) {
|
||||
this.error(`Ошибка соединения с сервером: ${e.message}`);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
result = await this.storageSet({recentLast: {rev: bm.recentLastRev + 1, data: recentLast}}, force);
|
||||
result = await this.storageSet({recentLast: {rev: lastRev + 1, data: recentLast}}, force);
|
||||
} catch(e) {
|
||||
this.savingRecentLast = false;
|
||||
this.error(`Ошибка соединения с сервером: (${e.message}). Изменения не сохранены.`);
|
||||
@@ -494,7 +508,7 @@ class ServerStorage extends Vue {
|
||||
this.error('Не удалось отправить данные на сервер. Данные не сохранены и могут быть перезаписаны.');
|
||||
} else {
|
||||
this.oldRecentLast = _.cloneDeep(recentLast);
|
||||
await bm.setRecentLastRev(bm.recentLastRev + 1);
|
||||
await bm.setRecentLastRev(lastRev + 1);
|
||||
}
|
||||
} finally {
|
||||
this.savingRecentLast = false;
|
||||
|
||||
Reference in New Issue
Block a user