Commit Graph

56125 Commits

Author SHA1 Message Date
Owen Leonard 79109af571
Bug 38701: Fix HTML validity errors in invoice template
This patch makes some markup corrections to acqui/invoice.tt so that it
passes an HTML validity check.

- Moves incorrectly placed </td>
- Change <span> to <div> and remove invalid </br>
- Correct instances of "<th class="replacementprice"/>" (th cannot be
  self-closed)
- Add id attribute to inputs to correspond to existing labels
- Change "all_fund_dropdown" markup so that it validates but still works
  with the active/inactive fund display.

To test, apply the patch and go to Acquisitions -> Invoices. Perform an
invoice search which will return results. In the results click the
invoice number to view the invoice.

- Test the "show inactive" checkbox corresponding to the "Shipping fund"
  dropdown. Checking and unchecking it should work correctly to show and
  hide inactive funds.
- Run the page source through https://validator.w3.org and confirm that
  there are no errors coming from this template.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:38 +01:00
Martin Renvoize 24f86c28cd
Bug 38521: (follow-up) Update heading level
It became apparent to me that we weren't following best practice for
working up headings levels on this page whilst reviewing this bug.

This patch updates the 'Reports dictionary' section heading to match the
other similar headings on the page from h5 to h2.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:37 +01:00
Andrew Fuerste Henry 731a64d82a
Bug 38521: Add classes to reports homepage
To test:
1 - inspect the page, see lack of distinct classes on separate sets of links
2 - apply patch
3 - reload page, confirm it looks and acts the same
4 - inspect page, confirm classes for each set of links

Signed-off-by: Sam Sowanick <sam.sowanick@corvallisoregon.gov>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:37 +01:00
Pedro Amorim 6adf023988
Bug 38675: Add correct dropdown item class
Test plan:
1) Install at least 2 ILL backends, i.e.:
  https://github.com/PTFS-Europe/koha-ill-backend-plugin/releases/tag/v2.0.5
  https://github.com/PTFS-Europe/koha-ill-reprintsdesk/releases/tag/rc-v3.0.1
2) Enable ILLModule. Create a regular 'Standard' ILL request:
  <staff_url>/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=Standard
3) Pick a type, add '42' (default koha admin user on k-t-d) to cardnumber and pick a library. Click 'Create'.
4) Look at the top toolbar buttons. Click the 'Switch provider' button. You should see 'ReprintsDesk' and 'PluginBackend', but the styling is wrong.
5) Apply patch. Repeat.

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>
2024-12-23 10:35:36 +01:00
Lucas Gass 19d028ce77
Bug 38367: Fix offset on plugin-dsiabled.tt
To test:
1. Go to your koha-conf.xml and turn plugins off: <enable_plugins>0</enable_plugins>
2. Go to Administration -> Plugins
3. The text is not correctly offset. ( Bootstrap class is col-sm-offset-3 and should be offset-sm-3 in Bootstrap 5  )
4. APPLY PATCH
5. Try again, the offset should look right.

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>
2024-12-23 10:35:36 +01:00
Matt Blenkinsop 54e393d770
Bug 38422: Allow plugin cover images in OPAC lists
This patch updates the template to allow cover images from plugins in the OPAC list page. It adds a data-isbn and data-title attribute to the cover images element and also moves the element below the setting of the title so that we can pass that directly.

It also adds the script call to allow the plugin method to work on the page

Test plan:
1) View the patch diff and note that the data attributes have been added correctly
2) View the patch diff and note that the <a> tag has been moved below the setting of the img_title template variable
3) View the patch diff and note that the CoverImagePlugins variable has been set correctly (compare to the intranet file detail.tt for reference if needed)
4) Confirm that no changes have been made to any elements beyond adding the data attributes

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:35 +01:00
Owen Leonard 210b93abac
Bug 37634: Missing "USE Koha" causes JS errors and missing "Last patron" menu
This patch adds "[% USE Koha %]" to templates which lack it. Without
this, the "Last patron" menu item doesn't work and will cause a JS error
on many pages. The patch also removes some USE entries which were
duplicates.

To test, apply the patch and test all 176 different pages to confirm
they all work correctly. I mean, maybe. Or maybe sample a few to confirm
they work?

