diff --git a/js/id/connection.js b/js/id/connection.js index e83ecbf4b..254b7d523 100644 --- a/js/id/connection.js +++ b/js/id/connection.js @@ -1,15 +1,14 @@ -iD.Connection = function(context, options) { +iD.Connection = function(options) { - var event = d3.dispatch('auth', 'loading', 'load', 'loaded'), + var event = d3.dispatch('authenticating', 'authenticated', 'auth', 'loading', 'load', 'loaded'), url = options.url || 'http://www.openstreetmap.org', connection = {}, user = {}, inflight = {}, loadedTiles = {}, - loadingModal, oauth = osmAuth(_.extend({ - loading: authLoading, - done: authDone + loading: authenticating, + done: authenticated }, options)), ndStr = 'nd', tagStr = 'tag', @@ -38,16 +37,12 @@ iD.Connection = function(context, options) { return d3.xml(url).get().on('load', done); }; - function authLoading() { - loadingModal = iD.ui.Loading(context) - .message(t('loading_auth')); - - context.container() - .call(loadingModal); + function authenticating() { + event.authenticating(); } - function authDone() { - if (loadingModal) loadingModal.close(); + function authenticated() { + event.authenticated(); } function getNodes(obj) { @@ -321,8 +316,8 @@ iD.Connection = function(context, options) { connection.switch = function(options) { url = options.url; oauth.options(_.extend({ - loading: authLoading, - done: authDone + loading: authenticating, + done: authenticated }, options)); event.auth(); connection.flush(); diff --git a/js/id/id.js b/js/id/id.js index ca855f199..18c92c78d 100644 --- a/js/id/id.js +++ b/js/id/id.js @@ -23,7 +23,7 @@ window.iD = function () { container, ui = iD.ui(context), map = iD.Map(context), - connection = iD.Connection(context, iD.data.keys[0]); + connection = iD.Connection(iD.data.keys[0]); connection.on('load.context', function loadContext(err, result) { history.merge(result); diff --git a/js/id/ui.js b/js/id/ui.js index 99555ed99..8e53cfb68 100644 --- a/js/id/ui.js +++ b/js/id/ui.js @@ -145,6 +145,17 @@ iD.ui = function(context) { .call(iD.ui.Splash(context)) .call(iD.ui.Restore(context)); + var authenticating = iD.ui.Loading(context) + .message(t('loading_auth')); + + context.connection() + .on('authenticating.ui', function() { + context.container() + .call(authenticating); + }) + .on('authenticated.ui', function() { + authenticating.close(); + }); }; }; diff --git a/test/spec/connection.js b/test/spec/connection.js index 2b7346fa3..541ba1783 100644 --- a/test/spec/connection.js +++ b/test/spec/connection.js @@ -1,9 +1,8 @@ describe('iD.Connection', function () { - var c, context; + var c; beforeEach(function () { - context = iD(); - c = new iD.Connection(context, {}); + c = new iD.Connection({}); }); it('is instantiated', function () {