From 2eadaae36216f4ae4fb0c09e22559af94146f341 Mon Sep 17 00:00:00 2001 From: Javier Abadia Date: Thu, 30 Jan 2014 16:40:47 +0100 Subject: [PATCH] better feedback for replayStoredEdits() --- lib/edit/offlineFeaturesManager.js | 9 +++--- samples/military-offline.html | 48 ++++++++++++++++++++++-------- 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/lib/edit/offlineFeaturesManager.js b/lib/edit/offlineFeaturesManager.js index e25344b..9458203 100644 --- a/lib/edit/offlineFeaturesManager.js +++ b/lib/edit/offlineFeaturesManager.js @@ -98,11 +98,11 @@ define([ this._online = false; }, - goOnline: function() + goOnline: function(callback) { console.log('going online'); this._online = true; - this.replayStoredEdits(); + this.replayStoredEdits(callback); //this.refresh(); }, @@ -111,7 +111,7 @@ define([ return this._online; }, - replayStoredEdits: function() + replayStoredEdits: function(callback) { if( editsStore.hasPendingEdits() ) { @@ -168,7 +168,7 @@ define([ { console.log(err); } - self.replayStoredEdits(); + self.replayStoredEdits(callback); }, function(err) { @@ -183,6 +183,7 @@ define([ { console.log("'finished!"); this.emit('all-edits-sent',{}); + callback && callback(); } }, // replayStoredEdits() diff --git a/samples/military-offline.html b/samples/military-offline.html index d5b90f1..943a4aa 100644 --- a/samples/military-offline.html +++ b/samples/military-offline.html @@ -42,9 +42,10 @@ padding: 4px; } - #connectivityIndicator { color: white; background-color: #aaa; } - #connectivityIndicator.online { background-color: #0C0; } - #connectivityIndicator.offline { background-color: #E00; } + #connectivityIndicator { color: white; background-color: #aaa; } + #connectivityIndicator.online { background-color: #0C0; } + #connectivityIndicator.offline { background-color: #E00; } + #connectivityIndicator.reconnecting { background-color: orange; } #pendingEdits { border: 1px solid black; @@ -102,7 +103,7 @@ "dojo/i18n!esri/nls/jsapi", "dojo/_base/array", "dojo/parser", "dojo/keys", - "dojo/dom", "dojo/on", "dojo/dom-construct", "dojo/dom-class", + "dojo/dom", "dojo/on", "dojo/dom-construct", "dojo/dom-class", "esri/domUtils", "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dojo/domReady!" @@ -114,8 +115,10 @@ Editor, TemplatePicker, esriConfig, jsapiBundle, arrayUtils, parser, keys, - dom, on, domConstruct, domClass + dom, on, domConstruct, domClass, domUtils ) { + var editor; + parser.parse(); dojo.fadeOut({node:'loader-cloak', onEnd: function(n){n.style.display="none"}}).play(); @@ -174,9 +177,6 @@ }); updatePendingEditsList(); - - // jabadia: only if we have internet available - offlineFeaturesManager.replayStoredEdits(); } catch(err) { @@ -215,7 +215,7 @@ } }; - var editor = new Editor({ settings: settings }, 'editorDiv'); + editor = new Editor({ settings: settings }, 'editorDiv'); editor.startup(); console.log("ok!"); @@ -224,6 +224,19 @@ { console.log(err); } + + try { + // jabadia: only if we have internet available + domUtils.show(editor.progressBar.domNode); + offlineFeaturesManager.replayStoredEdits(function() + { + domUtils.hide(editor.progressBar.domNode); + }); + } + catch(err) + { + console.log(err); + } } function updateStatus() @@ -275,8 +288,17 @@ function goOnline() { - offlineFeaturesManager.goOnline(); - updateConnectivityIndicator(); + var node = dom.byId('connectivityIndicator'); + domClass.remove(node, "online offline reconnecting"); + node.innerHTML = " reconnecting"; + domClass.add(node, "reconnecting"); + + domUtils.show(editor.progressBar.domNode); + offlineFeaturesManager.goOnline(function() + { + domUtils.hide(editor.progressBar.domNode); + updateConnectivityIndicator(); + }); } function goOffline() @@ -289,7 +311,7 @@ { var node = dom.byId('connectivityIndicator'); - domClass.remove(node, "online offline"); + domClass.remove(node, "online offline reconnecting"); if( offlineFeaturesManager.isOnline() ) { @@ -329,7 +351,7 @@
- +