This action will remove the transaction.
diff --git a/public/views/modals/wallets.html b/public/views/modals/wallets.html
index fb33340e6..00a58ec1e 100644
--- a/public/views/modals/wallets.html
+++ b/public/views/modals/wallets.html
@@ -11,8 +11,11 @@
-
-
+
+
+
+ {{error}}
+
@@ -124,7 +124,7 @@
diff --git a/src/js/controllers/buyCoinbase.js b/src/js/controllers/buyCoinbase.js
index 48115b4d7..da1d93533 100644
--- a/src/js/controllers/buyCoinbase.js
+++ b/src/js/controllers/buyCoinbase.js
@@ -5,7 +5,7 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController',
var self = this;
this.init = function(testnet) {
- self.allWallets = profileService.getWallets(testnet ? 'testnet' : 'livenet', 1)
+ self.allWallets = profileService.getWallets(testnet ? 'testnet' : 'livenet');
var client = profileService.focusedClient;
if (client) {
@@ -45,8 +45,6 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController',
$scope.openWalletsModal = function(wallets) {
self.error = null;
- self.selectedWalletId = null;
- self.selectedWalletName = null;
$scope.type = 'BUY';
$scope.wallets = wallets;
@@ -60,6 +58,16 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController',
$scope.walletsModal = modal;
$scope.walletsModal.show();
});
+
+ $scope.$on('walletSelected', function(ev, walletId) {
+ $timeout(function() {
+ var client = profileService.getClient(walletId);
+ self.selectedWalletId = walletId;
+ self.selectedWalletName = client.credentials.walletName;
+ $scope.$apply();
+ }, 100);
+ $scope.walletsModal.hide();
+ });
};
this.buyRequest = function(token, account) {
diff --git a/src/js/controllers/buyGlidera.js b/src/js/controllers/buyGlidera.js
index 9a365ee28..fdced865f 100644
--- a/src/js/controllers/buyGlidera.js
+++ b/src/js/controllers/buyGlidera.js
@@ -9,7 +9,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController',
this.success = null;
this.init = function(testnet) {
- self.allWallets = profileService.getWallets(testnet ? 'testnet' : 'livenet', 1)
+ self.allWallets = profileService.getWallets(testnet ? 'testnet' : 'livenet');
var client = profileService.focusedClient;
if (client) {
@@ -23,8 +23,6 @@ angular.module('copayApp.controllers').controller('buyGlideraController',
$scope.openWalletsModal = function(wallets) {
self.error = null;
- self.selectedWalletId = null;
- self.selectedWalletName = null;
$scope.type = 'BUY';
$scope.wallets = wallets;
@@ -38,6 +36,16 @@ angular.module('copayApp.controllers').controller('buyGlideraController',
$scope.walletsModal = modal;
$scope.walletsModal.show();
});
+
+ $scope.$on('walletSelected', function(ev, walletId) {
+ $timeout(function() {
+ var client = profileService.getClient(walletId);
+ self.selectedWalletId = walletId;
+ self.selectedWalletName = client.credentials.walletName;
+ $scope.$apply();
+ }, 100);
+ $scope.walletsModal.hide();
+ });
};
this.getBuyPrice = function(token, price) {
diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js
index 87b4dc3de..806e55855 100644
--- a/src/js/controllers/index.js
+++ b/src/js/controllers/index.js
@@ -1060,9 +1060,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r
getToken(function(err, accessToken) {
if (err || !accessToken) return;
else {
- ongoingProcess.set('connectingGlidera', true);
glideraService.getAccessTokenPermissions(accessToken, function(err, p) {
- ongoingProcess.set('connectingGlidera', false);
if (err) {
self.glideraError = err;
} else {
@@ -1093,24 +1091,18 @@ angular.module('copayApp.controllers').controller('indexController', function($r
});
if (permissions.transaction_history) {
- ongoingProcess.set('Fetching Glidera Transactions', true);
glideraService.getTransactions(accessToken, function(err, data) {
- ongoingProcess.set('Fetching Glidera Transactions', false);
self.glideraTxs = data;
});
}
if (permissions.view_email_address && opts.fullUpdate) {
- ongoingProcess.set('connectingGlidera', true);
glideraService.getEmail(accessToken, function(err, data) {
- ongoingProcess.set('connectingGlidera', false);
self.glideraEmail = data.email;
});
}
if (permissions.personal_info && opts.fullUpdate) {
- ongoingProcess.set('connectingGlidera', true);
glideraService.getPersonalInfo(accessToken, function(err, data) {
- ongoingProcess.set('connectingGlidera', false);
self.glideraPersonalInfo = data;
});
}
@@ -1145,9 +1137,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r
getToken(function(err, accessToken) {
if (err || !accessToken) return;
else {
- ongoingProcess.set('Getting primary account...', true);
coinbaseService.getAccounts(accessToken, function(err, a) {
- ongoingProcess.set('Getting primary account...', false);
if (err) {
self.coinbaseError = err;
if (err.errors[0] && err.errors[0].id == 'expired_token') {
diff --git a/src/js/controllers/modals/coinbaseTxDetails.js b/src/js/controllers/modals/coinbaseTxDetails.js
index 37385cbb6..feebfd47d 100644
--- a/src/js/controllers/modals/coinbaseTxDetails.js
+++ b/src/js/controllers/modals/coinbaseTxDetails.js
@@ -1,6 +1,6 @@
'use strict';
-angular.module('copayApp.controllers').controller('coinbaseTxDetailsController', function($scope, coinbaseService) {
+angular.module('copayApp.controllers').controller('coinbaseTxDetailsController', function($scope, $rootScope, coinbaseService) {
$scope.remove = function() {
coinbaseService.savePendingTransaction($scope.tx, {
diff --git a/src/js/controllers/modals/wallets.js b/src/js/controllers/modals/wallets.js
index 8c47bc6cd..0a0128f47 100644
--- a/src/js/controllers/modals/wallets.js
+++ b/src/js/controllers/modals/wallets.js
@@ -2,25 +2,19 @@
angular.module('copayApp.controllers').controller('walletsController', function($scope, bwsError, profileService) {
- var self = $scope.self;
+ $scope.selectWallet = function(walletId) {
- $scope.selectWallet = function(walletId, walletName) {
- if (!profileService.getClient(walletId).isComplete()) {
- self.error = bwsError.msg({
- 'code': 'WALLET_NOT_COMPLETE'
- }, 'Could not choose the wallet');
- self.error = {
- errors: [{
- message: 'The Wallet could not be selected'
- }]
- };
- $scope.cancel();
- return;
- }
- self.selectedWalletId = walletId;
- self.selectedWalletName = walletName;
- self.fc = profileService.getClient(self.selectedWalletId);
- $scope.cancel();
+ var client = profileService.getClient(walletId);
+ $scope.errorSelectedWallet = {};
+
+ profileService.isReady(client, function(err) {
+ if (err) {
+ $scope.errorSelectedWallet[walletId] = bwsError.msg(err);
+ return;
+ }
+
+ $scope.$emit('walletSelected', walletId);
+ });
};
$scope.cancel = function() {
diff --git a/src/js/controllers/sellCoinbase.js b/src/js/controllers/sellCoinbase.js
index a9023c620..e6247e665 100644
--- a/src/js/controllers/sellCoinbase.js
+++ b/src/js/controllers/sellCoinbase.js
@@ -1,7 +1,7 @@
'use strict';
angular.module('copayApp.controllers').controller('sellCoinbaseController',
- function($rootScope, $scope, $modal, $log, $timeout, $ionicModal, lodash, profileService, coinbaseService, bwsError, configService, walletService, fingerprintService, ongoingProcess) {
+ function($rootScope, $scope, $modal, $log, $timeout, $ionicModal, lodash, profileService, coinbaseService, bwsError, configService, walletService, fingerprintService, ongoingProcess, go) {
var self = this;
var client;
@@ -42,7 +42,7 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController',
self.allWallets = profileService.getWallets(testnet ? 'testnet' : 'livenet', 1);
client = profileService.focusedClient;
- if (client) {
+ if (client && client.credentials.m == 1) {
$timeout(function() {
self.selectedWalletId = client.credentials.walletId;
self.selectedWalletName = client.credentials.walletName;
@@ -79,8 +79,6 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController',
$scope.openWalletsModal = function(wallets) {
self.error = null;
- self.selectedWalletId = null;
- self.selectedWalletName = null;
$scope.type = 'SELL';
$scope.wallets = wallets;
@@ -94,6 +92,16 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController',
$scope.walletsModal = modal;
$scope.walletsModal.show();
});
+
+ $scope.$on('walletSelected', function(ev, walletId) {
+ $timeout(function() {
+ client = profileService.getClient(walletId);
+ self.selectedWalletId = walletId;
+ self.selectedWalletName = client.credentials.walletName;
+ $scope.$apply();
+ }, 100);
+ $scope.walletsModal.hide();
+ });
};
this.depositFunds = function(token, account) {
@@ -205,6 +213,7 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController',
$scope.$emit('Local/NeedsConfirmation', createdTxp, function(accept) {
if (accept) {
self.confirmTx(createdTxp, function(err, tx) {
+ ongoingProcess.clear();
if (err) {
self.error = {
errors: [{
@@ -221,14 +230,14 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController',
}
lodash.each(ctxs.data, function(ctx) {
if (ctx.type == 'send' && ctx.from) {
+ ongoingProcess.clear();
if (ctx.status == 'completed') {
self.sellRequest(token, account, ctx);
} else {
// Save to localstorage
- ongoingProcess.clear();
ctx['price_sensitivity'] = $scope.selectedPriceSensitivity;
- ctx['sell_price_amount'] = self.sellPrice.amount;
- ctx['sell_price_currency'] = self.sellPrice.currency;
+ ctx['sell_price_amount'] = self.sellPrice ? self.sellPrice.amount : '';
+ ctx['sell_price_currency'] = self.sellPrice ? self.sellPrice.currency : 'USD';
ctx['description'] = 'Copay Wallet: ' + client.credentials.walletName;
coinbaseService.savePendingTransaction(ctx, null, function(err) {
if (err) $log.debug(err);
@@ -243,6 +252,8 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController',
});
});
});
+ } else {
+ go.path('coinbase');
}
});
});
@@ -292,8 +303,8 @@ angular.module('copayApp.controllers').controller('sellCoinbaseController',
}
walletService.broadcastTx(client, signedTxp, function(err, broadcastedTxp) {
- ongoingProcess.set('Sending Bitcoin to Coinbase...', false);
if (err) {
+ ongoingProcess.set('Sending Bitcoin to Coinbase...', false);
$log.debug(err);
walletService.removeTx(client, broadcastedTxp, function(err) {
if (err) $log.debug(err);
diff --git a/src/js/controllers/sellGlidera.js b/src/js/controllers/sellGlidera.js
index 8e203a18f..795cd047c 100644
--- a/src/js/controllers/sellGlidera.js
+++ b/src/js/controllers/sellGlidera.js
@@ -1,7 +1,7 @@
'use strict';
angular.module('copayApp.controllers').controller('sellGlideraController',
- function($rootScope, $scope, $timeout, $ionicModal, $log, $modal, configService, profileService, addressService, feeService, glideraService, bwsError, lodash, walletService, fingerprintService, ongoingProcess) {
+ function($rootScope, $scope, $timeout, $ionicModal, $log, $modal, configService, profileService, addressService, feeService, glideraService, bwsError, lodash, walletService, fingerprintService, ongoingProcess, go) {
var self = this;
var config = configService.getSync();
@@ -20,10 +20,10 @@ angular.module('copayApp.controllers').controller('sellGlideraController',
};
this.init = function(testnet) {
- self.allWallets = profileService.getWallets(testnet ? 'testnet' : 'livenet', 1)
+ self.allWallets = profileService.getWallets(testnet ? 'testnet' : 'livenet', 1);
client = profileService.focusedClient;
- if (client) {
+ if (client && client.credentials.m == 1) {
$timeout(function() {
self.selectedWalletId = client.credentials.walletId;
self.selectedWalletName = client.credentials.walletName;
@@ -32,12 +32,10 @@ angular.module('copayApp.controllers').controller('sellGlideraController',
}
};
-
+
$scope.openWalletsModal = function(wallets) {
self.error = null;
- self.selectedWalletId = null;
- self.selectedWalletName = null;
$scope.type = 'SELL';
$scope.wallets = wallets;
@@ -51,6 +49,16 @@ angular.module('copayApp.controllers').controller('sellGlideraController',
$scope.walletsModal = modal;
$scope.walletsModal.show();
});
+
+ $scope.$on('walletSelected', function(ev, walletId) {
+ $timeout(function() {
+ client = profileService.getClient(walletId);
+ self.selectedWalletId = walletId;
+ self.selectedWalletName = client.credentials.walletName;
+ $scope.$apply();
+ }, 100);
+ $scope.walletsModal.hide();
+ });
};
this.getSellPrice = function(token, price) {
@@ -196,6 +204,8 @@ angular.module('copayApp.controllers').controller('sellGlideraController',
});
});
});
+ } else {
+ go.path('glidera');
}
});
});
diff --git a/src/js/services/onGoingProcess.js b/src/js/services/onGoingProcess.js
index d7fe002ba..9a9ed7547 100644
--- a/src/js/services/onGoingProcess.js
+++ b/src/js/services/onGoingProcess.js
@@ -32,6 +32,11 @@ angular.module('copayApp.services').factory('ongoingProcess', function($log, $ti
root.clear = function() {
ongoingProcess = {};
+ if (isCordova) {
+ window.plugins.spinnerDialog.hide();
+ } else {
+ $ionicLoading.hide();
+ }
};
root.get = function(processName) {
@@ -58,7 +63,7 @@ angular.module('copayApp.services').factory('ongoingProcess', function($log, $ti
if (isCordova) {
window.plugins.spinnerDialog.show(null, showName, true);
} else {
-
+
var tmpl = '' + showName;
$ionicLoading.show({
template: tmpl