Commit Graph

58581 Commits

Author SHA1 Message Date
Aleisha Amohia ab055249e9
Bug 36660: Make Authorities 'see from' searches 'exact'
This enhancement changes the search URL for 'see from' headings to look for an 'exact' match.

When using a 'see from' heading, when Koha does a 'contains' search this is quite general and may fetch a bunch of unexpected results.

This enhancement also changes the OPAC authority search to search on all headings when doing a 'see from' search, so the results mirror that on the staff interface. Also important if subheading info is stored in the $x or other subfields, for example.

To test (assume using KTD):

1) In the staff interface, add a new topical term authority. Set the following values:
  150$a: Quests
  550$a: Travel
2) Add a second topical term authority, this is one we DON'T want showing in 'see from' results. Set the following values:
  150$a: Cheques
  550$a: Travellers' cheques
3) Do a 'main heading ($a only)' search for 'Quests'. Your new heading should show in the results, with 'Travel' showing as a see from searchable link.
4) Click the 'Travel' search link. Notice you get a few results, including the 'Cheques' heading which we don't want to show.
5) Follow steps 3 & 4 on the OPAC. Notice you get a few results, but your 'Quests' heading doesn't even show, which you may expect it to.

6) Apply the patch and restart services.

7) In the staff interface, go back to the Authorities homepage.
8) Repeat steps 3 & 4. Confirm you get the expected 'Quests' heading in the results, and do not get the 'Cheques' heading.
9) Repeat steps 3 & 4 on the OPAC. Confirm you get the expected 'Quests' heading in the results, and do not get the 'Cheques' heading.

Sponsored-by: Education Services Australia SCIS
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-19 17:05:34 +01:00
Owen Leonard 0f1ee97837
Bug 38227: Collapse authority popup search form when showing results
This patch takes the collapsing-panel functionality of the patron entry
form and generalizes it so that it can be used on the authority search
popup window in cataloging.

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

- Go to Cataloging -> New record (basic MARC editor)
- Switch to tab 1 and click the tag editor link next to tag 100 subfield
  a.
- The search form should be expanded in the pop-up window.
- Perform a search. When the window reloads with search results the
  search form should be collapsed.
- Confirm that clicking the "Search options" legend works correctly to
  expand and collapse the form.
- Collapse the form and click the "Clear form" button. The form should
  expand -- This is based on the assumption that the "Clear form" button
  would be used when the user wants to initiate a new search.
- Go to Patrons -> New patron and confirm that collapsible sections
  still work correctly.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-19 17:05:33 +01:00
Owen Leonard a4531fd78f
Bug 7508: (follow-up) Show item number if item has no barcode
This follow-up adds item number as a fallback for display when an item
doesn't have a barcode.

The patch also implements a sidebar sub-menu showing barcodes (or item
numbers) so that the user can jump directly to a particular section. The
sub-menu will show a scrollbar if the record has more than around 15
items.

The patch modifies staff-global.scss to improve readability of the
sidebar sub-menu and removes CSS which was specific to the system
preferences page. This make the sub-menus on the item details and system
preferences pages consistent with each other.

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

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-19 17:05:32 +01:00
Owen Leonard c099055bad
Bug 7508: Collapsable items on items tab
Since we recently updated the patron entry form in the staff interface
to have more visibly-collapsible sections I thought there might be
interest in picking up this old bug.

The patch implements collapsible sections on the item detail page,
allowing the user to hide sections by clicking the item barcode header.
The patch includes relocation of some JS code from the authority and
MARC editors into the global JS file. This is the code that helps jump
the user to a certain scroll point on the page.

To test, apply the patch and clear your browser cache.

- In the staff interface, locate a bibliographic record with items and
  view the detail page.
- Click the "Items" tab in the sidebar.
- On the item detail page, each section should have an icon indicating
  that they are expanded. Hovering your mouse over the section heading
  should highlight the clickable area.
- Test that each section collapses correctly and that the next section
  is moved into view.

- Go to Cataloging -> New record. Test that the links to specific tags
  under the main tab bar still work to jump you to the correct part of
  the page.
- Go to Authorities -> New authority and perform the same test.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-19 17:05:32 +01:00
Tomas Cohen Arazi 03ae61e9f8
Bug 35246: Make Koha::Biblio->to_api throw relevant exception if no biblioitem row
This patch makes the `to_api()` method return an proper exception when
the `$self->biblioitem` accessor returns `undef`. This is a bad data
scenario and we could do better in terms of logging the situation.

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

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

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

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

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

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

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

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

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-19 17:05:31 +01:00
Tomas Cohen Arazi b2215edce1
Bug 35246: Unit tests
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-19 17:05:31 +01:00
Owen Leonard bf1e45e490
Bug 39053: Add page-section div to reports results pages
This patch adds a "page-section" wrapping div around reports results
pages where it is missing.

Note: This patch contains indentation changes.

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

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

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-19 17:05:30 +01:00
Martin Renvoize 9bed52a868
Bug 38375: Unit tests
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-19 17:05:30 +01:00
Martin Renvoize 006485a036
Bug 38375: Use perl 5.10+ \R
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-19 17:05:29 +01:00
Lari Strand 3407dc28a3
Bug 38375: Splitting SIP2SortBinMapping syspref does not support all operating systems' line endings
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-19 17:05:29 +01:00
Victor Grousset/tuxayo 81df6dbe64
Bug 39149: Make perltidy.t also check .PL files
Now perltidy.t will check 2958 files instead of 2954. Which matches
with the 4 .PL files.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 15:35:53 +01:00
Tomas Cohen Arazi 50d1acb3de
Bug 39149: Tidy .PL files
This patch is the result of running:

```shell
perl misc/devel/tidy.pl *.PL
```

Commiting raised an error about fix-perl-path.PL calling `warn` which I dismiss for the
time being.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 15:35:53 +01:00
Tomas Cohen Arazi 63cba14abd
Bug 39149: Make tidy.pl deal with .PL files
This patch adds handling for files with the `.PL` extension to the
`tidy.pl` helper script.

It will now consider them Perl files and tidy them as appropriate.

