diff --git a/src/js/app-controller.js b/src/js/app-controller.js index c0ad086..0497b35 100644 --- a/src/js/app-controller.js +++ b/src/js/app-controller.js @@ -70,9 +70,10 @@ define(function(require) { 'interactive': true }, function(token) { - if (!token) { + if ((chrome && chrome.runtime && chrome.runtime.lastError) || !token) { callback({ - errMsg: 'Error fetching an OAuth token for the user!' + errMsg: 'Error fetching an OAuth token for the user!', + err: chrome.runtime.lastError }); return; } diff --git a/src/js/controller/login.js b/src/js/controller/login.js index 483e35c..84ffa06 100644 --- a/src/js/controller/login.js +++ b/src/js/controller/login.js @@ -4,9 +4,21 @@ define(function(require) { var appController = require('js/app-controller'); var LoginCtrl = function($scope, $location) { + // global state... inherited to all child scopes + $scope.$root.state = {}; + + $scope.$root.onError = function(options) { + console.error(options); + $scope.state.dialog = { + open: true, + title: options.title || 'Error', + message: options.message || options.errMsg + }; + }; + appController.start(function(err) { if (err) { - console.error(err); + $scope.onError(err); return; } @@ -27,22 +39,22 @@ define(function(require) { // get OAuth token from chrome appController.fetchOAuthToken(function(err, auth) { if (err) { - console.error(err); + $scope.onError(err); return; } // initiate controller by creating email dao appController.init(auth.emailAddress, auth.token, function(err, availableKeys) { if (err) { - console.error(err); + $scope.onError(err); return; } // login to imap backend appController._emailDao.imapLogin(function(err) { if (err) { - console.error(err); - console.log('Error logging into IMAP... proceeding in offline mode.'); + $scope.onError(err); + return; } redirect(availableKeys); diff --git a/src/tpl/login.html b/src/tpl/login.html index 579ba7e..2035d5e 100644 --- a/src/tpl/login.html +++ b/src/tpl/login.html @@ -6,8 +6,13 @@

Login

-

Authenticating with the mail server...

- \ No newline at end of file + + + + + \ No newline at end of file