delete words option + confirmDialog refactor

This commit is contained in:
Matias Alejo Garcia 2015-08-08 10:58:30 -03:00
commit 04c0d20525
10 changed files with 115 additions and 57 deletions

View file

@ -8,7 +8,7 @@
<div class="content p20v" ng-controller="wordsController as wordsC">
<div class="row">
<div class="m10 size-14 text-gray" translate>
<div class="m10t columns size-14 text-gray" translate>
<span translate>
In order to restore your Copay wallet you will need these 12 backup words.
</span>
@ -17,37 +17,53 @@
</span>
</div>
</div>
<div class="row m20t" ng-show="!wordsC.mywords">
<div class="columns size-14 text-gray" translate>
The backup words had been deleted from this device
</div>
</div>
<div class="row">
<div class="m10t oh" ng-init="show=false">
<a class="button outline light-gray expand tiny" ng-click="show=!show">
<i class="fi-widget m3r"></i>
<span translate ng-hide="show" ng-click="wordsC.done()">Show Backup Words</span>
<span translate ng-hide="!show">Hide Backup Words</span>
<i ng-if="!show" class="icon-arrow-down4"></i>
<i ng-if="show" class="icon-arrow-up4"></i>
<div ng-show="wordsC.mywords">
<div class="row">
<div class="m10t oh" ng-init="show=false">
<a class="button outline light-gray expand tiny" ng-click="show=!show">
<i class="fi-widget m3r"></i>
<span translate ng-hide="show" ng-click="wordsC.done()">Show Backup Words</span>
<span translate ng-hide="!show">Hide Backup Words</span>
<i ng-if="!show" class="icon-arrow-down4"></i>
<i ng-if="show" class="icon-arrow-up4"></i>
</a>
</div>
</div>
<div class="row" ng-show="show" >
<span class="m10" ng-repeat="word in wordsC.mywords">
{{word}}
</span>
<div class="m10 text-center">
<div class="m10 size-14 text-gray" translate>
<span translate>
Once you have wrote your backup words, it is recommended to delete them from this device.
</span>
</div>
<button class="button outline round dark-gray tiny" ng-click="wordsC.delete()">
<i class="fi-trash"></i>
<span translate>
DELETE WORDS
</span>
</button>
</div>
</div>
<div class="row m20t">
<div class="columns size-14 text-gray" translate>
You can safely install your backup on another device and use your wallet from multiple devices at the same time. <a href="#" ng-click="$root.openExternalLink('https://github.com/bitpay/copay#backups')">
<span translate>Learn more about Copay backups</span>
</a>
</div>
</div>
</div>
<div class="row" ng-show="show" ng-init="words = wordsC.getMnemonic()">
<span class="m10" ng-repeat="word in words">
{{word}}
</span>
<div class="m10 text-center">
<div class="m10 size-14 text-gray" translate>
<span translate>
Once you have wrote your backup words, it is recommended to delete them from Copay.
</span>
</div>
<button class="button outline round dark-gray tiny" translate>DELETE WORDS</button>
</div>
</div>
<div class="row text-center m20t" >
<button class="button outline round dark-gray tiny" ng-click="$root.openExternalLink('https://github.com/bitpay/copay#backups')">
<span class="text-gray" translate>Learn more about Copay backups</span>
</button>
</div>
</div>
<div class="extra-margin-bottom"></div>

View file

@ -1,7 +1,7 @@
<div
class="topbar-container"
ng-include="'views/includes/topbar.html'"
ng-init="titleSection='Export'; goBackToState = 'preferences'">
ng-init="titleSection='Export'; goBackToState = 'preferencesAdvanced'">
</div>
@ -35,16 +35,7 @@
</div>
<div class="m10t oh" ng-init="hideAdv=true">
<a class="button outline light-gray expand tiny" ng-click="hideAdv=!hideAdv">
<i class="fi-widget m3r"></i>
<span translate ng-hide="!hideAdv">Show Advanced options</span>
<span translate ng-hide="hideAdv">Hide Advanced options</span>
<i ng-if="hideAdv" class="icon-arrow-down4"></i>
<i ng-if="!hideAdv" class="icon-arrow-up4"></i>
</a>
</div>
<div ng-hide="hideAdv" class="row">
<div class="row">
<div class="large-12 columns">
<label for="no-sign" class="line-b oh">
<span translate>Do not include private key</span>
@ -96,11 +87,5 @@
</div>
</div>
<div class="row m10t">
<div class="columns size-14 text-gray" translate>
* You can safely install your backup on another device and use your wallet from multiple devices at the same time.
</div>
</div>
</div>
<div class="extra-margin-bottom"></div>

View file

@ -57,10 +57,11 @@
</li>
<h4 class="title m0">&nbsp;</h4>
<li class="line-b p20" ng-click="$root.go('export')">
<li class="line-b p20" ng-click="$root.go('export')" ng-hide="preferences.externalIndex >= 0">
<i class="icon-arrow-right3 size-24 right text-gray"></i>
<span translate>Export</span>
</li>
<li class="line-b p20" ng-click="$root.go('preferencesAdvanced')">
<i class="icon-arrow-right3 size-24 right text-gray"></i>
<span translate>Advanced</span>

