]> git.koha-community.org Git - koha.git/log
koha.git
42 min agoBug 37103: (QA follow-up) Added space between Acquisitions and its icon main
Laura_Escamilla [Thu, 19 Sep 2024 15:35:29 +0000 (15:35 +0000)]
Bug 37103: (QA follow-up) Added space between Acquisitions and its icon

Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
42 min agoBug 37103: Link log viewer options to corresponding system preference
Owen Leonard [Mon, 17 Jun 2024 15:41:53 +0000 (15:41 +0000)]
Bug 37103: Link log viewer options to corresponding system preference

This patch updates the log viewer interface so that users with the
correct permissions can click a module's "Log not enabled" icon to go
directly to the corresponding system preference for enabling the log.

To test, apply the patch and go to Tools -> Log viewer (must have
"view_system_logs" permission).

- You should see an icon next to each module for which logging is
  disabled. Hovering over the icon should give a tooltip: "Log not
  enabled."
- If you are logged in as a user with "manage_sysprefs" permission,
  clicking the icon should take you directly to the system preference
  for enabling or disabling that module's logs.
- If your user does not have "manage_sysprefs" permission the icon
  should not be a link.

Sponsored-By: Athens County Public Libraries
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
42 min agoBug 35508: (QA follow-up) Fix qa script issues
Kyle M Hall [Fri, 18 Oct 2024 10:31:32 +0000 (10:31 +0000)]
Bug 35508: (QA follow-up) Fix qa script issues

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
42 min agoBug 35508: Don't update patron attributes if new list of attributes matches list...
Kyle M Hall [Tue, 28 May 2024 17:26:03 +0000 (13:26 -0400)]
Bug 35508: Don't update patron attributes if new list of attributes matches list of existing attributes

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
42 min agoBug 35508: Move logic to Koha::Patron::Attribute::store()
Kyle M Hall [Wed, 17 Apr 2024 13:29:29 +0000 (09:29 -0400)]
Bug 35508: Move logic to Koha::Patron::Attribute::store()

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
42 min agoBug 35508: Update borrowers.updated_on when modifying a patron's attribute
Hammat Wele [Thu, 14 Dec 2023 13:59:42 +0000 (13:59 +0000)]
Bug 35508: Update borrowers.updated_on when modifying a patron's attribute

Currently, if you have patron attributes and modify the values in a patron's account, the patron's updated_on date is not updated. This patch makes the "Updated on" change when a patron attribute is updated.

To test:

1. Create a patron attribute type
   1.1. Go to Administration > Patron attribute types
   1.2. Click New patron attribute
   1.3. Fill out the code and description
   1.4. Click Save

2. Edit a patron (normal)
   2.1. Go to Patrons and find a patron account
   2.2. Click Edit
   2.3. Change a regular field (e.g. Middle name)
   2.4. Click Save

--> Notice the "Updated on" date in the left column has been updated to now

3. Edit a patron attribute
   3.1. In another patron account*, click Edit
   3.2. Change the value of an attribute
   3.3. Click Save

--> Notice the "Updated on" date did not change

4. Apply the patch
   4.1 Repeat step 3.1, 3.2, 3.3

--> Notice the "Updated on" date has now changed

Signed-off-by: Esther <esther@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
42 min agoBug 38164: Skip fuzzy translations
Tomas Cohen Arazi [Mon, 14 Oct 2024 12:52:14 +0000 (09:52 -0300)]
Bug 38164: Skip fuzzy translations

This patch was envisioned by Julian Maurice.

Test plan:
0. Apply the 1st patch (the revert)
1. Go to `misc/translator/po`
2. es-ES-messages-js.po
3. Mark "Edit" string as fuzzy (around line 48). It should look like:

```
msgid "Edit"
msgstr "Editar"
```

4. Edit ./intranet-main.tt and add the following lines at the bottom,
   inside the `$(document).ready` block:

```javascript
  console.log(_("Edit"));
  console.log(__("Edit"));
```

5. Install the templates
  k$ koha-translate --install es-ES --dev kohadev && restart_all
6. Enable *es-ES* by searching for `language` in the sysprefs and switch
   to it for the staff interface.
