Commit Graph

58162 Commits

Author SHA1 Message Date
Martin Renvoize 780eb529c1
Bug 40022: Add the 25.11 release team
This patch updates the teams.yaml to include the voted in 25.11
release team.

Test plan
1/ Check against https://wiki.koha-community.org/wiki/Release_Teams

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-26 11:09:57 -06:00
Nick Clemens 3664281d37
Bug 39912: Update RealTimeHoldsQueue when hold pickup location is updated
When a hold's pickup location is changed we should rebuild the holds queue.

To test:
1 - Enable RealTimeHoldsQueue
2 - Enable LocalHoldsPriority where pickup library matches home library
3 - Place two biblio level holds on a bib with one item for two different patrons for delivery to a different library then the home library
4 - Check the queue - firstpatron should have priority
5 - Change the pickup location for the second hold to be picked up at the home library
6 - Check the queue, unchanged
7 - Change the pickup location back
8 - Apply patch, restart all
9 - Change the pickup location to the items home library again
10 - Check the queue
11 - Second patron has now been given priority

Signed-off-by: Michelle Spinney <mspinney@clamsnet.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-26 11:09:57 -06:00
Marcel de Rooy 0ed2b7cfa8
Bug 40242: Remove double operator in Quotes.pm
Test plan:
Read patch.
Run t/db_dependent/Koha/Quotes.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-26 11:09:56 -06:00
Marcel de Rooy 5493e212f6
Bug 39206: Modify koha-conf templates
Test plan:
Just read the patch.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-26 11:09:55 -06:00
Marcel de Rooy 221126f3dd
Bug 39206: Add an allowlist to Koha::CookieManager
This patch adds a bit more control to what CookieManager does by
adding a hardcoded allowlist of cookie names that are cleared at
logout. Allowing at the same time to add entries to that list by
using koha-conf <remove_cookie> lines or removing entries from the
hardcoded list by using <do_not_remove_cookie> lines.

The patch fixes the expiration of cookies that should be removed
by passing max-age 0.

Also it adds a theoretical path correction for always_show_holds but
since we do not clear that cookie, it is currently unused. This seems
to be the only Koha cookie where we use a longer path.

Test plan:
Run t/CookieManager.t

Go to OPAC, login, select a few OPAC search results and send them
to cart. This would create cookie bib_list. (Check dev tools.)

Logout from OPAC and check cookie in your browser dev tools. What
you see, depends on the browser. But the cookie should be either
gone or empty and expired (FF: Session).

Now add a <do_not_remove_cookie> line for bib_list in koha-conf.
Restart all. Repeat search, add to cart. Logout. Check again in dev
tools that bib_list is not empty, not expired.

Check out an item. And click on 'Always show checkouts...' on
the patron checkout form. This should create the cookie with
value DO. Logout from intranet. Check that cookie was not affected.
Now add a <remove_cookie> line for the following cookie:
issues-table-load-immediately-circulation. Restart all.
Login and logout from staff again. Check that cookie is empty
and expired, or just gone.

Bonus for devs: Create some custom cookie, and test keeping or
removing it similar as above.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-26 11:09:54 -06:00
David Nind a50409ebfa
Bug 39939: (follow-up) Fix terminology - syspref to system preference
Spell system preference in full, instead of syspref.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-26 11:09:54 -06:00
Owen Leonard 0a18a15f2c
Bug 39939: Cancel selected holds button on waitingreserves.pl is the same color as the background
This patch makes some minor changes to the "Holds awaiting pickup" page
so that the cancel buttons are clear and usable.

The patch also wraps the reference to the
TransferWhenCancelAllWaitingHolds system preference in a permission
check so that it can be linked to the preference when appropriate.

To test you should have some waiting holds in three categories:

1. Holds which have not been waiting longer than the number of days
   specified in the ReservesMaxPickUpDelay system preference.

2. Holds which have been waiting longer. I belive the only way to test
   this is to manually update the expiration date of an already waiting
   hold so that it is in the past.

3. Waiting holds which a patron has requested be cancelled. (Requires
   that the patron and hold are allowed according to the "Cancellation
   allowed" setting under Administration -> Circulation and fine rules
   -> Default waiting hold cancellation policy.
   - Log in to the OPAC as a patron who has a waiting hold. On the "Your
   summary" page, under the "Holds" tab, click the "Request to cancel"
   button for at least one of the waiting holds.

- In the staff interface, go to Circulation -> Holds awaiting pickup.
  - Under each tab, check the appearance of the "Cancel selected"
    buttons (and the "Cancel and transfer all" button under "Holds
    awaiting past..." tab).
- When testing as a user with system preference privileges, and the
  TransferWhenCancelAllWaitingHolds preference set to "Don't transfer,"
  the hint shown under the "Holds awaiting past..." tab should be linked
  to system preferences. A user without system preference privileges
  should not see a link.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-26 11:09:45 -06:00
Lucas Gass 0cc6dd250f
Bug 23010: DBRev 25.06.00.001
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:24 -06:00
Lucas Gass 9fefdd5674
Bug 23010: Adjust tests
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:24 -06:00
Emily Lamancusa 3096833130
Bug 23010: (QA follow-up) a few trivial fixes
- Update the dbrev to use say_success, and make dbrev and installer
  consistent
- Change error div in moredetail.tt from info to warning

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:23 -06:00
Lucas Gass 7a299a8114
Bug 23010: More unit tests
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:23 -06:00
Lucas Gass f14ab6ba9d
Bug 23010: Clean up try/catch in additem.pl
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:22 -06:00
Lucas Gass 3656abadad
Bug 23010: Remove JS added by mistake
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:22 -06:00
Lucas Gass 7bc9a02bd2
Bug 23010: Add tests for AutomaticItemModificationByAge
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:21 -06:00
Lucas Gass 316f8bc4b8
Bug 23010: Handle error in C4/Items.pm using try/catch
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:21 -06:00
Lucas Gass ccf4bc0626
Bug 23010: Report on count of items not modified via batchMod
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:20 -06:00
Lucas Gass c4acafe29b
Bug 23010: Update pref name to PreventWithdrawingItemsStatus
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:20 -06:00
Lucas Gass e5da98c353
Bug 23010: Fix file permission of atomicupdate
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:19 -06:00
Lucas Gass b035515d1a
Bug 23010: Add unit tests
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:19 -06:00
Lucas Gass 73505a73ec
Bug 23010: Handle error in updateitem.pl and template
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:18 -06:00
Lucas Gass b74dbf3d59
Bug 23010: Add ability to block withdrawning of items with certain statuses
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:18 -06:00
Lucas Gass 4e920be91f
Bug 23010: Add system preference PreventWithdrawingItemsStatus
To test:

1. APPLY PATCH, updatedatabase, and restart_all
2. Search for the system preference, PreventWithDrawingItemsStatus
3. Select both in transit and checked out, then save
4. Find an item and put it in transit.
5. Now from the item detail page, go to manage items > edit item
6. Using the item that was put in transit, attempt to change the status to withdrawn.
7. You should see an error at the top of the page 'In transit item cannot be withdrawn.' Make sure the item did not get marked as withdrawn.
8. Using a different item, do a checkout
9. Now from the item detail page, go to manage items > edit item
10. Using the checked out item, attempt to change the status to withdrawn.
11. vYou should see an error at the top of the page 'Onloan item cannot be withdrawn.' Make sure the item did not get marked as withdrawn.

12. Now, using the in transit item, go to the items tab. ( catalogue/moredetail.pl?biblionumber=x )
13. Under Statuses, attempt to withdraw the item.
14. You should see an error near the top of the page "Cannot withdraw item in transit".
15. Now, using the checked out item, go to the items tab. ( catalogue/moredetail.pl?biblionumber=144 )
16. Under Statuses, attempt to withdraw the item.
17. You should see an error near the top of the page "Cannot withdraw checked out item.".

18. Using both the in-transit and checked out item, attempt to modify the status through batchMod.
19. Ensure that the items are not being updated to withdrawn.

20. Turn off PreventWithDrawingItemsStatus system preferece.
21. Going through each of the steps again, except this time your items should successfully withdraw.

prove t/db_dependent/Koha/Item.t

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 16:10:09 -06:00
Baptiste Wojtkowski ce15eacc5e
Bug 38928: (QA follow-up)
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 15:56:43 -06:00
Pedro Amorim 8b0e4d3c15
Bug 38928: Handle rft_id or id
If a semicolon exists, the key should be what's before the semicolon, and its value, whats the after.
Otherwise, default to 'doi' as it was before.

To test:
1) Enable ILLModule.
2) Visit the following URLs
http://localhost:8080/cgi-bin/koha/opac-illrequests.pl?op=create&backend=Standard&openurl=1&genre=article&id=10.1016/j.cognition.2024.105913
http://localhost:8080/cgi-bin/koha/opac-illrequests.pl?op=create&backend=Standard&openurl=1&genre=article&id=doi:10.1016/j.cognition.2024.105913
3) Notice that in both cases, only the doi value '10.1016/j.cognition.2024.105913' should be present in the input.

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 15:56:43 -06:00
Owen Leonard faabb96519
Bug 38792: Rename "My virtual card" to "Library card" and move tab
This patch makes a number of changes to the "My virtual card" page and
associated menu item:

1. Rename it to "Library card." This fits better with the naming of
   other user pages. This change includes updates to the page title,
   breadcrumb menu, and page heading.
2. Move the menu item up to appear right after the "Summary" link.
3. Make some style changes to the display of the card, giving the card
   more comfortable padding and adding some responsive behavior to the
   card width.

To test, apply the patch and rebuild the OPAC CSS.

- If necessary, go to Administration -> System preferences and enable
  the OPACVirtualCard preference.
- Log in to the OPAC.
- You should see a "Library card" menu item in the left-hand sidebar
  menu, right below the "Summary" item.
- On the "Library card" page, the page title, breadcrumb item, and page
  heading should read "Your library card."
- The "card" should look good, and should adjust well at various browser
  widths.
  - Above 769px wide, the card should not expand wider than 500px.
  - Below 769px wide, the card should have a width of 100% and should
    adjust as the viewport is narrowed.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 15:56:42 -06:00
Lucas Gass 4636d813be
Bug 39411: Add cardnumber and dateexpiry to OPAC virtual card
To test:
1. APPLY PATCH
2. Enable  OPACVirtualCard
3. Login to the OPAC and visit the account page.
4. Click on 'My virtual card'
5. Notice that the cardnumber and expiratrion date are now listed.

Signed-off-by: Emmanuel Bétemps <e.betemps@gmail.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 15:56:42 -06:00
Paul Derscheid 138ad36592
Bug 40129: Always show the "Not finding what you're looking for" links in opac-results.tt
This patch simplifies the logic for displaying the "make a purchase
suggestion" and "interlibrary loan request" links on the OPAC search results page.

Previously, the visibility of the purchase suggestion link was tied to a
complex set of conditions evaluated in C4/Auth.pm, involving user login status and
permissions. This was unintuitive, as the authorization to make a
suggestion should be handled by the suggestions page itself
(opac-suggestions.pl), I think.

This patch alters the template (opac-results.tt) to check the
'suggestion' and 'IllModule' system preferences directly. If suggestions are allowed
system-wide or the master switch for the 'IllModule' is on, the links will be shown
shown to all patrons, regardless of login status.

To test:
1. Go to Administration > System Preferences > OPAC.
2. Ensure 'Suggestion' is set to 'Enable'.
3. Log out of the OPAC if previously logged in.
4. Perform a search that won't yield any results and verify
   the "Make a purchase suggestion" link appears on the results page.
5. Click the link and verify that you are prompted to log in.
6. Now set the 'AnonSuggestions' system preference to 'Allow'.
7. Make sure that the 'AnonmousPatron' borrowernumber is set to
   something other than 0 (is this right, though)?
8. Click the link and verify that you are able to make an anonymous
   suggestion.
9. Log in as a patron who is NOT allowed to make suggestions (check their
   patron category permissions).
10. Perform a search and verify the link is still visible.
11. Here we then get a 404, this should be handled more gracefully, but
    still in opac-suggestions.pl to not make opac-results dependent on
    a patron object. Ideas very welcome!
11. Go back to System Preferences and set 'suggestion' to 'Don't allow'.
12. Refresh the OPAC search results page.
13. Verify the "Make a purchase suggestion" link is now hidden for both
   anonymous and logged-in users.
14. This confirms the link's visibility is controlled solely by the
    'suggestion' system preference.
15. Now the simpler aspect of 'IllModule', first set everything related
    to suggestions back to defaults. Then set 'IllModule' to 'Enable'.
16. Make sure the link to place an "interlibrary loan request" is now
    shown for unauthenticated patrons as well.
17. Leave some comments regarding the unsolved issue in 11) or other
    problems that you might anticipate through this change.

I first thought this was trivial, but it is not :_D!

Signed off by: Esther Melander <esther@bywatersolutions.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 15:56:41 -06:00
Jonathan Druart be1729ed68
Bug 40161: (bug 38255 follow-up) Fix item type translation JS error
Uncaught (in promise) TypeError: table.row is undefined

We need to use the DataTable object.

Test plan:
Have several languages installed
Edit an item type and click "Translate into other languages" to open
the modal
Translate into another language and note that:
Without this patch you get a JS error in the browser console and the
row is not added to the table
With this patch applied the row is added correctly with your translation

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-06-24 15:22:55 -06:00
Tomas Cohen Arazi 8f90ac9d4e
Bug 40144: Get rid of `sip_cli_emulator.pl` warnings
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
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>
2025-06-24 15:22:55 -06:00
Tomas Cohen Arazi 46cc88acc3
Bug 23883: sip_cli_emulator.pl should display real parameter names
For creating this patch I looked at all parameters defined in the
handler mapping, removed duplicated ones and tracked down which ones
really were parameters in `GetOptions`. This included tracking down
variables that were later assigned other values and things like that.

The mapping is used to display the right parameter name if missing a
mandatory one.

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>
2025-06-24 15:22:54 -06:00
Baptiste Wojtkowski 34886a9b5b
Bug 40109: Fix path for fix_invalid_dates.pl in hint from search_for_data_inconsistencies.pl
Bug 31143 created a script in cronjob and then moved it to maintenance. However, it is still referred as in cronjob in help strings. This patch updates the hint.

No test needed I guess. Only changing a string

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>
2025-06-24 15:22:54 -06:00
Alexander Blanchard 448b9cd17e
Bug 39223: Fix the OPAC browse search (opac-browse.pl)
This fixes the OPAC browse search feature (OpacBrowseSearch
system preference, Elasticsearch only). Expanding and
collapsing the search results was not working.

Test plan:
1. Start up KTD using Elasticsearch; ktd --es7 up
2. Enable the OpacBrowseSearch system preference.
3. In the OPAC, click 'Browse search' (one of the
   options under the search box).
4. Search for 'a', for the search type use Author, then
   click Search.
5. Click on one of the search results - note that it doesn't
   expand to show the titles for the author.
6. Apply the patch.
7. Refresh the page and repeat steps 3 to 5. Note that the
   author section now expands andd collapses when clicked,
   and that the titles for the author are now shown.

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>
2025-06-24 15:22:47 -06:00
Owen Leonard 6b5a891cfb
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>
2025-06-24 07:50:58 -06:00
Jonathan Druart 90c2a53b99
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>
2025-06-24 07:50:58 -06:00
Jonathan Druart 561535503c
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>
2025-06-24 07:50:57 -06:00
Jonathan Druart 2d1c6b8666
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>
2025-06-24 07:50:57 -06:00
Pedro Amorim 227d1211fb
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>
2025-06-24 07:50:56 -06:00
Pedro Amorim 082274d157
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>
2025-06-24 07:50:56 -06:00
Pedro Amorim bd4f454716
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>
2025-06-24 07:50:55 -06:00
Pedro Amorim 197fa3ed04
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>
2025-06-24 07:50:41 -06:00
Pedro Amorim 585f66e07c
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>
2025-06-23 09:50:34 -06:00
Owen Leonard 6f147f4116
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>
2025-06-23 09:50:33 -06:00
Owen Leonard 0e43eed8c0
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>
2025-06-23 09:50:33 -06:00
Kyle M Hall ca1af51349
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>
2025-06-23 09:50:32 -06:00
Nick Clemens 7e9c897c03
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>
2025-06-23 09:50:32 -06:00
Kyle M Hall ee57c56eeb
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>
2025-06-23 09:50:31 -06:00
Jake Deery 3da91c5152
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>
2025-06-23 09:50:22 -06:00
Jonathan Druart 7668bf1ed5
Bug 39434: Tidy
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-06-19 09:21:19 +02:00
Tomas Cohen Arazi 1886165eae
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>
2025-06-13 13:21:43 -06:00
Tomas Cohen Arazi 235ecfca70
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>
2025-06-13 13:21:42 -06:00