</tr>
</tfoot>
</table>
- [% IF ENABLE_OPAC_PAYMENTS && DISPLAY_PAYMENT_BLOCK %]
- <fieldset class="pay-online hidden">
- <legend>Pay selected fines and charges</legend>
- <span class="help-block"><h3>Payment method</h3></span>
-
- [% IF Koha.Preference('EnablePayPalOpacPayments') %]
- <div class="control-group">
- <label class="radio">
- <input type="radio" name="payment_method" id="payment_method-paypal" value="paypal" checked="checked">
- <!-- PayPal Logo --><a href="https://www.paypal.com/webapps/mpp/paypal-popup" title="How PayPal Works" class="paypal"><img src="https://www.paypalobjects.com/webstatic/mktg/logo/AM_SbyPP_mc_vs_dc_ae.jpg" border="0" alt="PayPal Acceptance Mark"></a><!-- PayPal Logo -->
- </label>
- </div>
- [% END %]
-
- [% FOREACH p IN plugins %]
- <div class="control-group">
- <label class="radio">
- <input type="radio" name="payment_method" id="payment_method-[% p.class | html %]" value="[% p.class | html %]" checked="checked">
- [% p.get_metadata.name | html %]
- </label>
- </div>
- [% END %]
+[% END %]
+
+[% IF ENABLE_OPAC_PAYMENTS && DISPLAY_PAYMENT_BLOCK %]
+ <fieldset class="pay-online hidden">
+ <legend>Pay selected fines and charges</legend>
+ <span class="help-block"><h3>Payment method</h3></span>
+
+ [% IF Koha.Preference('EnablePayPalOpacPayments') %]
+ <div class="control-group">
+ <label class="radio">
+ <input type="radio" name="payment_method" id="payment_method-paypal" value="paypal" checked="checked">
+ <!-- PayPal Logo --><a href="https://www.paypal.com/webapps/mpp/paypal-popup" title="How PayPal Works" class="paypal"><img src="https://www.paypalobjects.com/webstatic/mktg/logo/AM_SbyPP_mc_vs_dc_ae.jpg" border="0" alt="PayPal Acceptance Mark"></a><!-- PayPal Logo -->
+ </label>
+ </div>
+ [% END %]
+ [% FOREACH p IN plugins %]
<div class="control-group">
- <input type="hidden" id="payment-amount" name="payment_amount" value="0" />
- <button id="submit-pay" type="submit" class="btn" disabled="disabled">Make payment</button>
- <span id="amount-to-pay-label">
- Amount to pay: <span id="amount-to-pay">0.00</span>
- </span>
+ <label class="radio">
+ <input type="radio" data-threshold="[% p.opac_online_payment_threshold | html %]" name="payment_method" id="payment_method-[% p.class | html %]" value="[% p.class | html %]" checked="checked">
+ [% p.get_metadata.name | html %]
+ </label>
+ <small class="help-block text-muted"></small>
</div>
- </fieldset>
- [% END %]
+ [% END %]
+
+ <div class="control-group">
+ <input type="hidden" id="payment-amount" name="payment_amount" value="0" />
+ <button id="submit-pay" type="submit" class="btn" disabled="disabled">Make payment</button>
+ <span id="amount-to-pay-label">
+ Amount to pay: <span id="amount-to-pay">0.00</span>
+ </span>
+ </div>
+ </fieldset>
[% END %]
</form>
<script>
$( document ).ready(function() {
+ var MSG_MIN_THRESHOLD = _("Minimum amount needed by this service is %s");
+
$("#finestable").dataTable($.extend(true, {}, dataTablesDefaults, {
"columnDefs": [
{ "type": "title-string", "targets" : [ "title-string" ] }
$("#amount-to-pay-label").hide();
- $(".checkbox-pay").change( function() {
+ $(".checkbox-pay, input[name='payment_method']").change( function() {
// Disable the pay button if no fees are selected
- $("#submit-pay").prop("disabled", ! $(".checkbox-pay:checked").length );
+ //$("#submit-pay").prop("disabled", ! $(".checkbox-pay:checked").length );
// Calculate the total amount to be paid based on selected fees
var total = 0;
}
});
+ var p = Promise.resolve();
if ( total ) {
+ p = Promise.all(
+ $('input[name="payment_method"]').map(function() {
+ var self = this;
+ return new Promise(function(resolve, reject) {
+ var threshold = $(self).data('threshold');
+ var help = $(self).parent().siblings('.help-block');
+ if(threshold == '' || threshold <= total) {
+ $(self).prop('disabled', false);
+ help.addClass('hide');
+ } else {
+ $(self).prop('disabled', true);
+ help.html(MSG_MIN_THRESHOLD.format(parseInt(threshold,10).toFixed(2))).removeClass('hide');
+ }
+ resolve();
+ })
+ }).toArray()
+ );
+
$("#amount-to-pay").html( total.toFixed(2) );
$("#amount-to-pay-label").show();
} else {
+ $('input[name="payment_method"]').prop('disabled', false).parent().siblings('.help-block').addClass('hide');
$("#amount-to-pay-label").hide();
}
+ p.then(function() {
+ $("#submit-pay").prop("disabled", ! $(".checkbox-pay:checked").length || ! $('input[name="payment_method"]:checked:not(:disabled)').length);
+ })
});
});
</script>