koha.git
2 months agoBug 36700: Update svc to use CSRF-TOKEN
David Cook [Mon, 29 Apr 2024 01:23:17 +0000 (01:23 +0000)]
Bug 36700: Update svc to use CSRF-TOKEN

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
2 months agoBug 36700: Fix underscore in CSRF header
Marcel de Rooy [Fri, 26 Apr 2024 08:32:52 +0000 (08:32 +0000)]
Bug 36700: Fix underscore in CSRF header

Also change the cache key in template plugin. And the X- header
that had an underscore in svc script.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
2 months agoBug 29393: (QA follow-up) Add key to Permissions test
Martin Renvoize [Wed, 1 May 2024 06:30:42 +0000 (07:30 +0100)]
Bug 29393: (QA follow-up) Add key to Permissions test

We missed adding the new superlibrarian key to the Permissions test

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
2 months agoBug 32610: (follow-up) Adjust TestBuilder
Tomas Cohen Arazi [Tue, 30 Apr 2024 18:54:54 +0000 (15:54 -0300)]
Bug 32610: (follow-up) Adjust TestBuilder

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2 months agoBug 36546: (QA follow-up) Add bundle spec to .gitignore
Tomas Cohen Arazi [Tue, 30 Apr 2024 18:07:12 +0000 (15:07 -0300)]
Bug 36546: (QA follow-up) Add bundle spec to .gitignore

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2 months agoBug 36545: (follow-up) Remove closeOnSelect option
Owen Leonard [Tue, 30 Apr 2024 10:36:31 +0000 (10:36 +0000)]
Bug 36545: (follow-up) Remove closeOnSelect option

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36545: (follow-up) Style tweaks for Select2 multiple fields
Owen Leonard [Fri, 12 Apr 2024 17:46:43 +0000 (17:46 +0000)]
Bug 36545: (follow-up) Style tweaks for Select2 multiple fields

This patch does some fine-tuning of Select2 style on fields which accept
multiple selections. The patch also changes the way the form rows are
displayed on this page. I thought that the Select2 fields should be
wider to accpet multiple selections without the container wrapping onto
another line.

The patch also sets the Select2 "closeOnSelect" option to false on this
page because I think that makes more sense in a situation where multiple
selections might be made.

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

- Go to item search in the staff client
- Confirm that the form looks good and adjusts well to various browser
  widths.
- Make some selections to confirm that the style of selections looks
  good and that the dropdown stays open as you make multiple selections.

Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36545: Use select2 in item search
Michael Skarupianski [Tue, 9 Apr 2024 14:00:15 +0000 (14:00 +0000)]
Bug 36545: Use select2 in item search

This patch modifies the multi-select fields in the item search to use
the select2 framework.

To test:
1. Apply patch
2. Go to staff interface -> "Item search"
3. Check item search form and search for
      - Home library
      - Current library
      - Shelving location
      - Item type
      - Collection
      - Status
      - Lost
      - Withdrawn
      - Damaged
4. Search with multiple variations (nothing selected, only one value,
   multiple values, ...) If no value is selected this means that "All"
   values are searched
5. Check that the search is working well

Sponsored-by: Karlsruhe Institute of Technology (KIT)
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: DBIC schema update
Katrin Fischer [Tue, 30 Apr 2024 13:45:12 +0000 (13:45 +0000)]
Bug 32610: DBIC schema update

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: DBRev 23.12.00.040
Katrin Fischer [Tue, 30 Apr 2024 13:42:25 +0000 (13:42 +0000)]
Bug 32610: DBRev 23.12.00.040

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: (QA follow-up) Tidy Koha::Patron::Attribute
Martin Renvoize [Tue, 30 Apr 2024 11:49:33 +0000 (12:49 +0100)]
Bug 32610: (QA follow-up) Tidy Koha::Patron::Attribute

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: (QA follow-up) Tidy exceptions file
Martin Renvoize [Tue, 30 Apr 2024 11:48:47 +0000 (12:48 +0100)]
Bug 32610: (QA follow-up) Tidy exceptions file

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: (QA follow-up) Fix unit tests
Martin Renvoize [Tue, 30 Apr 2024 11:40:14 +0000 (12:40 +0100)]
Bug 32610: (QA follow-up) Fix unit tests

With the introduction of data type checking based on the is_date flag we
need to update the tests to ensure we're setting the attribute types
consistently to not date when we're testing for other flags.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: make date attributes repeatable
Shi Yao Wang [Mon, 29 Apr 2024 16:26:06 +0000 (12:26 -0400)]
Bug 32610: make date attributes repeatable

Test plan:
1- create a patron attribute type with is a date and repeatable checked
(administration -> patron attribute types)
2- add a couple of patron attribute of type date
3- Save
4- Edit to see if everything has been stored correctly

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: Patron attribute is_date error handling and tests
Shi Yao Wang [Mon, 29 Apr 2024 14:10:46 +0000 (10:10 -0400)]
Bug 32610: Patron attribute is_date error handling and tests

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: Remove data-date_to and tweak comment
Shi Yao Wang [Wed, 25 Oct 2023 19:06:33 +0000 (15:06 -0400)]
Bug 32610: Remove data-date_to and tweak comment

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: Add date extended patron attribute handling to overdues report
Katrin Fischer [Sat, 18 Mar 2023 10:54:14 +0000 (10:54 +0000)]
Bug 32610: Add date extended patron attribute handling to overdues report

This makes sure that the overdues report manages filters for
extended patron attributes of the type date correctly.

