Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2019-07-09 11:55:46 +0300
committerJulius Härtl <jus@bitgrid.net>2019-07-10 17:11:40 +0300
commite9e09b82b908690991cd9c60e4baedd8833c83f5 (patch)
tree281ef8ea4a2a03624c7f9a1f5638c54b36e25498 /src/services
parenteb155ec1e94f33574d990fb33459b91bce311e18 (diff)
Reconnect after session has timed out
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'src/services')
-rw-r--r--src/services/PollingBackend.js11
-rw-r--r--src/services/SyncService.js6
2 files changed, 16 insertions, 1 deletions
diff --git a/src/services/PollingBackend.js b/src/services/PollingBackend.js
index b650516f0..a41d1353f 100644
--- a/src/services/PollingBackend.js
+++ b/src/services/PollingBackend.js
@@ -145,6 +145,8 @@ class PollingBackend {
this._authority.emit('error', ERROR_TYPE.SAVE_COLLISSION, {
outsideChange: e.response.data.outsideChange
})
+ } else if (e.response.status === 403) {
+ this._authority.emit('error', ERROR_TYPE.CONNECTION_FAILED, {})
} else {
console.error('Failed to fetch steps due to other reason', e)
}
@@ -179,6 +181,15 @@ class PollingBackend {
}).catch((e) => {
console.error('failed to apply steps due to collission, retrying')
this.lock = false
+ if (!e.response) {
+ throw e
+ }
+ // Only emit conflict event if we have synced until the latest version
+ if (e.response.status === 403 && e.response.data.document.currentVersion === this._authority.document.currentVersion) {
+ this._authority.emit('error', ERROR_TYPE.PUSH_FAILURE, {})
+ OC.Notification.showTemporary('Changes could not be sent yet')
+ }
+
this.fetchSteps()
this.carefulRetry()
})
diff --git a/src/services/SyncService.js b/src/services/SyncService.js
index 306ffc5f8..2d7a95829 100644
--- a/src/services/SyncService.js
+++ b/src/services/SyncService.js
@@ -42,7 +42,11 @@ const ERROR_TYPE = {
*/
PUSH_FAILURE: 1,
- LOAD_ERROR: 2
+ LOAD_ERROR: 2,
+
+ CONNECTION_FAILED: 3,
+
+ SOURCE_NOT_FOUND: 4
}
class SyncService {