diff --git a/public/views/backup.html b/public/views/backup.html index f3d85f9a8..25a2c3ce5 100644 --- a/public/views/backup.html +++ b/public/views/backup.html @@ -8,7 +8,6 @@

-
{{wordsC.error|translate}} @@ -17,7 +16,7 @@ -
+
@@ -33,11 +32,11 @@ To restore this {{index.m}}-{{index.n}} shared wallet you will need : -
    -
  1. Your wallet seed and access to the server that coordinated the initial wallet creation. You still need {{index.m}} keys to spend.
  2. -
  3. OR the wallet seed of all copayers in the wallet
  4. -
  5. OR 1 wallet export file and the remaining quorum of wallet seeds (e.g. in a 3-5 wallet: 1 wallet export file + 2 wallet seeds of any of the other copayers).
  6. -
+
    +
  1. Your wallet seed and access to the server that coordinated the initial wallet creation. You still need {{index.m}} keys to spend.
  2. +
  3. OR the wallet seed of all copayers in the wallet
  4. +
  5. OR 1 wallet export file and the remaining quorum of wallet seeds (e.g. in a 3-5 wallet: 1 wallet export file + 2 wallet seeds of any of the other copayers).
  6. +
@@ -46,22 +45,22 @@ To restore this {{index.m}}-{{index.n}} shared wallet you will need : -
    -
  1. Your wallet seed and access to the server that coordinated the initial wallet creation. You still need {{index.m}} keys to spend.
  2. -
  3. OR the wallet seeds of all copayers in the wallet
  4. -
+
    +
  1. Your wallet seed and access to the server that coordinated the initial wallet creation. You still need {{index.m}} keys to spend.
  2. +
  3. OR the wallet seeds of all copayers in the wallet
  4. +
- -
+ +
Wallet seed not available. You can still export it from Advanced > Export.
-
+
diff --git a/src/js/controllers/backup.js b/src/js/controllers/backup.js index f99f1a946..25a92733c 100644 --- a/src/js/controllers/backup.js +++ b/src/js/controllers/backup.js @@ -5,27 +5,38 @@ angular.module('copayApp.controllers').controller('wordsController', var msg = gettext('Are you sure you want to delete the backup words?'); var successMsg = gettext('Backup words deleted'); - this.show = false; - var self = this; + self.show = false; + var fc = profileService.focusedClient; - this.toggle = function() { - this.show = !this.show; + if (fc.isPrivKeyEncrypted()) self.credentialsEncrypted = true; + else { + setWords(fc.getMnemonic()); + $rootScope.$emit('Local/BackupDone'); + } + if (fc.credentials && !fc.credentials.mnemonicEncrypted && !fc.credentials.mnemonic) { + self.deleted = true; + } - if (this.show) - $rootScope.$emit('Local/BackupDone'); + self.toggle = function() { + self.error = ""; + if (!self.credentialsEncrypted) + self.show = !self.show; - $timeout(function(){ + if (self.credentialsEncrypted) + self.passwordRequest(); + + $timeout(function() { $scope.$apply(); }, 1); }; - this.delete = function() { - var fc = profileService.focusedClient; + self.delete = function() { confirmDialog.show(msg, function(ok) { if (ok) { fc.clearMnemonic(); profileService.updateCredentialsFC(function() { + self.deleted = true; notification.success(successMsg); go.walletHome(); }); @@ -33,12 +44,10 @@ angular.module('copayApp.controllers').controller('wordsController', }); }; - $scope.$on('$destroy', function() { profileService.lockFC(); }); - function setWords(words) { if (words) { self.mnemonicWords = words.split(/[\u3000\s]+/); @@ -47,26 +56,30 @@ angular.module('copayApp.controllers').controller('wordsController', } }; - var fc = profileService.focusedClient; - try { - setWords(fc.getMnemonic()); - } catch (e) { - if (e.message && e.message.match(/encrypted/) && fc.isPrivKeyEncrypted()) { - self.credentialsEncrypted = true; + self.passwordRequest = function() { + try { + setWords(fc.getMnemonic()); + } catch (e) { + if (e.message && e.message.match(/encrypted/) && fc.isPrivKeyEncrypted()) { + self.credentialsEncrypted = true; - $timeout(function(){ - $scope.$apply(); - }, 1); + $timeout(function() { + $scope.$apply(); + }, 1); - profileService.unlockFC(function(err) { - if (err) { - self.error = bwsError.msg(err, gettext('Could not decrypt')); - $log.warn('Error decrypting credentials:',self.error); //TODO - return; - } - self.credentialsEncrypted = false; - setWords(fc.getMnemonic()); - }); - } + profileService.unlockFC(function(err) { + if (err) { + self.error = bwsError.msg(err, gettext('Could not decrypt')); + $log.warn('Error decrypting credentials:', self.error); //TODO + return; + } + if (!self.show && self.credentialsEncrypted) + self.show = !self.show; + self.credentialsEncrypted = false; + setWords(fc.getMnemonic()); + $rootScope.$emit('Local/BackupDone'); + }); + } + } } - }); + }); \ No newline at end of file