Commit Graph

58581 Commits

Author SHA1 Message Date
Owen Leonard 4a831874e7
Bug 40107: Article requests: Some DataTables functionality is broken
Bug 38255 standardized our DataTables using kohaTable. kohaTable returns
the affected table as a jQuery object, but JavaScript on the article
requests page in the staff client expects a DataTable object. This patch
updates the template accordingly.

To test, apply the patch and enable the ArticleRequests system
preference if necessary.

- Log in to the OPAC and place several article requests.
- In the staff interface, go to Circulation -> Article requests.
- From the list of new article requests, test the menu options under
  "Actions."
- Changing the status of a request should make it disappear from the
  "New" tab and appear under the tab for the new status (or it should
  be removed, in case of cancel or complete).
- Test the same processes under the "Pending" and "Processing" tabs.
- Each time you perform one of these tasks the counters on each tab
  should be updated correctly.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 6b5a891cfb)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-09 11:36:40 +02:00
Jonathan Druart 27292c9ea2
Bug 40127: Add a Cypress test
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 90c2a53b99)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-09 11:36:39 +02:00
Jonathan Druart ce72073ff5
Bug 40127: Remove JS error from the biblio detail page when no items
"build_items_table is not defined"

We should not try to build the items table if there are no items.

Test plan:
Go to the bibliographic detail page of a biblio without items
You should not see errors in the browser's console

Go to the bibliographic detail page of a biblio with items
You should not see errors in the browser's console
The table should be displayed and the different features should work as
before

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 561535503c)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-09 11:36:39 +02:00
Jonathan Druart 7c33240af2
Bug 40127: Move build_items_table outside of document.ready
So it's not delayed and we catch have the error in the Cypress test.
Otherwise the error appear too late (in the after each) and the test
does not fail

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 2d1c6b8666)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-09 11:36:38 +02:00
Pedro Amorim 5df53a1ac9
Bug 40122: Dont attempt regex search for select dropdowns
Test plan:
1) Place a hold (next available) to biblio 76 and 437:
http://localhost:8081/cgi-bin/koha/catalogue/detail.pl?biblionumber=76
http://localhost:8081/cgi-bin/koha/catalogue/detail.pl?biblionumber=437
2) Edit 'Centerville' library name to 'Centerville (CPL)'
3) Visit the 'holds to pull' page:
http://localhost:8081/cgi-bin/koha/circ/pendingreserves.pl
4) Try to filter for 'Centerville (CPL)'. Notice the filtering returns nothing.
5) Apply patches. Repeat test plan. Notice 'Centerville (CPL)' filtering now works.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 227d1211fb)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-09 11:36:38 +02:00
Pedro Amorim 388a9f3640
Bug 40118: Prevent adding another empty value option
This is already done for all select dropdowns by default. If a
particular table provides an empty value it should be skipped or 2
empty options may show

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 082274d157)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-09 11:36:37 +02:00
Pedro Amorim d334d9ebaa
Bug 40118: Only concat ^ and $ if table is ajax
Test plan, k-t-d, before applying patches:
1) Place a hold (next available) to biblio 76 and 437:
   http://localhost:8081/cgi-bin/koha/catalogue/detail.pl?biblionumber=76
   http://localhost:8081/cgi-bin/koha/catalogue/detail.pl?biblionumber=437
2) Visit the 'holds to pull' page:
   http://localhost:8081/cgi-bin/koha/circ/pendingreserves.pl
3) Notice the 'Libraries' filter contains 'Centervile' twice. Notice the
   filtering never works regardless of option picked.
4) Apply patches. Repeat test plan. Notice 'Centerville' only shows
   once. Notice filtering works.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit bd4f454716)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-09 11:36:37 +02:00
Pedro Amorim 155432a91d
Bug 40118: Trim again after splitting
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 197fa3ed04)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-07-09 11:36:32 +02:00
Paul Derscheid 422bed11fb
Update release notes for 25.05.01 release
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 19:10:16 +02:00
Paul Derscheid 636e3ffe32
Increment version for 25.05.01 release
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 18:38:09 +02:00
Pedro Amorim a03406e2dd
Bug 40025: Fix change type for edit item metadata
1) Enable ILLModule
2) Create a new ILL request:
   <staff_url>/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=Standard