7. Go to the Koha home page, open the browser console
=> FAIL: Notice that the second log in the console is displaying the
fuzzy string (i.e. is being translated when it shouldn't)
8. Apply this patch
9. Re-install the translated templates:
  k$ koha-translate --update es-ES --dev kohadev && restart_all
10. Repeat 7
=> SUCCESS: With this patch applied both logs show the English version of the
string.
11. Remove the fuzzy flag on `es-ES-messages-js.po`
12. Repeat 9 and 10
=> SUCCESS: The results are similar to step 7, but in this case they are
expected as the string is not marked fuzzy.
13. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
42 min agoBug 38164: Revert "Bug 37303: Replace po2json with a JS version"
Tomas Cohen Arazi [Mon, 14 Oct 2024 12:50:23 +0000 (09:50 -0300)]
Bug 38164: Revert "Bug 37303: Replace po2json with a JS version"

This reverts commit 4eb981635453871fa2a33396391f3f75a6baa8b1.

Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37403: Wrong progress quantity in job details
Hinemoea Viault [Wed, 24 Jul 2024 16:35:28 +0000 (12:35 -0400)]
Bug 37403: Wrong progress quantity in job details

In fact the system adds a previous value to the progress. As if the system keeps a previous value and adds the correct count of records in addition.
This patch removes the previously stored value.

To test:
1. Go to Cataloging > Stage records for import
2. Choose a file with bibliographic records and click Upload file
3. In "Look for existing records in catalog?" choose a record matching rule (e.g. ISBN)
4. Click Stage for import
5. Click View detail of the enqueued job
   --> Progress show 2/1
6. Apply the patch
7. Repeat steps 1 to 4
8. Click View detail of the enqueued job
   --> Progress show 1/1

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
qa script:
Commit title does not start with 'Bug XXXXX: ' - d1bebb34d7

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Fixed patch subject line
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37304: Fix created by filter in Acquisitions advanced search
Brendan Lawlor [Mon, 22 Jul 2024 20:07:18 +0000 (20:07 +0000)]
Bug 37304: Fix created by filter in Acquisitions advanced search

This patch updates the field for the created by filter from
ui.item.borrowernumber to ui.item.patron_id

Test plan:
1. Add a vendor and a basket
2. Use advanced order search to search for created by 'koha'
3. Use the autofill dropdown to make the selection and click 'Search'
4. Your search returned no results.
5. Apply patch and repeat steps 2 and 3
6. Confirm the search returns the basket you created earlier

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37836: Prevent submitting empty barcodes in Self check-in
Bo Gustavsson [Wed, 4 Sep 2024 19:49:47 +0000 (21:49 +0200)]
Bug 37836: Prevent submitting empty barcodes in Self check-in

This patch disbles the "Submit" button when the barcode field is empty.

To test this patch:

Add the patch to your koha clone
Enable the "SelfCheckInModule".
Open the page and the "Submit" button should be disabled when the barcode field is empty.

Signed-off-by: Sam Sowanick <sam.sowanick@corvallisoregon.gov>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37070: (QA follow-up) Fix qa script issues
Kyle M Hall [Fri, 4 Oct 2024 17:00:26 +0000 (13:00 -0400)]
Bug 37070: (QA follow-up) Fix qa script issues

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37070: Incorrect barcode generation when adding orders to basket
Hammat Wele [Tue, 11 Jun 2024 14:08:45 +0000 (14:08 +0000)]
Bug 37070: Incorrect barcode generation when adding orders to basket

When the autoBarcode preference is set to « generated in the form 1, 2, 3 » and the maximum barcode is length 16 (ex 1000000000000000),
when adding orders to the basket,the numbers generated are in the hexadecimal form.

to reproduce:

1- Set the system preference autoBarcode to « generated in the form 1, 2, 3 »
2- Search for a biblio record
3- In the record details, click on New -> New item
4- fill the Barcode field to a number with length 16 (1000000000000000) and add the item
5- Create a suggestion
    5-1- Go to Acquisitions and click on suggestions
    5-2- Create a suggestion and accept it
6- Add a new order to a basket
    6-1- Go to Acquisitions and find a vendor
    6-2- Create a new Basket
    6-3- on the Basket click on 'Add to basket' and select 'From a suggestion'
    6-4- Add the order created on 5-2- to the basket
    6-5- On the item form click on Add item
    6-6- Select a Fund and save the order
7- In the orders table click on the record and check the item Barcode
    ---> the Barcode is in hexadecimal form
8- Cancel order and delete the catalog record
9- Apply the patch
10- Repeat step 6-4, 6-5, 6-6
11- Check the item Barcode
    ---> the Barcode is not in hexadecimal form
12- run prove t/db_dependent/Barcodes.t

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37606: Fix framework export module to escape double quotes
Baptiste Wojtkowski [Fri, 9 Aug 2024 14:33:37 +0000 (16:33 +0200)]
Bug 37606: Fix framework export module to escape double quotes

When exporting a framework as csv, the exporter does not check the presence of double quote in the fields. Hence, if there is one double quote, the csv is broken.

TEST PLAN:
1 - Change a framework to add a field containing double quote in name
2 - Export it in csv
3 - Create a new framework
4 - Import the csv in the new framework -> every fields after the one
containing double quotes should be broke. Every other fields should have
no subfield
5 - APPLY PATCH
6 - Repeat 2-5 -> everything should be correctly exported

Signed-off-by: Sukhmandeep Benipal <sukhmandeep.benipal@inLibro.com>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 38012: Remove ispermanent from returns and branchtransfers
Andrew Fuerste Henry [Fri, 4 Oct 2024 15:11:49 +0000 (15:11 +0000)]
Bug 38012: Remove ispermanent from returns and branchtransfers

To test:
There should be no change in behavior, as this code is not referred to elsewhere in Koha. Make sure you can still do checkeckins and transfers.

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37977: Fix some issues with labels in inventory form
Phil Ringnalda [Fri, 20 Sep 2024 21:43:35 +0000 (14:43 -0700)]
Bug 37977: Fix some issues with labels in inventory form

The inventory form has several issues with labels with a for attribute that
doesn't match the id of the input, so the label doesn't actually get linked
to anything.

Test plan:
 1. Without the patch, go to Cataloging - Inventory
 2. In the section for "Item location filters" click the label for "Shelving
    location (items.location) is", which will focus the select menu, then
    press the down arrow on the keyboard to see that it's focused by opening
    the select menu.
 3. Click in a blank spot to close the select menu, then click the label for
    "Collection" and press the down arrow key, which will scroll the page
    since the label didn't focus the menu, and repeat with "Call number
    classification scheme" which also will scroll the page when you press
    down arrow.
 4. In the section for "Optional filters for inventory list or comparing
    barcodes" click any of the labels below items.notforloan - clicking a
    checkbox label should toggle whether the checkbox is checked, but it
    will not
 5. Apply patch, refresh page
 6. Repeat steps 3 and 4, but this time you will get the proper behavior,
    focusing the select menus and toggling the checkboxes

Sponsored-by: Chetco Community Public Library
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37905: Fix parameter name
Jonathan Druart [Wed, 4 Sep 2024 12:24:45 +0000 (14:24 +0200)]
Bug 37905: Fix parameter name

It's named enqueued_date on the API side, not enqueued_on (which is the DB
column's name)

No behaviour change expected here.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37905: Use correct RFC3339 formatted date to the server
Jonathan Druart [Wed, 4 Sep 2024 12:20:33 +0000 (14:20 +0200)]
Bug 37905: Use correct RFC3339 formatted date to the server

This patch suggests to revert the previous attempt to fix this problem.
The date was using the client-side's tz and so the "last hour" was not
matching the one from the server.

With bug 37831 with simply need to pass a rfc3339-formatted date and the
filtering will be done as expected.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoRevert "Bug 36217: Fix background jobs page's include_last_hour filter"
Jonathan Druart [Thu, 12 Sep 2024 12:27:02 +0000 (14:27 +0200)]
Revert "Bug 36217: Fix background jobs page's include_last_hour filter"

This reverts commit f5c839348091d129bb7100af2c9e64e486d0ea1d.

https://bugs.koha-community.org/show_bug.cgi?id=37905
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37902: (QA follow-up) Tidy Query.pm & Object.t
Kyle M Hall [Fri, 27 Sep 2024 13:23:21 +0000 (13:23 +0000)]
Bug 37902: (QA follow-up) Tidy Query.pm & Object.t

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37902: Apply exact match for datetime
Jonathan Druart [Wed, 18 Sep 2024 07:49:50 +0000 (09:49 +0200)]
Bug 37902: Apply exact match for datetime

We do not want to apply "like" and do a "contains" search if a correctly
formatted date is passed (ie. starting with "YYYY-MM-DD HH:MM:SS")

It causes underlying problems if we add '%' characters to this string as
it will then become an invalid date.

There are several ways of dealing with this problem. This patch is
suggesting the easiest path: Apply an exact search (ie. do not add '%')
if the value appears to be a datetime.

Certainly not the best looking patch but it seems to be quite effective:
  * no need to change the client
  * no need to rework build_query_params, merge_q_params, attributes_from_api

We could (to confirm) pass the result set, but it seems a lot of additional processing
(that is done later already, in attributes_from_api)

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37902: Add tests
Jonathan Druart [Thu, 12 Sep 2024 10:01:58 +0000 (12:01 +0200)]
Bug 37902: Add tests

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37902: Do not convert a date if it has like markers
Jonathan Druart [Mon, 16 Sep 2024 08:43:13 +0000 (10:43 +0200)]
Bug 37902: Do not convert a date if it has like markers

If we pass a datetime parameter we are adding "like" operator and % at
the beginning and ending of the attribute value.
For instance:
  attributes=2024-09-16 10:11:12
  attributes:{ like => '%2024-09-16 10:11:12%' }

We do not want to reach the fixup code and raise an exception.

However I don't think we should add the like for datetime attributes
actually. But can we modify this behaviour now?

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37902: Adjust timezone
Jonathan Druart [Thu, 12 Sep 2024 14:06:36 +0000 (16:06 +0200)]
Bug 37902: Adjust timezone

We didn't take into account the server's timezone.

This does not feel right, we are not supposed to deal with time zone
outside of Koha::DateUtils.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37902: TODOs
Jonathan Druart [Thu, 12 Sep 2024 10:35:33 +0000 (12:35 +0200)]
Bug 37902: TODOs

There are still different structures we won't handle properly.
This patch adds conditionals to prevent failures or warnings.

Should be done, but later.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37902: Make sure we loop over if a structure is passed
Jonathan Druart [Thu, 12 Sep 2024 09:19:36 +0000 (11:19 +0200)]
Bug 37902: Make sure we loop over if a structure is passed

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37902: Make sure filtered_params are converted
Jonathan Druart [Thu, 12 Sep 2024 08:41:18 +0000 (10:41 +0200)]
Bug 37902: Make sure filtered_params are converted

Previously we only adjusted the attributes that were passed directly,
not the ones in 'q' (which is the recommended way now)

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37728: Adjust test to catch more missing 'op' in POSTed forms
Jonathan Druart [Mon, 26 Aug 2024 09:03:05 +0000 (11:03 +0200)]
Bug 37728: Adjust test to catch more missing 'op' in POSTed forms

The test is not catching missing op in forms that are not the first POST
form of the template.

Found when fixing the test for bug 37309. It was not catching the
missing op in the second form.

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37728: (follow-up) Tell the test that opac-illrequests.tt has an op
Phil Ringnalda [Tue, 24 Sep 2024 02:40:32 +0000 (19:40 -0700)]
Bug 37728: (follow-up) Tell the test that opac-illrequests.tt has an op

xt/find-missing-op-in-forms.t wants to see name="op" value="cud-..." in any
form with method="post", but opac-illrequests.tt inserts its op input by
passing around whole and unpack and repacking whole.keys which includes
the op. We just need to tell the test that it really exists.

At first, I thought of this approach as a joke, faking out the test, but
when I tried to be more responsible and put a whole <input type="hidden" etc.
in the comment, I realized that would be more likely to confuse someone
who thought that was uncommented and that they were making real changes than
it would be to future-proof against changes in the test's approach.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37786: members/cancel-charge.pl needs CSRF protection
Phil Ringnalda [Fri, 6 Sep 2024 21:33:17 +0000 (14:33 -0700)]
Bug 37786: members/cancel-charge.pl needs CSRF protection

members/cancel-charge.pl will take either a POST or a GET, and as long as the
accountline_id it is passed can be cancelled, will cancel it. That means any
link you click anywhere while logged in to Koha might cancel a charge. It also
takes a borrowernumber which isn't used for the cancelling, only to determine
what account to show after a charge is cancelled, letting a malicious link
show an account other than the one whose charge was just cancelled.

Test plan:
 1. Without the patch, Circulation - Checkout - search for the 'koha' patron
    you log in as
 2. Accounting - Create manual invoice - Make it a Manual fee of 100.00 and
    Save
 3. Pretending it's a well-disguised link in a spear-phishing email, load
    http://localhost:8081/cgi-bin/koha/members/cancel-charge.pl?borrowernumber=5&accountlines_id=1
 4. You are now looking at charges for the patron Acosta, Edna rather than for
    the patron koha, but if you look at the patron koha, its 100.00 charge
    has been cancelled.
 5. Apply patch and reset_all (or if you don't, you'll have to manually adjust
    the link to reflect the charge being accountlines_id 3 rather than 1)
 6. Circulation - Checkout - search for the 'koha' patron you log in as
 7. Accounting - Create manual invoice - Make it a Manual fee of 100.00 and
    Save
 8. Click the link http://localhost:8081/cgi-bin/koha/members/cancel-charge.pl?borrowernumber=5&accountlines_id=1
 9. You got a 403 because you didn't pass the op cud-cancel, but if you did
    pass that op, you would also get a 403 for having a cud- op in a GET (and
    if you POST, you won't have a csrf_token)
10. Checkout - search for koha - Accounting - Cancel charge
11. Having done it the right way, you're now on koha's list of transactions,
    where you can see you just cancelled it

Sponsored-by: Chetco Community Public Library
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 38190: Remove JS error on suggestion page
Jonathan Druart [Thu, 17 Oct 2024 09:11:26 +0000 (11:11 +0200)]
Bug 38190: Remove JS error on suggestion page

This code could appear several time as we include it in modals

Test plan:
Go on http://localhost:8081/cgi-bin/koha/suggestion/suggestion.pl
Open the console
Notice that without this patch you see a JS error
  Uncaught SyntaxError: redeclaration of const av_bsort1
With this patch applied the error is gone.

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>
4 hours agoBug 37528: (QA follow-up) Slight rephrase of system preference and warning message
Katrin Fischer [Fri, 18 Oct 2024 11:41:01 +0000 (11:41 +0000)]
Bug 37528: (QA follow-up) Slight rephrase of system preference and warning message

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37892: (QA follow-up) Fix condition in memberentry
Marcel de Rooy [Fri, 20 Sep 2024 09:07:42 +0000 (09:07 +0000)]
Bug 37892: (QA follow-up) Fix condition in memberentry

Patron may be undefined. So the test may crash.
Also there is an issue with operator precedence.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37892: (QA follow-up) Add tests for ->is_guarantor/ee
Marcel de Rooy [Fri, 20 Sep 2024 08:44:30 +0000 (08:44 +0000)]
Bug 37892: (QA follow-up) Add tests for ->is_guarantor/ee

Test plan:
Run t/db_dependent/Koha/Patron.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37892: Fix guarantor restriction, add tests
Nick Clemens [Wed, 11 Sep 2024 14:04:17 +0000 (14:04 +0000)]
Bug 37892: Fix guarantor restriction, add tests

[SQUASHED IN QA]

These patches will alter the checks for a patron that prevent a category with
'can_be_guarantee' from being a guarantor.  Two patrons in the same category should be
allowed to have a guarantee/guarantor relationship

The tests below assume you are using the KTD sample data. Update borrowernumbers if not.

To test:
 0 - Apply tests patch
 1 - Set the 'Patron' category as 'Can be a guarantee'
 2 - Add a relationship between two patrons of the same category
     This is restricted from the staff interface
     perl -e 'use Koha::Patrons; my $p = Koha::Patrons->find(5)->add_guarantor({ guarantor_id => 23, relationship => 'father'});'
 3 - Note there is no warning or exception. This should be allowed.
 4 - Checkout an item to Edna (borrowernumber 5)
 5 - Set 'TrackLastPatronActivityTriggers' to 'Checking in an item'
 6 - Try to check the item in, KABOOM
 7 - Set 'TrackLastPatronActivityTriggers' to 'Checking out an item'
 8 - Try to issue an item to Enda, KABOOM
 9 - prove -v t/db_dependent/Koha/Patron.t, fail
10 - Apply second patch
11 - prove -v t/db_dependent/Koha/Patron.t, one more test passes, but then fail
12 - Apply third patch
13 - prove -v t/db_dependent/Koha/Patron.t, pass!
14 - restart_all
15 - Checkout to Enda, OK!
16 - Checkin from Edna, OK!
17 - Find two more patrons in the category and attempt to link them
18 - 'Guarantor cannot be a guarantee'
19 - Apply fourth patch
20 - You can add a guarantor from the same category in interface
21 - Try to add a guarantor to the guarantor assigned in 20
22 - Confirm you cannot add a guarantor - "Guarantor cannot be a guarantee"

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Bug 37892: Fix patron updates

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Bug 37892: Fix patron creation

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Bug 37892: Fix memberentry.pl

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Bug 37892: (follow-up) Fix patron creation

This patch fixes the 22. of the test plan (22 - Confirm you cannot add a guarantor - "Guarantor cannot be a guarantee"
        )

Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Bug 37892: (follow-up) Fix patron creation

TEST PLAN:
1 - Do the 22 parts of the test plan
2 - Add a guarantor to one patron not selected before (let's say A is
  the guarantee, B the guarantor)
3 - Try and add a guarantor to B -> you will success
4 - Remove B's guarantor
5 - Apply this patch
6 - Repeat 3 -> you will not be able to

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Bug 37892: (follow-up) Tidyness

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
[EDIT]
Renamed a subtest to patron creation tests in Patron.t.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37528: (follow-up) Add help strings for blank borrowerrelationship
Baptiste Wojtkowski [Wed, 9 Oct 2024 07:39:07 +0000 (09:39 +0200)]
Bug 37528: (follow-up) Add help strings for blank borrowerrelationship

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37528: (follow-up) Tidyness
Baptiste Wojtkowski [Mon, 16 Sep 2024 13:32:14 +0000 (15:32 +0200)]
Bug 37528: (follow-up) Tidyness

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 37528: check if selected relationship is valid
Johanna Räisä [Thu, 1 Aug 2024 05:46:09 +0000 (08:46 +0300)]
Bug 37528: check if selected relationship is valid

This patch checks if the selected relationship is valid before trying to save the patron record.
It takes the list of valid relationships from borrowerRelationships syspref and checks if the selected relationship is in the list.

Also this patch fixes relationship field required message when BorrowerMandatoryField is not set.
The required message is shown when adding the guarantee from guarantor's detail page.

Test plan:
1) Add at least one option to borrowerRelationships syspref.
2) Leave the relationship unchecked from BorrowerMandatoryField syspref.
3) Create a new guarantee patron.
4) Add a guarantor to the guarantee patron.
5) Leave the relationship field empty and try to save the patron record.
6) Notice the 500 error page.
7) Apply the patch.
8) Repeat steps 3-5.
9) Notice the error message "Guarantor relationship is invalid".

