mail/src/js/controller/login/login-initial.js

81 lines
2.0 KiB
JavaScript
Raw Normal View History

2014-10-02 16:05:44 -04:00
'use strict';
2013-10-21 07:10:42 -04:00
2015-02-20 11:55:11 -05:00
var LoginInitialCtrl = function($scope, $location, $routeParams, $q, newsletter, email, auth, publickeyVerifier) {
!$routeParams.dev && !auth.isInitialized() && $location.path('/'); // init app
2013-10-21 07:10:42 -04:00
var emailAddress = auth.emailAddress;
var termsMsg = 'You must accept the Terms of Service to continue.',
states = {
IDLE: 1,
PROCESSING: 2,
DONE: 3
};
2013-10-23 11:17:36 -04:00
2014-10-02 16:05:44 -04:00
$scope.state.ui = states.IDLE; // initial state
//
// scope functions
//
/**
* Continue to key import screen
*/
$scope.importKey = function() {
if (!$scope.agree) {
displayError(new Error(termsMsg));
2014-10-02 16:05:44 -04:00
return;
}
$scope.errMsg = undefined;
2014-10-02 16:05:44 -04:00
// sing up to newsletter
newsletter.signup(emailAddress, $scope.newsletter);
2014-10-02 16:05:44 -04:00
// go to key import
$location.path('/login-new-device');
};
2014-10-02 16:05:44 -04:00
/**
* Continue to keygen
*/
$scope.generateKey = function() {
if (!$scope.agree) {
displayError(new Error(termsMsg));
2014-10-02 16:05:44 -04:00
return;
}
2014-10-02 16:05:44 -04:00
// sing up to newsletter
newsletter.signup(emailAddress, $scope.newsletter);
2014-10-02 16:05:44 -04:00
// go to set keygen screen
$scope.setState(states.PROCESSING);
return $q(function(resolve) {
$scope.errMsg = undefined;
resolve();
}).then(function() {
// generate key without passphrase
return email.unlock({
2015-01-20 06:55:19 -05:00
realname: auth.realname,
passphrase: undefined
2014-10-02 16:05:44 -04:00
});
2015-02-20 11:55:11 -05:00
}).then(function(keypair) {
// remember keypair for storing after public key verification
2015-02-20 11:55:11 -05:00
publickeyVerifier.keypair = keypair;
$location.path('/login-privatekey-upload');
}).catch(displayError);
2014-10-02 16:05:44 -04:00
};
$scope.setState = function(state) {
$scope.state.ui = state;
2013-10-21 07:10:42 -04:00
};
function displayError(err) {
$scope.setState(states.IDLE);
$scope.errMsg = err.errMsg || err.message;
}
2014-10-02 16:05:44 -04:00
};
2013-10-21 07:10:42 -04:00
2014-10-08 06:34:34 -04:00
module.exports = LoginInitialCtrl;