Commit Graph

58581 Commits

Author SHA1 Message Date
Pedro Amorim a4484edbde
Bug 35604: ILL request creation with AutoILLBackendPriority enabled
Sponsored-by: NHS England
Sponsored-by: PTFS Europe Ltd
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:05 +02:00
Pedro Amorim 87a020be63
Bug 35604: atomicupdate
Sponsored-by: NHS England
Sponsored-by: PTFS Europe Ltd
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:04 +02:00
Pedro Amorim bb2c069874
Bug 35604: New AutoILLBackendPriority sys prefs
Sponsored-by: NHS England
Sponsored-by: PTFS Europe Ltd
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:04 +02:00
Pedro Amorim e10e0c8f05
Bug 35604: New 'ill-backends' syspref type
UI rendering of sortable ILL backends

Sponsored-by: NHS England
Sponsored-by: PTFS Europe Ltd
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:03 +02:00
Pedro Amorim a74be1de72
Bug 35604: New Backends.pm class. installed_backends method
Sponsored-by: NHS England
Sponsored-by: PTFS Europe Ltd
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:03 +02:00
David Cook 18ec3f5c86
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>
2025-04-14 08:51:02 +02:00
Julian Maurice 591d6abc1b
Bug 32877: Fix cataloguing/value_builder/upload.pl
Remove unnecessary call to event.preventDefault

This is part of the refactoring happening in bug 30975

Test plan:
1. Verify that the plugin continues to work as before

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:02 +02:00
Janusz Kaczmarek b19a9b3f40
Bug 39559: YY is not interpreted as a default value for authorities
Strings as YYYY, MM, DD put as part of default value for authorities
are interpreted as year (four digits), month and day. YY is missing
(two digits year).  BTW, for bibliographic records it is <YYYY>, <YY>,
<MM>, <DD> (in Koha/UI/Form/Builder/Biblio.pm).

Test plan:
==========
1. Edit an authority framework of your choice
   (/cgi-bin/koha/admin/authtypes.pl), inserting a default value that
   contains YY for a known field.
2. Create a new authority record of the chosen type. Control the field
   for which a default value was defined. You should see YY.
3. Apply the patch ; restart_all.
4. Repeat p. 2. There should be a current year (two digits, like '25')
   in place of YY.

Signed-off-by: esther <esther@bywatersolutions.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:01 +02:00
Phil Ringnalda 2f701d50d5
Bug 31323: Don't highlight an item when it isn't being edited
The thing that tells us whether we are editing an item or adding a new item
in additem.tt is whether or not the op is cud-saveitem: if it isn't, the
heading on the form is 'Add item', if it is it's 'Edit item', and the same
for which set of buttons are at the bottom of the form. We should check that
before deciding to highlight an item as being edited, rather than just counting
on the script to not pass an itemnumber param unless that itemnumber is being
edited.

Test plan:
1. Without the patch, find any biblio with one or more items attached
2. Click the Edit button for an item in the holdings table
3. Scroll up, and verify that the item you are editing has a yellow background
   in the list of items
4. Click Save changes (no need to make any changes)
5. When the page reloads, you'll have an Add item form at the bottom, but the
   item that you just edited, and are no longer editing, will have a yellow
   background
6. Apply patch, return to the bib details page
7. Repeat steps 2-4, but this time verify that the item you just edited is now
   not highlighted while you have an Add item form.

Sponsored-by: Chetco Community Public Library
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:01 +02:00
Phil Ringnalda bcc6c2175a
Bug 39570: Add item form includes itemnumber while adding a new item
Because the template uses the wrong op, add_item rather than cud-additem, to
decide whether to include a hidden input with the itemnumber, if you edit an
item and then add another item you wind up submitting a form that includes the
previous itemnumber when you add a new one. Nothing happens, because the code
for adding an item doesn't look at $input->param('itemnumber'), but since it
doesn't mean anything we shouldn't be submitting it.

Test plan:
1. Without the patch, find any biblio with at least one item attached, and
   in the items table click Edit item on one of them
2. Without needing to making any changes, click Save changes
3. In the page that loads, scroll down to the bottom of the Add item form,
   right-click the Add item button, and choose Inspect