- Go to Administration -> System preferences and enable "showLastPatron"
- If the preference was not enabled, you probably need to go to
  Circulation and open a patron account for checkout so that there is a
  "last patron" to show.
- Test a sampling of pages affected by this patch:
  - Acquisitions -> Acquisitions home page
  - Administration -> Cities and towns
  - Catalog -> Item search
  - Cataloging -> Label creator
  - Patrons -> Patron account -> Set permissions
  - Reports -> Items lost
  - Serials -> Serials home page
  - Tools -> Calendar
- Pages which had duplicate lines (not necessarily "USE Koha"):
  - Acquisitions -> Vendor -> Receive shipments
  - Administration -> Manage jobs
  - Administration -> Record overlay rules
  - Catalog -> Search results
  - Catalog -> Bibliographic detail page -> Items
  - Circulation -> Holds queue
  - Patrons -> Patron detail page -> Accounting -> Transactions tab
  - Serials -> Subscription details -> Create/edit routing list
  - OPAC -> Search results -> Request article

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:35 +01:00
Owen Leonard f41bc1160e
Bug 38350: Fix style of sidebar form clear buttons
This patch fixes markup and CSS for sidebar form which contain a submit
button and a clear button. The submit button is supposed to be wider
than the clear button for visual emphasis.

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

- Go to Patrons and confirm that the sidebar filter form looks correct.
  If necessary, resize your browser window to confirm that the "Search"
  button expands as the page gets wider. Confirm that the clear button
  works as expected.
- Perform the same tests on these pages:
  - Acquisitions -> Vendor -> Receive shipments
  - ILL requests
  - Guided reports -> Saved reports

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>
2024-12-23 10:35:34 +01:00
Brendan Lawlor 431109830c
Bug 38649: Fix autocheckout for circulation Fast Add only
In addition to checking the referrer for the URL domain and path
we should also check the query string of the referrer to make sure
it was from a circulation fast add.

It should include frameworkcode=FA&circborrowernumber

To test:
1. From anywhere on the additem.pl page where you are adding or editing an item
2. Click on Checkout in the menu bar and enter a patron's barcode
3. When circulation.pl loads it triggers a blank issue slip to be printed
4. Apply patch and repeat steps 1-3, no slip is triggered to print
5. Go to Circulation Checkout for a patron and enter a non existing barcode like 1337
6. Click '+ Add record using fast cataloging'
7. Fill in required fields and click 'Add item'
8. Confirm the item is auto checked out

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:33 +01:00
Jonathan Druart decb8780ac
Bug 38465: (bug 36454 follow-up) Fix curbside pickup's patron autocomplete
js-date-format.inc already include those 2 JS files. If had them in
curbside pickups template because it was the first using dayjs.
Now it's included in js_includes.inc.

Test plan:
Configure curbside pickup for your library and go to circ/curbside_pickups.pl
Last tab, search for a patron
Without this patch you get a JS error:
 Uncaught TypeError: m.tz is not a function
With this patch applied the patron autocomplete 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>
2024-12-23 10:35:33 +01:00
Fridolin Somers bf82831913
Bug 38653: Remove call on system preference 'OPACLocalCoverImagesPriority'
This is in opac/opac-search.pl a call on system preference
OPACLocalCoverImagesPriority. This preference does not exists elsewhere
and dates back to Koha 3.8 from Bug 1633

This patch removes the call and fixes folding of if.

Check this returns empty : git grep OPACLocalCoverImagesPriority

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:32 +01:00
Owen Leonard 6219271cd0
Bug 38347: Fix style of sidebar form submit button on bookings to collect page
This patch fixes the markup of the sidebar form on the bookings to
collect page, and adds the correct "btn btn-primary" class to the submit
button.

NOTE: This patch contains indentation changes, so please ignore
whitespace when viewing the diff.

To test, apply the patch and go to Circulation -> Bookings to collect.

In the sidebar form, confirm that the submit button has the same yellow
"primary" style as other submit buttons, and that it fills the width of
the sidebar.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:32 +01:00
Jonathan Druart 8557a5aef1
Bug 38624: Remove unused browserid_include.js
`git grep browserid_include.js` does not return any results, this file
does not seem to be used anywhere

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:31 +01:00
Emily Lamancusa 0f01f2b31d
Bug 38155: (QA follow-up) Fix TT filters and scalar context
data-referer is the url for the current search page, to redirect
back after performing the operation. Since it is a url, variables within
this link all need to use the uri filter, not html or KohaDates.

Also specify scalar context when splitting the input parameter to
prevent param in list context warnings.

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:31 +01:00
Brendan Lawlor 8b038c880c
Bug 38155: Fix Acquisitions Reopen selected invoices button
This patch updates the reopen selected invoices link button to use
the form-submit.js method from bug 36246. The link needs to have a single
data-invoiceid parameter, so the js on invoices.tt creates a comma
separated list from the checkboxes.

The list of invoiceid is split into an array in invoice.pl

To test:
1. Add some invoices for a vendor using the 'receive shipments' button
2. Go to Acquisitions->Invoices
3. Select multiple invoices using the checkboxes
4. Click the 'Close selected invoices' button
5. Confirm it works
6. Go to the Closed invoices tab
7. Select multiple invoices using the checkboxes
8. Click the 'Reopen selected invoices' button
9. Confirm it works
6. Confirm reopening individual invoices from the Actions button still works

Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:30 +01:00
Brendan Lawlor e15d90563f
Bug 38155: Fix Acquisitions close selected invoices button
This patch updates the closed selected invoices link button to use
the form-submit.js method from bug 36246. The link needs to have a single
data-invoiceid parameter, so the js on invoices.tt creates a comma
separated list from the checkboxes.

The list of invoiceid is split into an array in invoice.pl

To test:
1. Add some invoices for a vendor using the 'receive shipments' button
2. Go to Acquisitions->Invoices
3. Select multiple invoices using the checkbox
4. Click the 'Close selected invoices' button
5. Confirm it works
6. Confirm closing individual invoices from the Actions button still works

Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:30 +01:00
Owen Leonard 9edea9b7a3
Bug 38657: Prevent cover image from being from being obscured by the search results toolbar
On the OPAC search results page we're including the Chocolat image
viewer CSS after our global CSS file. This means that rules which
are intended to override the default Chocolat CSS aren't working. The
fix is to move the line which includes the Chocolat CSS.

To test, apply the patch and enable the LocalCoverImages and
OPACLocalCoverImages system preferences.

- If necessary, add a local cover image to a bibliographic record.
- Go to the OPAC and perform a search which will return multiple
  record including the record with the cover image.
- Click the cover image to trigger the image viewer.
- The image viewer should not appear to be "behind" the search results
  toolbar.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:29 +01:00
Lucas Gass 52dd7302d2
Bug 38512: Fix display of recalls in items table
1. Turn on  UseRecalls
2. Set circ rules to allow for recalls ( Recalls allowed(total) and Recalls allowed(count))
3. Check something out to a patron, choose a record with multiple items on it
4. With another patron recall the item from the OPAC
5. Choose "Recall next available item"
6. Now go back to the item table and see that all items on the bib say something like: "Recalled by koha (42) on 11/21/2024"
7. APPLY PATCH
8. Do steps 3 - 6 again and now the items should correctly show as available.
9. Place a recall again but choose 'Recall a specific item'.
10. Look at the table again, it should accuretly show the recall in the status column. "recalled by koha (42) on 11/21/2024"
11. Turn off UseRecalls, make sure the table still loads properly.

Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:29 +01:00
Owen Leonard bffacd5509
Bug 38519: Improve contrast of Bootstrap alerts and text background classes
This patch updates staff interface CSS in order to improve visibility
and contrast in Bootstrap alerts and text with background classes.

Some of these changes are made via our custom _variables.scss file which
sets overrides of default Bootstrap classes. I was not able to figure
out a good way to customize the .text-bg-* classes via that method so
I've inserted those changes into staff-global.scss.

The patch also removes our custom .note class because it can be replaced
with .alert.alert-info.

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

- Clear your browser cache if necessary.
- View places where the updated classes can be found:
  - For example: Administration -> Authorized values. Click a
    category which has no saved values, e.g. Asort1. There should be two
    "info" classed alerts: One showing "NOTE: If you changed an
    authorized value..." and one showing "There are no authorized
    values..."
- Other examples of pages which are updated to use "alert alert-info"
  instead of the "note" class:
  - Patron search where the search is limited by permissions, e.g.
    Acquisitions -> Vendor -> Basket -> Add user.
  - Administration -> Search engine configuration: "Warning: Any changes
    to the configuration will only take effect..."