Sponsored-by: Koha-Suomi Oy
Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
4 hours agoBug 38183: Get the active tab number from data-attribute
Lucas Gass [Tue, 15 Oct 2024 23:50:00 +0000 (23:50 +0000)]
Bug 38183: Get the active tab number from data-attribute

To test:

1. Have more than 1 staff member who can manage suggestions
2. Create some suggestions
3. Move some suggestions to different statuses (Pending/Accepted/Rejected) so you have multiple tabs on the "Suggestions management" page.
4. Go to the first tab, check some suggestions, and click "Select manager" under "Update manager".
5. Pick a new manager, notice nothing changes on that tab.
6. Now look at the last tab in your list of tabs, see the suggestion manager has been set incorrectly to the last tab.
7. APPLY PATCH
8. Try 4-5 again. The manager should be selected correctly.
9. Try setting the manaager from every tab, making sure it works right.

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>
4 hours agoBug 38156: Sort issues by borrowernumber before parallel chunking
Emily Lamancusa [Fri, 11 Oct 2024 19:26:25 +0000 (15:26 -0400)]
Bug 38156: Sort issues by borrowernumber before parallel chunking

When the automatic renewal cron job is using parallel processing, it
aims to process all of the renewals for any given patron together in one
chunk to avoid data conflicts. To accomplish this, it starts a new data
chunk each time it encounters a new patron. However, if a patron's
renewing checkouts aren't all consecutive in the database, that patron's
data ends up split across multiple chunks.

We need to sort the issues by borrowernumber before attempting to chunk
them in order to make sure they are chunked and processed correctly.

To test (using KTD default test data):
Setup:
1. Edit the default circulation rule:
    - Set Automatic renewal to "Yes"
    - Set No automatic renewal before to 3
2. Open the following patron accounts in separate tabs:
    - Floyd Delgado
    - Joyce Gaines
    - Edna Acosta
    - Mary Burton
3. Perform the following patron account edits for each of the above
   patrons (and keep the tabs open):
    - Enable automatic renewal notices, and set them to digests only
    - Add a value to the email field
4. Enter the kshell (ktd --shell)
5. Edit /etc/koha/sites/kohadev/koha-conf.xml, and add the following
   lines near the end, just above the </config> and </yazgfs> closing
   tags:
<auto_renew_cronjob>
    <parallel_loops_count>2</parallel_loops_count>
</auto_renew_cronjob>
6. restart_all

Reproducing the issue:
7. Apply the test patch only
8. Run perl generate_checkouts.pl to generate test data
9. perl misc/cronjobs/automatic_renewals.pl -v -c
--> The test patch added output that will show how the renewals were
    chunked into "chunk 0" and "chunk 1" for the two parallel loops.
    Note that the issues for each borrower are not processed nicely in
    one chunk, but are separated across multiple chunks and alternated
    with other borrowers.
10. Check the checkouts for each of the four patrons from above
--> All checkouts should have renewed
11. Check the notices tab for each of the four patrons
--> Notice errors in the automatic renewal digest notices. A patron's
    renewals may be split across multiple digests, a digest may be
    missing renewals, or a patron may not have received a digest at all

Testing the patch:
12. Apply the second patch
13. Reset the due dates on all checkouts so that they will all be
    eligible for automatic renewal again:
    - koha-mysql kohadev
    - UPDATE issues SET date_due=<two days from today>;
14. perl misc/cronjobs/automatic_renewals.pl -v -c
--> Note that the renewals are now correctly chunked by patron
15. Check the checkouts and notices tab for each of the four patrons
--> All checkouts should have renewed, and all patrons should have a
    single new Auto Renewals Digest notice that correctly lists all of
    their renewed items

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Edit: tidied the code block inline (tcohen)
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 13342: Not logged user can place a review/comment
Hammat Wele [Tue, 3 Sep 2024 20:31:21 +0000 (20:31 +0000)]
Bug 13342: Not logged user can place a review/comment

We are able to comment a notice even when no user is connected

To test

1. Log in to OPAC.
2. Find a Biblio and open the comments tab.
3. Open another tab/window, and log out from the account.
4. Return to the first tab.
5. Click "Post your comments on this title."
 --> We are able to post a comment
6. Apply the patch
7. Repeat step 1, 2, 3, 4, 5
 --> You should be redirected to the login page.

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

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 37720: (follow-up) Adjust tests
Lucas Gass [Mon, 30 Sep 2024 20:45:04 +0000 (20:45 +0000)]
Bug 37720: (follow-up) Adjust tests

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 37720: Prevent XSS in label creator
Jonathan Druart [Wed, 28 Aug 2024 10:18:06 +0000 (12:18 +0200)]
Bug 37720: Prevent XSS in label creator

Because labels/label-edit-batch.pl fills a DataTable with things that include
a link created by C4/Creators/Lib.pm, it outputs them with the $raw filter,
so HTML in author/title/callnumber is executed in the label batch editor.
While we wait for a fix that moves the link creation into the template and
out of C4, encoding HTML in Lib.pm for the bits going into the link, and
switching from $raw to the html filter for the rest of the things, will at
least get rid of the XSS.

Test plan:
 1. Without this patch, but with the patch from bug 37654 so you don't get
    alert()s in batch import, download attachment 170675 [details]
 2. Cataloging - Stage records for import - browse to the downloaded file -
    Upload file - when the upload finishes Stage for import - when staging
    finishes View batch (get alert()s if you didn't apply bug 37654) - Import
    this batch into the catalog
 3. Once the import finishes, Cataloging - Manage staged records
 4. In the row for your import, in the # Items column, click "(Create label
    batch)"
 5. In the "Label batch #n created" message, click the link to the batch #
 6. Because the batch includes a call number with an open <script>, you'll
    get XSS alert()s and then one about something going wrong while loading
    the table, with only one of the two records showing in the batch editor
 7. Apply patch, restart_all
 8. Cataloging - Label creator - Manage Label batches
 9. In the row for your batch, click Edit
10. You will see both labels, with their attempts at XSS visible as text
    rather than being interpreted as HTML

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 37681: Fix XSS in staff interface item URLs on detail page
David Cook [Tue, 20 Aug 2024 00:54:38 +0000 (00:54 +0000)]
Bug 37681: Fix XSS in staff interface item URLs on detail page

This patch uses Javascript objects and safe sinks to prevent XSS
in the item URLs on the staff interface detail page.

It also makes sure those URLs don't get double-escaped. Yippee!

Test plan:
0. Apply the patch
1. Add/edit an item with the following URL:
http://prosentient.com.au?q=http%3A%2F%2Fprosentient.com.au
2. Add/edit a different item with the following URLs:
http://prosentient.com.au?q=http%3A%2F%2Fprosentient.com.au |
http://prosentient.com.au?q=http%3A%2F%2Fprosentient.com.au
3. Go to the staff interface detail page
4. Notice that the URLs are not double-encoded!
5. Try out a malicious payload (talk to QA/security about this)
6. Confirm that the malicious payload fails to execute the XSS
7. Celebrate!

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 36598: (QA follow-up): tidy up code
Victor Grousset/tuxayo [Tue, 14 May 2024 18:39:00 +0000 (20:39 +0200)]
Bug 36598: (QA follow-up): tidy up code

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 36598: Add comments asking to keep both CSRF checks in sync
Julian Maurice [Tue, 14 May 2024 07:34:31 +0000 (09:34 +0200)]
Bug 36598: Add comments asking to keep both CSRF checks in sync

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 36598: Prevent use of unsafe HTTP method with non-cud op parameter
Julian Maurice [Tue, 14 May 2024 07:15:50 +0000 (09:15 +0200)]
Bug 36598: Prevent use of unsafe HTTP method with non-cud op parameter

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 36598: Improve documentation and error message in CSRF plugin
Julian Maurice [Mon, 13 May 2024 13:06:04 +0000 (15:06 +0200)]
Bug 36598: Improve documentation and error message in CSRF plugin

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 36598: Fix CSRF header name (underscore -> hyphen)
Julian Maurice [Fri, 3 May 2024 07:17:37 +0000 (09:17 +0200)]
Bug 36598: Fix CSRF header name (underscore -> hyphen)

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 36598: Prohibit CUD operations with safe HTTP methods (GET/HEAD/...)
Julian Maurice [Mon, 15 Apr 2024 07:08:48 +0000 (09:08 +0200)]
Bug 36598: Prohibit CUD operations with safe HTTP methods (GET/HEAD/...)

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 36598: Enable CSRF protection for Mojolicious apps
Julian Maurice [Fri, 12 Apr 2024 13:08:17 +0000 (15:08 +0200)]
Bug 36598: Enable CSRF protection for Mojolicious apps