3) Add a type, a cardnumber '42' and any library. Click 'Make request'.
4) You should now be on the 'Manage request' page. Click 'Edit item metadata'.
5) Change the type. Notice the form doesn't update the fields (as it does when you create a new ILL request).
6) Apply patch. Repeat step 5. Notice the form now updates the fields as it does when you create a new ILL request.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 585f66e07c)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:09 +02:00
Owen Leonard cf2d0dd69a
Bug 40108: Fix print receipt option in self-checkout
The self-checkout logout process, with SelfCheckReceiptPrompt enabled,
asks the user if they want to print a receipt. Because of an error in
time calculation the system always believed the process had timed out
and wouldn't print the receipt.

Before we implemented a modal dialog to ask for confirmation upon
self-checkout logout, it was necessary to have a timeout function built
into the process. See Bug 11498.

The modal no longer blocks the page timeout function, so this time
calculation is obsolete and can be removed.

To test, apply the patch and go to the self-checkout module.

- Make sure the SelfCheckReceiptPrompt system preference is enabled.
- Log in as a user for doing self-checkout.
- Click the "Finish" button.
  - You should see a dialog, "Would you like to print a receipt?"
  - Clicking "Print receipt..." should open a new window with your
    receipt and log you out of the self-checkout system.
  - Clicking "End session" should end your session without triggering a
    popup.
- Set the SelfCheckTimeout system preference to something very low, like
  10 seconds.
  - Perform the same test as above, but after triggering the dialog wait
    10 seconds for the timeout to trigger.
  - The page should reload automatically and log you out.
- Disable the SelfCheckReceiptPrompt system preference.
  - Perform the same tests to confirm that clicking the "Finish" button
    logs you out immediately without offering to print a slip.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Flater <flaterdavid@gmail.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 6f147f4116)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:08 +02:00
Owen Leonard 16727da95c
Bug 39499: Add some padding to the Save button in the sticky bar in cataloging
This patch corrects a regression in the style of the floating toolbar on
the basic MARC editor page. There should be comfortable padding around
the "Save" button while keeping the toolbar's full width matching the
tab panels.

To test, apply the patch and clear your browser cache if necessary.

- Go to Cataloging -> New record.
- The toolbar with the "Save" button should look correct.
- The container with the tab buttons right below that should be the same
  width as the tab panel.
- Scroll down and confirm that everything looks good when the toolbar is
  floating.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Michelle Spinney <mspinney@clamsnet.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 0e43eed8c0)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:08 +02:00
Kyle M Hall 67d20ed350
Bug 39903: Catalog details page emits error if librarian cannot moderate comments on the record
If a librarian cannot moderate comments and a bib has comments, the
error "Something went wrong when loading the table." will pop up during
the page load.

Test Plan:
1) Add a comment to a record
2) Log in to the staff interface with a librarian that cannot moderate
   comments
3) Browse to the "Normal" view for that record
4) Note the error message
5) Apply this patch
6) Reload the page
7) No error!

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Christopher <cbrannon@cdalibrary.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit ca1af51349)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:07 +02:00
Nick Clemens 26242dbe8b
Bug 40166: Fix typo for all ips in ILSDIAuthorizedIPs
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 7e9c897c03)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:07 +02:00
Kyle M Hall c8f1779c20
Bug 37439: Fix misleading ChildNeedsGuarantor description
Unless I misunderstood the purpose of the ChildNeedsGuarantor system preference, I  think the description is misleading.

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Applied the patch, reloaded the syspref page for ChildNeedsGuarantor,
verified the new description looks OK.
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit ee57c56eeb)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:07 +02:00
Jake Deery e8693c864f
Bug 39475: Fixed reflow issues in dropdown menus
This patch aims to fix reflow issues present in dropdown menus, by specifying text-wrap behaviour, and by reducing line-height values in some places to make dropdown items more distinguishable from each other.

To test:
a)  log in to the opac
b)  create a list with an excessively long name (I chose 'a list about New New New New New New New New New New New New New New New New York')
c)  open the lists menu in the navbar, zoom in to 400%
    -)  notice how the title of the list rolls off the page
    -)  exit the dropdown menu
d)  open the user menu in the navbar, zoom in to 400%
    -)  notice how the clear searches button has broken across two lines
    -)  zoom back to 100%
APPLY PATCH
e)  repeat step c
    -)  notice how the title of the list now wraps at the designated width
    -)  zoom back to 100%
    -)  notice how the text is still wrapping, and the dropdown menu is no excessively wide
f)  repeat step d
    -)  notice how the clear searches button now sits on its own line
    -)  zoom back to 100%
    -)  notice how the clear searches button returns to its usual location
g)  check other dropdowns for clear bugs
    -)  places i could find were on opac-results and opac-details
SIGN OFF

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 3da91c5152)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:06 +02:00
Tomas Cohen Arazi be076f254f
Bug 40055: Make MoveReserve be passed objects instead of ids
The `MoveReserve` method is called once, in `AddIssue`. The latter has the related `Koha::Item` object already fetched from the DB, but it passed the `itemnumber` which is used by `MoveReserve` to fetch the item from the DB. This should not happen.

To test:
1. Run:
   $ ktd --shell
  k$ prove t/db_dependent/Reserves* \
           t/db_dependent/Koha/Hold* \
           t/db_dependent/Hold* \
           t/db_dependent/Circulation*
=> SUCCESS: Tests pass
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests still pass!
4. Sign off :-D

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 1886165eae)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:06 +02:00
Tomas Cohen Arazi 42ff42b61f
Bug 39948: Simplify unauthenticated ILL submission detail page for the OPAC
This patch tweaks the unauthenticated ILL request details page so it
doesn't display 'Unauthenticated ...' more than really needed.

To test:
1. Enable ILLModule
2. Enable ILLOpacUnauthenticatedRequest
3. Set ILLOpacbackends to 'Standard'
4. Make a search in the OPAC (not logged in)
5. At the bottom of the page, follow the 'Make an interlibrary loan
   request' link.
6. Place a request, you are redirected to the request details page
=> FAIL: There are some strings that could go away:

* Unauthenticated first name
* Unauthenticated last name
* Unauthenticated email

7. Apply this patch
8. Reload the page
=> SUCCESS: It looks more polished, with no 'Unauthenticated' all over
the place. You still see 'Status: Unauthenticated' anyway
9. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 235ecfca70)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:06 +02:00
Emily Lamancusa 87e81b5826
Bug 36020: (QA follow-up) A few minor corrections
Remove unneeded <br> in RECALL_REQUESTER_DET

Add IFs to RECALL_REQUESTER_DET to avoid displaying empty lines if
there is no phone, email, and/or callnumber to display

Use checkout.date_due instead of item.onloan due to bug 39985

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit d4450cdd5f)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:05 +02:00
Lisette Scheer 64e37b6e1f
Bug 36020: Port default recall notices to Template Toolkit
The following notices relating to recalls all need to be updated to use Template Toolkit syntax:

RETURN_RECALLED_ITEM
PICKUP_RECALLED_ITEM
RECALL_REQUESTER_DET

To test:
1) Observe the default notice contains <<>> tags
2) Apply the patch
3) reset_all
4) Check that the notice is now all in template toolkit [%  %] tags with html selected
5) Enable recalls
6) Enable SMS
7) Check an item out to a patron
8) Make sure the patron has a primary email, sms, and recall notices enabled
9) Make sure a secondary patron has a primary email, sms, and recall notices enabled
10) Generate a recall on the checked out item for the second patron
11) Check the first patron's notices tab to confirm the return recalled item notice generated properly.
12) Check the item back in and generate the recall slip and confirm it generated correctly.
13) Check the second patron's notices tab to confirm the pickup recalled item notice generated properly.

Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 98c0cf2648)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:05 +02:00
Jonathan Druart 39b8be85a6
Bug 39434: Tidy
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit 7668bf1ed5)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:04 +02:00
Owen Leonard 46cc8f8ce7
Bug 39434: (follow-up) Fix a few more instance
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 10dd01174a)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:04 +02:00
nina martinez 19a18be315
Bug 39434: Change the div tags that represent the header and main regions to semantic tags.
This patch updates the OPAC page structures to add <main> and <header>
tags to them.

Test plan :

1- On the opac of koha, check if the pages contain the basic semantic
   elements (header, nav, main, and footer )
2- If they do, the test succeeds.

Signed-off-by: Claire Hernandez <claire.hernandez@biblibre.com>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 28bbadcd49)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:30:04 +02:00
Owen Leonard 74a4b44d25
Bug 39925: Table columns missing headings for bibliographic search history in OPAC
This patch updates the OPAC search history page to make table headings
consistent with each other.

