Bug 40172

Summary: Remove jQuery from js/fetch/http-client.js
Product: Koha Reporter: Jonathan Druart <jonathan.druart>
Component: TemplatesAssignee: Owen Leonard <oleonard>
Status: Signed Off --- QA Contact: Testopia <testopia>
Severity: enhancement    
Priority: P5 - low CC: dcook
Version: unspecified   
Hardware: All   
OS: All   
GIT URL: Change sponsored?: ---
Patch complexity: --- Documentation contact:
Documentation submission: Text to go in the release notes:
Version(s) released in:
Circulation function:
Bug Depends on:    
Bug Blocks: 40173    
Attachments: Bug 40172: Replace jQuery with vanilla JS in js/fetch/http-client.js
Bug 40172: Replace jQuery with vanilla JS in js/fetch/http-client.js

Description Jonathan Druart 2025-06-18 20:48:23 UTC
We do not really need jQuery, it can be replace with vanilla JavaScript.
Comment 1 Jonathan Druart 2025-06-18 20:54:19 UTC
Created attachment 183353 [details] [review]
Bug 40172: Replace jQuery with vanilla JS in js/fetch/http-client.js

So that we can reuse it from somewhere else.
The current need is to be able to reuse it from Cypress tests.

Test plan:
Try to hit several places where APIClient is used:
 * Syspref edition
 * Translation of item type description (be aware of bug 40161)
 * Delete of cover images
 * checkin, renew from the checkout list
 * etc.

Note that this does not affect Vue components.
Comment 2 David Cook 2025-06-18 23:43:51 UTC
(In reply to Jonathan Druart from comment #0)
> We do not really need jQuery, it can be replace with vanilla JavaScript.

This makes me very happy :D
Comment 3 David Cook 2025-06-18 23:51:45 UTC
I just tested with the syspref endpoint, but that does test all the changes.

Test plan:
0. Apply the patch
1. Log into staff interface
2. Go to http://localhost:8081/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=opacuserjs&ok=Search
3. Add a JS comment
4. Note that it succeeds
5. In a separate tab, log out of the staff interface
6. Try to update the JS comment
7. Note that the message "Error: Forbidden" appears at the top of the page
Comment 4 David Cook 2025-06-18 23:52:27 UTC
Created attachment 183361 [details] [review]
Bug 40172: Replace jQuery with vanilla JS in js/fetch/http-client.js

So that we can reuse it from somewhere else.
The current need is to be able to reuse it from Cypress tests.

Test plan:
Try to hit several places where APIClient is used:
 * Syspref edition
 * Translation of item type description (be aware of bug 40161)
 * Delete of cover images
 * checkin, renew from the checkout list
 * etc.

Note that this does not affect Vue components.

Signed-off-by: David Cook <dcook@prosentient.com.au>