I opted for explicitly listing `PL` instead of making the existing check
case-insensitive because the only files I found with changed case (i.e.
Perl scripts that don't have `.pl`) are:

$ find . -type f -iname "*.pl" ! -name "*.pl"
./fix-perl-path.PL
./build-resources.PL
./rewrite-config.PL
./Makefile.PL

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 15:35:52 +01:00
Andrew Fuerste Henry da6996c08e
Bug 38986: Restore Any in fund dropdown on suggestions homepage
This patch restores Any as a budget filter option on the suggestions homepage, but does not allow one to select Any when saving a suggestion

To test:
1 - have two suggestions, one with a fund assigned and one without
2 - go to /cgi-bin/koha/suggestion/suggestion.pl, use Fund filter, confirm it does not offer an Any option
3 - apply patch, reload page
4 - use Fund filter, confirm it shows Any as an option and both Any and None work properly
5 - confirm you cannot select Any when creating a new suggestion

Signed-off-by: Sam Sowanick <sam.sowanick@corvallisoregon.gov>

Bug 38986: Restore Any option to suggestions homepage filter

"Any" should show all suggestions, any fund value and null fund values. One should not be able to create a suggeestion set to "Any"
"None" should show only suggestions with no fund value selected. A new suggestion should default to "None"

To Test:
1: have two suggestions, one with a fund selected and one without
2: go to suggestions homepage, confirm the filter does not have an "Any" option
3: apply patch, reload page
4: confirm the fund filter on suggestion homepage now has both Any and None and they behave as described above
5: confirm the fund filter defaults to Any as you change the branch filter
6: create a new suggestion, confirm its fund defaults to None and cannot be set to Any

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 15:35:52 +01:00
Katrin Fischer 20eb3d0a2e
Bug 37256: Fix faulty rebase, removing code from bug 25711
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 15:35:51 +01:00
Owen Leonard 0bb4787f68
Bug 37273: (follow-up) Remove parentheses and # from column
The new ID column shows numbers like "(#2)". I think the parentheses and
hash symbol are unnecessary and inconsistent with the way we do it in
other places and should be removed.

To test, apply the patch and rebuild the staff interface CSS: Either run
'yarn build' from the command line or if you're using a sandbox, click
the "Actions" menu for your sandbox and choose "Build CSS and JS."

Follow the previous test plan and confirm that the ID column looks
correct.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:33 +01:00
Eric Garcia d361c8adb6
Bug 37273: Added ID column to ERM Agreements and Licenses Tables
To test
1. Apply patch, yarn build, restart_all
2. System preferences -> ERMModule -> Enable
3. E-resource management -> Agreements -> "+New Agreement"
4. Notice ID is removed from name and put in it's own column
5. Repeat with licenses table

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:33 +01:00
Martin Renvoize e5eaa2aa17
Bug 37256: Ensure empty and null work as expected in PUT
Sponsored-by: Glasgow Colleges Library Group <https://library.cityofglasgowcollege.ac.uk>
Signed-off-by: George Harkins <George.Harkins@cityofglasgowcollege.ac.uk>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:32 +01:00
Martin Renvoize adae95debe
Bug 37256: Add 'PUT' for circulation rule sets
Sponsored-by: Glasgow Colleges Library Group <https://library.cityofglasgowcollege.ac.uk>
Signed-off-by: George Harkins <George.Harkins@cityofglasgowcollege.ac.uk>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:32 +01:00
Martin Renvoize df21c0618e
Bug 37256: Unit tests for set_rules
This patch adds unit tests for the to be introduced set_rules endpoint
for setting circulation rule sets.

Sponsored-by: Glasgow Colleges Library Group <https://library.cityofglasgowcollege.ac.uk>
Signed-off-by: George Harkins <George.Harkins@cityofglasgowcollege.ac.uk>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:31 +01:00
Martin Renvoize f4342c922d
Bug 37256: Defined 'context' of circulation rules
This is a follow-up to the previous bug exposing circulation rules over
the API.

We formally define a definition for a circulation rules set including a
new 'context' object the defines the context, library_id,
patron_category_id and item_type_id combination of the rules returned.

This is just a patch I missed in the last submission that I'd meant to
add and it's important for the PUT part of this patchset.

Sponsored-by: Glasgow Colleges Library Group <https://library.cityofglasgowcollege.ac.uk>
Signed-off-by: George Harkins <George.Harkins@cityofglasgowcollege.ac.uk>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:31 +01:00
Owen Leonard 85d9861fb3
Bug 28453: (follow-up) Make pagination labels translatable
This patch moves the English strings out of Output.pm and adds classes
to the pagination markup which can be used as hooks for JavaScript. The
global JS include is modified to look for these hooks and add text
labels to the links.

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

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:30 +01:00
Owen Leonard 2685ac2c6c
Bug 28453: Update pagination subroutine to generate Bootstrap markup
This patch modifies Output.pm to change the HTML it generates when
creating pagination bars. The changes allow the pagination menu to be
styled like Bootstrap pagination, making them consistent with the
pagination on catalog search results.

To test, apply the patch and rebuild the staff interface CSS
(https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_client).

 - Test pages where the pagination_bar subroutine is called:
 - Authorities -> Authority search results.
 - Cataloging -> Cataloging search results.
 - Cataloging -> MARC Editor -> Edit tag which is configured to use the
   unimarc_field_210c value builder.
 - Reports -> Saved SQL reports -> Results.
 - Tools -> Comments.
 - Lists -> List contents.

The pagination bar markup was removed from the templates for these pages
because it wasn't being used:

 - Administration -> Patron attribute types.
 - Administration -> Record matching rules.
 - Tools -> Tags.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:30 +01:00
Andrew Fuerste Henry d734a119c2
Bug 32211: Update DUEDGST and PREDUEDGST default notices to use TT
To test:
1. Apply patch
2. reset_all (or start your testing environment in the first place)
3. Enable SMS Notices
    a) Find the system preference SMSSendDriver
    b) Enter "Email" as the value for SMSSendDriver and save
4. Go to a patron account, and set the following messaging preferences:
    Item due:
        - Check SMS
        - Check Email
        - Check Digests only for both
    Advance notice
        - Select 1 day in advance
        - Check SMS
        - Check Email
        - Check Digest only for both
5. Go to the checkout tab for that patron
6. Set a custom due date for today and check out 2+ items
7. Set a custom due date for tomorrow and check out 2+ more items
8. Run the cron job to generate notices:
   misc/cronjobs/advance_notices.pl -v -c
9. Open the Notices tab on that patron's account
--> The patron should have four notices:
    Item due reminder (one for SMS and one for email)
    Advance notice of item due (one for SMS and one for email)
10. Open each notice and confirm that all information is correct

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:29 +01:00
Katrin Fischer 34e71af165
Bug 36954: DBRev 24.12.00.009
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:28 +01:00
Marcel de Rooy 754fef4bac
Bug 36954: (QA follow-up) Add a dbrev print message about sip.log
With reference to BZ comment9 and comment10.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:28 +01:00
Marcel de Rooy cd4860fb59
Bug 36954: (follow-up) Return to the two logfiles pattern
Note that --errlog should refer to all output from the wrapper daemon
process only like respawning processes etc.
And that --output should refer to all output from the daemonized
client process (so in our case the SIP server).