Test plan:
1. Run bin/opac daemon -l http://*:3001/
2. Go to http://localhost:3001/cgi-bin/koha/opac-user.pl
3. With browser devtools, locate csrf_token hidden input within the
   login form and remove it or modify it
4. Try to submit the form with correct credentials, it should fail
   ("Wrong CSRF token")
5. Reload the page, try to log in normally without modifying the DOM, it
   should succeed
6. Run bin/intranet daemon -l http://*:3002/
7. Go to http://localhost:3002/cgi-bin/koha/mainpage.pl
8. With browser devtools, locate csrf_token hidden input within the
   login form and remove it or modify it
9. Try to submit the form with correct credentials, it should fail
   ("Wrong CSRF token")
10. Reload the page, try to log in normally without modifying the DOM,
    it should succeed
11. Run prove t/db_dependent/mojo/csrf.t

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 hours agoBug 37654: XSS in Batch record import for Citation column
Phil Ringnalda [Fri, 16 Aug 2024 02:57:42 +0000 (19:57 -0700)]
Bug 37654: XSS in Batch record import for Citation column

Viewing a staged MARC record batch loads a DataTable from
/tools/batch_records_ajax.pl, and both batch_records_ajax.pl and the
DataTable just trust the author/title/isbn/issn to be free of HTML. They
shouldn't.

Test plan:
1. Without this patch applied, download attachment 170418, then Cataloging
   - Stage records for import - Select the downloaded file - Upload file -
   Stage for import
2. When the background job completes, View batch - you'll get three alert()s
   from the title, author, and ISSN, and the author and ISSN displayed huge
3. Apply patch, restart_all
4. Manage staged records - click HTMLescapingimporttestrecord.mrc - get zero
   alerts and no <h2> display

Sponsored-by: Chetco Community Public Library
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>
6 hours agoBug 37656: XSS in Advanced editor from Z39.50 search results
Phil Ringnalda [Fri, 16 Aug 2024 04:22:12 +0000 (21:22 -0700)]
Bug 37656: XSS in Advanced editor from Z39.50 search results

The Advanced editor inserts data from Z39.50 results into the search results
page without escaping HTML. Whether it's German records with "<<A>> Title"
or someone with a compromised catalog or a book with the title "<em> for
emphasis" it shouldn't.

Test plan:
 1. Not a dependency, but you'll avoid getting even more alerts while batch
    importing by starting with the patch from bug 37654
 2. Without this patch applied, download attachment 170421
 3. Administration - set the preference EnableAdvancedCatalogingEditor to
    Enable
 4. Cataloging - Stage records for import - browse to the downloaded file -
    Upload file - Stage for import
 5. Once the background job finishes, View batch (getting alerts if you
    didn't apply the patch from bug 37654) - Import this batch into the
    catalog
 6. When the import finishes, Search the catalog for script, on the imported
    record Edit record (if you wind up in the basic editor, Settings - Switch
    to Advanced editor)
 7. In the left sidebar below the search inputs, click Advanced », check
    the checkbox for Local catalog and uncheck any others, then search for
    the Title script
 8. You'll get five alerts, and the word "edition" displayed in huge text
 9. Close the search popup, apply patch, shift+reload the advanced editor
    page to clear your cache
10. Repeat step 7, but this time you won't get any alerts, and you'll see
    the title and the other <script> inclusions.

Sponsored-by: Chetco Community Public Library
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>
6 hours agoBug 37655: Basic editor needs to HTML-escape the bib record title used as a heading
Phil Ringnalda [Thu, 15 Aug 2024 22:41:18 +0000 (15:41 -0700)]
Bug 37655: Basic editor needs to HTML-escape the bib record title used as a heading

We stick the title of a bib record you are editing in the basic editor into
an <h1> without escaping any HTML it might contain. We should instead escape
it.

Test plan:

1. Without the patch, search for any record in the catalog and click Edit
   record (if you are in the advanced editor, switch to the basic one)
2. Tab 2, Field 245, Subfield a, paste <script>alert('boo ❤')</script><h2>
   at the end of the subfield
3. Save, then from the record detail page select Edit - Edit record
4. You will have gotten an alert(), and the entire form will be the size
   of an <h2>. That's ugly, so go back to the detail page.
5. Apply patch, restart_all
6. Edit - Edit record
7. Now you should not get an alert, the whole title inluding the <script>
   should display in italics, and the "(Record number nnn)" after it should
   not be italicized.

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 days agoBug 37838: Fix broken remove button in course reserves
wainuiwitikapark [Tue, 10 Sep 2024 03:06:15 +0000 (03:06 +0000)]
Bug 37838: Fix broken remove button in course reserves

To test:
1) Go to staff client -> Course reserves
2) Create a course or go to an existing course
3) Add reserves to the course (will need at least 21 items to be able to go to a second page of results)
4) Go to the second page of results on the course details page
5) Click the Remove button next to a result
6) Notice how the button just makes the page move to the top
7) Apply patch
8) Repeat steps 1-5
9) Notice how the remove button is working as expected

Sponsored-by: Toi Ohomai Institute of Technology
Signed-off-by: Sam Sowanick <sam.sowanick@corvallisoregon.gov>
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 days agoBug 38112: (QA follow-up) Hide description when search is cleared
Emily Lamancusa [Tue, 15 Oct 2024 20:50:03 +0000 (16:50 -0400)]
Bug 38112: (QA follow-up) Hide description when search is cleared

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 days agoBug 38112: Restore description of patrons search
Jonathan Druart [Tue, 8 Oct 2024 08:43:41 +0000 (10:43 +0200)]
Bug 38112: Restore description of patrons search

Certainly caused by bug 35329.

We used to display a description of the patrons search, but it is no longer displayed.

Test plan:
On the main patrons search select some values in the form on the left
and search. You should see a "Patrons found for: " h3 that will be
displayed and is supposed to describe the current search.
I don't think it's working very well to be honest, maybe a candidate for
candidate, especially if nobody else noticed its disappearance.

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>
2 days agoBug 38162: Pass the rota_id correctly when deleting
Lucas Gass [Sat, 12 Oct 2024 14:28:57 +0000 (14:28 +0000)]
Bug 38162: Pass the rota_id correctly when deleting

To test:

1. Enable StockRotation
2. Got to Cataloging -> Stock rotation
3. Create a new Rota
4. Try to delete it
5. See the error "Can't call method "delete" on an undefined value at /kohadevbox/koha/tools/stockrotation.pl line 231"
6. APPLY PATCH
7. Try again, the rota should be deleted properly.

Signed-off-by: Laura ONeil <laura@bywatersolutions.com>
Signed-off-by: Alyssa <alyssa.drake@bywatersolutions.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 days agoBug 38146: Display full datetime of datelastseen in item holdings
Emily Lamancusa [Thu, 10 Oct 2024 18:31:45 +0000 (14:31 -0400)]
Bug 38146: Display full datetime of datelastseen in item holdings

To test:
1. Check in an item
2. Look at the item holdings table for the bib record that item is on
--> Note the date last seen column displays dates, but not the time
3. Apply patch and restart_all
4. Refresh the page
--> Date last seen column now shows the time you checked the item in

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>
2 days agoBug 38005: (follow-up) Add/adjust tests
Lucas Gass [Fri, 11 Oct 2024 19:12:18 +0000 (19:12 +0000)]
Bug 38005: (follow-up) Add/adjust tests

NC amended patch, tidied
Bug 38005: (QA follow-up) Tidy

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 days agoBug 38126: Skip allocated holds when filling from transport cost matrix
Nick Clemens [Tue, 8 Oct 2024 18:10:46 +0000 (18:10 +0000)]
Bug 38126: Skip allocated holds when filling from transport cost matrix

This patch simply weeds out allocated holds before filling from the matrix

To test:
 1 - Enable RealTimeHoldsQueue
 2 - Enable UseTransportCostMatrix
 3 - Enable LocalHoldsPriority Give/Home/Home
 4 - Administration - Transport cost matrix - enable transfers to/from Centreville and other libraries, add a cost, and save
 5 - Find a bib with a Centerville item
 6 - Place a hold for a centerville patron
 7 - Circulation - Holds queue - All libraries
 8 - Note hold is entered twice
 9 - On command line:
    perl misc/cronjobs/holds/build_holds_queue.pl --force
