Commit Graph

58452 Commits

Author SHA1 Message Date
Jonathan Druart e4b27be895
Bug 40444: Add Test::NoWarnings to newly added api/v1/cash_registers.t
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-28 16:26:38 -06:00
Martin Renvoize b10a6f855f
Bug 40444: (follow-up) Remove EDI tests from the exclude list
We've got those tests running without warnings now too.

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-28 16:26:37 -06:00
Jonathan Druart 40d3fe470e
Bug 40444: Add Test::NoWarnings to xt tests
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-28 16:26:37 -06:00
Jonathan Druart 63eb2e1f4a
Bug 40444: Add a test to ensure all Perl test files use Test::NoWarnings
This patch adds a new xt test (xt/use-test-no-warnings.t) to make sure
all our Perl test files will use Test::NoWarnings.

It also adds Test::NoWarnings to some files that were missing it and
that didn't need any other changes.

However we still have 7 non-trivial tests that we will consider
exception for now, until they are fixed.

Test plan:
  prove xt/use-test-no-warnings.t
should return green.
And all other tests modified by this patch (the qa script will do that
for you)

You can also test the 2 selenium tests:
1. DROP and CREATE the DB
  DROP DATABASE koha_kohadev;
  CREATE DATABASE koha_kohadev;
  restart_all
2. KOHA_TESTING=1 prove t/db_dependent/selenium/00-onboarding.t
3. Repeat 1
2. KOHA_TESTING=1 prove t/db_dependent/selenium/01-installation.t

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-28 16:26:36 -06:00
Marcel de Rooy 64b78fe3c4
Bug 40132: Remove POD for get_opac_news_by_id
We are removing a wrong method name at the same time ;)

Test plan:
Read the patch. Just removing a few outdated POD lines.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-28 16:26:36 -06:00
Lucas Gass 3216152520
Bug 40305: DBRev 25.06.00.008
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 15:52:19 -06:00
Andrew Fuerste Henry 15740d1f64
Bug 38404: Add explanatory text to RestrictPatronsWithFailedNotices
To test:
apply the patch and search for RestrictPatronsWithFailedNotices in sysprefs. It will now include a note that the cron looks at the preceding 7 days.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:32 -06:00
Katrin Fischer bead469858
Bug 34783: Add KIT and CLAMS to list of contributing institutions
Also corrects the alphabetic ordering for Calyx.

To test:
* Apply patch
* Go to About Koha: you can do so from the more menu or by clicking
  on the version number in the bottom right corner
* Open the tab "Koha team"
* Scroll to the bottom of the page and verify that KIT and CLAMS show
  up in the correct spot in the list of "Contributing companies and institutions"

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:31 -06:00
Laura_Escamilla 222329e97e
Bug 35669: Update check-in message to show specific LOST authorised value descriptions
This displays the LOST authorized value description when checking an
item in, instead of the generic "Item was lost, now found." message.

Test plan:
1. Set an item’s Lost status to "Lost". When you check in that item,
   you should see the message: “Item was lost, now found.”
2. Set an item’s Lost status to "Missing". When you check in that
   item, you should see the message: “Item was lost, now found.”
   (default behavior before patch)
3. Apply the patch.
4. Set an item’s Lost status to "Missing" again. When you check in
   that item, the message should now be: “Item was Missing, now found.”
   (using the authorised value description)
5. Repeat step 4 with other custom LOST authorised values. The check-in
   message should correctly reflect the corresponding authorised
   value descriptions.
6. Sign off and have a wonderful day! 😊

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:30 -06:00
nina martinez 5556bf867b
Bug 29069: Replace the color of Refine your search link
This is a trivial patch to correct the low color contrast of the
"Refine your search" link.
To test this patch, you can use the firefox extension: WCAG Contrast
Checker or WAVE.

Test plan:

1. Apply the patch
2. Search in the Koha OPAC
3. Check the color contrast of the "Refine your search" link.
4. If it is greater than 4.5, the test succeeds !

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:30 -06:00
nina martinez 47847f359d
Bug 40097: Replace the color of elements with low constrast.
Test plan:

1. Enable the system preferences: ILLModule, OPACHoldsHistory,
   OPACHoldRequests.
2. Apply the patch and log in to a patron account.
3. Go to the "Interlibrary loan requests". Look at the "Show 'select
   number' entries" and check the color contrast, which should be
   greater than 4.5.
