minor fixes & improvements for Stripe forms
This commit is contained in:
parent
141044527e
commit
9c9fe95e9b
@ -79,21 +79,24 @@ Liberapay.init = function() {
|
||||
$(this).children('input[type="radio"]').prop('checked', true).trigger('change');
|
||||
});
|
||||
|
||||
$('[data-toggle="enable"]').each(function() {
|
||||
if (this.tagName == 'OPTION') {
|
||||
var $option = $(this);
|
||||
var $select = $option.parent();
|
||||
$select.on('change', function() {
|
||||
var $target = $($option.data('target'));
|
||||
$target.prop('disabled', !$option.prop('selected'));
|
||||
});
|
||||
} else {
|
||||
$('[data-toggle="enable"], [data-toggle="disable"]').each(function() {
|
||||
var enable = this.getAttribute('data-toggle') == 'enable';
|
||||
var $target = $(this.getAttribute('data-target'));
|
||||
var $control = $(this);
|
||||
$control.on('change', function() {
|
||||
var $target = $($control.data('target'));
|
||||
$target.prop('disabled', !$control.prop('checked'));
|
||||
});
|
||||
(this.tagName == 'OPTION' ? $control.parent() : $control).on('change', function() {
|
||||
var disable = enable ^ ($control.prop('checked') || $control.prop('selected'));
|
||||
$target.prop('disabled', disable);
|
||||
$target.find('input[type="checkbox"]').each(function() {
|
||||
var $subelement = $(this);
|
||||
if (disable) {
|
||||
$subelement.data('was-checked', $subelement.prop('checked'));
|
||||
$subelement.prop('checked', false);
|
||||
} else {
|
||||
$subelement.prop('checked', $subelement.data('was-checked'));
|
||||
}
|
||||
$subelement.prop('disabled', disable);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$('[data-email]').one('mouseover click', function () {
|
||||
|
@ -136,9 +136,14 @@ form.buttons > .btn, span.buttons > .btn {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
form[disabled] button {
|
||||
form:disabled, fieldset:disabled {
|
||||
button {
|
||||
pointer-events: none;
|
||||
}
|
||||
label {
|
||||
color: $gray-light;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-block + p {
|
||||
margin-top: 0.5em;
|
||||
|
@ -88,6 +88,7 @@ if request.method == 'POST':
|
||||
if route is None:
|
||||
raise response.invalid_input(body.get('route'), 'route', 'body')
|
||||
route.sync_status()
|
||||
if not route.one_off:
|
||||
if body.parse_boolean('set_as_default', default=False):
|
||||
route.set_as_default()
|
||||
set_as_default_for = body.get_currency('set_as_default_for', None)
|
||||
@ -527,9 +528,10 @@ title = _("Funding your donations")
|
||||
name='<a href="https://stripe.com/" target="_blank" rel="noopener noreferrer">Stripe</a>'|safe
|
||||
) }}</p>
|
||||
<label>
|
||||
<input type="checkbox" name="keep" value="true" checked />
|
||||
<input type="checkbox" name="keep" value="true" checked data-toggle="enable" data-target="#set-as-default" />
|
||||
{{ _("Remember the card number for next time") }}
|
||||
</label><br>
|
||||
<fieldset id="set-as-default">
|
||||
% if payer.donates_in_multiple_currencies
|
||||
<label>
|
||||
<input type="checkbox" name="set_as_default_for" value="{{ payment.currency }}" checked />
|
||||
@ -542,6 +544,7 @@ title = _("Funding your donations")
|
||||
{{ _("Use this payment instrument by default for future payments") }}
|
||||
</label>
|
||||
% endif
|
||||
</fieldset>
|
||||
<br><br>
|
||||
</fieldset>
|
||||
% elif payment_type == 'sdd'
|
||||
@ -565,15 +568,17 @@ title = _("Funding your donations")
|
||||
provider='<a href="https://stripe.com/" target="_blank" rel="noopener noreferrer">Stripe</a>'|safe
|
||||
) }}</p>
|
||||
<label>
|
||||
<input type="checkbox" name="keep" value="true" checked />
|
||||
<input type="checkbox" name="keep" value="true" checked data-toggle="enable" data-target="#set-as-default" />
|
||||
{{ _("Remember the bank account number for future payments") }}
|
||||
</label><br>
|
||||
<fieldset id="set-as-default">
|
||||
<label>
|
||||
<input type="checkbox" name="set_as_default_for" value="{{ payment.currency }}" checked />
|
||||
{{ _("Use this payment instrument by default for future payments in {currency}",
|
||||
currency=Currency(payment.currency)) }}
|
||||
</label><br>
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
% endif
|
||||
|
||||
% if ask_for_postal_address
|
||||
|
@ -23,6 +23,7 @@ if request.method == 'POST':
|
||||
"The payment processor {name} returned an error: “{error_message}”.",
|
||||
name='Stripe', error_message=repr_stripe_error(e)
|
||||
))
|
||||
if not route.one_off:
|
||||
if body.parse_boolean('set_as_default', default=False):
|
||||
route.set_as_default()
|
||||
postal_address = {
|
||||
@ -76,14 +77,16 @@ title = _("Add a payment instrument")
|
||||
name='<a href="https://stripe.com/" target="_blank" rel="noopener noreferrer">Stripe</a>'|safe
|
||||
) }}</p>
|
||||
<label>
|
||||
<input type="checkbox" name="one_off" value="true" />
|
||||
<input type="checkbox" name="one_off" value="true" data-toggle="disable" data-target="#set-as-default" />
|
||||
{{ _("Forget this card number after one payment.") }}
|
||||
</label><br>
|
||||
<fieldset id="set-as-default">
|
||||
<label>
|
||||
<input type="checkbox" name="set_as_default" value="true" checked />
|
||||
{{ _("Use this payment instrument by default for future payments") }}
|
||||
</label>
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
% elif network == 'stripe-sdd'
|
||||
<fieldset id="iban-form" class="form-group">
|
||||
<p>{{ _(
|
||||
@ -106,14 +109,16 @@ title = _("Add a payment instrument")
|
||||
provider='<a href="https://stripe.com/" target="_blank" rel="noopener noreferrer">Stripe</a>'|safe
|
||||
) }}</p>
|
||||
<label>
|
||||
<input type="checkbox" name="one_off" value="true" />
|
||||
<input type="checkbox" name="one_off" value="true" data-toggle="disable" data-target="#set-as-default" />
|
||||
{{ _("Forget this bank account number after one payment.") }}
|
||||
</label><br>
|
||||
<fieldset id="set-as-default">
|
||||
<label>
|
||||
<input type="checkbox" name="set_as_default_for" value="EUR" checked />
|
||||
{{ _("Use this payment instrument by default for future payments") }}
|
||||
</label>
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
% endif
|
||||
<p>{{ _(
|
||||
"As the payer's postal address is sometimes required to successfully "
|
||||
|
Loading…
x
Reference in New Issue
Block a user