send max button - show wallet selector
This commit is contained in:
parent
3e80d90c62
commit
f4b29d9298
4 changed files with 57 additions and 6 deletions
|
|
@ -1,7 +1,6 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('copayApp.controllers').controller('amountController', function($rootScope, $scope, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, txFormatService, ongoingProcess, bitpayCardService, popupService, bwcError, payproService, amazonService, profileService) {
|
angular.module('copayApp.controllers').controller('amountController', function($rootScope, $scope, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, txFormatService, ongoingProcess, bitpayCardService, popupService, bwcError, payproService, amazonService, profileService, bitcore, walletService, feeService) {
|
||||||
|
|
||||||
var unitToSatoshi;
|
var unitToSatoshi;
|
||||||
var satToUnit;
|
var satToUnit;
|
||||||
var unitDecimals;
|
var unitDecimals;
|
||||||
|
|
@ -15,7 +14,6 @@ angular.module('copayApp.controllers').controller('amountController', function($
|
||||||
});
|
});
|
||||||
|
|
||||||
$scope.$on("$ionicView.beforeEnter", function(event, data) {
|
$scope.$on("$ionicView.beforeEnter", function(event, data) {
|
||||||
|
|
||||||
$scope.isGiftCard = data.stateParams.isGiftCard;
|
$scope.isGiftCard = data.stateParams.isGiftCard;
|
||||||
$scope.isWallet = data.stateParams.isWallet;
|
$scope.isWallet = data.stateParams.isWallet;
|
||||||
$scope.cardId = data.stateParams.cardId;
|
$scope.cardId = data.stateParams.cardId;
|
||||||
|
|
@ -24,6 +22,10 @@ angular.module('copayApp.controllers').controller('amountController', function($
|
||||||
$scope.toEmail = data.stateParams.toEmail;
|
$scope.toEmail = data.stateParams.toEmail;
|
||||||
$scope.showAlternativeAmount = !!$scope.cardId || !!$scope.isGiftCard;
|
$scope.showAlternativeAmount = !!$scope.cardId || !!$scope.isGiftCard;
|
||||||
$scope.toColor = data.stateParams.toColor;
|
$scope.toColor = data.stateParams.toColor;
|
||||||
|
var network = (new bitcore.Address($scope.toAddress)).network.name;
|
||||||
|
$scope.wallets = profileService.getWallets({
|
||||||
|
network: network
|
||||||
|
});
|
||||||
|
|
||||||
$scope.customAmount = data.stateParams.customAmount;
|
$scope.customAmount = data.stateParams.customAmount;
|
||||||
|
|
||||||
|
|
@ -80,6 +82,40 @@ angular.module('copayApp.controllers').controller('amountController', function($
|
||||||
}, 10);
|
}, 10);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$scope.getSendMaxInfo = function(wallet) {
|
||||||
|
feeService.getCurrentFeeValue(function(err, fee) {
|
||||||
|
if (err) {
|
||||||
|
popupService.showAlert(gettextCatalog.getString('Error'), err.message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log(fee);
|
||||||
|
var config = configService.getSync();
|
||||||
|
|
||||||
|
ongoingProcess.set('retrivingInputs', true);
|
||||||
|
walletService.getSendMaxInfo(wallet, {
|
||||||
|
feePerKb: feePerKb,
|
||||||
|
excludeUnconfirmedUtxos: !config.wallet.spendUnconfirmed,
|
||||||
|
returnInputs: true,
|
||||||
|
}, function(err, resp) {
|
||||||
|
ongoingProcess.set('retrivingInputs', false);
|
||||||
|
if (err) {
|
||||||
|
popupService.showAlert(gettextCatalog.getString('Error'), err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(err, resp);
|
||||||
|
if (resp.amount == 0) {
|
||||||
|
popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Not enough funds for fee'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.showWalletSelector = function() {
|
||||||
|
$scope.showWallets = true;
|
||||||
|
};
|
||||||
|
|
||||||
$scope.toggleAlternative = function() {
|
$scope.toggleAlternative = function() {
|
||||||
$scope.showAlternativeAmount = !$scope.showAlternativeAmount;
|
$scope.showAlternativeAmount = !$scope.showAlternativeAmount;
|
||||||
|
|
||||||
|
|
@ -124,7 +160,6 @@ angular.module('copayApp.controllers').controller('amountController', function($
|
||||||
|
|
||||||
function isExpression(val) {
|
function isExpression(val) {
|
||||||
var regex = /^\.?\d+(\.?\d+)?([\/\-\+\*x]\d?\.?\d+)+$/;
|
var regex = /^\.?\d+(\.?\d+)?([\/\-\+\*x]\d?\.?\d+)+$/;
|
||||||
|
|
||||||
return regex.test(val);
|
return regex.test(val);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -137,7 +172,6 @@ angular.module('copayApp.controllers').controller('amountController', function($
|
||||||
$scope.resetAmount = function() {
|
$scope.resetAmount = function() {
|
||||||
$scope.amount = $scope.alternativeResult = $scope.amountResult = $scope.globalResult = '';
|
$scope.amount = $scope.alternativeResult = $scope.amountResult = $scope.globalResult = '';
|
||||||
$scope.allowSend = false;
|
$scope.allowSend = false;
|
||||||
|
|
||||||
checkFontSize();
|
checkFontSize();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -251,7 +285,7 @@ angular.module('copayApp.controllers').controller('amountController', function($
|
||||||
onlyComplete: true,
|
onlyComplete: true,
|
||||||
network: 'livenet',
|
network: 'livenet',
|
||||||
})[0].id;
|
})[0].id;
|
||||||
} catch(err) {
|
} catch (err) {
|
||||||
ongoingProcess.set('Preparing transaction...', false);
|
ongoingProcess.set('Preparing transaction...', false);
|
||||||
popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('No wallet found!'));
|
popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('No wallet found!'));
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -1083,6 +1083,13 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
|
||||||
return type;
|
return type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
root.getSendMaxInfo = function(wallet, opts, cb) {
|
||||||
|
opts = opts || {};
|
||||||
|
wallet.getSendMaxInfo(opts, function(err, res) {
|
||||||
|
if (err) return cb(err);
|
||||||
|
return cb(null, res);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return root;
|
return root;
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,10 @@
|
||||||
color: $dark-gray;
|
color: $dark-gray;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
.send-max {
|
||||||
|
float: right;
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.amount {
|
.amount {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
||||||
|
|
@ -93,4 +93,10 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
<wallet-selector
|
||||||
|
wallet-selector-wallets="wallets"
|
||||||
|
wallet-selector-selected-wallet="wallet"
|
||||||
|
wallet-selector-show="showWallets"
|
||||||
|
wallet-selector-on-select="getSendMaxInfo">
|
||||||
|
</wallet-selector>
|
||||||
</ion-view>
|
</ion-view>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue