Bug 25563: (bug 24386 follow-up) Don't disable submit button if form has not been submitted yet

On bug 24386 we prevent double form submission using the our own preventDoubleFormSubmit JS function.

The problem is that we are checking some conditions, and prevent the
form submission if something is not filled (for instance no checkbox
checked, or no fund selected).

Technically it means that:
- click the submit button
- it submits the form
- we disable the submit button
- we prevent the form to be submitted before something is wrong
At this stage the button is disabled and the form cannot be longer be
submitted.

This patch replaces the "on submit" event of the form with the "on click" event of the submit button.
Which means we are going to:
- click the submit button
- we prevent the form to be submitted before something is wrong
=> The button will only be disabled if the form is really submitted

Test plan:
- stage a marc record
- acquisitions: have a basket
- click on "Add to basket"
- "From a staged file"
- Don't tick the record
- Save
- You should see an expected error message
- Tick the record
- Save
- You should see an expected error message
- Choose a fund
- Click the "Save" button as many times as you can, to try double submit
it.
=> The order is saved

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
Jonathan Druart 2020-05-21 12:00:34 +02:00 committed by Martin Renvoize
parent 5169c5fab8
commit 37370c415a
Signed by: martin.renvoize
GPG key ID: 422B469130441A0F
2 changed files with 7 additions and 3 deletions

View file

@ -379,7 +379,7 @@
</div>
<fieldset class="action">
<input type="submit" value="Save" /><a class="cancel" href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basketno | html %]">Cancel</a>
<input id="add_order" type="submit" value="Save" /><a class="cancel" href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basketno | html %]">Cancel</a>
</fieldset>
</form>
[% ELSE %]

View file

@ -48,7 +48,9 @@ $(document).ready(function() {
return false;
});
$("#Aform").on("submit", function(){
$("input#add_order").on("click", function(e){
e.preventDefault();
if ( $("input:checkbox[name='import_record_id']:checked").length < 1 ) {
alert( ERR_NO_RECORD_SELECTED );
return false;
@ -72,7 +74,9 @@ $(document).ready(function() {
return false;
}
return disableUnchecked($(this));
disableUnchecked($(this.form));
$(this.form).submit();
});
$('#tabs').tabs();