10 - Run holds queue again, still there twice
11 - Apply patch
12 - On command line:
    perl misc/cronjobs/holds/build_holds_queue.pl --force
    Confirm allocated only once
13 - Delete hold, place again from bib record (to test real time allocation)
14 - Confirm allocated only once

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
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>
7 days agoBug 38016: Rename booking circulation rules
Aleisha Amohia [Fri, 27 Sep 2024 14:57:48 +0000 (14:57 +0000)]
Bug 38016: Rename booking circulation rules

This enhancement renames the bookings circulation rules to better describe what they do.

To test:

1. Go to Koha Administration -> Circulation and fines rules
2. Scroll to the 'Default holds and bookings policies by item type' section
3. Notice the bookings rules in this table:
  - Booking preparation period
  - Booking precaution period
4. Apply the patch and refresh the page
5. Confirm the bookings have been renamed to:
  - Booking pre-processing (days)
  - Booking post-processing (days)
6. Confirm these names make sense and it is clear what the rules are used for and how they are applied
7. Put values in the input fields for these rules and confirm saving a rule works as expected

Sponsored-by: Catalyst IT
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38129: Display note regarding permissions in suggestion manager search pop-up...
Jonathan Druart [Wed, 9 Oct 2024 07:35:27 +0000 (09:35 +0200)]
Bug 38129: Display note regarding permissions in suggestion manager search pop-up modal

1. In the staff interface, go to More > Suggestions > New purchase
   suggestion
2. Click 'Select manager'
   => With this patch you see a note regarding permissions
3. Search for 'alford' (for example)
   => User is not returned, they do not have the suggestion permission

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>
7 days agoBug 36742: (follow-up) Add hidden branchcode input for OPAC article requests
Owen Leonard [Tue, 2 Jul 2024 13:55:47 +0000 (13:55 +0000)]
Bug 36742: (follow-up) Add hidden branchcode input for OPAC article requests

This patch adds a hidden input containing the logged-in user's
branchcode to the article request form when there is only one public
branch.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 36742: Do not show library selection options if there is one or fewer public...
Owen Leonard [Thu, 27 Jun 2024 19:15:11 +0000 (19:15 +0000)]
Bug 36742: Do not show library selection options if there is one or fewer public libraries

If a system has only one library or only one library which is public we
don't need to show library-selection menus. It doesn't make sense to
show a dropdown with only one choice.

This patch updates instances of Branches.all to add a "public => 1"
parameter.

To test, apply the patch and start with a set of multiple public
libraries in your system (where public means the entry in Administration
-> Libraries for that library has the "Public" option set to "Yes").

Log in to the OPAC test these pages, in each case confirming that the
the library dropdown appears correctly.

- OPAC home page (with OpacAddMastheadLibraryPulldown enabled)
- OPAC news section (with existing news items and OpacNewsLibrarySelect
  enabled)
- Advanced search (Location and availability section)
- The "Most popular" page (with OpacTopissue enabled)
- The suggestion entry form (with suggestion enabled)
- The article request entry form (with ArticleRequests enabled and
  circulation rules configured to allow requests)

Test again with only one library or only one public library.
Test again with no public libraries.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Jake Deery <jake.deery@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38097: Add class to not_retuned message
Andrew Fuerste Henry [Fri, 4 Oct 2024 16:31:52 +0000 (16:31 +0000)]
Bug 38097: Add class to not_retuned message

To test:
1: Enable ShowAllCheckins
2: Check in an item that was not checked out
3: Find "Item was not checked in" message in checkin table, confirm its only class is "problem"
4: apply patch, restart_all
5: repeat 2
6: confirm "Item was not checked in" now has the class "not_returned"

Signed-off-by: Eric Phetteplace <phette23@gmail.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38081: maskitoTimeOptionsGenerator does not properly support 12-hour times in...
CJ Lynce [Thu, 3 Oct 2024 18:02:47 +0000 (18:02 +0000)]
Bug 38081: maskitoTimeOptionsGenerator does not properly support 12-hour times in calendar.inc

This patch corrects an issue where flatpickr time-only input boxes
    boxes were not having their inputs masked (limited) properly
    due to maskitoTimeOptionsGenerator not properly supporting
    12-hour time inputs for time-only input boxes.

To test:
1. Login to the staff intranet.
2. Open Administration->Libraries-> Edit any library.
3. Open your browser's development console (typically via F12)
    Verify a 'TypeError' message has been thrown for this page.
4. Type in any text into any of the opening hours
    This should be limiting only to properly formatted HH:MM.
5. Apply patch
6. Repeat steps 2-4
    Verify no errors show on your browser's development console.
    Verify opening hours entry are limited to proper HH:MM format.
7. Open Administration->System Preferences and change TimeFormat
    to 12-hours, Save.
8. Repeat steps 2-4
    Verify opening hours text entry are limited to properly
    formatted HH:MM AM/PM (or am/pm)

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 13945: Prevent multiple dialog modals from popping up when capturing a hold at...
Laura Escamilla [Wed, 15 May 2024 15:34:22 +0000 (15:34 +0000)]
Bug 13945: Prevent multiple dialog modals from popping up when capturing a hold at checkin

1. Select/Create Library Branches:
    - Select or create two library branches: Library A and Library B.

2. Locate/Create Item:
    - Locate or create an item with the "Current library" and "Home library" set to Library A.

3. Place Hold:
    - Place a hold on the item for a patron whose pickup location is Library B.

4. Check-in at Library A - First Attempt:
    - Check in the item at Library A.
    - Verify that the 'Hold found' modal pops up.
    - Click on 'Confirm hold and transfer'.

5. Check-in at Library A - Second Attempt:
    - Check in the item at Library A again.
    - Verify that the 'Hold found' modal pops up.
    - Click on 'Ignore'.
    - Verify that the 'Please return this item to (Library B)' modal has popped up behind it.

6. Apply Patch and Restart:
    - Apply the patch to the system.
    - Restart all relevant services.

7. Repeat Check-in Process:
    - Repeat steps 4 and 5.
    - Verify that no matter how many times you check in the item and hit 'Ignore' or 'Confirm the hold', the second modal does not pop up.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 23426: (follow-up) Add tests
Jan Kissig [Mon, 22 Jul 2024 10:41:40 +0000 (12:41 +0200)]
Bug 23426: (follow-up) Add tests

Test plan:
[1] Prove t/db_dependent/SIP/Message.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
EDIT: Tidied inline.
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 23426: Add fine items to patron information response in SIP2
Jan Kissig [Thu, 25 Apr 2024 09:13:55 +0000 (11:13 +0200)]
Bug 23426: Add fine items to patron information response in SIP2

This patch adds fine items (AV) to patron information response in SIP2
In addition the active currency we be part of the response (BH)
This also fixes the number of items in the response which are specified in BP and BQ in the request

to test:
a) create a manual invoice for patron 23529000035676 : http://localhost:8081/cgi-bin/koha/members/maninvoice.pl?borrowernumber=19
b) in ktd call: perl /usr/share/koha/bin/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su term1 -sp term1   -l CPL --patron 23529000035676 -m patron_information -s "      Y   "
c) verify that no |AV field is in response
d) apply patch
e) in ktd call: perl /usr/share/koha/bin/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su term1 -sp term1   -l CPL --patron 23529000035676 -m patron_information -s "      Y   "
f) verify that response includes fields like '|AVManual fee '

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
[EDIT] Tidied inline
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37791: (follow-up) Last occurence
Tomas Cohen Arazi [Fri, 30 Aug 2024 11:40:14 +0000 (08:40 -0300)]
Bug 37791: (follow-up) Last occurence

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37791: Fix 'Biblio not found' messages on the API
Tomas Cohen Arazi [Fri, 30 Aug 2024 11:38:35 +0000 (08:38 -0300)]
Bug 37791: Fix 'Biblio not found' messages on the API

This patch fixes some API-related cases of 'Biblio' terminology
incorrectly used.