- See also pages where a count of something uses the text-bg-info class:
  - Bibliographic detail page when the record has holds
  - Patron module home page when there are pending modifications
  - Tools home page when there are tags or comments pending approval
  - A patron checkout screen when the Claims tab is present (
    BundleLostValue or ClaimReturnedLostValue prefs are set).

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:28 +01:00
Owen Leonard ce6609ff80
Bug 38644: Remove CSS rule to hide breadcrumbs in mobile view
I think the original intent was to simplify the mobile view and avoid
offering a menu that was a very small target, but those issues should be
addressed, if necessary, without compromising accessibility. This patch
removes the CSS rule which hides the breadcrumb menu when the screen is
less than 767 pixels wide.

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

- Clear your browser cache if necessary.
- View any page in the OPAC which has a breadcrumbs menu.
- Resize your browser window until it is very narrow to confirm that the
  breadcrumb menu stays visible.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:28 +01:00
Lisette Scheer 6a839ff666
Bug 38530: ILL request table won't load
This patch updates the js-patron-format include to show text if the library can't be fetched due to lack of permissions.
To test:
Before applying the patch
1. Create 2 library groups
2. Give both groups the "Limit patron visibility to libraries within this group for members." attribute
3. Assign 1 library to each group.
4. Turn on ILL in the system preferences
5. Create an ILL for a patron in group 1.
6. Create a staff member for the library in group 2 with only the following permissions:
catalogue
ill
list_borrowers
7. Log in as the new staff member.
8. Observe the table never loads.
9. Apply the patch.
10. Refresh the page as the new staff member.
11. Observe the table loads and the patron says "A patron from another library"
12. Log back in as the superlibrarian and confirm you can still see the patron information.
13. Sign off

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-23 10:35:27 +01:00
Lucas Gass 2a17ad69ea
Bug 38659: Fix select_manager function when there are no tabs
To test:
1. Have multiple staff you have permissions to be a purchase suggestion
   manager.
2. Make some suggestions.
3. Edit a suggestion, go down to 'Select manager'.
4. Select a new manager, notice the new one name is not populated.
5. Save the record, the manager is not changed to the new one.
6. APPLY PATCH
7. Try again steps 3-6, but this time the manager field should populate
   and the new manager should be saved when you save the suggestion.
8. Go through the test plan on Bug 38183.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:26 +01:00
Caroline Cyr La Rose d350979d6b
Bug 38707: Patron restriction types from installer files not translatable
This patch makes translatable the default patron restriction
types that come installed with Koha.

To test:

1) Search for "Manual restriction" in the translation files

`git grep "Manual restriction" misc/translator/po/fr-CA-installer.po`

--> No results

2) Apply patch

3) Update translations

`gulp po:update --lang fr-CA`

4) Repeat step 1

--> Manual restrictions (as well as the other restriction types
    i.e. Overdues, Suspension, Discharge, and Notice failure
    suspension) is in the .po file

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:26 +01:00
Nick Clemens e758492d99
Bug 38382: Fresh connection when connexion CSRF token expires
This patch simply generates a new user agent when reauthenticating when the CSRF token
for the session has expired.