Moving a few sip.log occurrences to sip-output in that regard.

Test plan:
Restart koha-sip.
Login to sip server.
Restart koha-sip.
Verify that you see Net::Server messages and traces from the login in the
-output log. The restarts are not found however in -error. See my comment
on the BZ report.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:27 +01:00
Marcel de Rooy 235c31e683
Bug 36954: Adjust logfiles in koha-sip
No need for three files here (and badly specified).
We can just use sip.log.

Test plan:
Run koha-sip and verify that logging is still done as expected.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:27 +01:00
Tomas Cohen Arazi 03520cf90b
Bug 39096: Add .git-blame-ignore-revs mapping to Makefile.PL
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-18 10:55:26 +01:00
Jonathan Druart 5127534f5c
Bug 39020: Add tests
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:06:04 +01:00
Lisette Scheer d6c2124b29
Bug 39020: Search filters can't parse query
1. Turn on the SavedSearchFilters system preference
2. Go to advanced search, select a number of item types and search
3. Save the search
4. Enter a search term (such as power)
5. select the filter. Observe the following message:
Error: Unable to understand your search query, please rephrase and try again.
6. Apply patch
7. Repeat steps 4 & 5, search should work as expected.
8. Sign off!

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:06:03 +01:00
William Lavoie db067d48ee
Bug 19113: Barcode value builder not working with numeric branchcode
The regexp for the value builder 'hbyymmincr' doesn't allow for numerics in the branchcode,
so the nextnum found is always 0 and multiple Add always generate the same barcode.
This simply allow for numerics within the regex.

Test
- It's a bit complicated.  You need
   - all your branchcodes to be numerics (01,02,71...)
   - all barcodes to already be a bunch of numbers
- Modify the syspref 'autobarcode' to hbyymmincr, the home branch + date one.
- Find an item in the pro-search,
- New -> New Item
- Click on the 'p' to have the value builder create the next barcode.
   - Without the patch, the query won't have found anything, so it'll suggest xxxxxx0001
- Click Add.  It reprensent the form to enter another one.
   - Click on the 'p' edit box, it'll offer you again xxxxxx0001
With the patch, it'll offer valid ones everytime.

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:06:03 +01:00
Jonathan Druart 8e808e97b3
Bug 39080: Adjust the fixed header after we added the column filters
If a column contains a dropdown list (for libraries for instance), the
width of the column will be modified, but DT's fixed header need to be
adjusted.

Test plan:
One example where this problem can be observed is the "holds to pull"
table: "Title" is followed by "Libraries".
Test without and with the patch, and confirm that the display/offset is fixed.

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:06:02 +01:00
Jonathan Druart 16f528e4b4
Bug 36025: Fix failure when pref is off
Prevent JS error if ExtendedPatronAttributes is off
 "Uncaught TypeError: options.extended_attribute_types is undefined"

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Makes the Cypress tests pass.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:06:02 +01:00
Jonathan Druart 60332e7552
Bug 36025: Add cypress tests
Signed-off-by: Magnus Enger <magnus@libriotech.no>
Tests pass, with the followup patch.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:06:01 +01:00
Andreas Jonsson 208a7cc3a4
Bug 36025: Incorrect clause in patron search
This patch removes the search clause for
extended_attributes when there is no patron
attribute types which are searchable by default.

The clause was incorrectly added because the array
extended_attribute_types was rendered as [""]

This seems to be an issue with get_columns from DBIX Class and how that is cast when forcing an array
in the template. It returns an empty string for nothing, a scalar for a single value, and an array for multiple
values.

This patch now checks if the variable is set and has content, and wraps as an array if so. In the case of two attributes,
we do double the array, but this was true before as we always cast the return as an array.

Test plan:

* Make sure that no borrower attribute type is set to "searched by default"
  in Koha administration -> Patron attribute types.
* Enable the network monitring in the developer tools in your web browser
  (Ctrl + Shift + E in firefox or Ctrl + Shift + I and select the "Network"
  tab).
* Go to the patrons view members-home.pl (click patrons in top menu bar).
* Search for a string that will match multiple borrowers (to not be automatically
  redirected)
* Examine the ajax-request and make sure that "extended_attributes.code" is NOT
  part of the query.
