Forráskód Böngészése

Поправки багов

Book Pauk 5 éve
szülő
commit
3088028d05

+ 21 - 21
client/components/Reader/ServerStorage/ServerStorage.vue

@@ -361,7 +361,7 @@ class ServerStorage extends Vue {
         }
         }
     }
     }
 
 
-    async loadRecent(doNotifySuccess = true) {
+    async loadRecent(skipRevCheck = false, doNotifySuccess = true) {
         if (!this.keyInited || !this.serverSyncEnabled)
         if (!this.keyInited || !this.serverSyncEnabled)
             return;
             return;
 
 
@@ -369,27 +369,24 @@ class ServerStorage extends Vue {
         const oldRecentDeltaRev = bookManager.recentDeltaRev;
         const oldRecentDeltaRev = bookManager.recentDeltaRev;
         //проверим ревизию на сервере
         //проверим ревизию на сервере
         let revs = null;
         let revs = null;
-        try {
-            revs = await this.storageCheck({recent: {}, recentDelta: {}});
-            if (revs.state == 'success' && revs.items.recent.rev == oldRecentRev &&
-                revs.items.recentDelta.rev == oldRecentDeltaRev) {
-                if (!this.recentDeltaInited)
-                    await this.initRecentDelta();
+        if (!skipRevCheck) {
+            try {
+                revs = await this.storageCheck({recent: {}, recentDelta: {}});
+                if (revs.state == 'success' && revs.items.recent.rev == oldRecentRev &&
+                    revs.items.recentDelta.rev == oldRecentDeltaRev) {
+                    if (!this.recentDeltaInited)
+                        await this.initRecentDelta();
+                    return;
+                }
+            } catch(e) {
+                this.error(`Ошибка соединения с сервером: ${e.message}`);
                 return;
                 return;
             }
             }
-        } catch(e) {
-            this.error(`Ошибка соединения с сервером: ${e.message}`);
-            return;
         }
         }
 
 
         let recent = null;
         let recent = null;
         try {
         try {
-            if (revs.items.recent.rev != oldRecentRev) {
-                recent = await this.storageGet({recent: {}, recentDelta: {}});
-            } else {
-                recent = await this.storageGet({recentDelta: {}});
-                recent.items.recent = {data: _.cloneDeep(bookManager.recent), rev: oldRecentRev};
-            }
+            recent = await this.storageGet({recent: {}, recentDelta: {}});
         } catch(e) {
         } catch(e) {
             this.error(`Ошибка соединения с сервером: ${e.message}`);
             this.error(`Ошибка соединения с сервером: ${e.message}`);
             return;
             return;
@@ -458,7 +455,7 @@ class ServerStorage extends Vue {
         this.prevItemKey = itemKey;
         this.prevItemKey = itemKey;
 
 
         //дифф от дельты для уменьшения размера передаваемых данных в частном случае
         //дифф от дельты для уменьшения размера передаваемых данных в частном случае
-        /*if (this.makeDeltaDiff) {
+        if (this.makeDeltaDiff) {
             this.recentDelta.diff = utils.getObjDiff(this.prevSavedItem, bm.recent[itemKey]);
             this.recentDelta.diff = utils.getObjDiff(this.prevSavedItem, bm.recent[itemKey]);
             this.recentDelta.diff.key = itemKey;
             this.recentDelta.diff.key = itemKey;
             delete this.recentDelta[itemKey];
             delete this.recentDelta[itemKey];
@@ -470,8 +467,7 @@ class ServerStorage extends Vue {
                 this.recentDelta[key] = utils.applyObjDiff(this.prevSavedItem, this.recentDelta.diff);
                 this.recentDelta[key] = utils.applyObjDiff(this.prevSavedItem, this.recentDelta.diff);
             }
             }
             delete this.recentDelta.diff;
             delete this.recentDelta.diff;
-        }*/
-delete this.recentDelta.diff;
+        }
 
 
         //сохранение
         //сохранение
         this.savingRecent = true;        
         this.savingRecent = true;        
@@ -486,7 +482,9 @@ delete this.recentDelta.diff;
                 }
                 }
 
 
                 if (result.state == 'reject') {
                 if (result.state == 'reject') {
-                    await this.loadRecent(false);
+
+                    await this.loadRecent(true, false);
+
                     this.warning(`Последние изменения отменены. Данные синхронизированы с сервером.`);
                     this.warning(`Последние изменения отменены. Данные синхронизированы с сервером.`);
                     if (!recurse) {
                     if (!recurse) {
                         this.savingRecent = false;
                         this.savingRecent = false;
@@ -512,7 +510,9 @@ delete this.recentDelta.diff;
                 }
                 }
 
 
                 if (result.state == 'reject') {
                 if (result.state == 'reject') {
-                    await this.loadRecent(false);
+
+                    await this.loadRecent(true, false);
+
                     this.warning(`Последние изменения отменены. Данные синхронизированы с сервером.`);
                     this.warning(`Последние изменения отменены. Данные синхронизированы с сервером.`);
                     if (!recurse) {
                     if (!recurse) {
                         this.savingRecent = false;
                         this.savingRecent = false;