To test:
1 - Edit Koha/Token.pm, line 275
from:    { MaxAge => $params->{MaxAge} // ( CSRF_EXPIRY_HOURS * 3600 ) },
to:      { MaxAge => $params->{MaxAge} // ( CSRF_EXPIRY_HOURS ) },
2 - This will make your CSRF tokens expire after 8 seconds
3 - vim /etc/koha/sites/kohadev/connexion.cnf
4 - Set content:
    host:
    port: 8888
    koha:http://localhost:8081
    log:/var/log/koha/kohadev/connexion.log
    match:ISBN
    user:kohauser
    password:kohapass
    overlay_action:replace
    nomatch_action:create_new
    item_action:always_add
    import_mode:direct
    framework:BKS
    overlay_framework:
    debug:1
5 - Save the sample file from this bug into your kohaclone (or copy and paste into a file your koha test site can reach)
6 - On the command line:
    perl misc/bin/connexion_import_daemon.pl -c /etc/koha/sites/kohadev/connexion.cnf
7 - In another terminal:
    cat bug_33418.test  | nc -v localhost 8888
8 - Successful request
9 - Wait 10 seconds (more than 8 anyways)
10 - Repeat 7
11 - Unsuccessful request - Invalid CSRF token
12 - Ctrl+C to stop the connexion daemon
13 - Apply patch
14 - repeat 6
15 - repeat 7, success
16 - Wait more than 8 seconds
17 - repeat 7, success!
18 - repeat again until you are satisfied
19 - Sign off!

WNC amended and tidied

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:25 +01:00
Jonathan Druart 9fe1563fa0
Bug 38596: (bug 36640 follow-up): Restore previous order sequence behaviour - OPAC
See commit e76c5c0145
    Bug 36640: Restore previous order sequence behaviour

Test plan:
Go to http://localhost:8080/cgi-bin/koha/opac-detail.pl?biblionumber=1
Click on the header to modify the order, click again, then again.
It should always be asc or desc, and you should see the corresponding
arrows.

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>
2024-12-20 18:33:25 +01:00
Andrew Fuerste Henry d86c662451
Bug 38531: add diff when reverting hold
To test:
1 - place, capture, and revert a hold
2 - view action logs for your hold via SQL so you can see the diff column
3 - confirm reversion of waiting hold generates a MODIFY line in logs with no diff
4 - apply patch, restart_all
5 - capture and revert your hold again
6 - confirm logs include diff showing change to found and priority

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:24 +01:00
Lucas Gass 481f8ce3db
Bug 37992: Make memberresultst thead sticky
1. Run empty patron search
2. Assuming there are enough results, when scrolling down the #searchheader with "select all" button would get hidden. But no, it's sticky so it follows you and stays visible. This is expected.
3. The table header (thead) with filters for each column is not sticky. This is a regression.
(It was sticky in 23.11, but not anymore in 24.05 and main)
4. APPLY PATCH and regenerate CSS.
5. The thead should again be sticky.
6. Test in at least Chrome and Firefox.

Notes:
-Setting top to 40px, which covers the height of the #searchheader
-To avoid border styles not working with the sticky element I am unsetting border-collapse.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:24 +01:00
Lucas Gass 264887a87f
Bug 38429: Add dropdown to Add guarantee button if multiple categories are allowed
To test:
1. Have multiple patron categories that are set to 'Can be guarantee'.
2. Go to a patron record and click '+ Add guarantee'
3. Look at how the patron category is set.
4. It defaults to the first one alphabetically, by code.
5. APPLY PATCH
6. Try steps 1 -2 again, this time you should get a dropdown to pick which category of guarantee you want.
7. Add some patron categories that can be gaurantees with library limitations. Make sure they only show for the correct libraries.
8. Set only patron category to be a gaurantee. The dropdown should now be a button.

Signed-off-by: Laura ONeil <laura@bywatersolutions.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:23 +01:00
Mason James 7283fa84b9
Bug 33018: debian package tidy-up (2)
remove unrequired module

	modified:   cpanfile

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:23 +01:00
Mason James d5ba5c2879
Bug 33018: debian package tidy-up
this patch removes unneeded package dependencies

to test:
 - apply patch
 - build and install koha-common package, note success

Signed-off-by: Magnus Enger <magnus@libriotech.no>
Not tested, I trust Mason to the right thing.
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:22 +01:00
Kyle M Hall 4d40fd7ab9
Bug 38486: For SIP allow noblock checkouts reguardless of normal patron checkout blocks
The purpose of no block checkouts in SIP is to indicate that the SIP machine has made an offline ( "store and forward" ) transaction.
The patron already has the item. As such, the item must be checked out to the patron or the library risks losing the item do to lack of tracking.
As such, no block checkouts should not be blocked under any circumstances.

The sub C4::SIP::ILS::Transaction::Checkout::do_checkout already honors this, but it is wrapped by
C4::SIP::ILS::checkout which has additional checks that do not.

Test Plan:
1) Apply the unit test patch
2) prove t/db_dependent/SIP/Transaction.t will fail
3) Apply the second patch
4) prove t/db_dependent/SIP/Transaction.t will pass!

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:21 +01:00
Kyle M Hall 87cc6a9cc8
Bug 38486: Fix unit tests
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:21 +01:00
Fridolin Somers a045ac1e96
Bug 38544: OPAC Modal login not generated when OPAC login is disabled
When OPAC login is disabled (system preference opacuserlogin),
the modal login should not exist in HTML.

Note the access to opac-user.pl shows a message and not auth form.

You may look at commit with : git diff --ignore-space-change

Test plan :
1.1) Set system preference opacuserlogin to "Allow"
1.2) Go to OPAC main page
1.3) Check you see in source : div id="loginModal"
1.4) Click on "Log in to your account"
1.5) Check you see the modal login
2.1) Set system preference opacuserlogin to "Don't allow"
2.2) Go to OPAC main page
2.3) Check you do not see in source : div id="loginModal"

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:20 +01:00
Jonathan Druart be6ebd4b9a
Bug 38450: Fix some translation pickups
_("This %s is picked").format(foo)
_("This %s is NOT picked".format(bar))

Both constructs are valid, but our translation script does not pick the
second one.

I found very few occurrences (using `git grep '.".format('`) that are
displayed on the UI. I don't have the time right now to deep dive into
the translation script to fix this problem, easier to adjust the
occurrences.

How to prevent that in the future however? We could raise a warning from
the QA script.

Test plan:
Do not apply this patch
Generate the strings (`gulp po:update --lang LANG`)
cd misc/translator/po && git commit -a -m"wip"
Apply this patch, regenerate the strings
cd misc/translator/po && git diff

Notice the changes, you should see new translations added to the .po
files.
Ideally translate them, install the templates and confirm that the new
strings are translated on the UI.

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>
2024-12-20 18:33:20 +01:00
Jonathan Druart 75d9a38805
Bug 38750: (bug 38385 follow-up) Unblock update process when nothing to do
When we go to installer/install.pl and there is nothing to do we get a "Try again" button and never manage to finish the update.

https://snipboard.io/TplscJ.jpg

Test plan:
Go to installer/install.pl
Login
Click next
=> Without this patch you are stuck with a "Try again" button
=> With this patch applied you get a success screen
 "Everything went okay. Update done."

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:19 +01:00
Matt Blenkinsop 1fc336d6bd
Bug 38268: (follow-up) Prevent callbacks from being duplicated
This patch moves the logic up one level into the confirmModal function
to prevent future regressions

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:19 +01:00
Phil Ringnalda 6b470caa92
Bug 38268: Callers of confirmModal need to remove the modal as the first step in their callback function
Templates that use confirmModal to show a pretty confirm() need to
remove the modal in their callback function, or they are at risk of
having the first callback called for subsequent calls that think they
will get their own callback called. opac-user.tt is already fixed,
opac-shelves.tt is currently affected, and opace-suggestions.tt,
opac-tags.tt, and sco/sco-main.tt are at risk of being affected if
anyone adds another confirmModal caller.

Test plan:
 1. Without the patch, open the OPAC, log in, search for something that
    will return several results
 2. Select all - Add to list - New list
 3. Lists - {your list name}
 4. Click the checkboxes for the first two items
 5. Instead of clicking Remove from list, accidentally click Delete list
 6. In the confirmation popup, realize it was a mistake and click No, do
    not delete
 7. Click Remove from list
 8. Poof, your whole list is gone
 9. Apply patch
10. Repeat steps 1-7, but instead of the whole list being deleted, see
    that only the selected two items were removed
11. Now intentionally click Delete list and click Yes, delete, you'll
    see that it is deleted rather than getting a message about nothing
    being removed like you would have gotten without the patch if you
    started by removing an item
12. On any bib detail page, click Add tag(s) and add one
13. Your account - Tags, check the checkbox for the tag, Remove selected
    tags, Yes, delete tag and verify that it was deleted
14. Purchase suggestions - New purchase suggestion, fill in a title and
    submit your suggestion, click the checkbox for your suggestion,
    Delete selected, Yes, delete suggestion and verify it was deleted
15. In the staff interface, find and copy the barcode for any item that can
    be checked out, then go to /cgi-bin/koha/sco/sco-main.pl with the
    OPAC hostname and port, not the staff, and log in
16. Paste the barcode in the input, click Submit, then click Finish, and
    in the confirmation popup click Print recept and end session, and
    verify that it tries to print

Sponsored-by: Chetco Community Public Library
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:18 +01:00
Owen Leonard 1b1e96a17c
Bug 31450: Make additional contents publication date required
HTML customizations and news will not display without a publication
date, so we should make it required. This patch adds client-side
validation of the field to check that it's filled.