4. Search for a record, choose "Place hold", and check the color
   contrast. The "show more options" should have a color contrast
   greater than 4.5.
5. Now go to the Holds history, you need at least one record on hold.
   Look at the "Showing 1 to ... of ... entries" and check the color
   contrast, which should be greater than 4.5.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:29 -06:00
Owen Leonard 77891363ce
Bug 39809: (follow-up) Remove left margin from label.required
The left margin is only necessary for span.required

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:28 -06:00
Owen Leonard 4988662703
Bug 39809: .required class was made too non-specific in Bootstrap upgrade
This patch corrects some CSS which was broken during the upgrade to
Bootstrap 5. The .required class should not add any style differences to
form fields.

To test, apply the patch and rebuild the staff interface CSS.

- Go to Administration -> Patron categories.
- Edit an existing category.
- Confirm that the contents of input fields are not styled red and
  italic.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:27 -06:00
Owen Leonard b70a325dd2
Bug 39923: Add classes to email and phone in overdue report to allow for customization
This patch adds <span>s with classes around the patron's email and phone
information in the results of the overdues report. This will allow for
greater flexibility in styling or hiding the information.

To test, apply the patch and go to Administration -> Sytem preferences
-> IntranetUserCSS.

- Add this to the preference:
  .overdue_email { color: red; }
  .overdue_phone { color: blue; }
- Go to Circulation -> Overdues and confirm that you can see the custom
  colors in the results.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:26 -06:00
Pedro Amorim 738ab3b256
Bug 39773: Add 'required' attribute for required fields
Test plan, apply patch:
1) Enable ILLModule
2) Create a new OPAC request, visit:
http://localhost:8080/cgi-bin/koha/opac-illrequests.pl?op=add_form&backend=Standard
3) Press 'Create'. Notice the required 'type 'is now validated before the form is submitted.

Additional testing:
1) Enable ILLOpacUnauthenticatedRequest. Log out. Repeat 2)
2) Press 'Create'. Notice the required unauthenticated fields are highlighted as required.

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:26 -06:00
Tomas Cohen Arazi eadcf3452a
Bug 39960: Improve messages in opac-discharge.tt
This patch makes the messages more streamlined.

To test:
1. Enable `useDischarge`
2. Have a patron with two checkouts
3. Log into the OPAC and try to request a discharge
=> FAIL: You get a message that says '2 item(s)' and has redundant
words.
4. Check one of the items in
5. Repeat 3
=> FAIL: Same, but says '1 item(s)'.
6. Check it in
7. Add a manual fee
8. Repeat 3
=> FAIL: Another redundant text about charges.
9. Apply this patch and repeat 2-8
=> SUCCESS: Things read better
10. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:25 -06:00
Owen Leonard 38a8428a0a
Bug 40488: Fix breadcrumb link to public lists when editing a list in the staff interface
This patch revises the breadcrumbs in the staff interface lists template
so that the correct link is shown when editing or viewing a public list.

To test, apply the patch and go to Lists in the staff interface.

- Create a public list
- Go to the list of public lists
- Click to view your newly created public list
- The breadcrumb menu should show Lists -> Public lists -> Contents of
  [list name]
- The link to public lists should work correctly.
- Perform the same check when editing your public list.
- Check the viewing and editing of a private list to make sure no
  breadcrumb errors were introduced.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:24 -06:00
Yvonne Waterman 2c730040b1
Bug 31930: Ignore whitespace before and after barcodes
Decoded the barcode in add items to collection.

Test plan:
1. Go to Tools -> Rotating collections
2. Create a rotating collection
3. Chose Actions -> Manage items
4. Paste a barcode and put some spaces around it, for example "          39999000010053             "
5. Click Submit => Shown an error, no item with matching barcode found, though the barcode is printed without all the whitespace
6. Apply patch
7. Repeat steps 1 - 5, barcode should be accepted

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:23 -06:00
Owen Leonard 20085be7fb
Bug 40114: Can't select new library when editing a desk
This patch fixes selection of a library when editing a desk in
Administration. The form should provide all libraries as options, not
just the currently selected one.

To test, apply the patch and go to Administration -> Desks.

- If necessary, create a new desk.
- Edit the desk. The form should load with the correct library prefilled
  in the <select>, but should offer all libraries as a choices.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:22 -06:00
Owen Leonard df3e44b88b
Bug 40081: Textareas should resize horizontally and vertically
Bootstrap 5 sets the "resize" property on textareas to "vertical." For
our purposes this is a regression in functionality and should be
overridden.

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

- Log into the OPAC and go to the "Your personal details" page.
  - Under "Alternate address" -> "Contact note," check that the textarea
    can be freely resized.
- In the staff client, create a new patron and test the same textarea in
  that form.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:22 -06:00
nina martinez bc9dfb4b8e
Bug 39998: Add presentation role to the layout tables.
This patch improves the accessibility of the OPAC. It's a trivial patch
to help assistive technologies understand the different tables.

Test plan:

Enable the system preferences: OPACShelfBrowser, OPACPrivacy,
ShowComponentRecords.

1- On the Koha OPAC, Research a record.
2- Inspect the result page HTML and notice that there is a
   role='presentation' in the table tag.
3- Choose a record with a Component section and inspect the HTML, there
   should be a role='presentation' in the table tag.
4- Open the Browse shelf. Inspect the HTML and notice that there is a
   role='presentation' in the table tag of the browse shelf.
5- Log in to a patron account, go to the Your Summary page, and choose
   Privacy in the menu.
6- Inspect the HTML of the page and notice that there is a
   role='presentation' in the table tag of the 'Immediate deletion'.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:21 -06:00
Baptiste Wojtkowski 007d66e314
Bug 39180: (QA follow-up) Tidy
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:20 -06:00
Nick Clemens 117acffacc
Bug 39180: Unit tests
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:19 -06:00
Nick Clemens 2025ed7fdc
Bug 39180: Add a warning on patron missing guaranor
To test:
1 - Create a patron in a category that can be a guarantee and do not assign any guarantor
2 - Create a patron in a 'Child' account type and do not assign a guarantor
3 - Enable system preference 'ChildNeedsGuarantor'
4 - View 'Check out' and 'Details' tabs for both patrons, note there is no warning
5 - Apply patch
6 - Repeat 4, note warning on all pages
7 - Add a patron gaurantor on the child - repeat 4 - warning is gone
8 - Add non-patron guarantor information to other patron - repeat 4 - warning is gone

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:18 -06:00
Nick Clemens bd32425271
Bug 39180: Catch exception when updating patron lastseen date
This patch adds a catch during circulatoin actions and passes a message back to the caller

For checkouts and renewals we don't have a method for passing messages so we simply catch the exception
and warn - this seems reasonable, as we have now added a warning on the patron display that they are missing
a guarantor

To test:
 1 - Create a Child type  patron with no guarantor
 2 - Create a patron in a non-child category that can_be_guarantee with no guarantor
 3 - Check out an item to each patron above
 4 - Enable system preference 'ChildNeedsGuarantor' and TrackLastPatronActivityTriggers - select all
 5 - In mysql
    UPDATE borrowers SET datelastseen = '2025-01-01';
 6 - Restart all to clear cache (so update last seen will update)
 7 - Attempt to checkout a book to either patron - 500 error
 8 - Attempt to returnt he books the patrons have checked out - 500 error
 9 - Attempt to renew their items - 500 error
10 - Apply patches, restart all
11 - Repeat checkout, renewal, checkin
12 - On checkout and renewal there should be a warning on the patron page, but actions succeed with no additional problems
13 - On return you get a warning letting you know the action succeeded but there is still a problem to resolve

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:18 -06:00
Martin Renvoize 4b300b1c1d
Bug 40305: Add database update to fix existing notice templates
This database update fixes existing RECEIPT and ACCOUNT_CREDIT notice
templates that may still use the old 'collected' variable instead of
'tendered'. It handles various formatting patterns and provides
verification that the conversion was successful.

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:17 -06:00
Martin Renvoize f91310306c
Bug 40305: Fix 'tendered' vs 'collected' variable name inconsistency
"One Ring to rule them all, one Ring to find them, One Ring to bring
them all and in the darkness bind them"

We've been battling against this for years, with a mixed use of
terminology and thus confusion in templates vs controllers and notice
templates.  I've decided to just try and make sure all the terminology
matches throughout, and use the more popular 'tendered' term over the
'collected' term.

This patch standardizes the terminology used throughout the payment
  system to consistently use 'tendered' instead of the mixed usage of
  'collected' and 'tendered' that has caused confusion over the years.

Changes include:
  - Update all payment form templates to use 'tendered' input names
  - Update JavaScript validation and change calculation logic
  - Update controller parameter handling in pos/pay.pl, pos/printreceipt.pl,
    and members/paycollect.pl
  - Update sample notice templates (RECEIPT) to use 'tendered' variable
  - Add null check for $total_tendered to prevent perl warnings

Test plan:
  1. Test Point of Sale payments with tendered amounts and change calculation
  2. Test member account payments with tendered amounts
  3. Test receipt generation (both print and email)
  4. Verify JavaScript validation works correctly
  5. Confirm no perl warnings when tendered amount is undefined

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:16 -06:00
Jonathan Druart 83bd47f3c9
Bug 40198: Fix translatability issue for Active and Inactive
Signed-off-by: Michaela <michaela.sieber@kit.edu>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:15 -06:00
Jonathan Druart bd52dab411
Bug 40198: Restore data provider search
Uncaught TypeError: col.data is undefined

This patch removes the ability to
* search by status
* search or sort by "last run"

But fix the JS error that will restore the other features

Test plan:
- Activate the ERMModule via the system preference
- Add at least one data provider
- In the list of data providers, type anything in the general search field on top
=> Confirm that you can use the different features of the table without
JS errors

Signed-off-by: Michaela <michaela.sieber@kit.edu>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:15 -06:00
Jonathan Druart fd6ceb6b24
Bug 40490: Remove warnings from GD::Barcode::QRcode - U24
01:18:38 koha_1       | #   Failed test 'no warnings'
01:18:38 koha_1       | #   at /usr/share/perl/5.38/Test/Builder.pm line 193.
01:18:38 koha_1       | # There were 6 warning(s)
01:18:38 koha_1       | #     Previous test 4 '401 Unauthorized'
01:18:38 koha_1       | #     Use of uninitialized value $aMask[1079] in bitwise xor (^) at /usr/share/perl5/GD/Barcode/QRcode.pm line 217.
01:18:38 koha_1       | #  at /usr/share/perl5/GD/Barcode/QRcode.pm line 217.

jammy (22.04LTS) (perl): 1.15-7
noble (24.04LTS) (perl): 2.00-1

I guess it's fixed by
85e7911e65

But it is not released yet: version 2 is from September 2023 and commit from March 2024.

Test plan:
Install version 2 of GD::Barcode:
  `cpanm GD::Barcode@2.0.0`
Run the tests
Without this patch the "no warnings" test fails
With this patch applied the tests pass

Signed-off-by: David Cook <dcook@prosentient.com.au>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:14 -06:00
Chloe Zermatten c4ee078e50
Bug 39489: 'Refine your search' aria-expanded attribute
On smaller screens (phones, tablets), the 'Refine your search' expandable section in the Koha OPAC is not clearly announced by screen readers.
The reason for this is that the expandable section toggle button is instead identified and announced as a link.
This results in screen reader users incorrectly expecting to be redirected to another page, and not being informed that there is a expandable section.

For elements with a class of menu-collapse-toggle, add an aria-expanded attribute which defaults to false, and is toggled to true upon that specific section being expanded.
If the screen width is 992px or higher, then remove the aria-expanded attribute on load as it is irrelevant, and potentially misleading.

To test:

1) Apply the patch.

on a small screen:

2) Run a library catalogue search in the Koha OPAC.
3) Right click on the page to inspect it.
4) Inspect the 'Refine your search' element.
5) Notice that it now has a aria-expanded attribute which is set to false.
6) Open the expandable 'Refine your search' section.
7) Notice that the aria-expanded attribute on the 'Refinine your search' element is now set to true.
8) Navigate to Home > Most popular titles
9) Repeat steps 3-7
10) Navigate to Home > Details for > Full subscription history
11) Repeat steps 3-7

then, on a bigger screen (992px and above)

12) Run a library catalogue search in the Koha OPAC.
13) Right click on the page to inspect it.
14) Inspect the 'Refine your search' element.
15) Notice that there is no 'aria-expanded' attribute, as in this case the section isn't expandable.
16) Resize your viewport below 992px, and notice that 'aria-expanded' reappears and is set to false.
17) Resize your viewport while remaining below the 992px limit, and notice that 'aria-expanded' remains set to false.
18) Open 'Refine your search', notice that 'aria-expanded' is set to true.
19) Resize your viewport while remaining below the 992px limit, and notice that 'aria-expanded' remains set to true.

Note: now updated to handle screen resizes
Sponsored-by: British Museum
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:13 -06:00
Imani Thomas 4356c14d29
Bug 40459: Preferred name is lost when editing partial record
To test:
* on the patron page click edit at the top, entered a preferred name, and hit save
  * we should see the preferred name being displayed instead of the first name for the user
* go back to the main edit page and change the preferred name to a blank space
  * We should revert back to the first name being used
* if we open the edit page back up we should see the first name in the preferred name field
* Edit the preferred name again and click on details
* open up any of the sections other then contact information
* hit the save button on the section without changing anything
  * you should still see the preferred name you set being used.
* open up an individual section other then contact method, change a value, then save
  * you should still see the preferred name you set being used.
* open up the contact information section and save without changing anything
  * the preferred name should be intact
* open up the contact information and change the preferred name, and save.
  * you should see the new preferred name reflected.
* Open up the contact information section, change the preferred name field to a blank and save.
  * you should see the first name being used now.
* Open up the contact information section, and put any number of spaces in the preferred name with nothing else and then save.
  * you should still see the first name being used.

Signed-off-by: CJ Lynce <cj.lynce@westlakelibrary.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:12 -06:00
Lucas Gass d801d4b16a
Bug 36561: Add new permission to t/Koha/Auth/Permissions.t test
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-25 14:27:04 -06:00
Michael Hafen 20313df192
Bug 40298: define select2 parent in patron search modal
The patron search modal in the patron card creator -> new batch ->
patron search has two select2 modals, sort1 and sort2.  If these are not
anchored to the modal they will be anchored to the body element and
appear behind the modal.

To test, apply the patch and go to Tools -> Patron card creator -> New
-> Card batch.

- Click "Add patron(s)"
- Test the "Sort 1" and "Sort 2" dropdowns. They should work correctly.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-24 17:04:08 -06:00
Janusz Kaczmarek f801230f01
Bug 38514: Filter out autocomplete list of authorities with ConsiderHeadingUse
After adding ConsiderHeadingUse system preference we can limit search
results of authority finder plugin to authorities useable in specyfic
type of fields (based on 008/14-16 data in authorities record).

The autocomplete feature in auth_finder.pl should obey the ConsiderHeadingUse
setting.

Test plan:
==========
0. Have a standard KTD enviromnent.
1. Apply Bug 38494.
2. Set ConsiderHeadingUse system preference to "Don't", ShowHeadingUse to
   'Show'.
3. Go to the Cataloging editor and open the authority finder plugin for
   the 650 field.
4. Type "Application" in "Search main heading ($a only)" field.
5. Notice two autocomplete values: "Application program interfaces
   (Computer software)" and "Application software".
6. Click search button.
7. There are two result: "Application program interfaces (Computer
   software)" (the one with 'v' Subject in Heading Use column) and
   Application software Development (with 'x' Subject in Heading Use
   column).
8. Close the authority finder window, cancel the editor. Set
   ConsiderHeadingUse system preference to "Do".
9. Go to the Cataloging editor and open the authority finder plugin for
   the 650 field.
10. Type "Application" in "Search main heading ($a only)" field.
11. Notice two autocomplete values: "Application program interfaces
   (Computer software)" and "Application software".
12. Click search button.
13. There is only one result: "Application program interfaces (Computer
   software)" (the one with 'v' Subject in Heading Use column).
   So we get only one result but there were two autocomplete hints.
14. Apply the patch ; restart all ; clear the browser js cache (or go to
    a private browser window).
15. Repeat p. 9-10.
16. Notice that there is only one autocomplete hint: "Application
   program interfaces (Computer software)".
17. Click search button.
18. There is only one result: "Application program interfaces (Computer
   software)" (the one with 'v' Subject in Heading Use column).

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-24 17:04:07 -06:00
Owen Leonard eef4683e9a
Bug 38661: (follow-up) Eliminate duplicate ids
The id attribute should be unique on the page, so I'm changing it to a
name attribute and updating the corresonding selector.

Also, we can eliminate find() here:

$(this).closest('form').find('input...

...because $(this) IS the form, so we can optimize a tiny bit by
removing the find().

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-24 17:04:07 -06:00
Bernard Scaife fd425e815c
Bug 38661: Add warning when deleting import batch
When a batch is cleaned from the staged marc records screen, the user
may be unaware of records that are imported within the batch which they
may want to revert in future. Cleaning the batch unlinks these and
makes reversion / cleanup difficult. This patch gives an extra warning
when cleaning a batch where there are still linked records attached.

Test plan:

1. Stage a marc record from a mrc file
2. Import the batch
3. Return to the managed staged records screen.
4. Click "clean"
5. Note message is "Clear all reservoir records staged in this batch?
   This cannot be undone."
6. Apply patch and restart all.
7. Repeat steps 1-4 with a new batch
8. Note message has changed to "This batch contains imported records.
   Are you sure you wish to clear all the reservoir records?  This
   cannot be undone."

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-24 17:04:06 -06:00
Lucas Gass 24ec8e4bd4
Bug 36561: DBRev 25.06.00.007
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-24 17:04:06 -06:00
David Cook 812b38d02c
Bug 36561: Make /auth/password/validation use new permission
This patch updates the /auth/password/validation endpoint to use the new
api_validate_password permission instead of the generic borrowers
permission.

This provides more granular control over who can use the password
validation API endpoint.

To test:
1. Apply this patches
2. Rebuild the API spec
   $ ktd --shell
  k$ yarn api:bundle
3. Run:
   $ ktd --shell
  k$ prove t/db_dependent/api/v1/password_validation.t
=> SUCCESS: Tests pass!
4. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-24 17:04:05 -06:00
David Cook 79c1853b2b
Bug 36561: Add new permission `api_validate_password`
This change adds a `api_validate_password` permission which allows a user to only
validate borrowers by using the /api/v1/auth/password/validation endpoint.

This avoids scenarios where you want third-parties to authenticate a user without
giving them full permissions to perform CRUD operations on user data.

To test:
1. Apply patch
2. Run "koha-upgrade-schema kohadev"
3. koha-plack --reload kohadev
4. prove -v t/db_dependent/api/v1/password_validation.t
5. Visit http://localhost:8081/cgi-bin/koha/members/member-flags.pl?member=51
6. Note that a new subpermission `api_validate_password` appears under the "borrowers" permission

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-24 17:03:57 -06:00
sashaanastasi ddcd824071
Bug 40343: Include running batchRebuildItemsTables.pl in post-MARC-mapping-update instructions
This patch updates the information message on the Koha to MARC mapping
page to mention that batchRebuildItemsTables.pl should also be run
if changes are made to mappings that affect the items table.

Test plan:
1. Go to Koha administration > Catalog > Koha to MARC mapping.
2. Note that the information box only mentions running
   misc/batchRebuildBiblioTables.pl after mapping changes.
3. Apply the patch.
4. Refresh the page.
5. Note that it now also mentions running batchRebuildItemsTables.pl

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:47 -06:00
Lucas Gass 5bb04202cc
Bug 37883: DBRev 25.06.00.006
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:46 -06:00
Lucas Gass 02aa7d08f2
Bug 37883: (follow-up) Add a test
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:46 -06:00
Lucas Gass d6883d9e3c
Bug 37883: (follow-up) Increment counts correctly
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:45 -06:00
Lucas Gass 4db82a99d0
Bug 37883: Correct permissions of atomicupdate file
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:45 -06:00
Lucas Gass a043b9f089
Bug 37883: Fix branchspecific display of unavailable items
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:44 -06:00
Lucas Gass 5607c2337f
Bug 37883: A couple minor fixes to results.tt
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:44 -06:00
Lucas Gass 0a99176a4c
Bug 37883: Use localStorage to remember user selection
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:43 -06:00
Lucas Gass 764273befe
Bug 37883: Add FilterSearchResultsByLoggedInBranch system preference
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:43 -06:00
Lucas Gass 580484e2da
Bug 37883: Add ability to filter search results location column by logged in location
To test:

1. Apply patch, restart_all, and regenerate CSS ( https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_interface ) I also recommend clearing your browser cache.
2. Do a catalog search and notice the 'Show local items only' button above the "Location" column.
3. Click it to show information ( in that column ) that is only related to the branch you are currently logged in at.
4. In the same result set have some items that are checked out, withdrawn, lost, damaged, and notforlaon.
5. Play more with the search results and ensure everything is accurate.

Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:42 -06:00