Bug 25563

Summary: Cannot submit "add order from MARC file" form after alert
Product: Koha Reporter: Jonathan Druart <jonathan.druart>
Component: AcquisitionsAssignee: Jonathan Druart <jonathan.druart>
Status: Pushed to oldoldstable --- QA Contact: Testopia <testopia>
Severity: major    
Priority: P5 - low CC: aleisha, martin.renvoize, nick, victor
Version: unspecified   
Hardware: All   
OS: All   
See Also: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=25473
Change sponsored?: --- Patch complexity: Small patch
Who signed the patch off: Text to go in the release notes:
Version(s) released in:
20.05.00, 19.11.07, 19.05.12
Bug Depends on: 24386    
Bug Blocks:    
Attachments: Bug 25563: (bug 24386 follow-up) Don't disable submit button if form has not been submitted yet
Bug 25563: Only submit form after is it checked
Bug 25563: (bug 24386 follow-up) Don't disable submit button if form has not been submitted yet
Bug 25563: (bug 24386 follow-up) Don't disable submit button if form has not been submitted yet

Description Jonathan Druart 2020-05-21 09:43:43 UTC
If you get an alert about "no fund selected" you won't be able to submit the form.

To recreate (test plan from bug 25473)
- 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
- Choose a fund
- Save (at least try)
- Nothing happens :<
Comment 1 Jonathan Druart 2020-05-21 09:44:38 UTC
Caused by
  commit 01551437c0c99b9e6308e109ceeef5bc3f7b5cec
  Bug 24386: Prevent double form submission on adding orders to basket from a file
Comment 2 Jonathan Druart 2020-05-21 10:08:10 UTC
Created attachment 105171 [details] [review]
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
Comment 3 Nick Clemens 2020-05-21 10:10:40 UTC
Created attachment 105172 [details] [review]
Bug 25563: Only submit form after is it checked
Comment 4 Nick Clemens 2020-05-21 10:17:39 UTC
Created attachment 105173 [details] [review]
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>
Comment 5 Katrin Fischer 2020-05-21 12:53:01 UTC
Created attachment 105183 [details] [review]
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>
Comment 6 Martin Renvoize 2020-05-22 08:34:13 UTC
Nice work everyone!

Pushed to master for 20.05
Comment 7 Aleisha Amohia 2020-06-09 02:30:19 UTC
backported to 19.11.x for 19.11.07
Comment 8 Victor Grousset/tuxayo 2020-06-11 17:33:21 UTC
Backported to 19.05.x branch for 19.05.12