Skip to content
This repository has been archived by the owner on Sep 2, 2023. It is now read-only.

[FIX] handle change to async validators (RT-3204) #2465

Merged
merged 1 commit into from
Apr 29, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 20 additions & 5 deletions src/js/tabs/send.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ SendTab.prototype.angular = function (module)
passwordUpdater,
passwordUpdaterDestr;

var pathUpdateTimeout;
var timer;
var xrpCurrency = Currency.from_json('XRP');

Expand Down Expand Up @@ -109,8 +110,24 @@ SendTab.prototype.angular = function (module)
// When the send form is invalid, path finding won't trigger. So if the form
// is changed by one of the update_* handlers and becomes valid during the
// next digest, we need to manually trigger another update_amount.
$scope.$watch('sendForm.$valid', function () {
$scope.update_amount();
$scope.$watch('sendForm.$valid', function(v) {
if (v) {
$scope.update_amount();
} else {
$scope.send.last_recipient = null;
$scope.send.path_status = 'waiting';
$scope.send.fund_status = 'none';

if ($scope.send.pathfind) {
$scope.send.pathfind.close();
delete $scope.send.pathfind;
}
if (pathUpdateTimeout) {
$timeout.cancel(pathUpdateTimeout);
pathUpdateTimeout = null;
}
$scope.reset_paths();
}
});

// Reset everything that depends on the destination
Expand Down Expand Up @@ -531,8 +548,6 @@ SendTab.prototype.angular = function (module)
$scope.update_amount();
};

var pathUpdateTimeout;

$scope.reset_amount_deps = function () {
var send = $scope.send;
send.sender_insufficient_xrp = false;
Expand Down Expand Up @@ -719,7 +734,7 @@ SendTab.prototype.angular = function (module)
send.alternatives = [];
};

$scope.update_paths = function () {
$scope.update_paths = function() {
var send = $scope.send;
var recipient = send.recipient_actual || send.recipient_address;
var amount = send.amount_actual || send.amount_feedback;
Expand Down
2 changes: 1 addition & 1 deletion src/templates/tabs/account/public.jade
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ h4(l10n) Account settings
.row
.col-xs-12.col-sm-6
button.btn.btn-success.btn-block(type="submit"
ng-disabled="renameForm.$invalid || loading")
ng-disabled="renameForm.$invalid || loading || renameForm.$pending")
span(ng-hide="loading", l10n) Submit
span(ng-show="loading", l10n) Loading...
.col-xs-12.col-sm-6
Expand Down
2 changes: 1 addition & 1 deletion src/templates/tabs/contacts.jade
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ section.col-xs-12.content(ng-controller="ContactsCtrl")
.error(ng-message='rpUnique', l10n) You already have a contact with the same Ripple name and/or the same Destination tag.
.row
.col-xs-8.col-sm-8.col-md-9.text-left
button.btn.btn-success.btn-block.submit.custom-btn(type='submit', ng-disabled='addForm.$invalid', l10n) Add contact
button.btn.btn-success.btn-block.submit.custom-btn(type='submit', ng-disabled='addForm.$invalid || addForm.$pending', l10n) Add contact
.col-xs-4.col-sm-4.col-md-3.text-center
button.btn.btn-default.btn-block.custom-btn.btn-cancel(type='button', ng-click='addform_visible = false', l10n) cancel

Expand Down
2 changes: 1 addition & 1 deletion src/templates/tabs/debug.jade
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@ section.col-xs-12.content(ng-controller='DebugPretendCtrl')
.error(ng-message='rpDest', l10n) Not a valid address.
.row.row-padding-small.amount
.col-xs-12.col-sm-9.col-md-6
button.btn.btn-block.btn-success(type="submit", ng-disabled='debugPretendForm.$invalid', l10n)
button.btn.btn-block.btn-success(type="submit", ng-disabled='debugPretendForm.$invalid || debugPretendForm.$pending', l10n)
| Turn on debug mode

4 changes: 2 additions & 2 deletions src/templates/tabs/send.jade
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ section.col-xs-12.content(ng-controller='SendCtrl')
.row
.col-xs-12.col-sm-6.col-md-4(ng-show="send.currency_code == 'XRP'")
button#sendXrpButton.btn.btn-block.btn-success.submit(type='submit'
ng-disabled='sendForm.$invalid || send.self || send.insufficient || !send.recipient_resolved || account.max_spend.to_number() < send.amount * 1000000', l10n)
ng-disabled='sendForm.$invalid || sendForm.$pending || send.self || send.insufficient || !send.recipient_resolved || account.max_spend.to_number() < send.amount * 1000000', l10n)
| Send XRP
.remote
//- Messages
Expand Down Expand Up @@ -240,7 +240,7 @@ section.col-xs-12.content(ng-controller='SendCtrl')
span.pair {{alt.amount | rpcurrency}}/{{send.currency_code}}
| )
button.btn.btn-block.btn-success(type="submit"
ng-disabled='sendForm.$invalid', ng-click="send.alt = alt", l10n)
ng-disabled='sendForm.$invalid || sendForm.$pending', ng-click="send.alt = alt", l10n)
| Send {{ alt.amount | rpcurrency }}
span(ng-hide="alt.amount.is_native() || alt.amount.issuer().to_json() == account.Account") (
span.issuer(
Expand Down
2 changes: 1 addition & 1 deletion src/templates/tabs/trade.jade
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ section.col-xs-12.content(ng-controller="TradeCtrl")
.col-sm-4.col-lg-2.col-xs-6#cancel_button
button.btn.btn-cancel.btn-block(type="button", ng-click="adding_pair = false", l10n) cancel
.col-sm-4.col-lg-2.col-xs-6#add_button
button.btn.btn-success.btn-block.submit(type="submit", ng-disabled="gateway_change_form.$invalid", l10n) Add
button.btn.btn-success.btn-block.submit(type="submit", ng-disabled="gateway_change_form.$invalid || gateway_change_form.$pending", l10n) Add

form.issuerSelector.first-issuer(name='first_issuer_form', ng-show='show_issuer_form == "first"')
label(for='first_issuer', l10n) Base currency issuer ({{order.first_currency | rpcurrency}})
Expand Down