4. A few lines up, above a '<fieldset class="action">,' there will be an
   '<input type="hidden" name="itemnumber" value="633">' with the itemnumber
   of the item you previously edited
5. Apply patch
6. Scroll up, click Actions - Edit on any item, then Save changes
7. Again, right-click the Add item button, Inspect, note that there isn't a
   itemnumber input with the number of the item you previously edited

Sponsored-by: Chetco Community Public Library
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:51:00 +02:00
William Lavoie ba2ec1d202
Bug 39596: Adding labels in the staff interface
Test plan:

1. Go to Administration > MARC Bibliographic framework
2. On the right side of the default framework, click on "Actions" >
   "MARC Structure"
3. Search for field 780
4. Click on "Actions" > "Edit subfields"
5. Click on the "t" tab
6. Check "Editor" under the "Visibility" section
7. Click on "Save Changes"
8. Repeat steps 1 to 7 for field 785$t
9. Have or create a record with a value for 780 and 785 with the first
   indicator at 0 and the other left empty
10. Look at the record on the staff interface and the OPAC
11. Notice that in Normal View, the values entered for 780 and 785 do
    not have labels
12. Apply the patch
13. There are now labels in the staff interface and the OPAC

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>
2025-04-14 08:51:00 +02:00
William Lavoie a3bfa55919
Bug 39596: Adding a label when the second indicator of MARC 780/785 is void
Test plan:

1. Go to Administration > MARC Bibliographic framework
2. On the right side of the default framework, click on "Actions" >
   "MARC Structure"
3. Search for field 780
4. Click on "Actions" > "Edit subfields"
5. Click on the "t" tab
6. Check "Editor" under the "Visibility" section
7. Click on "Save Changes"
8. Repeat steps 1 to 7 for field 785$t
9. Have or create a record with a value for 780 and 785 with the first
   indicator at 0 and the other left empty
10. Go see the record on the OPAC
11. Notice that in Normal View, the value entered for 780 and 785 do not
    have labels
12. Apply the patch
13. There are now labels

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>
2025-04-14 08:50:59 +02:00
Katrin Fischer 52a17d3a30
Bug 37934: DBRev 24.12.00.022
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:59 +02:00
Katrin Fischer c1356f4667
Bug 37934: Extend data types for customer ID, requestor ID, and API key for ERM data providers
This changes the datatype of customer ID, requestor ID, and API key
from limited varchar to text to accustom for longer values.

To test:
* Apply the patch
* Run updatedatabase (a sandbox will do this automatically)
* Activate the ERM module in the system preferences (ERMModule)
* Go to E-ressource management > Data providers > New data provider
* Make sure you can enter values longer than 265 in the fields named
  above and that they are stored correctly.

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>
2025-04-14 08:50:58 +02:00
Katrin Fischer b25ae318c3
Bug 38729: DBRev 24.12.00.021
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:58 +02:00
Janusz Kaczmarek a3e54b408d
Bug 38729: Unit tests
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:57 +02:00
Janusz Kaczmarek c0fc7eae32
Bug 38729: Linker should consider diacritics
Currently, Koha linker does not pay attention to the diacritics while
linking--the decision about linking is taken based on the results of
search in the search engine (be it Zebra or Elasticsearch) which are
diacritics insensitive.  As a consequence, "Brückner, Karl" could be
erroneously linked to "Bruckner, Karl", in case when "Brückner, Karl"
did not exist in the authority file, or no link would be made in case
when both "Brückner, Karl" and "Bruckner, Karl" existed in the authority
file and LinkerModule is set to 'default'.

Test plan:
==========

1. Make sure that LinkerModule system preference is set to default.
2. Create an authority record of type PERSO_NAME with a name containing
   diacritics (e.g. "Brückner, Karl" , or "Rąkowski, Albin" etc.).
3. Edit an existing or create a new bibliographic record and put in a
   personal name field (100, 600, 700) that name without diacritics.
4. Click "Link authorities automatically" -- the two different names will
   be linked, which is wrong.