To test, apply the patch and log in to the OPAC, ideally as a user who
has performed catalog searches on previous occasions.

- On the patron's search history page, each table should have the same
  heading configuration: An unsorted first column with an information
  icon at the top. The icon should display a tooltip on mouse-over.
- Check the Catalog current session, catalog previous sessions,
  Authority current session, and authority previous sessions.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit a35af961f8)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-24 11:29:59 +02:00
Laura_Escamilla 7ed45d8d15
Bug 33440: Tests
Test Plan
1. Staff member A creates a public list.
2. Staff member A transfers this public list to another staff member (staff member b) without list permissions.
3. Staff Member B now has the ability to edit this public list and add/remove items from this list.
4. Apply the patch
5. Repeat steps 1 and 2. An error message should now appear stating that the “Transfer not allowed: You or the selected user do not have the required permissions.”
6. Provide the correct permissions to Staff Member B. Initiate the transfer again. The transfer should be successful.
7. Test these steps in the OPAC as well.
8. Prove t/db_dependent/Virtualshelves.t
9. Sign off and have a wonderful day! :D

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 45c7020220)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:50 +02:00
Laura_Escamilla 831a8bf9b8
Bug 33440: Updated wording for unauthorized_transfer OPAC message
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 7a98edf427)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:49 +02:00
Laura_Escamilla 82041841e5
Bug 33440: Updated wording for unauthorized_transfer error message
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit e7b790e3a6)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:49 +02:00
Laura_Escamilla acae50f177
Bug 33440: Added permission requirements to unauthorized_transfer
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 0edf689870)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:49 +02:00
Marcel de Rooy 4efb86aec8
Bug 40119: (QA follow-up) Small additional comment
The reference to this bug report may be helpful to understand
later why we did so.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 01526ef545)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:48 +02:00
Janusz Kaczmarek 8119ed0405
Bug 40119: Unit tests
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 5eeb04be97)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:48 +02:00
Janusz Kaczmarek ba31b8cc35
Bug 40119: Merge should not leave empty 6XX subfield $2 (MARC 21)
Currently, when removing 040 $f from authority record with 008/11 =
'z' (MARC 21), merge function removes the content of $2 subfield in
linked 6XX fields, leaving the 6XX $2 subfield empty.  This is not
correct.  We should not have empty subfields in a MARC record.

Instead, the old content of the $2 subfield should be retained (if
auth 008/11 is still = 'z').

Test plan:
==========
1. Have an authority record with 008/11 = 'z' and 040 $f = 'whatever'.
2. Link the record to a bibliographic 6XX.
3. Edit the authority record, removing 040 $f.
4. Go to bibliographic record and in modal "MARC preview" from Normal
   view notice that 6XX $2 exists but is empty. This is wrong.
5. Apply the patch ; restart all.
6. Repeat p. 1.-4. Note that the content of 6XX $2 has not been
   removed.

Sponsored-by: Ignatianum University in Cracow
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit bd43ebdc5e)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:47 +02:00
Tomas Cohen Arazi 036d940d54
Bug 39911: Remove redundant warn
Following the original test plan you notice, `THIS IS A TEST` is printed
twice:

* In the logs.
* In STDERR for the SIP server.

The latter is redundant, and also problematic for
`xt/author/pod_coverage.t` which fails the `no warnings` tests because
of that.

To test:
1. Run:
   $ ktd --shell
  k$ prove xt/author/pod_coverage.t
=> FAIL: Scary errors, lots of them
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass!
4. Follow the original bug test plan
=> SUCCESS: There's `THIS IS A TEST` in the logs, which was the author's
goal in the first place.
5. Sign off :-D
6. Visit bug 40144 :-P

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 9a4fd4facb)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:47 +02:00
Kyle M Hall 90aca69657
Bug 39911: Add POD
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 702d1d2792)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:46 +02:00
Jonathan Druart 970afe8950
Bug 38899: Fix cypress tests
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit b0ee8a675c)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:46 +02:00
Matt Blenkinsop 93bc71c36c
Bug 38899: Restore id attribute to the form
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 87a522e463)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:45 +02:00
Jonathan Druart f6cbcc7678
Bug 38899: Remove code duplication
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit b44c08eb4f)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:45 +02:00
Matt Blenkinsop c20792513d
Bug 38899: Improve HTML consistency
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 56eb4a6850)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:45 +02:00
Jonathan Druart 53fdcd4e2c
Bug 38899: Move the toolbar out of the form
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit f24e0d52e2)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:44 +02:00
Matt Blenkinsop cf18d97ca5
Bug 38899: (QA follow-up) Match buttons to patron toolbar
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 4fc93fee00)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:44 +02:00
Matt Blenkinsop fe6182ed90
Bug 38899: Add a cypress test
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 57bd44ae0f)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:43 +02:00
Matt Blenkinsop 4fe86bf009
Bug 38899: Add a sticky toolbar
This patch adds a sticky toolbar to the vendors form

