Bug 41512: Fix ILLCheckAvailability

1) Install the unpaywall plugin:
  https://github.com/openfifth/koha-plugin-ill-avail-unpaywall/releases/tag/1.0.2
2) Configure an email address on the plugin configuration (I believe any email address should work):
<staff_url>/cgi-bin/koha/plugins/run.pl?class=Koha%3A%3APlugin%3A%3ACom%3A%3APTFSEurope%3A%3AAvailabilityUnpaywall&method=configure
3) Enable ILLModule and ILLCheckAvailability sys prefs
4) Create a new ILL request, visit:
  <staff_url>/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=Standard
5) Pick type: journal article and enter the DOI: 10.1002/bjs.1800621024
6) Enter a cardnumber e.g. '42' for koha user and any library.
7) Notice the availability screen never renders, a console error is logged on the browser.
8) Apply patch. Refresh. Repeat.

This appears to have stopped working after bug 26553. Using git bisect, after bug 26553 (cc09868152), this started returning a 'bad request: malformed query string' because query params were being sent to the plugin API route (which doesn't consider them). Bug 40865 then fixed the bad request error, but resulted in the console error we see now, which is fixed by this patch.
ajax.dataSrc appears to now be returning an additional level of 'data' due to datatables upgrade (?), this patch changes the dataSrc override to be more in line with the example doc at https://datatables.net/reference/option/ajax.dataSrc

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 20d20ba9a9)
Signed-off-by: Jacob O'Mara <Jacob.omara@openfifth.co.uk>
This commit is contained in:
Pedro Amorim 2026-01-02 14:18:36 +00:00 committed by Jacob O'Mara
parent 4711b6cc57
commit fde418abce
No known key found for this signature in database
2 changed files with 4 additions and 2 deletions

View File

@ -101,7 +101,8 @@ $(document).ready(function () {
column.render = renders[column.data];
}
});
tableDef.ajax.dataSrc = function (data) {
tableDef.ajax.dataSrc = function (json) {
let data = json.data;
var results = data.results.search_results;
// The source appears to be returning it's own pagination
// data

View File

@ -101,7 +101,8 @@ $(document).ready(function () {
column.render = renders[column.data];
}
});
tableDef.ajax.dataSrc = function (data) {
tableDef.ajax.dataSrc = function (json) {
let data = json.data;
var results = data.results.search_results;
// The source appears to be returning it's own pagination
// data