Небольшие доработки
This commit is contained in:
@@ -134,7 +134,13 @@ class ServerStorage extends Vue {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
const setsId = `settings-${this.currentProfile}`;
|
const setsId = `settings-${this.currentProfile}`;
|
||||||
let sets = await this.storageGet({[setsId]: {}});
|
let sets = null;
|
||||||
|
try {
|
||||||
|
sets = await this.storageGet({[setsId]: {}});
|
||||||
|
} catch(e) {
|
||||||
|
this.error(`Ошибка соединения с сервером: ${e.message}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (sets.state == 'success') {
|
if (sets.state == 'success') {
|
||||||
const oldRev = this.settingsRev[setsId] || 0;
|
const oldRev = this.settingsRev[setsId] || 0;
|
||||||
@@ -143,7 +149,7 @@ class ServerStorage extends Vue {
|
|||||||
if (sets.rev == 0)
|
if (sets.rev == 0)
|
||||||
sets.data = {};
|
sets.data = {};
|
||||||
|
|
||||||
this.oldSettings = sets.data;
|
this.oldSettings = _.cloneDeep(sets.data);
|
||||||
this.commit('reader/setSettings', sets.data);
|
this.commit('reader/setSettings', sets.data);
|
||||||
this.commit('reader/setSettingsRev', {[setsId]: sets.rev});
|
this.commit('reader/setSettingsRev', {[setsId]: sets.rev});
|
||||||
|
|
||||||
@@ -168,7 +174,13 @@ class ServerStorage extends Vue {
|
|||||||
let tries = 0;
|
let tries = 0;
|
||||||
while (result.state != 'success' && tries < maxSetTries) {
|
while (result.state != 'success' && tries < maxSetTries) {
|
||||||
const oldRev = this.settingsRev[setsId] || 0;
|
const oldRev = this.settingsRev[setsId] || 0;
|
||||||
result = await this.storageSet({[setsId]: {rev: oldRev + 1, data: this.settings}});
|
try {
|
||||||
|
result = await this.storageSet({[setsId]: {rev: oldRev + 1, data: this.settings}});
|
||||||
|
} catch(e) {
|
||||||
|
this.savingSettings = false;
|
||||||
|
this.error(`Ошибка соединения с сервером (${e.message}). Данные не сохранены и могут быть перезаписаны.`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (result.state == 'reject') {
|
if (result.state == 'reject') {
|
||||||
await this.loadSettings();
|
await this.loadSettings();
|
||||||
@@ -180,10 +192,11 @@ class ServerStorage extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (tries >= maxSetTries) {
|
if (tries >= maxSetTries) {
|
||||||
this.commit('reader/setSettings', this.oldSettings);
|
//отменять изменения не будем, просто предупредим
|
||||||
this.error('Не удалось отправить данные на сервер');
|
//this.commit('reader/setSettings', this.oldSettings);
|
||||||
|
this.error('Не удалось отправить настройки на сервер. Данные не сохранены и могут быть перезаписаны.');
|
||||||
} else {
|
} else {
|
||||||
this.oldSettings = this.settings;
|
this.oldSettings = _.cloneDeep(this.settings);
|
||||||
this.commit('reader/setSettingsRev', {[setsId]: this.settingsRev[setsId] + 1});
|
this.commit('reader/setSettingsRev', {[setsId]: this.settingsRev[setsId] + 1});
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
@@ -195,7 +208,13 @@ class ServerStorage extends Vue {
|
|||||||
if (!this.serverSyncEnabled)
|
if (!this.serverSyncEnabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let prof = await this.storageGet({'profiles': {}});
|
let prof = null;
|
||||||
|
try {
|
||||||
|
prof = await this.storageGet({'profiles': {}});
|
||||||
|
} catch(e) {
|
||||||
|
this.error(`Ошибка соединения с сервером: ${e.message}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (prof.state == 'success') {
|
if (prof.state == 'success') {
|
||||||
const oldRev = this.profilesRev;
|
const oldRev = this.profilesRev;
|
||||||
@@ -204,7 +223,7 @@ class ServerStorage extends Vue {
|
|||||||
if (prof.rev == 0)
|
if (prof.rev == 0)
|
||||||
prof.data = {};
|
prof.data = {};
|
||||||
|
|
||||||
this.oldProfiles = prof.data;
|
this.oldProfiles = _.cloneDeep(prof.data);
|
||||||
this.commit('reader/setProfiles', prof.data);
|
this.commit('reader/setProfiles', prof.data);
|
||||||
this.commit('reader/setProfilesRev', prof.rev);
|
this.commit('reader/setProfilesRev', prof.rev);
|
||||||
|
|
||||||
@@ -227,7 +246,15 @@ class ServerStorage extends Vue {
|
|||||||
let result = {state: ''};
|
let result = {state: ''};
|
||||||
let tries = 0;
|
let tries = 0;
|
||||||
while (result.state != 'success' && tries < maxSetTries) {
|
while (result.state != 'success' && tries < maxSetTries) {
|
||||||
result = await this.storageSet({'profiles': {rev: this.profilesRev + 1, data: this.profiles}});
|
try {
|
||||||
|
result = await this.storageSet({'profiles': {rev: this.profilesRev + 1, data: this.profiles}});
|
||||||
|
} catch(e) {
|
||||||
|
this.savingProfiles = false;
|
||||||
|
this.commit('reader/setProfiles', this.oldProfiles);
|
||||||
|
this.checkCurrentProfile();
|
||||||
|
this.error(`Ошибка соединения с сервером: (${e.message}). Изменения отменены.`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (result.state == 'reject') {
|
if (result.state == 'reject') {
|
||||||
await this.loadProfiles();
|
await this.loadProfiles();
|
||||||
@@ -241,9 +268,9 @@ class ServerStorage extends Vue {
|
|||||||
if (tries >= maxSetTries) {
|
if (tries >= maxSetTries) {
|
||||||
this.commit('reader/setProfiles', this.oldProfiles);
|
this.commit('reader/setProfiles', this.oldProfiles);
|
||||||
this.checkCurrentProfile();
|
this.checkCurrentProfile();
|
||||||
this.error('Не удалось отправить данные на сервер');
|
this.error('Не удалось отправить данные на сервер. Изменения отменены.');
|
||||||
} else {
|
} else {
|
||||||
this.oldProfiles = this.profiles;
|
this.oldProfiles = _.cloneDeep(this.profiles);
|
||||||
this.commit('reader/setProfilesRev', this.profilesRev + 1);
|
this.commit('reader/setProfilesRev', this.profilesRev + 1);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user