To test:
* Make sure you have at least one PA marked as 'searchable'
* Make sure your patron has at east one checked out item
* Go to circulation > overdues
* If you have no overdue items, check "Show any items currently checked out:"
* Verify the list of checkouts displays
* Verify the PA filter option displays with the calendar widget
* Limit to the date in your patron's record - list remains
* Limit to any other date - list empties

Signed-off-by: Philip Orr <philip.orr@lmscloud.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: Add date extended patron attributes to the OPAC
Katrin Fischer [Sat, 18 Mar 2023 10:19:42 +0000 (10:19 +0000)]
Bug 32610: Add date extended patron attributes to the OPAC

This makes sure that the attributes are handled correctly
when displayed and edited in the OPAC during address changes
or self registration.

To test:
  * You will need to test different configuration options for
    extended patron attributes (PA) in combination with the date option:
    * PA displays in OPAC, but is not editable
      * The date will show nicely formatted on the personal details tab.
    * PA displays and is editable in the OPAC
      * The date can be edited using the calendar widget
    * PA displays, is editabe and mandatory
      * The date is marked as required and you can't save without
        it being set.
  * Test the form behaves correctly when requesting changes for an
    existing patron account and when self registering.

Signed-off-by: Philip Orr <philip.orr@lmscloud.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: Add date extended patron attributes to patron module
Katrin Fischer [Sat, 18 Mar 2023 10:13:09 +0000 (10:13 +0000)]
Bug 32610: Add date extended patron attributes to patron module

This makes the necessary changes in the patron module of
the staff interface, so the new patron attribute appers and
behaves correctly when editing a patron record.

To test:
* You will need to test different configuration options for
  extended patron attributes (PA) in combination with the date option:
  * PA is a date and not mandatory
    * Patron form should have the calendar widget to let you set the date.
  * PA is a date and mandatory
    * Patron form shoudl have calendar widget and check that the date is
      set for allowing you to save the record.
  * PA is a date and unique
    * For this set the date in one patron record and try to
      set the same date in another. You should not be able to save.
  * PA displays in brief patron information
    * Make sure the date displays on the left formatted correctly
  * When the date PAs are saved, they should display nicely formatted
    on the details tab.

Signed-off-by: Philip Orr <philip.orr@lmscloud.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: Add date option to extended patron attributes administration page
Katrin Fischer [Sat, 18 Mar 2023 10:05:32 +0000 (10:05 +0000)]
Bug 32610: Add date option to extended patron attributes administration page

With this page it will be possible to configure patron attributes
to be a date.

To test:
* Go to administration > patron attribute types
* Add a new patron attribute of type date
  * Dates cannot be repeatable or linked to an AV category, so:
  * Verify, if you check repeatable, date is disabled
  * Verify, if you select an AV category, date disabled
  * Verify, if you check date, AV category and repeatable are disabled
* Save the new patron attribute
* Edit the patron attribute
  * Verify all settings have been kept/stored correctly

Signed-off-by: Philip Orr <philip.orr@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32610: Add borrower_attribute_types.is_date to the database
Katrin Fischer [Sat, 18 Mar 2023 00:08:28 +0000 (00:08 +0000)]
Bug 32610: Add borrower_attribute_types.is_date to the database

* Change to kohastructure.sql for new installations
* Atomic database update to add the column for updating
  installations

Signed-off-by: Philip Orr <philip.orr@lmscloud.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 18360: (follow-up) Fix for CSRF
Marcel de Rooy [Tue, 30 Apr 2024 12:12:12 +0000 (12:12 +0000)]
Bug 18360: (follow-up) Fix for CSRF

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 18360: Allow to delete a cancelled order from open basket
Marcel de Rooy [Tue, 20 Feb 2024 12:52:43 +0000 (12:52 +0000)]
Bug 18360: Allow to delete a cancelled order from open basket

Doing this under flag of order_manage and not on the higher level
of baskets.

Starting here with a single order delete for cancelled lines. So
deleting an open order line requires cancelling it first. Can be
extended later if needed.

Test plan:
Pick an open basket with cancelled lines.
Try to delete a few lines.
Test that you cannot do this on an closed basket. (Bonus: manipulate
URL with basketno, ordernumber and op=cud-delete-order.)

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36002: DBIC schema update
Katrin Fischer [Tue, 30 Apr 2024 13:35:46 +0000 (13:35 +0000)]
Bug 36002: DBIC schema update

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36002: DBRev 23.12.00.039
Katrin Fischer [Tue, 30 Apr 2024 13:32:56 +0000 (13:32 +0000)]
Bug 36002: DBRev 23.12.00.039

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36002: (follow-up) Save purchaseordernumbers from aqorders
Marcel de Rooy [Tue, 30 Apr 2024 11:41:55 +0000 (11:41 +0000)]
Bug 36002: (follow-up) Save purchaseordernumbers from aqorders

We copy them here to another (temporary) table.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36002: Remove last references to purchaseordernumber
Marcel de Rooy [Tue, 6 Feb 2024 13:47:25 +0000 (13:47 +0000)]
Bug 36002: Remove last references to purchaseordernumber

Test plan:
Git grep for it. Ignore update22to30.pl and atomicupdate.
Verify that you can still create/update/delete an acq order.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36002: Remove unused subroutine GetParcels
Marcel de Rooy [Tue, 6 Feb 2024 13:42:34 +0000 (13:42 +0000)]
Bug 36002: Remove unused subroutine GetParcels

That did refer to our aqorders.purchaseordernumber..

Test plan:
Git grep for GetParcels.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36002: Database revision for aqorders.purchaseordernumber
Marcel de Rooy [Tue, 6 Feb 2024 13:32:28 +0000 (13:32 +0000)]
Bug 36002: Database revision for aqorders.purchaseordernumber

Test plan:
Run dbrev. Check if field is no longer there.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 33237: Move and simplify language selection logic
Martin Renvoize [Wed, 24 Apr 2024 15:39:52 +0000 (16:39 +0100)]
Bug 33237: Move and simplify language selection logic

This patch moves the language selection into GetPreparedLetter, drops
the interface check step and ensures the default template always uses
the default include language as per the OPACLanguages settings.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 33237: Rearrange unit tests and ensure consistency
Martin Renvoize [Wed, 24 Apr 2024 15:38:40 +0000 (16:38 +0100)]
Bug 33237: Rearrange unit tests and ensure consistency

This patch re-arranges the unit tests and sets them to ensure we
consistently return the notice and notice includes in the same language.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 33237: Add display of which language default language is expected
Martin Renvoize [Wed, 24 Apr 2024 13:44:05 +0000 (14:44 +0100)]
Bug 33237: Add display of which language default language is expected

This patch adds the display of 'Default language' to the 'Default'
language in the notices editor tool.

This is so that librarians know which language they are expected to be
writing the notice in so we can remain consistent in both template and
include language used.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 33237: (QA follow-up) Clarify tests and Mock
Martin Renvoize [Tue, 23 Apr 2024 12:42:46 +0000 (13:42 +0100)]
Bug 33237: (QA follow-up) Clarify tests and Mock

This patch tries to clarify the tests a little and expand their
coverage whilst also adding some defualt translated includes to the test
area and mocking the config to allow the tests to run without installing
translations.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 33237: (follow-up) Restore final fallback
Martin Renvoize [Tue, 23 Apr 2024 12:42:08 +0000 (13:42 +0100)]
Bug 33237: (follow-up) Restore final fallback

This restores the final fallback to 'en' as mentioned by Jonathan

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 33237: (follow-up) Unit tests
Hammat Wele [Mon, 8 Apr 2024 16:43:06 +0000 (16:43 +0000)]
Bug 33237: (follow-up) Unit tests

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 33237: (follow-up) Tidy
Nick Clemens [Tue, 26 Mar 2024 17:54:19 +0000 (17:54 +0000)]
Bug 33237: (follow-up) Tidy

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>
2 months agoBug 33237: If TranslateNotices is off, use the interface language includes in slips
Hammat Wele [Mon, 27 Mar 2023 21:05:29 +0000 (21:05 +0000)]
Bug 33237: If TranslateNotices is off, use the interface language includes in slips

This patch set the language used in slips folloinw this logic:
   --> uses patron's preferred language
   --> if patron's preferred language is 'default', use the interface language
   --> if there is no interface (for overdue_notices for example), use the first language in 'language' system preference

To Test:
1. Install the other language (i used fr-CA here)
     1.1.

     gulp po:update fr-CA

     ./misc/translator/translate install fr-CA

     1.2. In Administration > Global system preferences, search for language and check the added language

2. Create a manual invoice in a patron's account and pay it

3. From the Transactions tab, click 'Print' next to the payment line
   --> On the printed slip, there's the word 'Payment' in English (OK)

4. Switch interface to other language

5. Redo step 3
   --> On the printed slip, the word 'Payment' is still in English (not ok)

6. In Administration > Global system preferences, enable TranslateNotices

7. Go to Tools > Notices and slips > ACCOUNT_CREDIT and copy the content of the letter into all the languages

8. Redo step 3 (you should still be in the other language interface)
   --> On the printed slip, the word 'Payment' is still in English (not ok)

9. Edit the patron's account and change the preferred language to the other language

10. Redo step 3
   --> On the printed slip, the word 'Payment' is in the other language (Paiement) (OK)

11. Apply the patch

12. Reset config
    12.1. Edit the patron's account and change back the preferred language to 'default'
    12.2. In Administration > Global system preferences, disable TranslateNotices

13. Redo step 3 (you should still be in the other language interface)
   --> On the printed slip, the word 'Payment' is in the other language (Paiement)

14. Switch interface to the english language

15. Redo step 3
   --> On the printed slip, the word 'Payment' is in English

16. In Administration > Global system preferences, enable TranslateNotices

17. Edit the patron's account and change the preferred language to the other language

18. Redo step 3
   --> On the printed slip, the word 'Payment' is in the other language (Paiement)

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>
2 months agoBug 36546: Deploy swagger_bundle.json via make
David Cook [Mon, 29 Apr 2024 23:43:40 +0000 (23:43 +0000)]
Bug 36546: Deploy swagger_bundle.json via make

To test:
0. Apply patch
1a. perl Makefile.PL
1b. Choose "single" Installation mode
1c. Specify /opt/koha directory
2. make
2b. ls blib/API_CGI_DIR/v1/swagger/swagger_bundle.json
3. Ensure you're running as root or make koha user own /opt
4. make install
5. ls /opt/koha/api/v1/swagger/swagger_bundle.json

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36546: Use JSON instead
Tomas Cohen Arazi [Thu, 25 Apr 2024 14:09:32 +0000 (11:09 -0300)]
Bug 36546: Use JSON instead

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
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>
2 months agoBug 36546: Fix js-yaml dependency in package.json
David Cook [Wed, 24 Apr 2024 03:19:33 +0000 (03:19 +0000)]
Bug 36546: Fix js-yaml dependency in package.json

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36546: Add a bundled version of the API spec
Tomas Cohen Arazi [Tue, 23 Apr 2024 14:52:37 +0000 (11:52 -0300)]
Bug 36546: Add a bundled version of the API spec

