Bitpay Card: uses common widget for selecting wallet. Minor fixes

This commit is contained in:
Gustavo Maximiliano Cortez 2016-08-29 17:01:34 -03:00
commit 6e1b7ec620
No known key found for this signature in database
GPG key ID: 15EDAD8D9F2EB1AF
6 changed files with 61 additions and 90 deletions

View file

@ -9,6 +9,15 @@ angular.module('copayApp.controllers').controller('bitpayCardController', functi
StatusBar.backgroundColorByHexString("#293C92");
}
$scope.$on('Wallet/Changed', function(event, w) {
if (lodash.isEmpty(w)) {
$log.debug('No wallet provided');
return;
}
wallet = w;
$log.debug('Wallet changed: ' + w.name);
});
var processTransactions = function(invoices, history) {
for (var i = 0; i < invoices.length; i++) {
var matched = false;
@ -63,7 +72,6 @@ angular.module('copayApp.controllers').controller('bitpayCardController', functi
bitpayCardService.isAuthenticated(function(err, bpSession) {
self.loadingSession = false;
if (err) {
self.error = err.data.error || 'Incorrect email or password';
return;
}
@ -79,7 +87,7 @@ angular.module('copayApp.controllers').controller('bitpayCardController', functi
bitpayCardService.transactionHistory(dateRange, function(err, history) {
$scope.loadingHistory = false;
if (err) {
self.error = err.error || err;
self.error = 'Error getting transactions';
return;
}
@ -98,60 +106,24 @@ angular.module('copayApp.controllers').controller('bitpayCardController', functi
$scope.dateRange = 'last30Days';
$scope.network = bitpayCardService.getEnvironment();
self.allWallets = profileService.getWallets({
$scope.wallets = profileService.getWallets({
network: $scope.network,
n: 1,
onlyComplete: true
});
self.update();
if (lodash.isEmpty(self.allWallets)) return;
wallet = $scope.wallets[0];
wallet = self.allWallets[0];
if (wallet.credentials.n > 1)
if (wallet && wallet.credentials.n > 1)
self.isMultisigWallet = true;
$timeout(function() {
self.selectedWalletId = wallet.credentials.walletId;
self.selectedWalletName = wallet.credentials.walletName;
$scope.$apply();
}, 100);
};
$scope.openWalletsModal = function(wallets) {
self.error = null;
$scope.wallets = wallets;
$scope.noColor = true;
$scope.self = self;
$ionicModal.fromTemplateUrl('views/modals/wallets.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function(modal) {
$scope.walletsModal = modal;
$scope.walletsModal.show();
});
$scope.$on('walletSelected', function(ev, walletId) {
$timeout(function() {
wallet = profileService.getClient(walletId);
self.isMultisigWallet = false;
self.selectedWalletId = walletId;
self.selectedWalletName = wallet.credentials.walletName;
if (wallet.credentials.n > 1)
self.isMultisigWallet = true;
$scope.$apply();
}, 100);
$scope.walletsModal.hide();
});
};
this.sendFunds = function() {
self.error = null;
if (lodash.isEmpty(wallet)) return;
if (!wallet.canSign() && !wallet.isPrivKeyExternal()) {
$log.info('No signing proposal: No private key');
self.error = bwcError.msg('MISSING_PRIVATE_KEY');
@ -297,8 +269,8 @@ angular.module('copayApp.controllers').controller('bitpayCardController', functi
self.authenticating = true;
bitpayCardService.authenticate(data, function(err, auth) {
self.authenticating = false;
if (err && !err.data.error.twoFactorPending) {
self.error = 'Authentiation error';
if (err && err.data && err.data.error && !err.data.error.twoFactorPending) {
self.error = err.statusText || err.data.error || 'Authentiation error';
return;
}