Commit Graph

57306 Commits

Author SHA1 Message Date
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
Emily Lamancusa 0ab24fd216
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>
2025-04-11 09:52:33 +02:00
Lucas Gass fdc7a8eb4a
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>
2025-04-11 09:52:33 +02:00
Lucas Gass 097153f279
Bug 39361: Wrap modal JS in document ready function
To test:
1. Find or create an item with a hold on it.
2. Go to Circulation > Transfers
3. Transfer the item from step 1.
4. No modal appears to warn that the item has a hold.
5. APPLY PATCH
6. Try step 3 again, this time the modal should appear correctly.

Signed-off-by: Nick Clemens <nick@bywatersolutions.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:32 +02:00
Jonathan Druart fc2730d0f4
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: David Nind <david@davidnind.com>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-10 09:13:15 +02:00
Jonathan Druart b1efa3d71d
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>
2025-04-10 09:13:14 +02:00
Martin Renvoize 5426ae5bfd
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>
2025-04-10 09:13:14 +02:00
Lucas Gass 45561b6614
Bug 39294: Fix includes to properly remember selections
To test:
1. Cataloging > Stage MARC record for import
2. Upload a MARC file
3. Change some of the following settings:

    -Action if matching record found:
    -Action if no match is found:
    -How to process items/Item processing:

4. Stage for import and View batch
5. None of this settings have been retained.
6. APPLY PATCH
7. Try these steps again, now the settings should be remembered
8. Turn on the 'MarcOrderingAutomation' system preference.
9. Administration > MARC order accounts
10. Create a new account
11. Change the "Record matching settings" and submit
12. Make sure every selection is remembered when you edit the account.

Signed-off-by: Sam Sowanick <sam.sowanick@corvallisoregon.gov>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-10 09:13:13 +02:00
David Nind 9cebd54ab1
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>
2025-04-10 09:13:12 +02:00
Adolfo Rodríguez 1bb962bba7
Bug 38411: Check mandatory item fields when creating several items ordering or receiving.
This patch adds a check of mandatory item fields when adding several items

Test plan:
1 We need mandatory subfields for items in the ACQ framework and an open basket configured to create items on order or a closed basket configured to create items on receiving an order
2 In both cases, in the form to create items check that there are mandatory fields.
3 Click the Add multiple items button, write a number and then add.
4 Check that the items have been added.
5 Apply patch, restart services
6 Repeat step 3 Now it doesn't add the items and shows an alert regarding the empty mandatory fields

Signed-off-by: Laurence <laurence.rault@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-10 09:13:12 +02:00
Janusz Kaczmarek 81b6c3cf27
Bug 39462: Unit tests
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>
2025-04-10 09:13:11 +02:00
Janusz Kaczmarek cfe3421891
Bug 39462: (bug 37870 follow-up) Default values from framework are inserted into existing record while editing
Due to changes made by the commit 0472b56a67, when editing an
existing bibliographic record a default value is inserted while it
should not, according to ApplyFrameworkDefaults systempreference.

Test plan:
==========
1. Verify that ApplyFrameworkDefaults systempreference is set to
   ‘when cataloguing new records only’.
2. Take any existing bibliographic record, e.g. sn:1. Open it in
   standard editor and identify a non used (empty) subfield, e.g. 024 $a.
   Note the framework (Books, Booklets, Workbooks). Close the editor
   (Cancel).
3. Modify the framework in question (Books, Booklets, Workbooks) by
   setting a default value for the chosen subfield (e.g. 024 $a).
4. Open the record in the editor again. Note that the 024 $a subfield
   has now an inserted default value while it should not, according to
   the ApplyFrameworkDefaults setting. Do not save the record, chose
   Cancel.
5. Apply the patch ; restart_all.
6. Repeat p. 4 -- there should be no default value inserted in the
   existing record now.

Sponsored-by: Pontificia Università di San Tommaso d'Aquino (Angelicum)
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>
2025-04-10 09:13:10 +02:00
Jonathan Druart f7f5d8056a
Bug 39395: Fix #wrapper closing tag in sco
The module was displayed at the bottom of the screen.
It's caused by the closing tag of #wrapper that has been added by bug
38664 inside the include file.

It is wrong, the div.main should be within #wrapper.

The correct fix is to move #wrapper out of the include file, so that the
HTML structure is correct (and the prettier plugin is happy) in the .tt
files

Test plan:
Confirm the bug
Apply this patch
Go to the SCO module and confirm that the module is correctly placed at
the top of the screen

Please review this patch using `git show -w HEAD`

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-10 09:13:10 +02:00
David Cook ef4d0aa5c5
Bug 39460: Fix koha-upgrade-schema when no DB change needed
This patch fixes koha-upgrade-schema so that it returns an exit
code of 0 whether or not a DB change is needed. This is important
so that koha-common.postinst proceeds correctly even when there
is no DB change needed (e.g. for 24.11.03-2)

Test plan:
0. Apply the patch
1. cp debian/scripts/koha-upgrade-schema /usr/sbin/koha-upgrade-schema
2. dpkg-reconfigure koha-common
3. Note the process completes correctly
4. koha-upgrade-schema kohadev
5. Note following text appears very quickly:
Upgrading database schema for kohadev
No database change required
6. koha-mysql kohadev
update systempreferences set value = '24.1102000' where variable = 'Version';
7. Clear memcached
8. koha-upgrade-schema kohadev
9. Note that it applies the 24.11.03 database upgrade

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-04 09:21:58 +02:00
Martin Renvoize 38d9b0d110
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>
2025-03-26 12:28:44 +01:00
Jonathan Druart bfd5939468
Bug 37273: Fix Cypress tests
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-03-24 10:32:52 +01:00
Martin Renvoize 31789383aa
Bug 38087: (follow-up) Add missing div to template
We lost a closing div somewhere during the life of this patchset

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-03-21 17:50:28 +01:00
Martin Renvoize ede4088d7a
Bug 38087: Add print template for WELCOME notice at install time
This patch adds a default print template for the welcome notice. It will
be installed at install time but will not be added at upgrade time.

It will also be available as the default under the notice templates
tool.

Test plan
1) Apply the patch
2) Under 'Tools > Notices and Slips' select the 'WELCOME' notice to edit
3) Click 'View default' under the 'Print' message transport type
4) Note the new default template is shown
5) Use 'Copy to template' to apply it to the notice
6) Use a user (Henry perhaps under sandboxes) without an email address
   to test the template by
6a) Under 'more' click 'Send welcome notice'
7) Preview the pending print notice under the patrons notices tab by
   clicking the notice title.
8) Confirm the notice looks reasonable and sign off

Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-03-21 17:50:28 +01:00
Owen Leonard 207cb59241
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>
2025-03-21 17:50:27 +01:00
Lucas Gass 3888d1ee7a
Bug 39283: Concat middle name with preffered name if it exists
1. Have a patron with a middle name
2. Do a patron search that brings them up, no middle name appears
3. APPLY PATCH
4. Try again, middle name should appear in patron searches.

QA follow-up: made the same fix inline for other_name

Signed-off-by: Bibliothèque Ifao <bibliotheque@ifao.egnet.net>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-03-21 17:50:26 +01:00
Lucas Gass 4f170fb94d
Bug 39331: If patron category cant be guarantee do not continue with add_guarantors
To test:
1 - Remove age limits from a Child and Adult category in Administration->Patron categories. Ensure Child category can be guarantor and Adult cannot
2 - The above step is to avoid any age checks and form resubmission which removes the guarantor fields
3 - Find/create a child patron
4 - Add a guarantee from the Adult category to the child
5 - Check the DB:
   SELECT * FROM borrower_relationships WHERE guarantee_id={borrowernumber of child};
6 - Note the id colum
7 - Edit the child patron to Adult category
8 - Repeat 5
9 - Note the relationship still exists and the id is incremented
10 - Oof!
11 - APPLY PATCH, restart_all
12 - Try again steps 3 - 8
13 - The relationship should not be re-added
14 - Try with more than 1 guarantor on the record, confirming all are deleted
15 - Try adding some guarantor to patron types that should be able to, they relationship should work.
16 - Try changing some patrons to categories that do allow guarantors, making sure the relationship does stay.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-03-21 17:50:26 +01:00
Jonathan Druart 6e4039b72a
Bug 39396: (bug 38714 follow-up) Restore options in Batch item modification
We built select_class but never used it.

Test plan:
Go to Batch item modification and confirm that the select2 dropdown
lists are no longer empty

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-03-21 17:50:25 +01:00
Jonathan Druart 4eececb330
Bug 38981: Directly use the opac-image link
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-03-21 17:50:24 +01:00
Owen Leonard 545ff24dd0
Bug 38981: Local cover images failing to load in OPAC search results
This patch uncomments some code which was incorrectly left commented
after debugging.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-03-21 17:50:23 +01:00
Katrin Fischer a629a518f5
Bug 38494: DBRev 24.12.00.020
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-03-20 17:23:08 +01:00
Janusz Kaczmarek ebba76f1b7
Bug 38494: (follow-up) Text amendments clarifying that it is about MARC21 records
Refers to ConsiderHeadingUse and ShowHeadingUse systempreferences.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-03-20 17:23:07 +01:00