From 8e0dfacd5133d4b1a80ac9e2fcf9db8b1b8af4a0 Mon Sep 17 00:00:00 2001 From: Felix Hammerl Date: Tue, 19 May 2015 16:21:52 +0200 Subject: [PATCH] [WO-891] Add logout to passphrase dialog --- src/js/app-config.js | 4 +++- src/js/controller/login/login-existing.js | 16 +++++++++++++++- src/js/email/email.js | 6 ++++-- src/tpl/login-existing.html | 2 +- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/js/app-config.js b/src/js/app-config.js index 0df91b4..287124d 100644 --- a/src/js/app-config.js +++ b/src/js/app-config.js @@ -109,5 +109,7 @@ appCfg.string = { connDocNoInbox: 'We could not detect an IMAP inbox folder on {0}. Please have a look at the FAQ for information on how to fix this error.', connDocGenericError: 'There was an error connecting to {0}: {1}', logoutTitle: 'Logout', - logoutMessage: 'Are you sure you want to log out? Please back up your encryption key before proceeding!' + logoutMessage: 'Are you sure you want to log out? Please back up your encryption key before proceeding!', + removePreAuthAccountTitle: 'Remove account', + removePreAuthAccountMessage: 'Are you sure you want to remove this account from this device?' }; diff --git a/src/js/controller/login/login-existing.js b/src/js/controller/login/login-existing.js index 125db26..5191080 100644 --- a/src/js/controller/login/login-existing.js +++ b/src/js/controller/login/login-existing.js @@ -1,8 +1,10 @@ 'use strict'; -var LoginExistingCtrl = function($scope, $location, $routeParams, $q, email, auth, keychain) { +var LoginExistingCtrl = function($scope, $location, $routeParams, $q, email, auth, keychain, account, dialog, appConfig) { !$routeParams.dev && !auth.isInitialized() && $location.path('/'); // init app + var str = appConfig.string; + $scope.confirmPassphrase = function() { if ($scope.form.$invalid) { $scope.errMsg = 'Please fill out all required fields!'; @@ -38,6 +40,18 @@ var LoginExistingCtrl = function($scope, $location, $routeParams, $q, email, aut }).catch(displayError); }; + $scope.logout = function() { + return dialog.confirm({ + title: str.removePreAuthAccountTitle, + message: str.removePreAuthAccountMessage, + callback: function(confirm) { + if (confirm) { + account.logout().catch(dialog.error); + } + } + }); + }; + function displayError(err) { $scope.busy = false; $scope.incorrect = true; diff --git a/src/js/email/email.js b/src/js/email/email.js index d5c7043..e43525e 100644 --- a/src/js/email/email.js +++ b/src/js/email/email.js @@ -938,8 +938,10 @@ Email.prototype.onConnect = function(imap) { Email.prototype.onDisconnect = function() { // logout of imap-client // ignore error, because it's not problem if logout fails - this._imapClient.stopListeningForChanges(function() {}); - this._imapClient.logout(function() {}); + if (this._imapClient) { + this._imapClient.stopListeningForChanges(function() {}); + this._imapClient.logout(function() {}); + } // discard clients this._account.online = false; diff --git a/src/tpl/login-existing.html b/src/tpl/login-existing.html index cb8e642..2471293 100644 --- a/src/tpl/login-existing.html +++ b/src/tpl/login-existing.html @@ -25,7 +25,7 @@

- Forgot your passphrase? + Forgot the passphrase? Remove account from device.