To test, apply the patch and go to Tools -> News (or HTML
customizations, or Pages).

- Click "New entry"
- Try to submit this new entry without entering a publication date.
- You should be prevented from submitting the form.
- Fill in the publication date and confirm that the form submits
  correctly.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:18 +01:00
Owen Leonard 57a068ca6f
Bug 38683: OPAC cover images are only shown on fist result page
This patch corrects the OPAC search results template so that cover
images will be added on more than just the first page of results.

To test, apply the patch and enable a cover image system preference e.g.
OPACAmazonCoverImages. Perform a search in the OPAC which will return
multiple pages of results. Page through several pages of results to
confirm that cover images appear on each page.

Signed-off-by: Jan Kissig <bibliothek@th-wildau.de>
Signed-off-by: Sam Sowanick <sam.sowanick@corvallisoregon.gov>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:17 +01:00
Mathieu Saby 30a1c4bb45
Bug 32722: Make several subfields and a field non mandatory in default UNIMARC biblio framework
801 should not be mandatory except in data exchange context (IFLA Manual)
In UNIMARC several subfields are mandatory only if the field is used.
This possibility is not available in MAR21, and Koha is currently not
able to manage this information in a useful way : it blocks the
validation of a record if the mandatory subfield is void, regardless
of the mandatory status of the field.
In consequence those subfields must be declared non mandatory in default framework.

Test plan:

1/ Open a UNIMARC Koha without patch. Try to create a record with
minimal information : 200$a and 100$a. A lot a alerts are displayed,
preventing Koha to add the record
2/ Apply the patch
3/ Run reset_all or restart KTD (to remake a fresh koha from scratch)
4/ Try to create a record with minimal information : 200$a and a 100$a.
There should only be 2 alerts, regarding 099$t and 942$c field.

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:17 +01:00
Martin Renvoize 5089f6672a
Bug 38070: Revert class change so notices print one per page
This patch reverses the bootstrap 5 find and replace for the 'message'
class.

In this file the message class didn't refer to the bootstrap themeing
but rather is used for applying `page-break-after: always` to these
elements.

Test plan
1) Line up some print notices
2) Run gather_print_notices.pl with html file output
3) Open the output file
4) Print the page to invoke the page break css
5) Note that with the patch each notice is on it's own page, without the
   patch all the notices run one after the other on the same page.

Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-20 18:33:16 +01:00
Andrew Fuerste Henry 1a4820322e
Bug 38522: (follow-up) Edit db_rev and preserve comment
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-12 16:01:35 +01:00
Owen Leonard 4cb222217f
Bug 38620: Remove obsolete reference to hc-sicky on OPAC tags page
This patch removes code intended to include the hc-sticky js library.
hc-sticky is not longer included in Koha.

To test, apply the patch and make sure the TagsEnabled system preference
is turned on.

Log in to the OPAC and go to the tags page. Everything should work
correctly. There should be no errors in the developer console.

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

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-05 13:57:16 +01:00
Emmi Takkinen a84195d7da
Bug 38602: Do not check if columns bookings.creation_date and bookings.modification_date from information_schema
If one has multiple databases in use adding columns
bookings.creation_date and bookings.modification_date is added
just to first updated database and skipped in other updates.
This happens because we check if these columns already exist
in database from information_schema. We should instead make
this check with method column_exists.

To test:
1. Apply this patch.
3. Drop columns bookings.creation_date and bookings.modification_date:
ALTER TABLE bookings DROP COLUMN creation_date;
ALTER TABLE bookings DROP COLUMN modification_date;
2. Revert your database back to version 24.0600028:
UPDATE systempreferences SET value = "24.0600014" WHERE variable = "version";
3. Run updatedatabase.pl.
=> Check that columns were added.

If you happen to have two databases:
1. Check if you have columns in your bookings table:
SELECT DISTINCT TABLE_SCHEMA, TABLE_NAME FROM
INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN
('creation_date', 'modification_date');
=> Note that columns exist only in one of the databases.
2. Make sure you're using database missing columns
from booking table.
3. Apply this patch.
4. Revert back to version 24.0600028.
5. Run updatedatabase.pl
=> Check that columns were now added to database.