5. Create a second authority record with name form exactly from the
   bibliographic record (without diacritics).
6. Edit an existing or create a new bibliographic record and put in a
   personal name field (100, 600, 700) the name without diacritics.
7. Click "Link authorities automatically" -- you should get a message
   "More than one local match found. Possibly a duplicate authority!".
8. Apply the patch ; updatedatabase ; restart_all
9. Set the LinkerConsiderDiacritics systempreference to 'Do'.
10. Choose another name pair with and without diacritics. Repeat p. 3-4.
    The bibliographic field should not be linked this time.
11. With the new pair, repeat p. 5.-7.  The bibliographic field should
    now be correctly linked.

Sponsored-by: Ignatianum University in Cracow
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:57 +02:00
Janusz Kaczmarek a224711e77
Bug 38729: Add new systempreference 'LinkerConsiderDiacritics'
Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:56 +02:00
Tomas Cohen Arazi f69aab3735
Bug 39397: 'biblio' attributes take precedence over 'biblioitems' in response
This patch swaps biblio for biblioitem attributes in the return value.
The effect is that attributes from the `biblio` table overwrite those
named the same (`timestamp` being the target).

To test:
1. Apply the regression tests patch
2. Run:
   $ ktd --shell
  k$ prove t/db_dependent/api/v1/biblios.t
=> FAIL: The biblioitems.timestamp is returned!
3. Apply this patch
4. Repeat 2
=> SUCCESS: Things go smooth now
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jesse Maseto <jesse@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:55 +02:00
Tomas Cohen Arazi 419d708666
Bug 39397: Regression tests
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jesse Maseto <jesse@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:55 +02:00
Jonathan Druart e1cbc7780a
Bug 39315: (bug 38108 follow-up) Add Cypress tests
1. We move from const to var so that we can modify the value of the
variable from the Cypress tests.

2. Also remove win.libraries_map as it seems that our code is no longer
failing if it's missing (we added more checks I guess)

3. Improved selectors for the show/hide filters links
-                    cy.get(".hide_filters").click();
+                    cy.get(`.${table_id}_table_controls .hide_filters`).click();

Test plan:
Both commands should pass
 yarn cypress run --spec t/cypress/integration/PatronSearch_spec.ts
 yarn cypress run --spec t/cypress/integration/t/mockData.ts

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:54 +02:00
Jonathan Druart cb384b2a1c
Bug 39315: MockData - generate full objects for libraries and item types
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:54 +02:00
Jonathan Druart d3ae289b0f
Bug 39315: Move holdings Cypress tests to a separate file
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:53 +02:00
Jonathan Druart 8d30b2aa28
Bug 39315: Move KohaTable cypress tests to a separate directory
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:53 +02:00
Martin Renvoize 8ca6245a38
Bug 39011: (follow-up) JSDoc
Add some initial JSDoc for the enhancments to datatables we introduce
here.

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:52 +02:00
Jonathan Druart 4fcff9db9e
Bug 39011: Apply the pre-process to column filters
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:52 +02:00
Jonathan Druart c67130078b
Bug 39011: Pre-process coded values when building the query
When a column contains authorised/coded values, it is not possible to
search on the description. It is confusing for the user as the
description is the value displayed in the table.

We have discussed this already on bug 38130 and decided to fix the
problem by doing a new SQL join. But this can lead to performance
issues, especially for tables like the items table where a lot of coded
values are displayed.

This patch suggests to do a pre-processing step, before the query is
sent, to let the client build the query it needs.

An alternative approach would be to do the same job server-side, and
allow this kind of processing for all the attributes with a object using
columns_to_str. But we will certainly reach performance problems.

This is still not perfect, but it's fixing a regression quite easily,
and will open the door to more fixes for tables using coded values.

This patch revert one we have done on bug 38130, and use this new
mecanism for home library, holding library, item type and collection
code.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-14 08:50:51 +02:00
Andrew Auld f201ea5076
Bug 39543: Error modal when trying to add two controlling licences to an agreement duplicates error message
If you try to add two licences with the status 'controlling' to an
agreement record, the error modal duplicates the error message
'Only one controlling license is allowed'.