This patch makes the Koha::REST::V1 class use a bundled version of the
API spec.

For that to happen, this patch also adds:

* a `yarn api:bundle` task for generating the `swagger_bundle.yaml`
  file
* the bundle file to `.gitignore`
* @redocly/cli to the packages.json dependencies (yarn add @redocly/cli)
* `api:bundle` is added to the `yarn build` general command

NOTE: A new workflow is introduced by this patch as developers will need
to call the `yarn api:bundle` command on each API spec change they make.

To test:
1. Have KTD running
2. Verify the API works as usual
=> SUCCESS: The API just works
3. Apply this patch
4. Run:
   $ ktd --shell
  k$ yarn api:bundle
5. Restart plack:
  k$ koha-plack --restart kohadev ; tail -f /var/log/koha/kohadev/*.log
=> SUCCESS: The API loads correctly
6. Repeat 2
=> SUCCESS: Nothing changed
7. Sign off :-D

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
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>
2 months agoBug 5920: (QA follow-up) Switch to use existing dependancy
Martin Renvoize [Tue, 30 Apr 2024 08:59:23 +0000 (09:59 +0100)]
Bug 5920: (QA follow-up) Switch to use existing dependancy

We already have a scrubber module we can use; This patch switches us
from the newly introduced dependancy to using the existing and well
respected Scrubber we already have.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 5920: Add HTML::Restrict to cpanfile
Martin Renvoize [Tue, 23 Jan 2024 14:01:41 +0000 (14:01 +0000)]
Bug 5920: Add HTML::Restrict to cpanfile

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 5920: Strip HTML from report exports
Martin Renvoize [Mon, 10 Jan 2022 09:45:54 +0000 (10:45 +0100)]
Bug 5920: Strip HTML from report exports

This patch uses HTML::Restrict to strip out HTML tags from the CSV
download of reports.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32565: (follow-up) Tidy
Nick Clemens [Fri, 19 Apr 2024 11:25:58 +0000 (11:25 +0000)]
Bug 32565: (follow-up) Tidy

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32565: (QA follow-up) Fix tests
Pedro Amorim [Mon, 19 Feb 2024 10:45:50 +0000 (10:45 +0000)]
Bug 32565: (QA follow-up) Fix tests

Apply original tests patch + this follow-up. Run:
prove t/db_dependent/HoldsQueue.t
Notice tests fail.
Apply fix patch, run the above prove command again.
Notice tests pass.

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32565: Unit tests
Nick Clemens [Thu, 25 Jan 2024 12:31:46 +0000 (12:31 +0000)]
Bug 32565: Unit tests

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32565: Add unallocated option to holds queue
Nick Clemens [Thu, 2 Mar 2023 17:01:07 +0000 (17:01 +0000)]
Bug 32565: Add unallocated option to holds queue

Add an unallocated option to CreateQueue and pass through as needed
Avoid deletion of the tmp_holdsqueue, and only check holds
and items that are not currently matched

A future hold with a higher priority will still fail here - because the
item may already be assigned, but on next change to the biblio it would
be corrected

To test:
1) Apply both patches
2) Enable RealTimeHoldsQueue and set HoldsQueueSkipClosed to "open"
3) Add a holiday to the calendar for all libraries for today, visit:
/cgi-bin/koha/tools/holidays.pl
-- Click today's day on the calendar and pick "Holiday repeated every same day of the week"
-- Click "Copy to all libraries". Hit "Save.
4) Place a biblio-level hold on a biblio record and set the pickup location to a library that has available copies, visit:
-- /cgi-bin/koha/reserve/request.pl?biblionumber=76&borrowernumber=51
-- Click the first "Place hold" button to place the biblio-level hold.
5) Verify that that hold got added to the holds queue, visit:
/cgi-bin/koha/circ/view_holdsqueue.pl?branchlimit=&itemtypeslimit=&ccodeslimit=&locationslimit=&run_report=1
6) Place a biblio-level hold on a biblio record where there are no other holds and copies are available at another location, but not the pickup location, visit:
-- /cgi-bin/koha/reserve/request.pl?biblionumber=437&borrowernumber=51
-- On the "pickup at" dropdown, pick something else other than "Centerville", e.g. "Fairfield".
-- Click the first "Place hold" button to place the biblio-level hold.
7) Check the holds queue again, notice that this 2nd hold was not added to the queue:
/cgi-bin/koha/circ/view_holdsqueue.pl?branchlimit=&itemtypeslimit=&ccodeslimit=&locationslimit=&run_report=1
8) Run the updated cronscript:
perl misc/cronjobs/holds/build_holds_queue.pl --force --unallocated
9) Notice nothing changed in the holds queue, visit:
/cgi-bin/koha/circ/view_holdsqueue.pl?branchlimit=&itemtypeslimit=&ccodeslimit=&locationslimit=&run_report=1
10) Remove the holiday we created previously, visit:
/cgi-bin/koha/tools/holidays.pl
-- Click today's day on the calendar and pick "Delete this holiday"
-- Click "Copy to all libraries". Hit "Save.
11) Run the updated cronscript:
perl misc/cronjobs/holds/build_holds_queue.pl --force --unallocated
12) Confirm the second hold is added to the holds queue, visit:
/cgi-bin/koha/circ/view_holdsqueue.pl?branchlimit=&itemtypeslimit=&ccodeslimit=&locationslimit=&run_report=1

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36508: Refresh patron object when updating category
Nick Clemens [Wed, 3 Apr 2024 20:35:46 +0000 (20:35 +0000)]
Bug 36508: Refresh patron object when updating category

To test:
1 - Find a ptron, I sued #45 in KTD, note their category
2 - Update them from one category to another using finesunder:
    perl misc/cronjobs/update_patrons_category.pl -f ST -t S --finesunder=5.00 --where "me.borrowernumber=45" -v -c
3 - Check their modification log (I told you to enabled BorrowersLog,
    right?)
4 - See many fields reported changed
5 - Apply patch
6 - Repeat, but change the to and from options
    perl misc/cronjobs/update_patrons_category.pl -f S -t ST --finesunder=5.00 --where "me.borrowernumber=45" -v -c
7 - Note only one column changed in the logs
8 - Ask for unit tests

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 36508: Unit tests
Nick Clemens [Thu, 25 Apr 2024 16:20:53 +0000 (16:20 +0000)]
Bug 36508: Unit tests

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32435: DBRev 23.12.00.038
Katrin Fischer [Tue, 30 Apr 2024 09:57:46 +0000 (09:57 +0000)]
Bug 32435: DBRev 23.12.00.038

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32435: Unit tests for Ticket/Ticket::Update change
Martin Renvoize [Thu, 25 Apr 2024 15:58:34 +0000 (16:58 +0100)]
Bug 32435: Unit tests for Ticket/Ticket::Update change

We add a fallback to allow TICKET_RESOLUTIONS to be returned in the
strings_map as additional TICKET_STATUS states.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32435: Add resolution states to Catalog concerns
Martin Renvoize [Thu, 21 Dec 2023 15:58:41 +0000 (15:58 +0000)]
Bug 32435: Add resolution states to Catalog concerns

This patch adds resolution types to the catalog concerns feature. It
allows libraries to define a list of 'TICKET_RESOLUTION' authorized
values from which librarians can then pick at the point of resolving a
catalog concern.

To test:
1) Apply the patches and run the database updates
2) Enable catalog concerns (staff or opac will do the trick)
3) Submit a catalog concern
4) Confirm that you can still resolve a concern from the catalog
   concerns management page as before.
5) Add some values to the new TICKET_RESOLUTION authorized values
6) Submit a new catalog concern
7) Confirm that the 'Resolve' button in the management modal is now a
   dropdown containing the list of resolution values defined above.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 32435: Add TICKET_RESOLUTION authorized value
Martin Renvoize [Thu, 21 Dec 2023 15:57:41 +0000 (15:57 +0000)]
Bug 32435: Add TICKET_RESOLUTION authorized value

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35628: DBIC schema update
Katrin Fischer [Tue, 30 Apr 2024 09:13:35 +0000 (09:13 +0000)]
Bug 35628: DBIC schema update

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35628: DBRev 23.12.00.037
Katrin Fischer [Tue, 30 Apr 2024 09:08:43 +0000 (09:08 +0000)]
Bug 35628: DBRev 23.12.00.037

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35628: Add unit tests for Koha::Ticket::Update addition
Martin Renvoize [Thu, 25 Apr 2024 15:51:09 +0000 (16:51 +0100)]
Bug 35628: Add unit tests for Koha::Ticket::Update addition

We add a strings_map method to Koha::Ticket::Update and thus need
to have corresponding unit tests.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35628: Add unit tests for Koha::Ticket addition
Martin Renvoize [Thu, 25 Apr 2024 15:33:25 +0000 (16:33 +0100)]
Bug 35628: Add unit tests for Koha::Ticket addition

We add a strings_map method to Koha::Ticket and thus need to have
corresponding unit tests.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35628: Unit tests for addition to tickets API
Martin Renvoize [Thu, 25 Apr 2024 15:10:24 +0000 (16:10 +0100)]
Bug 35628: Unit tests for addition to tickets API

This patch updates the unit test for the ticket_updates api to catch
both the missing test 'state' for the existing state change
functionality and also the new 'status' functionality introduced with
this patchset.

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>
2 months agoBug 35628: Add status filters to top bar
Martin Renvoize [Thu, 28 Dec 2023 10:04:36 +0000 (10:04 +0000)]
Bug 35628: Add status filters to top bar

This patch adds status filters to the top toolbar alongside the existing
filter on resolved.

Signed-off-by: Esther Melander <esther@bywatersolutions.com>
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35628: Add current status as a class to table rows
Martin Renvoize [Wed, 27 Dec 2023 11:08:09 +0000 (11:08 +0000)]
Bug 35628: Add current status as a class to table rows

This patch adds the current status, if there is one set, to the table
rows of the concerns interface.

Signed-off-by: Esther Melander <esther@bywatersolutions.com>
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35628: Display status strings instead of codes
Martin Renvoize [Fri, 22 Dec 2023 16:14:40 +0000 (16:14 +0000)]
Bug 35628: Display status strings instead of codes

Signed-off-by: Esther Melander <esther@bywatersolutions.com>
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35628: Add resolution states to Catalog concerns
Martin Renvoize [Thu, 21 Dec 2023 15:58:41 +0000 (15:58 +0000)]
Bug 35628: Add resolution states to Catalog concerns

This patch adds ticket status to the catalog concerns feature. It
allows libraries to define a list of 'TICKET_STATUS' authorized
values from which librarians can then pick at the point of updateing
a catalog concern.

To test:
1) Apply the patches and run the database updates
2) Enable catalog concerns (staff or opac will do the trick)
3) Submit a catalog concern
4) Confirm that you can still update a concern from the catalog
   concerns management page as before.
5) Add some values to the new TICKET_STATUS authorized values
6) Submit a new catalog concern
7) Confirm that the 'Update' button in the management modal is now a
   split button with a dropdown containing the list of status values
   defined above.

Signed-off-by: Esther Melander <esther@bywatersolutions.com>
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35628: Add status to ticket definition
Martin Renvoize [Thu, 21 Dec 2023 15:58:11 +0000 (15:58 +0000)]
Bug 35628: Add status to ticket definition

Signed-off-by: Esther Melander <esther@bywatersolutions.com>
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35628: Add status to tickets
Martin Renvoize [Thu, 21 Dec 2023 15:57:41 +0000 (15:57 +0000)]
Bug 35628: Add status to tickets

This patch adds a new TICKET_STATUS authorized value category as well as
adding the new 'status' field to both 'tickets' and 'ticket_updates'
tables.

Signed-off-by: Esther Melander <esther@bywatersolutions.com>
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 31652: DBIC schema update
Katrin Fischer [Tue, 30 Apr 2024 09:12:03 +0000 (09:12 +0000)]
Bug 31652: DBIC schema update

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35138: Fix typo in error messages
Katrin Fischer [Tue, 30 Apr 2024 08:51:42 +0000 (08:51 +0000)]
Bug 35138: Fix typo in error messages

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35138: DBRev 23.12.00.035
Katrin Fischer [Tue, 30 Apr 2024 08:49:53 +0000 (08:49 +0000)]
Bug 35138: DBRev 23.12.00.035

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35138: Fix delete button for newly added facet
Jonathan Druart [Mon, 29 Apr 2024 21:13:43 +0000 (23:13 +0200)]
Bug 35138: Fix delete button for newly added facet

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35138: Fix Koha_Elasticsearch.t
Jonathan Druart [Mon, 29 Apr 2024 21:06:17 +0000 (23:06 +0200)]
Bug 35138: Fix Koha_Elasticsearch.t

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35138: (QA follow-up) Tidy update
Nick Clemens [Fri, 12 Apr 2024 09:03:46 +0000 (09:03 +0000)]
Bug 35138: (QA follow-up) Tidy update

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35138: A bit of cleaning - UI
Jonathan Druart [Thu, 21 Mar 2024 13:47:27 +0000 (14:47 +0100)]
Bug 35138: A bit of cleaning - UI

This can be moved to its own bug report, it's only a bit of cleaning
trying to keep the code cleaner after than before.
No behaviour changes expected.

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Clemens Tubach <clemens.tubach@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35138: UI changes to add/remove a facet
Jonathan Druart [Thu, 21 Mar 2024 11:42:24 +0000 (12:42 +0100)]
Bug 35138: UI changes to add/remove a facet

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Clemens Tubach <clemens.tubach@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35138: Mark DisplayLibraryFacets as zebra only
Jonathan Druart [Fri, 22 Mar 2024 08:53:47 +0000 (09:53 +0100)]
Bug 35138: Mark DisplayLibraryFacets as zebra only

We can know add/remove homelibrary and holdinglibray from the config
page, this syspref is no longer needed for ES

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Clemens Tubach <clemens.tubach@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35138: Adjust existing data
Jonathan Druart [Thu, 21 Mar 2024 09:15:23 +0000 (10:15 +0100)]
Bug 35138: Adjust existing data

We want the label from the DB displayed on the UI so we are adjusting
the yaml and the DB.

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Clemens Tubach <clemens.tubach@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35138: Add the ability to manage ES facets
Jonathan Druart [Thu, 14 Mar 2024 10:41:42 +0000 (11:41 +0100)]
Bug 35138: Add the ability to manage ES facets

This new feature allows to manage facets for Elasticsearch from the
administration page.
Prior to this the facet fields were hardcoded in the codebase.

Librarians can then add/remove facet fields and modify their label.

Test plan:
1. Create a new search field and set it a label different than its name.
2. Save
3. Go the bibliographic mapping tab
4. Add 1+ mapping for this search field (Searchable and facetable must be "Yes")
5. Add, reorder, remove new facets
6. Save and reindex your records
7. Search and notice the new facet list

QA: There are several wrong things in this area (ES + facets code,
everything, pm, pl, tt AND on this administration page). I have done my
best to clean the code as much as I could and keep the code cleaner
after than before. But there are still a lot to do.
There are still inconsistencies on this page (like we need to save to
see the changes applied to the other tables), but this is clearly out of
the scope of this bug report.
Another enhancement would be to move the facet list to a different DB
table, that could bring more flexibility:
  * display or not (could be opac/staff/both/none)
  * define the size per field (number of facet to display)
  * order: move search_field.facet_order to this new table.
But, again, it's a lot more work.

More work is done in this area, please see related bug reports.

Sponsored-by: The Research University in the Helmholtz Association (KIT)
Signed-off-by: Clemens Tubach <clemens.tubach@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 26297: (follow-up) Fix specification file
Martin Renvoize [Tue, 30 Apr 2024 06:31:15 +0000 (07:31 +0100)]
Bug 26297: (follow-up) Fix specification file

We had a duplicate 'description' key introduced in the patron category
specification file here which causes errors on bundling the specs.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 31345: Add ability to exit process_message_queue.pl early if any plugin before_se...
Kyle M Hall [Thu, 11 Aug 2022 19:43:15 +0000 (15:43 -0400)]
Bug 31345: Add ability to exit process_message_queue.pl early if any plugin before_send_messages hook fails

Sometimes it would be better for process_message_queue.pl to stop if a plugin hook fails rather than continue processing. It would be nice if that was a command line option.

Test Plan:
1) Install any plugin with a before_send_messages hook
2) Modify the plugin, add a 'die;' statement at the start of the
   before_send_messages method of the plugin.
3) Run process_message_queue.pl as usual
4) Note the exit code is 0
5) Run it again with the new -e setting
6) Note the exit code is 1

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35582: Supress possible warning
Kyle M Hall [Fri, 26 Apr 2024 18:41:42 +0000 (14:41 -0400)]
Bug 35582: Supress possible warning

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35582: Show advanced search languages with selected intranet language description...
lmstrand [Fri, 26 Jan 2024 08:36:00 +0000 (10:36 +0200)]
Bug 35582: Show advanced search languages with selected intranet language descriptions first

To test:

1. Check language dropdowns in advanced search, notice localized
   names of the languages are shown first in the menus, then the
selected ui language translations if available or the english translation
2. Apply patch
3. Check language dropdowns, notice the selected ui language's
   translations are shown first for the languages (if missing, english
translation), then the localized
language's name.

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 26297: (QA follow-up): Update tests
Pedro Amorim [Wed, 24 Apr 2024 11:01:08 +0000 (11:01 +0000)]
Bug 26297: (QA follow-up): Update tests

prove t/db_dependent/api/v1/patron_categories.t

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 26297: (QA follow-up) Spec fixes
Tomas Cohen Arazi [Tue, 23 Apr 2024 13:04:06 +0000 (10:04 -0300)]
Bug 26297: (QA follow-up) Spec fixes

This patch fixes some spec misses. To test:

1. Run:
   $ ktd --shell
  k$ prove xt/api.t
=> FAIL: Tests fail!
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass!

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 26297: Add tests
Pedro Amorim [Tue, 12 Dec 2023 10:57:50 +0000 (10:57 +0000)]
Bug 26297: Add tests

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 26297: API specs
Pedro Amorim [Mon, 11 Dec 2023 17:30:37 +0000 (17:30 +0000)]
Bug 26297: API specs

Test plan, k-t-d:
1) Access /api/v1/patron_categories
2) Verify the patron categories are correctly listed

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Bug 26297: (QA follow-up) Move to REST::V1::Patrons::Categories

Bug 26297: (QA follow-up) Use search_with_library_limits

JD amended-patch: squashed + tidy

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 26297: Add patron categories to_api_mapping
Pedro Amorim [Mon, 11 Dec 2023 17:31:09 +0000 (17:31 +0000)]
Bug 26297: Add patron categories to_api_mapping

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 33494: Make filters a toggle
Martin Renvoize [Wed, 27 Dec 2023 16:01:05 +0000 (16:01 +0000)]
Bug 33494: Make filters a toggle

This patch updates the markup to make the 'Filter resolved | Show all' a
toggle filter rather than two buttons.

Test plan
1. Enable the CatalogConcerns system preference.
2. For two records, add a catalog concern (New > New catalog concern).
3. Resolve one of the concerns (Cataloging > Reports > Catalog concerns)
   - click on the 'Details' button then the 'Resolve' button.
4. Note that the filters at the top of the page are labelled: Hide
   resolved | Show all
5. Apply the patch and refresh the page.
6. Note that it is now a 'toggle': 'Include resolved' (default) or
   'Filter resolved'

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Ray Delahunty <lib-systems@arts.ac.uk>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35106: CSRF fix
Pedro Amorim [Tue, 2 Apr 2024 11:28:59 +0000 (11:28 +0000)]
Bug 35106: CSRF fix

The removal of 'cud-' from op needs to happen sooner
because ill-requests.tt expects 'edit_action' op,
not 'cud-edit_action'.

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35106: Validate entered borrowernumber and biblio_id
Pedro Amorim [Thu, 19 Oct 2023 10:21:04 +0000 (10:21 +0000)]
Bug 35106: Validate entered borrowernumber and biblio_id

Following up from the test plan of the previous patch:
1) Edit the request again, input gibberish in the Patron ID e.g. 'asdasd'
2) Hit 'Submit'
3) Notice you get a 'The Patron ID you entered is invalid.' message.
4) Edit again, try to empty the input on the Patron ID, hit 'Submit'.
5) Notice it saves the patron as null, as expected

Repeat the test plan, but now for the Bibliographic record ID, notice
the message 'The Bibliographic record ID you entered is invalid.' is
shown if a no biblio was found.

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

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 35106: Add patron search autocomplete to Patron ID input
Pedro Amorim [Thu, 19 Oct 2023 09:35:32 +0000 (09:35 +0000)]
Bug 35106: Add patron search autocomplete to Patron ID input

Test plan, k-t-d:
1) Install FreeForm and enable ILLmodule, run:
bash <(curl -s https://raw.githubusercontent.com/ammopt/koha-ill-dev/master/start-ill-dev.sh)
2) Visit /cgi-bin/koha/ill/ill-requests.pl
3) Create 'New ILL request'
4) Select the request type, input cardnumber '42' and select a library. Hit 'Create'
5) Manage the request created just now: click the request id or 'manage request' button from the table
6) Click "Edit request" from the top actions toolbar
7) Input text in Patron ID e.g. 'koha'. Notice you get patron suggestions.
8) Click one of the suggestions and save the request, notice the patron is saved correctly.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 25682: Style transfers interface to match checkin page
Owen Leonard [Tue, 23 Apr 2024 11:01:26 +0000 (11:01 +0000)]
Bug 25682: Style transfers interface to match checkin page

This patch updates the transfer page to make it better match the style
of the checkin page. The static dialog is converted to a modal for
consistency's sake, with information displaying as similarly as
possible to the checkin page. The library dropdown is now styled with
Select2.

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

- Test some simple transfers: Items which are not checked out, some
  which are checked out.
- Test that the page's handling of items on hold matches current master
  (i.e. broken, see Bug 36686). Description of current behavior:

- Logged in to Branch A.
- Find a barcode for a title which has a biblio-level
  hold (not already in transit) to be sent to Branch B.

  - Submit transfer to Branch C.
    - Three actions are offered:
      1. Transfer to Branch B
      2. Cancel hold and then attempt transfer
      3. Ignore and return to transfers

      Testing each of the three actions:
          1. The page says "Item is now in transit
             to Branch C (not the hold's destination)"
          2. The item is not in transit, and the hold
             has been changed to an item-level hold.
          3. Works correctly. No change to the hold
             and no transfer initiated.

- Logged in to Branch A.
- Find a barcode for a title which has a biblio-level
  hold (not already in transit) to be sent to Branch B.
  - Check in the item, confirm hold and transfer.

  - Submit transfer to Branch C.
    - Two actions are offered:
      1. Cancel hold and then attempt transfer
      2. Ignore and return to transfers

      Testing each of the two actions:
          1. The page says "Reserve cancelled" (sic).
             The original transfer to Branch B is still
             in place.
          2. Works correctly. No change to the hold and
             the original transfer remains.

- Logged in to Branch D.
- Find a barcode for a title which has a biblio-level
  hold (not already in transit) to be held at Branch D.
  - Check in the item, confirm hold.

- Log in to Branch A.
  - Submit a transfer with that barcode to Branch C.
    - Two actions are offered:
      1. Cancel hold and then attempt transfer
      2. Ignore and return to transfer.

      Testing each of the two actions:
          1. The page says "Reserve cancelled" (sic).
             The hold has been cancelled but the item
             has not been transferred.
          2. Works correctly. Hold remains unchanged,
             no transfer initiated.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 29393: DBRev 23.12.035
Katrin Fischer [Mon, 29 Apr 2024 15:35:02 +0000 (15:35 +0000)]
Bug 29393: DBRev 23.12.035

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 29393: (follow-up) Rename notice module to "Patron (custom message)"
Katrin Fischer [Mon, 29 Apr 2024 15:31:35 +0000 (15:31 +0000)]
Bug 29393: (follow-up) Rename notice module to "Patron (custom message)"

Also moved it below the similar entry "Patron (custom slip)".

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 29393: (QA follow-up) Improve modal styling
Martin Renvoize [Thu, 25 Apr 2024 10:54:30 +0000 (11:54 +0100)]
Bug 29393: (QA follow-up) Improve modal styling

The modal still used a lot of older styles, this patch updates the
classes to make it more consistent with other message type modals.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 29393: (QA follow-up) Tidy and make executable the new test
Martin Renvoize [Thu, 25 Apr 2024 09:01:25 +0000 (10:01 +0100)]
Bug 29393: (QA follow-up) Tidy and make executable the new test

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 29393: (QA follow-up) Tidy add_message.pl
Martin Renvoize [Thu, 25 Apr 2024 08:59:50 +0000 (09:59 +0100)]
Bug 29393: (QA follow-up) Tidy add_message.pl

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 29393: (QA follow-up) Make database update idempotent
Martin Renvoize [Thu, 25 Apr 2024 08:58:19 +0000 (09:58 +0100)]
Bug 29393: (QA follow-up) Make database update idempotent

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 29393: Prevent SQL errors when SQL strict mode is set
Julian Maurice [Tue, 18 Apr 2023 14:28:34 +0000 (16:28 +0200)]
Bug 29393: Prevent SQL errors when SQL strict mode is set

Signed-off-by: Matthias Le Gac <matthias.le-gac@inlibro.com>
Signed-off-by: Phan Tung Bui <phan-tung.bui@inlibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 29393: (follow-up) Explicite use of methods from C4
Fridolin Somers [Tue, 14 Mar 2023 20:33:58 +0000 (10:33 -1000)]
Bug 29393: (follow-up) Explicite use of methods from C4

Signed-off-by: Matthias Le Gac <matthias.le-gac@inlibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 29393: Sort notice templates by name
Alex Arnaud [Wed, 8 Dec 2021 12:56:15 +0000 (13:56 +0100)]
Bug 29393: Sort notice templates by name

Signed-off-by: Matthias Le Gac <matthias.le-gac@inlibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 months agoBug 29393: Don't show notice templates for each language
Alex Arnaud [Fri, 19 Nov 2021 08:59:59 +0000 (09:59 +0100)]
Bug 29393: Don't show notice templates for each language

Signed-off-by: Matthias Le Gac <matthias.le-gac@inlibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>