Sponsored-by: Koha-Suomi Oy
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-05 13:57:15 +01:00
Katrin Fischer 50fd4a6033
38522: DBIC schema update
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-05 13:57:15 +01:00
Michał Kula 7df4eda9ec
Bug 37393: fix "In bundle:" link not showing for items in staff interface
The cause was erroneous check `[% IF bundlesEnabled %]` before the parent bundle information is requested+shown. The `bundlesEnabled` variable checks if the current biblio ITSELF is of collection type, so should only be used for whether to show the button to add new items to the bundle items, NOT for querying whether current item is part of a bundle, as the items that make up the bundle aren't of collection type themselves.

The second fixed problem was that `bundle_host` didn't contain `.biblio` subitem (which'd contain the actual host biblio title) as the JavaScript code assumed, and it wasn't possible to request it with the API either.

Test plan: please follow the reproduction instructions from bug and ensure that the described issue is gone.

If you run into an error 400 on the detail page, you need to refresh API definitions, in kts shell you'drun:

redocly bundle --ext json api/v1/swagger/swagger.yaml --output api/v1/swagger/swagger_bundle.json
koha-plack --restart kohadev

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>
2024-12-04 16:32:49 +01:00
Martin Renvoize a5e3b45019
Bug 38622: Update sample patron data with preferred_name
This patch updates the sample_date, as used in koha-testing-docker, with
the new preferred_name field.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-04 16:32:48 +01:00
Emmi Takkinen efaa21c80d
Bug 31470: Do not change relationship value when adding a patron guarantor
Adding new id "relationship" led to unexpected behaviour
in relationship handling. If one edits patron with
non-patron guarantor and added patron guarantor, non-patron
guarantors relatioship field was set as empty value which is
first option on select field. This patch removes code which
sets relationship select field to use first value of option
automatically when patron guarantor is added.

Also thi patch add missing id to mandatory relatioship field.

To test:
1. Add or edit patron.
2. Add non-patron guarantor for patron and select some value
as their relationship.
3. Then add a patron guarantor.
=> Note that non-patron guarantors relationship is empty.
4. Apply this patch.
5. Repeat steps 1 to 3.
=> Relationship shouldn't change.

Sponsored-by: Koha-Suomi Oy
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>
2024-12-04 13:44:04 +01:00
Emmi Takkinen a605c070c7
Bug 31470: Add id "relationship" to memberentrygen.tt, change id "relationship" in auth-finder-search.inc
In members.js line 112 variable guarantor_relationship is selected
with id "relationship". However id "relationship" is used in
auth-finder-search.inc, not in memberentrygen.tt.

One way to see what kind of effect incorrect selector has (and how I
originally stumbled into this), is to add into "IntranetUserJS" a line
which changes non-patron guarantors relationship default selected value
as other than empty. Script has to change "relationship" instead of
"new_guarantor_relationship" because selector input for patron
guarantors relationship actually uses default selected value from
non-patron guarantors relationship.

This patch changes two things. Firstly it adds id "relationship" to
memberentrygen.tt so that member.js can fetch correct value
to variable guarantor_relatioship. Secondly it changes id "relationship"
in auth-finder-search.tt as "special_relationship" to avoid confusion.

To test memberentrygen.tt:
1. Make sure you have some value(s) in syspref "borrowerRelationship"
   e.g. "guarantor".
2. Add following line to "IntranetUseJS": $('.relationship
   option:eq(1)').attr('selected', 'selected');
3. Add guarantee patron and note that non-patron guarantors relationship
   is now "guarantor".
4. Add patron guarantor and note that relationship value is empty.
5. Apply this patch and refresh page.
6. Repeat step 4.
   => Note that now relationship value is "guarantor".

To test auth-finder-search.inc:
1. Add authority e.g. Chronological Term
2. Modify field 551$a, click "Tag editor" icon from right
3. Searc pop-up is opened.
   => Make sure that field "Special relationship" is highlighted when
      you hover mouse over label.
   => Make sure that after performing a search, search value in
      "Special relationship" field persists.

Sponsored-by: Koha-Suomi Oy
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>
2024-12-04 13:44:04 +01:00
Matthias Meusburger 73fbdbb1f8
Bug 38605: Fix Harvester.pm use of days parameter
Dates were incorrectly handled during the first days of the month because of
the use of non-zero-padded days values.

(t/db_dependent/Koha/OAIHarvester.t failed)

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-12-04 13:44:03 +01:00