* Also, in koha-testing-docker with selenium enabled,
  run 'perl t/db_dependent/selenium/patrons_search.t'
* Now set one patro attribute to searchable and searched by default and add a value for a patron, confirm search works
* Set a second patron attribute to searchable and searched by default and confirm searching works

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Magnus Enger <magnus@libriotech.no>
Works as advertised. Did not run the selenium tests, as they have
been obsoleted.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:06:01 +01:00
Lucas Gass 3cc9282e7b
Bug 39040: Add CSS back via _tables.scss
To test:

1/ Turn on POS
2/ Enable Cash registers
3/ Configure some items for sale
4/ Make some POS transactions
5/ Visit pos/register.pl?registerid=x
6/ Notice the problem described
7/ APPLY PATCH and regenerate CSS ( https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_interface )
8/ Look at the table again. The rows should now be correctly highlighted.

Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:06:00 +01:00
Lucas Gass fe222e530e
Bug 38767: Add standard class to various statuses in holdings table
1. have an item with many statuses including:

-checked out
-onsite_checkout
-in transit
-transit requested
-lost
-damaaged
-withdrwan
-not for loan
-hold waiting at...
-recalled
-available
-in bundle

2. notice when there are multiple statuses the text runs into a single "blob".
3. APPLY PATCH and generate CSS (https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_interface)
4. Statuses are seperated by a break.

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:05:59 +01:00
Jonathan Druart ccc66e682b
Bug 39088: Correctly prefix url with protocol when OPACURLOpenInNewWindow on the OPAC result page
There is certainly something better to do as the xsl for the OPACDetail
is calling it only once, but it needs more work.

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:05:59 +01:00
Owen Leonard ff71f51b65
Bug 35202: Table settings should apply to multiple subscriptions in the OPAC
This patch updates the bibliographic detail page in the OPAC so that if
there are multiple subscriptions attached to one record, each table of
issues under the subscriptions tab adheres to the settings defined in
Table Settings.

To test you should have at least two subscriptions attached to one
record, and at least one issue of each subscription.

- Apply the patch and view the record in the OPAC.
- Under the "Subscriptions" tab there should be separate tables for each
  subscription, each of them a sortable DataTable.
- In the staff interface, go to Administration -> Table settings -> OPAC
  -> subscriptionst
  - Select some columns to be hidden by default.
- Return to the OPAC and confirm that each subscription table now
  reflects the change you made in table settings.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:05:58 +01:00
Jonathan Druart f6fd36ab77
Bug 35885: Sort vendors by name by default
Signed-off-by: Magnus Enger <magnus@libriotech.no>
To reproduce:
- Set ERMModule = Enable
- In the Acquisitions module I added 4 vendors, with names
  X, A, C, Y, in that order
- Went to E-resource management > Agreements > New agreement
- In the "Vendor" dropdown, the vendors are listed in the
  order they were entered: X, A, C, Y

To test:
- Applied the patch + restart_all + run "yarn js:build" in the
  cloned Koha repo inside KTD
- Shift-reload the "New agreement" page
- Vendors are in alphabetical order

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:05:58 +01:00
Jake Deery 09d3fd9b95
Bug 38957: edifactmsgs data table sorts on date
This trivial patch addresses a missing order-by on
the edifact messages datatable since moving to API
based fetching

TO TEST:

a)  Read in a load of EDIFact messages in k.t.d
b)  Notice on the EDIFact messages table the order
    is seemingly arbitrary
c)  APPLY PATCH
d)  Notice the sorting is now by transfer date,
    descending

Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:05:57 +01:00
caroline 8ef667a0b4
Bug 39032: "Items selected" in item search untranslatable
This patch corrects a syntax error that prevented the string
"Items selected" from being picked up by the translation tool.

To recreate:

1. Go to Item search

2. Click 'Search'

3. Select one or more results
   --> In the bar at the top of the results there is a rectangle with "Items selected: N XClear"

4. Install another language (e.g. fr-CA)
   4.1. For ktd, do the following commands

        ktd --shell
        gulp po:update --lang fr-CA

        Ctrl+D (exit shell)

        ktd --root --shell
        koha-translate --install fr-CA --dev kohadev
        koha-translate --update fr-CA --dev kohadev

   4.2. Go to Administration > System preferences
   4.3. Search for StaffInterfaceLanguages
   4.4. Check fr-CA
   4.5. Click 'Save all I18N/L10N preferences'