View file

@ -16,6 +16,11 @@
<li class="line-b p20" ng-click="index.retryScan(); $root.go('walletHome'); ">
<span translate>Scan addresses for funds</span>
</li>
<li class="line-b p20" ng-click="$root.go('export')">
<i class="icon-arrow-right3 size-24 right text-gray"></i>
<span translate>Export</span>
</li>
<li class="line-b p20" ng-click="$root.go('delete')">
<i class="icon-arrow-right3 size-24 right text-gray"></i>

View file

@ -1,7 +1,11 @@
'use strict';
angular.module('copayApp.controllers').controller('wordsController',
function($rootScope, $scope, $timeout, profileService, go, gettext) {
function($rootScope, $scope, $timeout, profileService, go, gettext, confirmDialog, notification) {
var msg = gettext('Are you to delete the backup words?');
var successMsg = gettext('Backup words deleted');
this.getMnemonic = function() {
var fc = profileService.focusedClient;
var words = fc.getMnemonic();
@ -12,4 +16,19 @@ angular.module('copayApp.controllers').controller('wordsController',
this.done = function() {
$rootScope.$emit('Local/BackupDone');
};
this.delete = function() {
var fc = profileService.focusedClient;
confirmDialog.show(msg,function(ok){
if (ok) {
fc.clearMnemonic();
profileService.updateCredentialsFC(function() {
notification.success(successMsg);
go.walletHome();
});
}
});
};
this.mywords = this.getMnemonic();
});

View file

@ -773,7 +773,6 @@ angular.module('copayApp.controllers').controller('indexController', function($r
$timeout(function() {
$rootScope.$apply();
});
};
self.recreate = function(cb) {

View file

@ -1,6 +1,6 @@
'use strict';
angular.module('copayApp.controllers').controller('walletHomeController', function($scope, $rootScope, $timeout, $filter, $modal, $log, notification, txStatus, isCordova, profileService, lodash, configService, rateService, storageService, bitcore, isChromeApp, gettext, gettextCatalog, nodeWebkit, addressService, ledger, feeService, bwsError, utilService) {
angular.module('copayApp.controllers').controller('walletHomeController', function($scope, $rootScope, $timeout, $filter, $modal, $log, notification, txStatus, isCordova, profileService, lodash, configService, rateService, storageService, bitcore, isChromeApp, gettext, gettextCatalog, nodeWebkit, addressService, ledger, feeService, bwsError, confirmDialog, utilService) {
var self = this;
$rootScope.hideMenuBar = false;
@ -1138,6 +1138,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
this.setForm(null, amount, null, feeRate);
};
// TODO: showPopup alike
this.confirmDialog = function(msg, cb) {
if (isCordova) {
navigator.notification.confirm(

View file

@ -577,6 +577,7 @@ angular
preferencesBwsUrl: 12,
preferencesAlias: 12,
preferencesEmail: 12,
export: 13,
logs: 13,
information: 13,
translators: 13,

View file

@ -0,0 +1,37 @@
'use strict';
angular.module('copayApp.services').factory('confirmDialog', function($log, profileService, configService, gettextCatalog, isCordova, isChromeApp) {
var root = {};
var acceptMsg = gettextCatalog.getString('Accept');
var cancelMsg = gettextCatalog.getString('Cancel');
var confirmMsg = gettextCatalog.getString('Confirm');
root.show = function(msg, cb) {
if (isCordova) {
navigator.notification.confirm(
msg,
function(buttonIndex) {
if (buttonIndex == 1) {
$timeout(function() {
return cb(true);
}, 1);
} else {
return cb(false);
}
},
confirmMsg, [acceptMsg, cancelMsg]
);
} else if (isChromeApp) {
// No feedback, alert/confirm not supported.
return cb(true);
} else {
return cb(confirm(msg));
}
};
return root;
});

View file

@ -174,14 +174,8 @@ angular.module('copayApp.services')
var walletClient = bwcService.getClient();
// TODO LANG...
// TODO...
log.warn("TODO LANG!")
walletClient.seedFromRandomWithMnemonic('livenet');
console.log('[profileService.js.200:walletClient:]',walletClient); //TODO
console.log('[profileService.js.180]'); //TODO
console.log('[profileService.js.180]'); //TODO
console.log('[profileService.js.180]'); //TODO
console.log('[profileService.js.180]'); //TODO
console.log('[profileService.js.180]'); //TODO
walletClient.createWallet('Personal Wallet', 'me', 1, 1, {
network: 'livenet'
@ -213,8 +207,8 @@ console.log('[profileService.js.180]'); //TODO
}
// TODO LANG...
// TODO...
log.warn("TODO LANG!")
walletClient.seedFromRandomWithMnemonic(opts.networkName);
console.log('[profileService.js.200:walletClient:]',walletClient); //TODO
walletClient.createWallet(opts.name, opts.myName || 'me', opts.m, opts.n, {
network: opts.networkName