commit cfa17d601f2aaacd3fafa695548e5fd77ed22d59 Author: Pedro Amorim Date: Tue Apr 21 11:10:12 2026 +0000 Bug 37762: (QA follow-up): Address test files QA complaints commit 81a4b2b8430e3cc261c5bd73d28b877bb7bf12bf Author: Pedro Amorim Date: Tue Apr 21 11:05:41 2026 +0000 Bug 37762: (QA follow-up): Relabel pending requesting agency action commit 453e7a974ba706ae105529d52c6a2def87429c7d Author: Pedro Amorim Date: Tue Apr 21 11:00:44 2026 +0000 Bug 37762: (QA follow-up): Add filters to supply ILL table Also fix table_settings commit 1b8a6160e82da4c914bb771b913ddb81a07e4913 Author: Pedro Amorim Date: Tue Apr 21 10:58:30 2026 +0000 Bug 37762: (QA follow-up): Fix supplying agency request ID label Also clean-up redundant code pending ra action commit 26c15cb8e4582c8bb716bea88a6829857fcf0e40 Author: Pedro Amorim Date: Tue Apr 21 09:23:14 2026 +0000 Bug 37762: (QA follow-up): Add placeholder to callback_endpoint In requesting agency configuration page commit 8a9aaad38723c83012d0850b8b3e268da3be49ce Author: Pedro Amorim Date: Tue Apr 21 09:22:43 2026 +0000 Bug 37762: (QA follow-up): Add ShippedReturn support action type commit 853c71248bdcd0998590de70ab9da8267a17c637 Author: Pedro Amorim Date: Tue Apr 21 09:22:05 2026 +0000 Bug 37762: (QA follow-up): Add real requesting agency request ID to ISO message commit edc5c6f2a01190ef85cfc643d1839a75d0c93d03 Author: Pedro Amorim Date: Tue Apr 21 09:21:11 2026 +0000 Bug 37762: (QA follow-up): Add loading while action is processing This also prevents clicking other action buttons while an action is midflight cypress run --spec t/cypress/integration/ILL/SupplyingRequests.ts commit 1789a43898cad30997be6707284e067a6557601a Author: Pedro Amorim Date: Tue Apr 21 09:20:02 2026 +0000 Bug 37762: (QA follow-up): Add message with timestamp +1 Instead of waiting a real 1 second commit c9aafc4d86a3e4647eb2799e5b4b97cfc37dd9af Author: Pedro Amorim Date: Thu Apr 16 13:33:18 2026 +0000 Bug 37762: Add additional tests cypress run --spec t/cypress/integration/ILL/SupplyingRequests.ts cypress run --spec t/cypress/integration/ILL/RequestingAgencies.ts prove t/db_dependent/Koha/ILL/ISO18626/Request.t commit b77260c49fb67fc9acaf6f3ec8fc08e5833ff9b5 Author: Pedro Amorim Date: Wed Apr 15 12:33:06 2026 +0000 Bug 37762: (QA follow-up): Fix checkout for bib-level holds This will now find the corresponding ISO18626 request and update it accordingly when a check-out happens. Use-case this is addressing: 1. Place an item-level hold for Henry 2. Check-in that item e.g. 39999000003130 (make it waiting) 3. Create a new ISO18626 request and 'Search to hold', place a bib-level hold on the same bib as above (for patron Walker) 4. Check-out the item from 2. 39999000003130 to Walker 5. Confirm an ISO18626 message input is shown and that the respective ISO18626 request is updated to 'Loaned' once the check-out happens (i.e. override Henry's hold). commit ea7cd8b9f80c0c0c13a91ae3a5cbb8adc5466ea4 Author: Pedro Amorim Date: Wed Apr 15 11:04:20 2026 +0000 Bug 37762: (QA follow-up): Fix rendering regular holds in table commit d975ee113a5aa959d906d735df13284b7db8701a Author: Pedro Amorim Date: Wed Apr 15 10:13:49 2026 +0000 Bug 37762: Send message back to requesting agency This commit applies changes to V1.pm to be able to utilize the same XML methods. We're also updating tests to reflect this new functionality. commit cea4b2c0b4dff0f64510d2bd24d07a79bcc972f4 Author: Pedro Amorim Date: Tue Apr 14 15:11:45 2026 +0000 [DONT PUSH] Test only Preparation (ktd required, pick one): A) (New install) Checkout to openfifth/bug_37762 and reset_all B) (Upgrade) From main, checkout to openfifth/bug_37762 and run the following: updatedatabase yarn js:build yarn api:bundle sudo cp /kohadevbox/koha/debian/templates/apache-shared*.conf /etc/koha/ sudo rm -f /etc/koha/apache-shared-opac-git.conf /etc/koha/apache-shared-intranet-git.conf cd /kohadevbox/gitify && sudo ./koha-gitify kohadev /kohadevbox/koha && cd /kohadevbox/koha restart_all Test plan (KTD required): 1) Enable ILLModule 2) Run the following script to simulate an ISO18626_REQUEST coming in: $ sh POST_ISO18626_REQUEST.sh 3) Notice you get an authentication error 4) Create a new requesting agency, visit: /cgi-bin/koha/ill/iso18626_requesting_agencies 5) Click 'New requesting agency' and add 'Walker' to the ILL Partner. Pick the only patron that is suggested. 6) Pick any Name and any Type, add 'kohaid' to Account ID and 'kohacode' to Security Code 7) Repeat step 2). Confirm you know get a success message (messageStatus: OK). 8) Visit the ILLs to Supply: /cgi-bin/koha/ill/iso18626_requests 9) Click 'Manage request'. Notice the request status is 'RequestReceived' and the message containing the ISO18626 request is visible by clicking 'View message'. 10) Notice the top 'Expect to supply' button. Click that. 11) Perform a search (presumably using the metadata that came in, let's search 'test' for now). 12) Pick the 'Gairm.' search result and click that. On the detail page, click the toolbar button 'Place hold' and pick 'Place supply ILL hold for Walker. 13) Notice a 'ISO18626 ILL request details' box is shown. You may optionally add information here. 14) Place a regular hold, biblio-level for now. Click 'Place hold'. 15) You should now see the holds for 'Gairm.'. Notice the 'Supply ILL#' link on the hold details column. Click that. 16) You are now on the Supply ILL again. Notice the status is now ExpectToSupply and a message was sent to the requesting agency, under ISO18626 messages. This message should contain reasonforMessage: statusChange and the new status under statusInfo. 17) Notice a 'Will supply' button now shows. This is because in order to progress this Supply ILL an item needs to be assigned to the respective hold. 18) Let's check-in item '39999000001310'. This can be done by clicking the 'Will supply' button and picking 'Check-in' or by checking in '39999000001310' directly from the circulation check-in page. Visit the check-in page: /cgi-bin/koha/circ/returns.pl 19) Enter '39999000001310' (no single quotes) and click 'Confirm hold'. 20) Visit the supply ILL again: /cgi-bin/koha/ill/iso18626_requests/1 21) Notice the status is now WillSupply and another message was sent to the requesting agency. Notice a 'Mark as loaned' button now shows. Click on it. 22) You are now on the check-out page. You may optionally add some ISO18626 message details (which will be sent to the requesting agency) and click 'Yes, check out'. 23) Still on the 'Check out' page for Walker, click 'Show checkouts' to render the checkouts table. 24) Notice a (Supply ILL#) link under the check out title. Click on it. 25) We are back on our Supply ILL. The status is now 'Loaned' and a 'Complete loan' button is now shown. Clicking this button will check-in the item currently checked out ('39999000001310'). The check-in may also be performed from the circulation module directly, it'll reflect back to this respective Supply ILL. Click 'Complete loan'. 26) The checkin was successful, visit the Supply ILL again: /cgi-bin/koha/ill/iso18626_requests/1 27) Notice the Supply ILL is now 'LoanCompleted' with no available action buttons. The full lifecycle of this Supply ILL is retrievable from the ISO18626 messages section of the scren. commit 27106f15d59f73000d9849476f15b4b347810094 Author: Pedro Amorim Date: Tue Apr 14 11:21:30 2026 +0000 Bug 37762: SupplyingResource updates commit 978f28076f0429ac9ca665ec93432477dfbd2538 Author: Pedro Amorim Date: Wed Mar 4 10:52:40 2026 -0100 Bug 37762: VueJS framework: Add biblio and checkout API clients commit 55f0cfaa3101b99f7c1b376e385f845c563bd375 Author: Pedro Amorim Date: Tue Feb 24 12:23:53 2026 -0100 Bug 37762: Catalogue: Hook to biblios commit db28a42da9fd21a40bef3983333074d0a86c8688 Author: Pedro Amorim Date: Mon Feb 23 11:40:23 2026 -0100 Bug 37762: Circulation: Hook to checkouts/checkins commit 4ee374abb611db252e4c505ad56585a302d23995 Author: Pedro Amorim Date: Fri Jan 30 11:17:03 2026 -0100 Bug 37762: Circulation: Hook to holds commit f13851c9c3e0c5d5f2c3a5f1133ec4d4731ba821 Author: Pedro Amorim Date: Wed Feb 25 11:09:28 2026 -0100 Bug 37762: Hook to holds preparation: DRY holdfor and searchToOrder In preparation to implement 'hold for supply ILL' This DRYs the existing functionality, meaning the new similar functionality will only be added once in the Controller::Catalogue IMPORTANT: The following command must only return occurrences in Koha::Controller::Catalogue before this is pushed to main: git grep "\->cookie(\"holdfor\")" commit 8da4b9dc72cc22810c0ff4ba5057e8ea72a9739f Author: Pedro Amorim Date: Mon Jan 19 13:21:36 2026 -0100 Bug 37762: Bugfix: Display relationshipSelect commit 29a657a77d530516fda6f06d1092d7aff77a9c41 Author: Pedro Amorim Date: Tue Sep 9 15:20:05 2025 +0000 Bug 37762: ISO18626 KOHA classes commit f62c99a01bed877127153240fc6bd9b3f8cb97a1 Author: Pedro Amorim Date: Mon Sep 8 15:45:00 2025 +0000 Bug 37762: ISO18626 Koha DB changes commit 49129301c19d21ecfac524f0196ef43d3399985b Author: Pedro Amorim Date: Mon Sep 8 15:44:53 2025 +0000 Bug 37762: Add ISO18626 tests prove t/db_dependent/api/v1/iso18626/request.t prove t/db_dependent/api/v1/iso18626/requesting_agencies.t commit ae29692c6c6acd5f5f9f8dd1fef584331e801028 Author: Pedro Amorim Date: Mon Sep 8 08:27:48 2025 +0000 Bug 37762: ISO18626 REST API specs Reference: https://illtransactions.org/schemas/ISO-18626-2021-2.xsd commit 59f01261731424f3832089386719b36db48f9e4c Author: Pedro Amorim Date: Mon Sep 8 08:25:58 2025 +0000 Bug 37762: REST API: Convert XML payload to JSON for swagger definition validation Convert JSON response to XML if header content_type: application/xml commit 2b1d9a1c13b034ab334d3fbb54c92ea5b3c6bbe3 Author: Pedro Amorim Date: Mon Jan 12 11:48:56 2026 -0100 Bug 37762: Vuejs sysprefs store: Allow fetching multiple sys pref values commit de00c22a330ab022b8cac0dfee7a751da01f3d88 Author: Pedro Amorim Date: Wed Aug 6 10:13:47 2025 +0000 Bug 37762: VueJS ILL Module commit 19e6db4c0f108c9b3888d2573e2a1e25fa931670 Author: Pedro Amorim Date: Mon Jan 12 12:24:45 2026 -0100 Bug 37762: PatronAutoComplete: VueJS framework: Add patronAutoComplete attribute type commit 5e5d2a026a0c429031488302118413c9e26052c6 Author: Pedro Amorim Date: Wed Jan 14 11:04:41 2026 -0100 Bug 37762: PatronAutoComplete prep: Abstract rendering of selected patron commit f2e8f588583b76648d62733723190ed058d477a3 Author: Pedro Amorim Date: Fri Jan 9 14:54:32 2026 -0100 Bug 37762: PatronAutoComplete prep: Add on remove callback to patron_autocomplete commit 048fb173c1e020699a199b2f16642db0e8b790eb Author: Pedro Amorim Date: Fri Jan 9 14:48:30 2026 -0100 Bug 37762: PatronAutoComplete prep: Allow additional filters in patron_autocomplete commit 5a793cde0c5c4e440c992f95cdf8d224eaf6f0aa Author: Pedro Amorim Date: Thu Jan 8 10:50:17 2026 -0100 Bug 37762: Fix confirmation button CSS class in confirmation modal commit b2c5daec2178d7104e97d2f7dc70ae8884336a86 Author: Pedro Amorim Date: Mon Mar 2 15:29:34 2026 -0100 Bug 37762: VueJS framework: Add attribute.format check in empty groups check This keeps the same functionality as before, i.e. hide the whole group if all attributes within are empty. However it now also checks for 'format' as some resources may want to format the display of empty attributes. commit 3adcbbdb966f0808e1948645aeecf28821b9ae31 Author: Pedro Amorim Date: Mon Jan 19 12:55:24 2026 -0100 Bug 37762: VueJS framework: Add possibility of external navigation item e.g.: { path: "/cgi-bin/koha/ill/ill-requests.pl", title: $__("Requests"), icon: "fa fa-download", is_external: true, is_navigation_item: true, }, commit 92b2804243fe044f378ba0adcd8849318794bacb Author: Pedro Amorim Date: Tue Jan 20 12:59:28 2026 -0100 Bug 37762: VueJS framework: Add 'name' to moduleDashboard This is required to differentiate between selected widgets on different module dashboards i.e. ERM vs ILL commit 5e8475231f6960f202a285c27d5043a7c7df6133 Author: Pedro Amorim Date: Mon Jan 12 12:42:55 2026 -0100 Bug 37762: VueJS framework: Toolbarbutton spacing to consider different css classes There's no spacing currently, but it's not obvious as the current style has the same background color as the body. This adds spacing so even if some buttons have different colors (e.g. primary or danger) all buttons are spaced correctly. commit 9b4f886108213a5989de5f00ba72b47f595ea043 Author: Pedro Amorim Date: Mon Jan 12 12:44:59 2026 -0100 Bug 37762: VueJS framework: updateConfirmationDialogInputs commit 9d7c67f9bccef6665a0f2e4c24c0fdb0c27f907d Author: Pedro Amorim Date: Wed Oct 1 14:57:05 2025 +0000 Bug 37762: VueJS framework: Add update event to v-select FormElement The existing 'selected' event only fires when something is selected, it does not fire when a selection is unselected. onUpdated fires for both. commit 74f14b1616840f2c7ecdfb372c87cccac98475f6 Author: Pedro Amorim Date: Wed Oct 1 09:34:32 2025 +0000 Bug 37762: VueJS framework: Fix tooltip within modal dialog Without this, the tooltip is behind the modal thus invisible commit c4ef444a1c4741020af043b1bf444608f00f9e98 Author: Pedro Amorim Date: Wed Oct 1 08:40:34 2025 +0000 Bug 37762: VueJS framework: Allow styling v-select dropdown commit 9b0daf6aa694111e32f9a5525f6304029402f4d6 Author: Pedro Amorim Date: Wed Oct 1 08:33:42 2025 +0000 Bug 37762: VueJS framework: Update width of inputs inside modal dialog commit b552115889497a9daa50cd82fc4ab5acbab5286b Author: Pedro Amorim Date: Wed Sep 17 14:45:17 2025 +0000 Bug 37762: VueJS framework: Add cssClass consideration to link buttons commit c31fa931d84c95f0290372d9ee08cfd6efab9c38 Author: Pedro Amorim Date: Wed Sep 17 14:44:27 2025 +0000 Bug 37762: VueJS framework: Add patch to http-client.js commit 6ac1d7ea5172e8fc453565feb647605a628eb348 Author: Matt Blenkinsop Date: Mon Nov 17 17:22:14 2025 +0000 [Stolen from mblenk] Allow FormElement to accept hidden inputs commit 348846ceb003ed7f9ae54088370dcac797c1080d Author: Martin Renvoize Date: Mon Apr 13 14:55:48 2026 +0100 Bug 40383: (follow-up) Add css files to gitignore We need to add these generated files to the gitignore. Signed-off-by: Martin Renvoize commit a738127ded347d94d040e48411db0a50517a4cf0 Author: Martin Renvoize Date: Mon Apr 13 09:52:00 2026 +0100 Bug 41216: (follow-up) Fix path to sample.tt in xgettext-tt2.t Bug 41216 moved sample.tt into tt/en/ but the test still referenced the old path, causing xgettext-tt2.t to fail. Signed-off-by: Martin Renvoize commit bda5afd49cc1ce77c7bb8b50aa5ec27fbf758f8b Author: Martin Renvoize Date: Mon Apr 13 09:27:53 2026 +0100 Bug 40383: (follow-up) Fix flaky Cypress EDIFACT search tests in CI Replace cy.wait(N) + bare assertion with assertion-based waits using { timeout: 10000 }, and replace .type(term, { delay: 50 }) with .invoke('val', term).trigger('input') to avoid keyboard simulation timing races against the 500ms debounce in the search component. Signed-off-by: Martin Renvoize commit 278aa32c03ca50e1629907f4540f4cce8fc704ca Author: Janusz Kaczmarek Date: Wed Feb 18 10:43:37 2026 +0000 Bug 41870: Warning "Use of uninitialized value $borrowernumber" in opac-detail.pl Under some circumstances (OPACShowHoldQueueDetails set, hold made, OPAC user not logged in) a warning like: [WARN] Use of uninitialized value $borrowernumber in numeric eq (==) at /kohadevbox/koha/opac/opac-detail.pl line 598. is being generated. Test plan: ========== 1. Set OPACShowHoldQueueDetails to 'Show holds and their priority levels'. 2. From staff interface, place a hold on a record for any borrower. 3. Open a fresh browser (private mode or different browser), confirm that you are not logged in, go to this record. 4. Check the content of plack-opac-error.log. You should see a warning like: [WARN] Use of uninitialized value $borrowernumber in numeric eq (==) at /kohadevbox/koha/opac/opac-detail.pl line 598 5. Apply the patch ; restart_all. 6. Repeat p. 3 & 4. There should be no new warning now. Sponsored-by: Ignatianum University in Cracow Signed-off-by: Roman Dolny Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 00c4c9a5996e937c32f48391c6616d134abb8d04 Author: Janusz Kaczmarek Date: Tue Feb 17 10:53:37 2026 +0000 Bug 41863: Facets generated from Authorized values sometimes show empty labels With facets generated from Authorized values, it may happen that the list of authorized values lacks an entry for a code used in a record. In this case, an empty entry will appear in the facet list, with the number of uses but without any label. It would be desirable to show at least the raw code, rather than an empty label. This makes it easier to see which code has no entry in the respective AV and to either add it or correct an erroneous code. Test plan: ========== 1. Have a standard KTD installation with Elasticsearch. 2. Add AV COUNTRY_CODES category and add two pairs (Authorized value, Description): * enk - England * xxu - United States 3. In the admin/searchengine/elasticsearch/mappings.yaml file, correct the definition of the pl search field as follows: pl: - label: pl + facet_order: 24 + label: Publication place mandatory: ~ + authorised_value_category: COUNTRY_CODES mappings: - - facet: '' + - facet: 1 marc_field: 008_/15-17 marc_type: marc21 sort: 1 4. Reindex ES with: koha-elasticsearch --rebuild -r -d -b kohadev 5. Set the displayFacetCount systempreference to 'Show' 6. Perform a general search in the OPAC or staff interface: * View the 'Publication place' facet and notice a dozen empty entries, with only the number of occurrences. 7. Apply the patch ; restart_all 8. Repeat p. 6. You will see country codes that you can now add to AV or correct. BTW, note that the tiny correction to Search.pm is analogous to setting the label for 'special' types (i.e. itype, location, ccode, holdingbranch, homebranch) two lines above. Sponsored-by: Ignatianum University in Cracow Signed-off-by: Roman Dolny Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass