Commit Graph

56930 Commits

Author SHA1 Message Date
Phil Ringnalda e1bf45c2ea
Bug 39409: Duplicate modifybiblio ids in cat-toolbar
The biblio details page Edit menu has three different elements which all
have id="modifybibilio", two of which also have another id. Neither of those
things is allowed.

Test plan:
1. Without the patch, load the details view for any biblio record and View
   source
2. Search for id="modifybiblio"
3. You will get three results, the second and third shown with id in red
4. Apply patch, reload the page, View source and search again
5. You will get one result, without any red

Sponsored-by: Chetco Community Public Library

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 8251e854d4)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 15:38:04 +02:00
Julian Maurice 9e1b923873
Bug 39298: (QA follow-up) Add missing html filter
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 45f8762c40)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 12:19:37 +02:00
David Cook 6b1d2440d8
Bug 39298: Add runtime parameter support to report templates
This change makes it so that you can provide runtime parameters
and use "Run with template".

Test plan:
0. Apply the patch and koha-plack --restart kohadev
1. Create a report template. For example:
<table>
<tr><th>Transformed Biblionumber</th></tr>
[% FOREACH row IN data %]
<tr><td>Biblionumber [% row.biblionumber %]</td></tr>
[% END %]
</table>
2. Create a SQL report with a runtime parameter. For example:
SELECT biblionumber
FROM biblio
WHERE biblionumber > <<biblionumber>>
3. Run the report using "Run with template"
4. Specify a biblionumber of 1
5. Click "Run the report"
6. Note that the output is the template output and not regular
SQL output

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 4daf0b7982)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 12:18:30 +02:00
Marcel de Rooy 714247f592
Bug 39226: (follow-up) Similar change for the cud-update branch
Resolve
DBIx::Class::Storage::DBI::insert(): Missing value for primary key column 'verification_token' on BorrowerModification

Test plan:
Update details for existing borrower.

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 7fb30a073e)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 12:16:25 +02:00
Marcel de Rooy e9b4a1da3d
Bug 39226: Add borrowernumber 0 when creating patron modification
Test plan:
Test with and without this patch. Verify that you see no warn with Missing
value for primary key column anymore in plack-opac-error.
Enable self registration.
Register a new patron.

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit c7bdbf937c)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 12:16:24 +02:00
Fridolin Somers 52cef274bd
Bug 39089: [24.11.x] Fix indenting
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 12:13:35 +02:00
Emily Lamancusa fc1e08119c
Bug 39089: (QA follow-up) Apply the same fix to from address and CC address
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 0ab24fd216)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 12:11:30 +02:00
Lucas Gass e000268121
Bug 39089: Do not show an email address when the tranport type is print
To test:
1. Set a overdue trigger for print notice
2. Set up an overdue to be captured by overdue_notices.pl
3. Make sure the patron has an email address
4. Run overdue_notices.pl
5. Run gather_print_notices.pl
6. Now go to the patron's notice page (members/notices.pl?borrowernumber=x)
7. Find the print row for the overdue just generated.
8. See that under the 'Delivery note' it says "To: test@test.com".
9. APPLY PATCH
10. Try again, you should now see no "To:" field when the transport type is print
11. Make sure that when the transport type is anything but print, you do see it.

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit fdc7a8eb4a)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 12:11:29 +02:00
Owen Leonard 7103751a10
Bug 38294: Fix layout of checkbox/label when editing search filters
This patch makes a minor markup change in order to improve the alignment
of controls for editing a search filter in the staff interface.

To test, apply the patch and make sure the SavedSearchFilters system
preference is enabled.

- In the staff client catalog, perform a search.
- At the top of the search results, click "Save search as filter".
- Fill out the form and save the search filter.
- Go to Administration -> Search filters.
- Click the "Edit search" button for your filter.
- You should be returned to the advanced search page and there should be
  an "Editing filter" form at the top. The "Show in OPAC" and "Show in
  staff interface" labels and checkboxes should be aligned neatly with
  the buttons in the toolbar.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit b390be07fd)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 12:05:44 +02:00
Nick Clemens 8fa13778c2
Bug 22458: Don't check for duplicate email on borrower self modification
This patch adds an extra variable to internal function CheckValidBorrower to set the
context as 'create' or 'update'

To test:
1 - Enable PatronSelfRegistrationEmailMustBeUnique
2 - Edit a patron in staff interface and set email to 'a@example.org'
3 - Open an incognito window and go to opac
4 - Self register a patron using email a@example.org
5 - You receive an error
6 - Use b@example.org for email
7 - No problem
8 - Sign in as the new patron
9 - Edit your information
10 - Set email to a@example.org
11 - You receive an error
12 - Apply patch, restart all
13 - Edit patron again
14 - No error!
15 - Register another patron on the opac
16 - Confirm still wanred if using a@example.org as the email

Signed-off-by: Allax Guillen <AGuillen@roseville.ca.us>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 5cf5811d01)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 11:08:39 +02:00
David Nind 5a8e5cefc4
Bug 31019: Fix broken links to UNIMARC field documentation
IFLA no longer provides field-level documentation pages for the UNIMARC
format (as at December 2024). It only provides:
- updates by year as individual PDFs (there may be multiple PDF updates
  for a field)
- a single consolidated PDF that is not yet endorsed by IFLA.

This patch updates the default UNIMARC field documentation links
to https://www.ifla.org/g/unimarc-rg/unimarc-updates/

It also:
- makes minor formating changes to improve consistency with the
  advanced editor:
  . the help link text is now [?], instead of ?
  . adds hover text for [?] - "Show help for this tag"
  . adds some additional spacing before the indicator fields
  . removes the '-' before the tag title
- updates the MarcFieldDocURL system preference description

Test plan:
1. Start up a Koha instance that uses UNIMARC (if using
   koha-testing-docker, change KOHA_MARC_FLAVOUR=unimarc in
   your .env file).
2. Set the EnableAdvancedCatalogingEditor system preference to "Enable".
3. Search for and edit any bibliographic record using the basic editor.
4. Click on the help text link (?) after any tag.
5. Note that you get an error:
   - Firefox: "The page isn’t redirecting properly"
   - Chrome-based browsers:
      "This page isn’t working
       archive.ifla.org redirected you too many times."
6. Switch to the advanced editor (Settings > Switch to advanced editor).
7. Click on a tag and then click the help link ([?]) at the bottom of
   the page.
   Result: You get the an error for the web page.
8. Switch back to the basic editor (Settings > Switch to basic editor).
9. Apply the patch.
10. Duplicate the tab and refresh the page for the record you
    were editing.
11. Click a help link for the basic editor - it now goes to a
    valid web page (https://www.ifla.org/g/unimarc-rg/unimarc-updates/).
12. Compare the basic editor page to the previously opened tab
    and note these differences:
    - the help link text is now [?], instead of ?
    - there is now hover text for [?]- "Show help for this tag"
    - there is some additional spacing before the indicator fields
    - there is no '-' before the tag title
13. Check that the page looks okay if the Settings > Show MARC
    tag document, and Show tags options are toggled off.
14. Switch to the advanced editor (Settings > Switch to advanced editor).
    If you click on the help link you now go to a valid web page.
15. View the updated description for updated MarcFieldDocURL system
    preference and check that it makes sense.
16. Enter a URL for the MarcFieldDocURL system preference, for
    example, https://example.com
17. Edit another record (using either the basic or advanced editor) and
    click the help link - it should take you to the web page you set for
    MarcFieldDocURL.
18. [Optional] Enter a custom URL pattern for the help documentation
    using {FIELD} (I don't know of any UNIMARC custom URL patterns).
19. Repeat the steps as appropriate for a MARC21 instance:
    19.1 Start up a MARC21 instance (change KOHA_MARC_FLAVOUR=unimarc
         on your .env file).
    19.2 The help links should take you to the Library of Congress MARC
         pages.
    19.3 Check that custom URL patterns continue to work, for example,
         use the Canadian custom URL pattern
         http://www.marc21.ca/MaJ/BIB/B{FIELD}.pdf
20. Sign off!

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Mathieu Saby <mathsabypro@gmail.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 9cebd54ab1)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 11:03:05 +02:00
Jonathan Druart 906f743a17
Bug 39346: Display all additional fields
getAll should call getAll, not get, or we lose the _per_page=-1
parameter.

Test plan:
Have more than 20 additional fields for agreements
Create and agreement:
=> Notice that with this patch, all the fields are displayed.

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 10:57:17 +02:00
Jonathan Druart fba6b70a67
Bug 39300: Fix quick edit of subfields
Searching tag$subfield in the framework should redirect to the edition
of the tag with the subfield tab selected.
This has been broken when we used the wrapper for tabs on bug 33178.

Test plan:
Edit a framework
http://localhost:8081/cgi-bin/koha/admin/marctagstructure.pl?frameworkcode=
Search for 952$c
=> You are redirected to the edition of 952 and the "c" tab is selected

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit b1efa3d71d)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 10:52:23 +02:00
Martin Renvoize 83ae6fce2e
Bug 39209: Set cookie consent bar as first focus
This patch updates the cookie consent javascript, when the feature is
enabled, to ensure that the cookie consent bar gets focused when it
displays.

Test plan
1) Enable the CookieConsent preference
2) Open any OPAC page
3) Hit 'tab' and note the display of 'Skip to main content'
4) Confirm that the cookie consent bar is displayed and continued 'tabs'
   eventually navigate to it
5) Apply this patch
6) Navigate to any OPAC page
7) Hit 'tab' and note that the 'Cookie consent' bar is focused, your
   keyboard navigation starts with the cookie consent buttons
8) Accept the essential cookies
9) Hit tab and note the focus is back to normal and shows the 'Skip to
   main content' button on first keyboard navigation.

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

Amended-by: Jonathan Druart
Run tidy.pl

Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 5426ae5bfd)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 10:47:29 +02:00
Owen Leonard 85fc58e0f3
Bug 31167: Only mark due dates in the past red on overdues report
This patch adds information about whether an entry in the overdue report
is overdue so we can style dates accordingly. We can't assume that each
result is overdue because the report can be changed to include all
checked out items.

To test, apply the patch and go to Circulation.

- Check out to a patron.
- Use the "Specify due date" option to check out some items with due
  dates in the past, due dates today, and due dates in the future.
- Go to Circulation -> Overdues.
- You should see the items which have due dates in the past. The date in
  the "Due date" column should be red text. The "Checked out on" date
  should be regular text.
- In the sidebar, check the "Show any items currently checked out"
  checkbox and submit the form.
- You should now see all the items you just checked out. Only the
  overdue items should show their due date in red.

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: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 207cb59241)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 10:44:15 +02:00
phette23 d31c063d84
Bug 39260: Fix typo in acquisitions baskets API docs
To test:
- Go to /api/v1/.html#op-get--acquisitions-baskets-managers
- See 'possibe' misspelling
- Apply patch and revisit
- Spelling is fixed

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 8bf9368d75)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 10:08:32 +02:00
Marcel de Rooy 40daccb7ae
Bug 39250: Add archive_purchase_suggestions.pl to cron.daily commented
It will be a commented line in the debian template and added also
in the crontab.example file.
As mentioned on BZ, the comment can easily be removed automatically
during Docker builds or startups etc.

Test plan:
Just read the patch. Nothing changes here actually.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 2d93ec69bd)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 10:03:06 +02:00
Marcel de Rooy f6ec642559
Bug 39213: Force scalar on query param barcode
Test plan:
Read the patch.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit b816c790c8)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 10:00:06 +02:00
Fridolin Somers 453a8d5951
Bug 38149: [24.11.x] Fix tidy of ERM/Main.vue and place_booking.js 2025-08-08 09:59:20 +02:00
Fridolin Somers fa8575c33c
Bug 38149: [24.11.x] Update yarn.lock
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-08 07:56:06 +02:00
Stefan Berndtsson 18ccd7dc07
Bug 39467: Fix patron "View restrictions" link in messages
Currently nothing happens when clicking the "View restrictions" link
in patron messages. Using the bootstrap api to open it resolves the
issue.

To test:
1) Go to a patrons details page, click "Restrictions" and add amanual
   restriction.
2) A message with a "View restrictions" link should appear.
3) Clicking this link does not open the "Restrictions" tab as it should.
4) Apply patch
5) Now this "View restrictions" link should open the "Restrictions" tab

Sponsored-by: Gothenburg University Library
Signed-off-by: Jesse Maseto <jesse@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 1c3bc68e9c)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-07 15:04:11 +02:00
Andrew Fuerste Henry cd11bd3e52
Bug 39258: Remove extra nonfunctional Delete button from report preview modal
To test:
1 - save a report
2 - click Preview SQL for that report from the Saved Reports page
3 - see there are two delete buttons
4 - apply patch, reload page
5 - now there is one delete button
6 - confirm that delete button gives a confirmation message and then deletes the report

7 - Install a second language for the intranet
8 - switch to that language and confirm you have just 1 delete button, it is translated, and it works

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 47647a687e)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-06 17:16:34 +02:00
David Cook bcf215eb46
Bug 39392: Fix typos in atomicupdate README
This just fixes some typos in the automicupdate README.
There's nothing to test. Just need to review it.

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Makes sense as far as I can tell.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 18ec3f5c86)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-06 17:14:22 +02:00
Petro Vashchuk a5d485a5ed
Bug 37832: Fix Rental discount to be decimal like other similar fields
Added decimal input_mode and pattern for "Rental discount (%)" so it functions same way as "Fine amount" or "Overdue fines cap (amount)" rules, allowing user to save decimals only.

1. Go to Circulation and fine rules page and save some gibberish into "Rental discount (%)", see that it allows you to do that.
2. Apply the patch, and try same thing again, this time it should only allow you to save decimal numbers.

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 143220d0c6)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-06 17:14:22 +02:00
Marcel de Rooy 6b1902b0b3
Bug 29410: Resolve warn on numeric ne for two dates
Simply, remove the !=0 test. Test for true.

Test plan:
Restart SIP.
Ask item info (SIP 17) on a waiting hold. It must have a
hold pickup date.
Check that warn disappears with this patch.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit f63feea8c6)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 15:07:37 +00:00
Kyle M Hall 722d2457f6
Bug 39214: Mock preferences in t/db_dependent/Koha/Session.t for subtest 'test session driver'
The "test session driver" unit test assume SessionStorage is set to MySQL and will fail if it is set to anything else. We should mock the values, and test the other supported values.

Test Plan:
1) Set SessionStorage to File
2) prove t/db_dependent/Koha/Session.t
3) Note test failure
4) prove t/db_dependent/Koha/Session.t
5) Tests pass!

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit b66ccc1258)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 15:07:37 +00:00
Emily Lamancusa 0f2bb78f66
Bug 39185: Don't add select option if priority is 0
To test:
1. Place several holds on a biblio record
2. Check in items from that record and confirm some (but not all) of the
    holds
3. View the current holds on that record
4. Click on the drop-down to change the priority of a hold
--> Note that the drop-down contains one or more "0" options - one for
    each in-transit or waiting hold
5. Apply patch and refresh the page
6. Click on the drop-down again
--> The drop-down now contains the correct options
7. Use the drop-down and the "Update holds" button to change hold
    hold priorities a few times
--> Confirm that the priority is updated correctly

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 6dee4899d6)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 15:07:36 +00:00
Baptiste Wojtkowski db864c5ac5
Revert "Bug 38770: Remove @vue/cli-service and babel"
This reverts commit 7d455fac3d.
2025-08-06 15:07:36 +00:00
Baptiste Wojtkowski 9e1e15d111
Revert "Bug 38770: Update yarn.lock"
This reverts commit 5d8a100f64.
2025-08-06 15:07:35 +00:00
Katrin Fischer 583af18e71
Bug 39374: DBRev 24.11.07.002
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 59ced52d8b)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-06 16:37:42 +02:00
David Cook 8dc32074ac
Bug 39374: Database changes
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit d53f82ce88)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-06 16:32:59 +02:00
David Cook 0dd9e87ec9
Bug 39374: Add feature to block sending of lists from OPAC
This change adds a system preference OPACDisableSendList which
disables the ability to send lists from the OPAC, and hides the
"Send list" link on the opac-shelves.pl page.

This is useful in situations where you do not want OPAC users to be
able to generate emails to arbitrary addresses with arbitrary comments.

Test plan:
0. Apply the patch and koha-plack --restart kohadev
1. Create a public list with at least one record and view it in the OPAC
2. Click "Send list" and note you can fill out boxes for "Email address"
and "Comment"
3. Change syspref OPACDisableSendList to "Don't allow" and click "Send list"
again
4. Note the popup window now says "You do not have permission to send this list."
5. Reload the list web page and notice "Send list" no longer appears on the toolbar
next to "Print list"

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 8e9a3d851d)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-06 16:32:58 +02:00
Martin Renvoize 1c86e7ed91
Bug 39447: Update mailmap to reflect PTFS-Europes rename
PTFS Europe is now officially Open Fifth

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>

Bug 39447: (follow-up) Corrections to existing mappings

I thought it worked through from top to bottom and thus the lower down
mappings would correct the higher up ones.. I was mistaken, thanks
Jonathan for pointing that out

Test with:

1. `git shortlog --summary --numbered --email | grep ptfs-e`
2. `git shortlog --summary --numbered --email | grep openfifth`

Amended-by: Jonathan Druart
Space adjustements

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit 38d9b0d110)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-06 16:32:58 +02:00
Katrin Fischer 1ff8bba972
Bug 39508: Add newly supported source codes to system preference description
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 807ba16eb1)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-06 16:32:57 +02:00
Janusz Kaczmarek f3fe5adbcd
Bug 39508: With OPACAuthorIdentifiersAndInformation, make ISNI and Wikidata identifiers be displayed correctly
At the current, when OPACAuthorIdentifiersAndInformation is on, ISNI
and Wikidata entries in authority 024 field generate empty bullets.

Test plan:
==========
1. Turn OPACAuthorIdentifiersAndInformation on for Identifiers.
2. Edit an authority record adding 024 field(s) for wikidata / ISNI,
   e.g.:
   024 7_ $a 0000000120967858 $1 https://isni.org/isni/0000000120967858 $2 isni
   024 7_ $a Q859 $1 http://www.wikidata.org/entity/Q859 $2 wikidata
3. Go to a linked bibliograohic record in OPAC and see the 'Author
   information' tab. There should be empty bullets under author's
   name.
4. Apply the patch ; restart_all
5. Repeat p. 3. The bullets should be followed by a description and
   link.

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 658d2fe0d8)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-06 16:32:57 +02:00
Katrin Fischer 4ee083b3c2
Bug 38794: DBRev 24.11.07.001
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-08-06 14:19:53 +00:00
Nick Clemens 658826f67c
Bug 39186: Update styling of Cancel marked holds button
This patch adds btn and btn-primary classes

To test:
1 - Place a hold for a patron
2 - View the patron's record in staff interface
3 - CLick the holds tab
4 - Note 'Cancel marked holds' is gray, other buttons are yellow
5 - Apply patch
6 - Reload, button is yellow

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 70cb30ee6e)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 14:06:44 +00:00
William Lavoie 068fc6dfb5
Bug 39035: Adding print media query to hide cookie permissions
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 20587212a3)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 14:06:26 +00:00
Matthias Meusburger 3f33506873
Bug 38658: Display message for expired patrons in SIP when NotifyBorrowerDeparture is disabled
This patch restores the behavior that existed in SIP before Bug 25813 - Enhance patron expiration in SIP display:
Always consider an expired patron as expired, even if NotifyBorrowerDeparture is set to 0 (disabled) or unset.

Test plan:

 - Set NotifyBorrowerDeparture to 0

 - Set a patron's expiry date to be in the past

 - Use misc/sip_cli_emulator.pl to display patron information:
   perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL -t CR --patron <cardnumber> -m patron_information

 - Check that you have the following message (AF field):
 "Greetings from Koha. Your account has expired as of <expired date>"

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 47c3527af3)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 14:06:00 +00:00
David Cook 379ff3a443
Bug 39144: Remove second call to opac.css
This change removes an unnecessary second call to opac.css on
the opac-virtual-card.pl page.

Test plan:
1. Set OPACVirtualCard syspref to Allow
2. Add an obvious change to OPACUserCSS syspref ( body {background-color: pink;} )
3. Switch to the OPAC, notice the CSS is in effect
4. Log in and go to 'Your account' then 'My virtual card' from the menu on the left
5. Notice the custom CSS affects the virtual card page too

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit c217ad2f25)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:46:31 +00:00
Katrin Fischer 5d8a100f64
Bug 38770: Update yarn.lock
Also includes changes from bug 38149.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 7469403a01)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:45:50 +00:00
Victor Grousset/tuxayo 7d455fac3d
Bug 38770: Remove @vue/cli-service and babel
And the webpack related dead config.

Test plan:
1. Do not apply
2. Switch to node 22
     sudo sed 's/18.x/22.x/g' -i /etc/apt/sources.list.d/nodesource.list
     sudo apt update ; sudo apt install nodejs
3. Try to install node deps
     sudo yarn install --modules-folder /kohadevbox/node_modules
4. It fails
     error @achrinza/node-ipc@9.2.5: The engine "node" is incompatible with this module.
     Expected version "8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18". Got "22.12.0"
5. Apply patches
6. Try to install node deps
     sudo yarn install --modules-folder /kohadevbox/node_modules
7. It works! :)

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 4dbe67f6f2)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:45:50 +00:00
Baptiste Wojtkowski 50d8168ac1
Bug 39148: Correct sort by publicationdate in OPAC lists
Test plan (UNIMARC):
1 - Create a list with different publicationdates, chose to sort it by
  copyright gate
2 - Go to the list in the OPAC -> it is not correctly sorted
3 - Pick sort order: copyright date -> not correctly sorted
4 - Apply patch
5 - Retry 2&3 and see it works

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit e398743e06)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:38:38 +00:00
Baptiste Wojtkowski bd41df01a0
Bug 39124: In lists dropdown, the option "view all" is always displayed
In the code of the OPAC, the "Lists" dropdown menu is supposed to
display max. 10 lists and display a button "view all" if there are more
than 10 lists.

The button "view all" is always displayed and it is weird when there
are few lists because "Public lists" and "Your lists" do the same.

Test plan:
1 - On an OPAC with less than 10 public lists and 10 private lists,
    navigate to /cgi-bin/koha/opac-shelves.pl, click on the dropdown see
    there is a view all button for both types of lists
2 - APPLY PATCH
3 - Repeat 1, notice the buttons disappeared
4 - Create lists so there are >10 public and >10 private lists
5 - Repeat 1, notice the buttons reappeared

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 88a292af36)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:36:51 +00:00
Owen Leonard e46b444ac0
Bug 39078: Fix incorrect variable checks in course reserve details template
This patch adds some variable checks and corrects some others so that
the course reserve detail template doesn't show empty parentheses.

To test, apply the patch and create a course if necessary.

- Add an item to the course.
- After submitting a barcode, check the checkbox next to each option and
  select a different value (item type, collection, etc.).
- View the course details and check the columns for the fields you
  changed. They should display the correct information:
  "Updated field value (Original field value)"
- Add another item but this time don't change any options. The
  information should be display as:
  "Unchanged (Original field value)"
- There should be no instances where it looks like:
  "Field value ()"

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: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 753659589a)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:36:13 +00:00
Nick Clemens a098e0079a
Bug 39038: Grep for exact matches for collapsed fields
This patch splits the CollapseFieldsPatronAddForm system preference
into a list in the template and then uses grep to find exact matches
for each field.

Test plan:
1. Edit CollapseFieldsPatronAddForm system preference and
   check the Non-patron guarantor and a few other fields, but
   not Guarantor.
2. Go to add a patron that can have a guarantor.
3. Note both guarantor fields are collapsed.
4. Apply patch, reload/
5. Note only expected fields are collapsed.
6. Confirm other fields continue to work as expected.

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit c6c36aa870)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:31:20 +00:00
Janusz Kaczmarek 6b17dd001d
Bug 39012: Koha fails to import default MARC bibliographic framework
Test plan:
==========
1. In Administration > MARC bibliographic, from framework  menu on the
   right, prepare a csv file with framework export.
2. Try to import the fili into Default framework.
3. This should fail, with a redirect to a strange looking page, and
   with lots of errors in the logs.
4. Apply the patch ; restart all.
5. Repeat p. 2. You should succeed and you should be able to see the
   differences in the framework (if you exported from a different
   framework).

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 82707f469e)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:27:58 +00:00
Owen Leonard ffcc2a5a9f
Bug 39053: Add page-section div to reports results pages
This patch adds a "page-section" wrapping div around reports results
pages where it is missing.

Note: This patch contains indentation changes.

To test, apply the patch and test the following reports, confirming that
the results page looks correct:

- Patrons with the most checkouts
- Acquisitions statistics
- Patrons with no checkouts
- Patrons statistics
- Most-circulated items
- Catalog statistics
- Average loan time
- Circulation statistics
- Lost items
- Catalog by item types
- Holds statistics

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: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit bf1e45e490)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:27:22 +00:00
Tomas Cohen Arazi 38460cbd40
Bug 35246: Make Koha::Biblio->to_api throw relevant exception if no biblioitem row
This patch makes the `to_api()` method return an proper exception when
the `$self->biblioitem` accessor returns `undef`. This is a bad data
scenario and we could do better in terms of logging the situation.

The new exception will be correctly rendered in the logs by the
`unhandled_exception` Mojolicious helper and no behavior change on the
API.

I wasn't sure to keep the api tests I wrote. I originally added handling
for the specific exception in the controller, but it become obvious it
was not worth: too much code, the `GET /biblios` endpoint would need the
same treatment, etc. And the current `500 Internal server error` is good
enough as a response, and the logs explain the situation correctly.

To test:
1. On a fresh `KTD` pick a biblio (say biblionumber=1)
2. Use your favourite REST tool (Postman?) to access the record with
   `Accept: application/json`. i.e.

```
GET kohadev.localhost/api/v1/biblios/1
Accept: application/json
```

=> SUCCESS: All good
3. Delete the related `biblioitems` row:
   $ ktd --shell
  k$ koha-mysql kohadev
   > DELETE FROM biblioitems WHERE biblionumber=1; \q
4. Repeat 2
=> SUCCESS: You get a 500 error
5. Check the logs
=> FAIL: You get a cryptic message about accessing a method on an
undefined object:

```
2025/02/13 13:15:00] [ERROR] GET /api/v1/biblios: unhandled exception (Mojo::Exception)<<Can't call method "to_api" on an undefined value at /usr/share/koha/Koha/Biblio.pm line 1433.>>
```

6. Apply this patch
7. Restart things:
  k$ restart_all
8. Repeat 2
=> SUCCESS: You get a 500 error
9. Check the logs
=> SUCCESS: You get a more meaningful exception:

```
[2025/02/13 13:20:00] [ERROR] GET /api/v1/biblios/1: unhandled exception (Koha::Exceptions::RelatedObjectNotFound)<<Exception 'Koha::Exceptions::RelatedObjectNotFound' thrown 'The requested related object does not exist' with accessor => biblioitem, class => Koha::Biblioitem>>
```

10. Run the tests:
  k$ prove t/db_dependent/Koha/Biblio.t \
           t/db_dependent/api/v1/biblios.t
=> SUCCESS: They pass!
11. Sign off :-D

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 03ae61e9f8)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:25:37 +00:00
Tomas Cohen Arazi c2b6c757e6
Bug 35246: Unit tests
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit b2215edce1)
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
2025-08-06 13:25:36 +00:00