To test:
1. Run:
   $ ktd --shell
  k$ git grep 'Biblio not found'
=> FAIL: Several occurences
2. Run:
  k$ git grep 'render_resource_not_found("Biblio")'
=> FAIL: Several occurences
3. Apply this patches
4. Repeat 1 and 2
=> SUCCESS: No more occurences!
5. Run:
  k$ prove t/db_dependent/api/v1/
=> SUCCESS: Tests pass!
6. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37945: Remove fixedHeader for sysprefs
Jonathan Druart [Wed, 9 Oct 2024 14:01:48 +0000 (16:01 +0200)]
Bug 37945: Remove fixedHeader for sysprefs

It breaks the scroll when a subsection is clicked.

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38057: Fix checkmarks in Change framework menu in Advanced editor after Bootstrap...
Phil Ringnalda [Wed, 2 Oct 2024 04:34:10 +0000 (21:34 -0700)]
Bug 38057: Fix checkmarks in Change framework menu in Advanced editor after Bootstrap5 update

The advanced editor was using a class hidden from bootstrap.min.css to
hide checkmarks in the part of the Settings menu that lets you change
frameworks. Now that's gone, so it needs to have its own class.

Test plan:
1. Set the preference EnableAdvancedCatalogingEditor to Enable
2. Cataloging - Advanced editor - click the Settings menu
3. In Change framework, ... checkmarks, checkmarks everywhere, and they
   don't change when you choose a different one, so after the first
   change you can't even tell what's current
4. Apply patch, Shift+Reload the advanced editor page to bypass the cache
5. Click the Setting menu, see that only the current framework has a
   checkmark, change to a different one and reopen the Settings menu,
   see that the one you changed to now has the only checkmark

Sponsored-by: Chetco Community Public Library
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
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>
7 days agoBug 37954: DBRev 24.06.00.036
Katrin Fischer [Fri, 11 Oct 2024 09:40:36 +0000 (09:40 +0000)]
Bug 37954: DBRev 24.06.00.036

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37954: Atomic update
Nick Clemens [Thu, 19 Sep 2024 11:40:24 +0000 (11:40 +0000)]
Bug 37954: Atomic update

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37954: Fix barcode column name
Pedro Amorim [Wed, 18 Sep 2024 10:22:51 +0000 (10:22 +0000)]
Bug 37954: Fix barcode column name

Patch https://github.com/Koha-Community/Koha/commit/6cbbfa2 changed
holdings_barcode to holdings_barcodes

I believe this caused the configuration from the table to no longer
work (barcodes!=barcode)

Test plan:
1) Access any bibllio:
   <staff_url>/cgi-bin/koha/catalogue/detail.pl?biblionumber=76
2) On the top right of the table, click 'Configure'
3) Expand 'Catalog', search for 'holdings_barcode'. Tick 'is hidden by
   default'. Save.
4) Visit the biblio again, notice the column is still showing.
5) Apply patch. Restart all + flush_memcached. Repeat.
6) Bonus: On the table, click 'Show filters'. Make sure barcode
   filtering still works.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 29194: Create logical ordering of patron messaging preferences
Sam Lau [Fri, 26 Jul 2024 16:42:12 +0000 (16:42 +0000)]
Bug 29194: Create logical ordering of patron messaging preferences

This patch introduces a default ordering for patron messaging preferences. The prefs are then sorted by this ordering before being displayed.

To test:
1) Visit a patrons detail page.
2) Note the message prefs aren't ordered (or rather sorted by 'message_attribute_id')
3) Apply patch, restart_all
4) Ensure they are now sorted in teh following fashion:
        'Hold_Filled'      => 1,
        'Hold_Reminder'    => 2,
        'Recall_Requested' => 3,
        'Recall_Waiting'   => 4,
        'Ill_ready'        => 5,
        'Ill_unavailable'  => 6,
        'Ill_update'       => 7,
        'Item_Checkout'    => 8,
        'Auto_Renewals'    => 9,
        'Advance_Notice'   => 10,
        'Item_Due'         => 11,
        'Item_Check_in'    => 12

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Please note discussion on BZ about the preferred order ;)
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 36375: Fix inconsistencies in content warning display
Martin Renvoize [Tue, 1 Oct 2024 12:33:57 +0000 (13:33 +0100)]
Bug 36375: Fix inconsistencies in content warning display

As suggested by Fridolin, we move the display into a template to improve
consistency and maintanence and whilst doing this we also pick the
suggested subfield selection.

Signed-off-by: Hannah Prince <hannah.prince@uhb.nhs.uk>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38109: Sort patron category types before display
Nick Clemens [Mon, 7 Oct 2024 19:58:17 +0000 (19:58 +0000)]
Bug 38109: Sort patron category types before display

To test
1 - Patrons -> New patron -> {any category}
2 - Find the category dropdown
3 - Note the order of categories types
4 - Reload the page
5 - Note a new order
6 - Apply patch
7 - Refresh page, category types now ordered (by code)
8 - Refresh again, no change!

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38005: Pass opac_editable to search params when interface is OPAC
Lucas Gass [Wed, 25 Sep 2024 21:17:22 +0000 (21:17 +0000)]
Bug 38005: Pass opac_editable to search params when interface is OPAC

1. Create a patron attribute.
2. Check it as Mandatory.
3. Do NOT make it display or editable in the OPAC.
4. Go to OPAC self reg form
5. You will not see the attribute.
6. Submit the form and see the 500 error.
7. Apply patch, restart_all.
8. Try again, now you should be able to submit the OPAC form.

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38043: Add unit tests for KohaTimes TT filter
CJ Lynce [Thu, 3 Oct 2024 14:24:31 +0000 (14:24 +0000)]
Bug 38043: Add unit tests for KohaTimes TT filter

This adds units tests for the new KohaTimes TT filter.
This also corrects a minor issue with a wrong comparitor operation in
    KohaTimes.pm causing a WARN to be thrown.

To test
1. Apply patch
2. prove t/db_dependent/Template/Plugin/KohaTimes.t
3. Verify 5 Tests PASS

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38071: Ensure search.dt is triggered
Jonathan Druart [Mon, 7 Oct 2024 08:49:36 +0000 (10:49 +0200)]
Bug 38071: Ensure search.dt is triggered

I don't really understand why the previous code is not working, but
the search.dt event handler is not correctly set when initComplete is
passed to the constructor (for instance from the patrons search)

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38027: (QA follow-up) Fix flatpickr onChange when input is cleared
Julian Maurice [Fri, 4 Oct 2024 14:03:32 +0000 (16:03 +0200)]
Bug 38027: (QA follow-up) Fix flatpickr onChange when input is cleared

With the onChange event handler fixed, it's ok to call clear() instead
of setDate('')

Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38027: Set date to empty value instead of using flatpickr clear()
Lucas Gass [Fri, 27 Sep 2024 21:17:49 +0000 (21:17 +0000)]
Bug 38027: Set date to empty value instead of using flatpickr clear()

1. Find a datetime field in Koha. For example, specifying due dates on the checkout page.
2. Specify a datetime.
3. Use the red 'X' icon to clear the date.
4. Notice a console error 'parsedDate' is undef
5. Now the flatpickr is date, not datetime
6. APPLY patch
7. Try again, this time no console error and the flatpickr remains a datetime one

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37709: Die and notify if file cannot be opened
Nick Clemens [Thu, 22 Aug 2024 11:35:45 +0000 (11:35 +0000)]
Bug 37709: Die and notify if file cannot be opened

1 - perl misc/migration_tools/bulkmarcimport.pl -b --file=notafile.mrc -v
2 - Output:
    Characteristic MARC flavour: MARC21

    0 MARC records done in 0.00804400444030762 seconds
3 - Apply patch
4 - perl misc/migration_tools/bulkmarcimport.pl -b --file=notafile.mrc -v
5 - Output:
    Characteristic MARC flavour: MARC21
    Could not open notafile.mrc: No such file or directory at misc/migration_tools/bulkmarcimport.pl line 262.

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37953: (bug 35138 follow-up) Fix DisplayLibraryFacets - facet order
Jonathan Druart [Wed, 18 Sep 2024 08:40:32 +0000 (10:40 +0200)]
Bug 37953: (bug 35138 follow-up) Fix DisplayLibraryFacets - facet order

Before bug 35138:
DisplayLibraryFacets had priority over the settings in the mappings page.
If you had DisplayLibraryFacets set to "holding library" (only) then only the holding library facet was displayed.

On 231200036 we were not adjusting the facet order/appearance, but the
label, which was wrong. The label must be adjusted for both facets and
the order depending on DisplayLibraryFacets.
Note that bug 37446 is adding a new db rev to adjust the label for
installations that have been updated already.

Test plan:
0. checkout c120975b783 (the commit right before 35138 has been pushed)
1. reset_all
2. holding library is set in DisplayLibraryFacets by default
3. checkout main (so without this patch)
4. updatedatabase
=> ES search result display both facets

5. Repeat 0,1,2 and checkout main + this patch, updatedatabase
=> ES search result display only the holding library facet

Feel free to try with another value in DisplayLibraryFacets

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38118: Display columns if not empty in drawCallback
Jonathan Druart [Tue, 8 Oct 2024 13:38:18 +0000 (15:38 +0200)]
Bug 38118: Display columns if not empty in drawCallback

Instead of updating only when DT init is complete we are going to update
the visibility when the table will be redrawn.

Test plan:
1 - Find/Add a bib record with no items
2 - Add 20 items from Centerville
    Edit ->Edit items -> enter CENTER1 into barcode ->'Add multiple copies' -> 20
3 - Add 20 items from Fairview as above but enter 'FAIR1' for barcode and 'FAIR ITEM' as callnumber
4 - Add 1 item from Midway with barcode MIDWAY1
5 - Edit a midway patron to grant 'catalogue' and 'edit_items' permission - NOT edit_any_item
6 - Sign in as the patron above
7 - Find the record
8 - Note there is callnumber and actions/edit columns
9 - Go to page 2 of items - callnumber visible
10 - Go to page 3 - edit column

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 36435: Catch harmless errors in koha-dump
Aleisha Amohia [Wed, 1 May 2024 02:18:19 +0000 (02:18 +0000)]
Bug 36435: Catch harmless errors in koha-dump

tar has exit status 1 if any file has changed while being read, which is likely to happen as the logfiles are included. this patch will catch these harmless errors so that koha-dump will still return a success code.

Test plan:
1. Create a number of backups and edit their modify time to being older than 2 days
2. run the koha-run-backups script and try and write to one of the files it includes while it's being backed up (you'll trigger a warning from tar saying the file changed as it was being read)
3. verify that the older backups are not being cleaned up and deleted despite new backups being made.
4. Apply this patch
5. Complete steps 1-2 again and then go and look to see if the older backups are being deleted.

Sponsored-by: Catalyst IT
Signed-off-by: David Nind <david@davidnind.com>
Co-authored-by: Michał Kula <148193449+mkibp@users.noreply.github.com>
Signed-off-by: Michał Kula <148193449+mkibp@users.noreply.github.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38049: Call .tooltip() only if needed
Jonathan Druart [Tue, 1 Oct 2024 12:15:07 +0000 (14:15 +0200)]
Bug 38049: Call .tooltip() only if needed

This is cheating, yes.

We had a cypress test failing because of this line
  $(...).tooltip is not a function

It's failing randomly on Admin/RecordSources_spec.ts, which does not
need the tooltip.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38049: Remove tooltip call from DT
Jonathan Druart [Tue, 1 Oct 2024 09:42:07 +0000 (11:42 +0200)]
Bug 38049: Remove tooltip call from DT

Not really sure why we had this line, but Owen decided to remove it when
upgrading to Bootstrap5.

So let's remove them from the other files as well.

Waiting for Owen to confirm this one.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoRevert "Bug 37917: Add some wait time to RecordSources_spec.ts for the intercepted...
Jonathan Druart [Tue, 1 Oct 2024 09:40:56 +0000 (11:40 +0200)]
Revert "Bug 37917: Add some wait time to RecordSources_spec.ts for the intercepted request responses"

This reverts commit 23b00bdc06d28e012724a37ed5052bf056026302.

JD: No, really, don't wait.
And it does not fix the issue initially raised on bug 37917

https://bugs.koha-community.org/show_bug.cgi?id=38049
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38089: (follow-up) More fixes for errors in original submission
Martin Renvoize [Mon, 7 Oct 2024 14:26:35 +0000 (15:26 +0100)]
Bug 38089: (follow-up) More fixes for errors in original submission

The original submission missed a number of slip types that are print on
demand without queueing.

These all need an "id" passing in to the template and in some cases we
were also missing passing in the new style parameter too (preservation)

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38089: (QA follow-up) Ensure style works on members/printslip.pl
Nick Clemens [Fri, 4 Oct 2024 16:43:44 +0000 (16:43 +0000)]
Bug 38089: (QA follow-up) Ensure style works on members/printslip.pl

When moving the style up, it was moved before the code that handles printing a single slip, i.e.
taking the variables and forming a slip hash.

This patch moves that code to the top and additionally passes through the CODE of the notice so the ID is not blank

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38089: Move style to head and correct regular expression
Martin Renvoize [Fri, 4 Oct 2024 08:26:49 +0000 (09:26 +0100)]
Bug 38089: Move style to head and correct regular expression

This patch moves the local style sections from the body to the head
where they belong and it also updates the regular expression used to
prepend the slip_id id to css selectors rather than replace them

To test:
1 - Create a new notice in the 'Patron (custom slips)' module called 'Testing'
2 - Set print content as:
    Try the  <span class="styled">styling</span> stuff.
3 - Set the 'Format' as:
    .styled {color:red;font-weight: bold;}
4 - Set system preference IntrnaetSlipPrinterJS to "//test"
    http://localhost:8081/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=IntranetSlipPrinterJS
    This will prevent auto printing popup
5 - Go to a patron and click Print -> Print Testing
6 - Note incorrect styling
7 - Apply patch, restart all
8 - Print Testing again
9 - Confirm styling is correct

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38094: (follow-up) edit_catalogue implies fast_cataloguing
Tomas Cohen Arazi [Fri, 4 Oct 2024 14:41:12 +0000 (11:41 -0300)]
Bug 38094: (follow-up) edit_catalogue implies fast_cataloguing

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38094: Allow librarians with fast add permissions to edit existing fast add records
Kyle M Hall [Fri, 4 Oct 2024 14:10:13 +0000 (10:10 -0400)]
Bug 38094: Allow librarians with fast add permissions to edit existing fast add records

The ability to create fast add records was fixed on bug 38076, but they still cannot be edited after they are saved.

Test Plan:
1) Create a librarian with only fast add cataloging permissions
2) Create a fast add record, save it
3) Attempt to edit that record, you cannot!
4) Apply this patch
5) Restart all the things!
6) Attempt to edit that record, you can!
7) Attempt to edit a non-FA record, you cannot!

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38094: Regression tests
Tomas Cohen Arazi [Fri, 4 Oct 2024 14:27:50 +0000 (11:27 -0300)]
Bug 38094: Regression tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38076: (QA follow-up): Make permission edit_catalogue imply fast_cataloging
Kyle M Hall [Fri, 4 Oct 2024 14:56:44 +0000 (10:56 -0400)]
Bug 38076: (QA follow-up): Make permission edit_catalogue imply fast_cataloging

Any librarian with the edit_catalogue sub-permission should also be able
to edit fast catalog records. If that was not true, a cataloger could
not convert fast adds into full records.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 38076: Fix inability of fast catalogers to add/edit FA framework records
Kyle M Hall [Thu, 3 Oct 2024 14:09:18 +0000 (14:09 +0000)]
Bug 38076: Fix inability of fast catalogers to add/edit FA framework records

If a librarian does not have the editcatalogue permission, but does have the fast_cataloging permission, they should be able to add and edit fast cataloging records. Instead they are presented with a login screen and the message that they do not have sufficient permissions.

Test Plan:
1) Create a librarian with only fast add cataloging permissions
2) Attempt to create a fast cat item from the circ menu
3) Note the login screen and error
4) Apply this patch
5) Restart all the things!
6) Try again, you can now create FA records!

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>