complete passphrase verification - add spinner

This commit is contained in:
Javier 2015-11-19 10:45:57 -03:00
commit 75707b4a93
5 changed files with 41 additions and 6 deletions

View file

@ -12,20 +12,33 @@
</span> </span>
</div> </div>
<div class="onGoingProcess" ng-show="backupPassphraseC.checkingPassphrase">
<div class="onGoingProcess-content" ng-style="{'background-color':index.backgroundColor}">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
<span translate>Verifying passphrase...</span>
</div>
</div>
<div ng-show="backupPassphraseC.mnemonicWords || (backupPassphraseC.credentialsEncrypted && !backupPassphraseC.deleted)"> <div ng-show="backupPassphraseC.mnemonicWords || (backupPassphraseC.credentialsEncrypted && !backupPassphraseC.deleted)">
<div class="row m10t m10b panel"> <div class="row m10t m10b panel">
<div class="small-centered text-gray columns size-14 text-center" translate> <div class="small-centered text-gray columns size-14 text-center" translate>
Passphrase needed Passphrase needed
</div> </div>
<div class="columns size-14 m20t"> <div class="columns size-14 m20t">
<input type="text" id="passphrase" ng-model="passphrase" autofocus/> <input type="text" id="passphrase" ng-model="passphrase" autocapitalize="off" spellcheck="false" ng-keypress="backupPassphraseC.changePassphrase()" autofocus/>
</div> </div>
</div> </div>
<div class="columns text-center m20t"> <div class="columns text-center m20t">
<button <button
ng-show="!backupPassphraseC.passphraseSuccess" ng-show="!backupPassphraseC.passphraseSuccess"
ng-disabled="!passphrase || backupPassphraseC.error" ng-disabled="!passphrase"
ng-style="{'background-color':index.backgroundColor}" ng-style="{'background-color':index.backgroundColor}"
class="button black round expand" class="button black round expand"
ng-click="backupPassphraseC.confirm()" ng-click="backupPassphraseC.confirm()"

View file

@ -22,7 +22,7 @@
</div> </div>
<div class="p10" style="background:white" ng-class="{'enable_text_select': index.network == 'testnet'}"> <div class="p10" style="background:white" ng-class="{'enable_text_select': index.network == 'testnet'}">
<span ng-repeat="word in backupWordsC.mnemonicWords track by $index"> <span ng-repeat="word in backupWordsC.mnemonicWords track by $index">
<button class="button radius tiny" style="white-space:nowrap" ng-click="backupWordsC.disableButton(word)" id="{{word}}">{{word}}</button> <button class="button radius tiny" ng-style="{'background-color':index.backgroundColor}" ng-click="backupWordsC.disableButton(word)" id="{{word}}">{{word}}</button>
</span> </span>
</div> </div>
</div> </div>

View file

@ -32,7 +32,8 @@ angular.module('copayApp.controllers').controller('backupWordsController',
} }
self.addButton = function(word) { self.addButton = function(word) {
var btnhtml = '<button class="button radius tiny" style="white-space:nowrap" ' + var btnhtml = '<button class="button radius tiny"' +
'ng-style="{\'background-color\':index.backgroundColor}"' +
'data-ng-click="backupWordsC.removeButton($event)" id="_' + word + '" > ' + word + ' </button>'; 'data-ng-click="backupWordsC.removeButton($event)" id="_' + word + '" > ' + word + ' </button>';
var temp = $compile(btnhtml)($scope); var temp = $compile(btnhtml)($scope);
angular.element(document.getElementById('addWord')).append(temp); angular.element(document.getElementById('addWord')).append(temp);

View file

@ -39,7 +39,6 @@ angular.module('copayApp.controllers').controller('backupController',
self.credentialsEncrypted = false; self.credentialsEncrypted = false;
setWords(fc.getMnemonic()); setWords(fc.getMnemonic());
// $rootScope.$emit('Local/BackupDone');
}); });
} }
} }

View file

@ -6,11 +6,19 @@ angular.module('copayApp.controllers').controller('backupPassphraseController',
var self = this; var self = this;
var fc = profileService.focusedClient; var fc = profileService.focusedClient;
self.passphraseSuccess = false; self.passphraseSuccess = false;
self.checkingPassphrase = false;
self.error = ""; self.error = "";
setWords(fc.getMnemonic()); setWords(fc.getMnemonic());
var words = fc.getMnemonic(); var words = fc.getMnemonic();
self.changePassphrase = function() {
self.passphraseSuccess = false;
$timeout(function() {
$rootScope.$apply();
}, 1);
}
function setWords(words) { function setWords(words) {
if (words) { if (words) {
self.mnemonicWords = words.split(/[\u3000\s]+/); self.mnemonicWords = words.split(/[\u3000\s]+/);
@ -20,6 +28,9 @@ angular.module('copayApp.controllers').controller('backupPassphraseController',
}; };
self.confirm = function() { self.confirm = function() {
self.checkingPassphrase = true;
self.error = "";
var walletClient = bwcService.getClient(); var walletClient = bwcService.getClient();
walletClient.importFromMnemonic(words, { walletClient.importFromMnemonic(words, {
@ -27,8 +38,19 @@ angular.module('copayApp.controllers').controller('backupPassphraseController',
passphrase: $scope.passphrase, passphrase: $scope.passphrase,
account: 0, account: 0,
}, function(err) { }, function(err) {
if (err) self.checkingPassphrase = false;
if (err) {
self.error = err.message; self.error = err.message;
$timeout(function() {
$rootScope.$apply();
}, 1);
return;
}
self.passphraseSuccess = true;
$timeout(function() {
$rootScope.$apply();
}, 1);
}); });
} }
}); });