5. Redo steps 1-3 in French
   --> "Items selected" is not translated

6. Apply patch

7. Update translations
   (for ktd)
   ktd --shell
   gulp po:update --lang fr-CA

8. Open misc/translator/po/fr-CA-staff-prog.po

9. Search for "Items selected"
   --> It should be there, with a fuzzy flag

10. Translate the phrase in msgstr and remove the line with the fuzzy flag

11. Apply translations
    (for ktd)
    ktd --root --shell
    koha-translate --update fr-CA --dev kohadev

12. Redo steps 1-3 in French
    --> "Items selected" is now translated!

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:05:57 +01:00
Owen Leonard 168d282e94
Bug 39095: Fix problems with article request deletion
This patch fixes a number of issues with article request deletion in the
OPAC:
 - Cancel button should work when initially hidden by DataTables'
   responsive behavior.
 - Table row hiding upon deletion should work when DataTables'
   responsive behavior has created a secondary row to display the hidden
   columns.
- Tab and table caption article count should correctly update when a
  request is canceled.

To test, apply the patch and enable ArticleRequests if necessary. If
enabling ArticleRequests for the first time you may need to update your
circulation rules to allow article requests on some patrons or item
types.

- Log in to the OPAC and place several article requests.
- Go to your user summary page and open the article requests tab.
- Narrow your browser window until at least the last column is hidden by
  DataTables.
- Click the "+" button to show the hidden details, which should include
  the cancel button.
- Click the cancel button. After confirming the deletion the original
  row should be hidden along with the row shown by DataTables.
- The article request count in the article requests tab should now be
  updated to reflect the new number of requests.
- The same should be true of the article requests table heading.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:05:56 +01:00
Andrew Fuerste Henry 41a368f35e
Bug 39025: Use old_issue_id for issue details on patron account screens
To test:
1: Have an item that is checked out, overdue, and showing an accruing fine
2: On the patron account, check both Make A Payment and Transactions tabs, confirm that the fine shows Due Date, Checkout Date, and Checked Out From values
3: Check your item in
4: Reload the patron account, confirm that the fine no longer shows checkout data on either Make A Payment or Transactions
5: Apply patch
6: Reload pages, confirm Make A Payment and Transactions tabs now show values in Due Date, Checkin Date, Checkout Date, and Checked Out From

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 15:05:56 +01:00
Jonathan Druart 84ea94a203
Bug 39096: Add 'tidy all' commits to a git blame ignore file
To get a relevant blame we want to exclude some commits from bug 38664.

Test plan:
0. Do not apply this patch
1.
% git blame C4/Auth.pm (or other file)
Notice that there is a lot of reference to bug 38664 (you can see it
with the author "Koha Development Team")
2. Apply this patch
3. Tell git to use this new file:
 % git config blame.ignoreRevsFile .git-blame-ignore-revs

Repeat 1.
=> There are way less refs to "Koha Development Team"

Before:
% git blame C4/Auth.pm|grep "Koha Development Team" | wc -l
454
After:
% git blame C4/Auth.pm|grep "Koha Development Team" | wc -l
29

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 13:10:25 +01:00
Tomas Cohen Arazi 57f271d6b2
Bug 39106: Use LWP::UserAgent and add error checking
This patch replaces the (newly introduced use of) REST::Client library
with (the already existing in the dependencies) LWP::UserAgent.

Bonus 1: validation on the response status is added to print a proper
error message and die if bugzilla is not available

Bonus 2: License added to the file

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 13:10:24 +01:00
Jonathan Druart e562c96d2e
Bug 39106: Add REST::Client to cpanfile
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 13:10:24 +01:00
Jonathan Druart d58e670ffe
Bug 39106: The auto-rebase script - Add --bugzilla
Julian wrote a script a while ago to retrieve patches from bugzilla
and checkout the good commit to make sure the patches will apply cleanly.

This change reuses the same logic for the auto-rebase script.

Test plan:
0.
 a. You will need to install REST::Client using cpanm:
  `cpanm REST::Client`
 b. You need the --confirm flag from git-bz, see https://gitlab.com/koha-community/git-bz/-/issues/14
1. Pick a bug number with patches that does not apply on current main
2. Use the auto_rebase script with the --bugzilla option
3. Enjoy

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 13:10:23 +01:00
Victor Grousset/tuxayo b127a030f1
Bug 39115: (follow-up) Exclude Schema.pm from perltidy.t
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-17 13:10:22 +01:00