Test Plan:
1) Enable ERMModule sys pref
2) Add an agreement record
3) Add two licence records
4) Edit the agreement record and associate both license records to the agreement
5) Try to set both licenses to status 'controlling'
6) Note error modal duplicates the error message 'Only one controlling license is allowed'
7) Apply the patch, run yarn js:build and then hard refresh the browser
8) Repeat steps 1 to 5 and enjoy the single error message!

Signed-off-by: Magnus Enger <magnus@libriotech.no>
I took the liberty of fixing up the commit message a bit.
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:45 +02:00
Owen Leonard 33496ed4e4
Bug 39404: Update Cart control to say "Add to list" for consistency
This patch update the template for the cart in both the staff interface
and OPAC so that the control for adding an item in the cart to a list.

To test, apply the patch and log in to the OPAC.

- Perform a catalog search in the OPAC which will return multiple
  results.
- From the search results page, check checkboxes next to multiple
  results and click "Add to cart."
- Open the cart by clicking the "Cart" link at the top of the page.
- In the cart popup, you should see "Select titles to:" You should see a
  button labeled "Add to list."
- Perform the same test in the staff interface.

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:45 +02:00
Phil Ringnalda 8251e854d4
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>
2025-04-11 09:52:44 +02:00
Andrew Fuerste Henry 47647a687e
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>
2025-04-11 09:52:44 +02:00
Owen Leonard b390be07fd
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>
2025-04-11 09:52:43 +02:00
Jonathan Druart 1b5041046f
Bug 39350: (bug 38664 follow-up) Restore language selector for Vue.js module
ERM and Preservation modules have lost the language selector during the
tidy work.
There has been a closing div added to the "home" files, which broke the
HTML structure.

Test plan:
Have more than one language selected for StaffInterfaceLanguages.
Go to the ERM and Preservation module and confirm that with this patch
applied the language selector menu is displayed.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:43 +02:00
Jonathan Druart 78d24e08b5
Bug 39368: Remove warnings from t::lib::Mocks::Zebra
because of statement after exec we get:
 #     Previous test 1217 'POD coverage for t/lib/Mocks/Logger.pm'
 #     Statement unlikely to be reached at /kohadevbox/koha/t/lib/Mocks/Zebra.pm line 119.
 #  at /kohadevbox/koha/t/lib/Mocks/Zebra.pm line 119.
 #       require t/lib/Mocks/Zebra.pm called at (eval 4894) line 1
 #       eval ' require t::lib::Mocks::Zebra ' called at /usr/share/perl5/Pod/Coverage.pm line 308
 #       Pod::Coverage::_get_syms(Pod::Coverage=HASH(0x569d3a0bbf50), "t::lib::Mocks::Zebra") called at /usr/share/perl5/Pod/Coverage.pm line 152
 #       Pod::Coverage::coverage(Pod::Coverage=HASH(0x569d3a0bbf50)) called at /usr/share/perl5/Pod/Coverage.pm line 209
 #       Pod::Coverage::naked(Pod::Coverage=HASH(0x569d3a0bbf50)) called at xt/author/pod_coverage.t line 40
 #       main::check_pod_coverage("t/lib/Mocks/Zebra.pm") called at xt/author/pod_coverage.t line 30

Test plan:
Run `prove xt/author/pod_coverage.t` and confirm that the tests pass
with this patch applied.
Also confirm that t/db_dependent/www/search_utf8.t still passes

Note that xt/author/pod_coverage.t is coming from bug 39367.

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Tested on top of bug 39367. Patch makes the mentioned tests pass.
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:42 +02:00
Emily Lamancusa f3080cbe5b
Bug 39400: (QA follow-up) Adjust link text
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:42 +02:00
Phil Ringnalda fcf705e2e3
Bug 39400: "Jump to add item form" doesn't work while editing an existing item
The link at the top of the item editor page to "Jump to add item form"
tries to scrollIntoView the element with id="additema", but that element
only exists while you are adding a new item. While you are editing an
existing item, it is replaced by an element with id="edititem".
Whichever element you have at the moment is always just below the form
with id="f", so we can just scroll that into view instead.

Test plan:
 1. Without the patch, go to the details page for any bib record with at
    least one item, and click the Edit button on the row for an item in
    the holdings table.
 2. You should be scrolled down to the form for editing that item
 3. Scroll up to the top of the page, click the Jump to add item form
    link
 4. You will not be scrolled back down to the form
 5. Apply patch, shift+reload page
 6. Now the link should scroll you back down to the form
 7. Return to the biblio details page, click Edit - Manage items and
    verify that the Jump to add item form link still works when you are
    not editing an existing item
 8. Click the Add multiple copies of this item button and add 30 items
 9. Make sure that the link still scrolls the form into view both while
    you are editing an existing item, and while you are adding a new item

Sponsored-by: Chetco Community Public Library
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:41 +02:00
Marcel de Rooy 7fb30a073e
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>
2025-04-11 09:52:41 +02:00
Marcel de Rooy c7bdbf937c
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>
2025-04-11 09:52:40 +02:00
Lucas Gass db44d917ef
Bug 39307: Check to make sure there is a document.referrer
To test:
1. Navigate to circ/circulation.pl?borrowernumber=X
2. See the console error `document.referrer.split(...)[1] is undefined`
3. Go to circ home circ/circulation-home.pl and search for a patron
4. See the console error when you select a patron or are taken directly to them
5. APPLY PATCH
5. JS error should be gone in both instances

squash

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:40 +02:00
Jonathan Druart 8ea3785f0f
Bug 38440: Remove useless handling of .dt_button_clear_filter
There is only one occurrence in the whole codebase, we should not
handle the behaviour of this "clear filter" button outside of
datatables.js

Test plan:
Go to Additional content
Use the form on the left side of the page, confirm that the table is
filtered when a new keyword is entered
Notice that the global search of the table is filled in with the keyword
"Clear filters" should reset both inputs, and redraw the table

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>
2025-04-11 09:52:39 +02:00
Janusz Kaczmarek 70e43a0553
Bug 39544: New > New record generates warnings in log
When creating a new record starting from Normal records view, by using
New > New record warnings in the log will be generated like:

[2025/04/03 12:45:33] [WARN] Use of uninitialized value $frameworkcode
in string eq at /kohadevbox/koha/cataloguing/addbiblio.pl line 513.

Test plan:
==========
1. In staff interface, open any record in Normal view.
2. From upper menu chose New > New record.
3. Check the plack-intranet-error.log file, you should see fresh
   warnings with "Use of uninitialized value $frameworkcode".
4. Apply the patch ; restart_all.
5. Repeat p. 1.-3. No new warnings.

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:39 +02:00
Nick Clemens 5cf5811d01
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>
2025-04-11 09:52:38 +02:00
Katrin Fischer c969fad2c2
Bug 39188: Update yarn.lock
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:38 +02:00
Victor Grousset/tuxayo 2b9eb2be18
Bug 39188: Fix ESLint by Updating "globals" node package
According to the main dev of ESLint, we should add it to devDependencies
because we are the ones calling globals from eslint.config.mjs:
https://github.com/eslint/eslint/issues/19209#issuecomment-2518452107

Test plan:
1. run: eslint ./koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementsFormAdd.vue
2. TypeError: Key "languageOptions": Key "globals": Global "AudioWorkletGlobalScope " has leading or trailing whitespace
3. :(
4. Apply patch
5. sudo yarn install --modules-folder /kohadevbox/node_modules
6. run: eslint ./koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementsFormAdd.vue
7. eslint output a report about the issues found in the file
8. signoff :D

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:37 +02:00
Julian Maurice 45f8762c40
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>
2025-04-11 09:52:36 +02:00
David Cook 4daf0b7982
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>
2025-04-11 09:52:36 +02:00
Martin Renvoize e1372bacdf
Bug 39410: Use shadowDOM for notice display modal
This patch updates the notice display modal found in the members > notices
page to use a shadowDOM to more accurately display notices matching how
they should display for patrons in their email clients or when printed.

Test plan
1) We can use the 'WELCOME' print notice introduced in bug 38087 as it
   includes Bootstrap classes for display.
2) Navigate to the 'Henry' user in KTD and use the 'More > Send welcome
   notice' option to trigger a print notice.
3) Navigate to the 'Notices' tab for the 'Henry' user and click on the
   notice title to trigger the display modal.
4) Note the well formatted notice with an address block on the right and
   some sections in bold.
5) Apply this patchset
6) Display the notice again as in step 3 and note that the foratting is
   now lost. This is showing proper scoping of the CSS in the same way
   that the notice will be displayed to the end user when printed using
   batch printing.

Note: Whilst this degrades the look of the notice in the staff client,
that is actualy highlighting a mistake in the notice template or
possible showing that we should be including bootstrap in the print
notices template... that is for another bug.

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:35 +02:00
Owen Leonard 8779674f1f
Bug 39513: Correct OPAC subscription tables DataTable initialization
This patch corrects an error in the OPAC subscription tables DataTable
initialization which arose from merging of Bug 36553. The table should
be initialized by class (see Bug 35202).

To test you should have a bibliographic record with multiple
subscriptions and items attached to each.

- In the OPAC, view the detail page for that bibliographic record.
- View the Subscriptions tab. All subscription tables should be
  sortable DataTables which follow the configuration set in staff client
  Administration -> Table settings -> OPAC -> subscriptionst.
- Click another tab, e.g. Holdings.
- Click back to the Subscriptions tab. The tables should remain the
  same: Sortable tables with no other DataTables controls.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:35 +02:00
Janusz Kaczmarek 317b70b7b6
Bug 34739: Linked biblios should not be merged (updated) when changes to an authority don't change the authorized heading
Currently, the function C4::AuthoritiesMarc::merge calls ModBiblio for
all bibliographic records linked to the modified authority record.  It
could seem a just behavior but we know that this could lead to
performance problems.  This is why AuthorityMergeLimit
systempreference with merge_authorities.pl was introduced (earlier:
dontmerge).

Although this partially solves the performance problems, for
moderately large and large catalogs (500+ K) and authority records
linked with a large number of bibliographic records, performance
problems still occur, even with overnight processing with
merge_authorities.pl.  This problem is particularly apparent when
updating authority records from central databases, whose modifications
are beyond our control.

It turns out, however, that many such modifications to authority
records involve fields other than the heading field (1XX in MARC 21),
so these updates in fact do not modify bibliographic records.
However, with the current merge function, every touch on an
authority record forces a call to the ModBiblio function.  The
number of relatively expensive ModBiblio calls could be
reduced by checking whether there has been an actual change in
the field associated with the authority record.

However, with IncludeSeeFromInSearches or IncludeSeeAlsoFromInSearches
preferences enabled, the record should be refreshed in the search
engine just in case (should the 4XX, 5XX fields have changed, which we
don't know at this point).

Test plan:
==========
1. Make sure to have CataloguingLog set to Log and
   IncludeSeeFromInSearches set to Include.
2. Have a bibliographic record with an authority record linked. Open
   the authority record in a separate tab, open it in the editor and
   save, without modifying it. Repeat this 2-3 times. In the
   bibliographic record tab open the Modification log and see a number of
   entries - for each “empty” modification of the linked authority
   record.
3. Apply the patch ; restart_all.
4. Repat p. 2. Note that there are no new entries in the log.
5. Edit the authority record again, this time putting in one of the
   proper 4XX $a subfield an uncommon word (but do not  touch the 1XX
   field). Save the authority record. In the bibliographic record
   tab control that there are no new entries in the modification log.
   Make a search for the word put in 4XX field. You should get the
   bibliographic record(s) linked to the edited authority record, even
   though the bibliographic record itself has not been modified.
6. Edit the authority record again, this time changing the 1XX field.
   Save the authority record. In the bibliographic record tab control
   that there are is new entry in the modification log.

Sponsored-by: Ignatianum University in Cracow
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:34 +02:00
Janusz Kaczmarek bb0e35ac6b
Bug 34739: Unit tests
BTW, there is a tiny adjustment to one of the previous subtests to
fit to the modified merge behaviour.

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:34 +02:00