Test plan:
N.B: This patchset will not work on a sandbox

1) Navigate to Acquisitions and click New vendor
2) The toolbar should appear at the top of the page underneath Add vendor
3) Scroll down, the toolbar should stick and be given the 'floating' class
4) Scroll back up and the toolbar should unstick and lose the 'floating' class

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 716980ce2f)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:43 +02:00
Laura_Escamilla a21d6166c9
Bug 40080: QA Follow-up - Code tidy-up based on QA tool feedback
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 9cdf597a83)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:42 +02:00
Martin Renvoize d0dc3ffd71
Bug 40080: Fix search position on course reserves page
This patch corrects the position of the table search box on the course
reserves details pages by warpping the presented table in a 'rows' class
div.

We also update the search box dom configuration in the datatable itself
to match that of other opac tables.

Test plan
1) Add some course reserves to a course
2) View that course on the OPAC
3) Note that the search box for the table is aligned to the top of the
   main section of the page and over to the far right almost off screen.
4) Apply this patch
5) Confirm that the display of the search box is now nested just above
   the table in the same location as the course reserves list page

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 32242f438a)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:42 +02:00
Kyle M Hall 7c06904612
Bug 39911: Trap DIE signals in SIP server
At some point our SIP server stopped logging fatal errors to either logs or standard error. We should restore this vital functionality.

Test Plan:
1) Apply the first patch which will cause the patron information request
   to fail
2) Stop the SIP server
3) Start it again with: perl /kohadevbox/koha/C4/SIP/SIPServer.pm /etc/koha/sites/kohadev/SIPconfig.xml
4) Trigger the failure with the following command:
   ./misc/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su koha -sp koha -l MPL --patron koha -m patron_information
5) Note "THIS IS A TEST" is not found in logs or stderr
6) Apply the second patch
7) Repeat steps 2-4
8) Note the error message is now visible from stderr at the command line
   and also in the SIP log

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit f214db14dd)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:42 +02:00
David Cook ce008cf965
Bug 40087: Fix t/Scrubber.t unit test
Remove "tag" and "staff" and add the missing "note"

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 1d10d8b8c9)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:41 +02:00
David Cook f72d9f2962
Bug 40087: Remove "tag" and "staff" scrubber profiles
This patch removes unused "tag" and "staff" scrubber profiles.

Test plan:
0. Apply the patch
1. prove t/Koha/Plugins/HtmlScrubber.t
2. prove t/Scrubber.t
3. Grep around the code for C4::Scrubber and make sure "tag"
and "staff" aren't used as arguments for C4::Scrubber

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit e846abeeb7)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:41 +02:00
Pedro Amorim 18daee91ff
Bug 39875: (QA follow-up): Correct historycheck ui_context
This ui_context is supposed to be opac, not staff.
For the purposes of these tests, this is not important, as the ui_context is
only needed for the template params and this is testing if the history check
stage is supposed to show or not.
Reckon this was a copy paste without consequences hence missed, but the code
is now semantically more correct.

prove t/db_dependent/Koha/ILL/Request/Workflow/HistoryCheck.t

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit dfd028871a)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:40 +02:00
Pedro Amorim ed3f66e0b8
Bug 39875: Dont show history check
Unless there is a cardnumber or an authenticated user

Test plan:
1) Apply only the the tests file highlighting the issue:
prove t/db_dependent/Koha/ILL/Request/Workflow/HistoryCheck.t
2) Notice it fails.
3) Apply this patch.
4) Run tests again. Notice it passes.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lin Wei Li <lin-wei.li@inLibro.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 6a0fcefa22)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:40 +02:00
Pedro Amorim 8cf43dc2f9
Bug 39875: Add tests
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lin Wei Li <lin-wei.li@inLibro.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit ae2e9e23de)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-06-22 23:48:40 +02:00