Fix: modal choose wallet. Sell in Coinbase and Glidera. Spinner
This commit is contained in:
parent
6d9bc56144
commit
f08f30240a
13 changed files with 123 additions and 81 deletions
|
|
@ -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,15 @@ angular.module('copayApp.controllers').controller('buyCoinbaseController',
|
|||
$scope.walletsModal = modal;
|
||||
$scope.walletsModal.show();
|
||||
});
|
||||
|
||||
$scope.$on('walletSelected', function(ev, obj) {
|
||||
$timeout(function() {
|
||||
self.selectedWalletId = obj.walletId;
|
||||
self.selectedWalletName = obj.walletName;
|
||||
$scope.$apply();
|
||||
}, 100);
|
||||
$scope.walletsModal.hide();
|
||||
});
|
||||
};
|
||||
|
||||
this.buyRequest = function(token, account) {
|
||||
|
|
|
|||
|
|
@ -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,15 @@ angular.module('copayApp.controllers').controller('buyGlideraController',
|
|||
$scope.walletsModal = modal;
|
||||
$scope.walletsModal.show();
|
||||
});
|
||||
|
||||
$scope.$on('walletSelected', function(ev, obj) {
|
||||
$timeout(function() {
|
||||
self.selectedWalletId = obj.walletId;
|
||||
self.selectedWalletName = obj.walletName;
|
||||
$scope.$apply();
|
||||
}, 100);
|
||||
$scope.walletsModal.hide();
|
||||
});
|
||||
};
|
||||
|
||||
this.getBuyPrice = function(token, price) {
|
||||
|
|
|
|||
|
|
@ -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') {
|
||||
|
|
|
|||
|
|
@ -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, {
|
||||
|
|
|
|||
|
|
@ -2,25 +2,24 @@
|
|||
|
||||
angular.module('copayApp.controllers').controller('walletsController', function($scope, bwsError, profileService) {
|
||||
|
||||
var self = $scope.self;
|
||||
|
||||
$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;
|
||||
}
|
||||
|
||||
var obj = {
|
||||
'walletId': walletId,
|
||||
'walletName': walletName,
|
||||
'client': profileService.getClient(walletId)
|
||||
}
|
||||
$scope.$emit('walletSelected', obj);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.cancel = function() {
|
||||
|
|
|
|||
|
|
@ -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, obj) {
|
||||
$timeout(function() {
|
||||
self.selectedWalletId = obj.walletId;
|
||||
self.selectedWalletName = obj.walletName;
|
||||
client = obj.client;
|
||||
$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);
|
||||
|
|
|
|||
|
|
@ -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, obj) {
|
||||
$timeout(function() {
|
||||
self.selectedWalletId = obj.walletId;
|
||||
self.selectedWalletName = obj.walletName;
|
||||
client = obj.client;
|
||||
$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');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
|||
$rootScope.$emit('Local/SetTab', 'send');
|
||||
|
||||
var form = $scope.sendForm;
|
||||
if (form.address.$invalid && !ongoingProcess.get('fetchingPayPro')) {
|
||||
if (form.address.$invalid && !ongoingProcess.isProcessing) {
|
||||
self.resetForm();
|
||||
self.error = gettext('Could not recognize a valid Bitcoin QR Code');
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue