]> git.koha-community.org Git - koha.git/log
koha.git
20 months agoBug 32603: Suggester category in Suggestions management
Frédéric Demians [Tue, 10 Jan 2023 08:26:51 +0000 (09:26 +0100)]
Bug 32603: Suggester category in Suggestions management

In Suggestions management, in the table displaying all suggestions, add
a column to display suggester category. This way, it is possible for
example for the librarian managing suggestions rather to prioritize
suggestions coming from teachers than those coming from students.

TEST :

1. Apply the patch.
2. Acquisition > Suggestions.
3. There is a new column 'Suggester category'. It can be
   displayed/hidden.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32567: (QA follow-up) Fix some labelling inconsistencies
Katrin Fischer [Sun, 5 Feb 2023 13:05:32 +0000 (14:05 +0100)]
Bug 32567: (QA follow-up) Fix some labelling inconsistencies

This makes sure that the descriptions in the pull-downs always
match for selected/unselected.
This is not only for consistency, but will also ease translations
as simple things like an additional space will create a new
string to translate.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32567: Update unimarc_field_110.pl with some values
Thibaud Guillot [Wed, 4 Jan 2023 14:14:17 +0000 (15:14 +0100)]
Bug 32567: Update unimarc_field_110.pl with some values

'Script of title' values =>
e - b/c/d/e/f/g/h
i - d/e
j - f/g
l - f
n - b/c
o - a
p - a

'Translitteral code' values =>
'g' and 'h'

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31407: Set focus for cursor to Currency when adding a new currency
Katrin Fischer [Sat, 4 Feb 2023 23:58:05 +0000 (23:58 +0000)]
Bug 31407: Set focus for cursor to Currency when adding a new currency

This makes sure that the focus is on the first field of the
form when adding a new currency.

To test:
* Go to administration > currencies
* Add a new currency
* Verify the focus is not on the form
* Apply patch
* Repeat, verify the focus is now on the first input "currency"

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32612: (QA follow-up) Add POD and fix typo
Tomas Cohen Arazi [Tue, 7 Feb 2023 18:19:47 +0000 (15:19 -0300)]
Bug 32612: (QA follow-up) Add POD and fix typo

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32698: Use template wrapper for serials pages tabs
Owen Leonard [Fri, 20 Jan 2023 18:47:11 +0000 (18:47 +0000)]
Bug 32698: Use template wrapper for serials pages tabs

This patch updates three serials templates to replace tab markup with
the use of WRAPPERs.

To test requires more data than will be found in the sample data. You
need at least one subscription with issues spanning more than one year.
I suggest creating a new subscription which starts in December, then
receive one issue from December and one in January.

Apply the patch and go to Serials.

- Perform a subscription search.
  - On the search results page there should be two tabs: "Open" and
    "Closed." These tabs should work correctly.
- Open the detail view of one of your subscriptions.
  - You should see at least four tabs: "Information," "Planning,"
    "Issues," and "Summary."
  - In some cases an "Acquisition details" tab will also appear. To test
    this you must go to Acquisitions and add an order to a basket by
    choosing "From a subscription" option.
- Click "Serial collection" in the left-hand sidebar.
  - There should be tabs for each year of subscription issues in your
    collection.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32661: (follow-up) Use more unique variable name to avoid collisions
Owen Leonard [Fri, 20 Jan 2023 16:30:02 +0000 (16:30 +0000)]
Bug 32661: (follow-up) Use more unique variable name to avoid collisions

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32661: Use template wrapper for invoices page tabs
Owen Leonard [Tue, 17 Jan 2023 20:20:30 +0000 (20:20 +0000)]
Bug 32661: Use template wrapper for invoices page tabs

This patch implements the template WRAPPER system (see Bug 32571) for
building tabs on the invoices page.

To test you must have at least one open invoice and one closed invoice.

- Go to Acquisitions -> Invoices.
- You should see two tabs, "Open invoices" and "Closed invoices."
- The tabs should look correct and work correctly.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32660: (follow-up) Use more unique variable name to avoid collisions
Owen Leonard [Fri, 20 Jan 2023 16:22:41 +0000 (16:22 +0000)]
Bug 32660: (follow-up) Use more unique variable name to avoid collisions

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32660: Use template wrapper for basket groups tabs
Owen Leonard [Tue, 17 Jan 2023 19:58:55 +0000 (19:58 +0000)]
Bug 32660: Use template wrapper for basket groups tabs

This patch implements the template WRAPPER system (see Bug 32571) for
building tabs on the basket groups page.

To test you must have at least one active vendor, one or more closed
baskets under that vendor, and at least one basket group containing a
closed basket.

Apply the patch and go to Acquisitions -> Vendor -> Basket groups.

You should see two tabs, "Open" and "Closed." The tabs should look
correct and work correctly.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32662: Use template wrapper for item circulation alerts page
Owen Leonard [Fri, 20 Jan 2023 16:39:32 +0000 (16:39 +0000)]
Bug 32662: Use template wrapper for item circulation alerts page

This patch implements the template WRAPPER system (see Bug 32571)
for building tabs on the item circulation alerts page.

To test, apply the patch and go to Administration -> Item
circulation alerts. There should be two tabs, "Checkout" and
"Check-in" which work correctly.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32649: Use template wrapper for library transfer limits tabs
Owen Leonard [Thu, 5 Jan 2023 13:49:00 +0000 (13:49 +0000)]
Bug 32649: Use template wrapper for library transfer limits tabs

This patch implements the template WRAPPER system (see Bug 32571) for
building tabs on the library transfer limits page.

To test, apply the patch and go to Administration -> Library
transfer limits. It should look the same as before and all tabs should
function correctly.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32571: (follow-up) Use more unique variable name to avoid collisions
Owen Leonard [Fri, 20 Jan 2023 15:47:08 +0000 (15:47 +0000)]
Bug 32571: (follow-up) Use more unique variable name to avoid collisions

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32571: (follow-up) Implement abstracted tabs on About page
Owen Leonard [Thu, 5 Jan 2023 12:59:10 +0000 (12:59 +0000)]
Bug 32571: (follow-up) Implement abstracted tabs on About page

This patch implements the proposed system for building tabs on the About
page.

To test, apply the patch and view the About page. It should look the
same as before and all tabs should function correctly.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32571: Use template wrapper to build tabbed components
Owen Leonard [Thu, 5 Jan 2023 12:54:42 +0000 (12:54 +0000)]
Bug 32571: Use template wrapper to build tabbed components

This patch adds Template::Toolkit WRAPPER blocks to html_helpers.inc so
that templates can build tabbed components while keeping tab structural
markup separate.

Each individual component of a Bootstrap tabbed interface is defined:

- Main tab container
- Tab links container
- Individual tab links
- Tab panel container
- Individual tab panels

Included is a usage example:

  [ WRAPPER tabs id= "tabs container id" ]
      [ WRAPPER tabs_nav ]
        [ WRAPPER tab_item tabname= "tab name 1" ] [ content ] [ END ]
          [ WRAPPER tab_item tabname= "tab name 2" ] [ content ] [ END ]
            ...
        [ END ]
        [ WRAPPER tab_panels ]
          [ WRAPPER tab_panel id="tab name 1"] [ content ] [ END ]
          [ WRAPPER tab_panel id="tab name 2"] [ content ] [ END ]
            ...
      [ END ]
  [ END ]

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32612: (QA follow-up) Add BINMODE method to C4::SIP::Trapper
Kyle Hall [Tue, 7 Feb 2023 11:49:28 +0000 (06:49 -0500)]
Bug 32612: (QA follow-up) Add BINMODE method to C4::SIP::Trapper

The module Log::Log4perl::Appender::Screen is attempting to change
binmode during unit tests for SIPServer and is failing because of
our tie in SIPServer.pm for reasons unknown.

This patch implements the perltie method TIEHANDLE which allows the
binmode to be handled in the C4::SIP::Trapper package.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32544: Remove flags as option from several patron form related system preferences
Katrin Fischer [Wed, 28 Dec 2022 21:05:14 +0000 (21:05 +0000)]
Bug 32544: Remove flags as option from several patron form related system preferences

Because permissions aren't actually set via the patron edit
screens, these checkboxes have no real purpose or effect.

This removes flags from the selectable fields of the following
system preferences:

* PatronSelfModificationMandatoryField
* PatronSelfRegistrationBorrowerMandatoryField
* BorrowerMandatoryField
* PatronSelfModificationBorrowerUnwantedField
* PatronSelfRegistrationBorrowerUnwantedField

To test:
* Apply patch
* Verify that the checkbox for flags can no longer be set for
these preferences

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io>
20 months agoBug 26765: Make author span a clickable link on OPAC results list
Owen Leonard [Fri, 27 Jan 2023 18:53:39 +0000 (18:53 +0000)]
Bug 26765: Make author span a clickable link on OPAC results list

This patch follows the markup of the staff interface catalog results
XSLT to make authors in OPAC search results clickable.

The patch also makes some minor CSS changes so that title and author
links are not too crowded together.

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

- Perform a catalog search in the OPAC which will return multiple
  results.
- In the search results, each author in each search result should be a
  separate clickable link.
- The margins around the result title and authors should be
  comfortable.
- Confirm that each link takes you to the correct author search.

Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 14911: Add 245 fields to itemsearch title column via biblio-title.inc
Lucas Gass [Thu, 8 Dec 2022 22:19:20 +0000 (22:19 +0000)]
Bug 14911: Add 245 fields to itemsearch title column via biblio-title.inc

To test:
1. Have some records that have these 245 fields:

    -Title 245$a
    -Subtitle 245$b
    -Medium 245$h
    -Part number 245$n
    -Part name 245$p

Note: IN KTD I have to run batchRebuildBiblioTables.pl -c

2. Apply patch and do an item search that will turn up items with the 245 fields lists above
3. Notice that those subfields are now included in the title column.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 15869: (QA follow-up) Don't pass placeholder framework '_USE_ORIG'
Nick Clemens [Wed, 18 Jan 2023 19:53:54 +0000 (19:53 +0000)]
Bug 15869: (QA follow-up) Don't pass placeholder framework '_USE_ORIG'

This param in the dropdown is meant to signify no change, distinct from
"" when means to set to default. In rebasing this condition was lost, this patch
restores undef of the variable to avoid setting framework to an invalid value

To test:
1 - Stage a record with a match (export and import a record)
2 - Attempt to import and overlay with option 'When replacing records use this framework:' 'Keep original framework'
3 - It fails, logs note 'value too long for field frameworkcode'
4 - Apply this patch
5 - Try again, it succeeds - framework is not changed

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 15869: (QA follow-up) Add some padding around the pulldowns
Kyle Hall [Fri, 13 Jan 2023 13:23:27 +0000 (08:23 -0500)]
Bug 15869: (QA follow-up) Add some padding around the pulldowns

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 15869: (follow-up) Don't mock undef return value
Nick Clemens [Wed, 2 Nov 2022 19:27:38 +0000 (19:27 +0000)]
Bug 15869: (follow-up) Don't mock undef return value

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 15869: Unit test
Nick Clemens [Wed, 21 Sep 2022 21:13:17 +0000 (21:13 +0000)]
Bug 15869: Unit test

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 15869: Change framework on overlay
Nick Clemens [Tue, 13 Sep 2016 15:23:50 +0000 (15:23 +0000)]
Bug 15869: Change framework on overlay

This patch allows for selection of framework to use when overlaying
records - by default it is set to keep the initial framework

To test:
 1 - Create some records using one framework
 2 - Export the records
 3 - Edit the records to add fields not in original framework
 4 - Stage records using a rule that will find matches
 5 - Import
 6 - Note records contain new fields on display, but they are lost on edit
 7 - Apply patch
 8 - Stage records again
 9 - Select a framework that contains the new fields on import
10 - Import records
11 - Note records now use selected framework and are displayed/edited
correctly

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32786: Display admin header on curbside pickup admin
Jonathan Druart [Mon, 6 Feb 2023 15:39:02 +0000 (16:39 +0100)]
Bug 32786: Display admin header on curbside pickup admin

Most other administration pages (those that don't have specific searches)
are set by default on system preferences search.

Test plan:
Go to admin > Curbside pickup
Confirm that the syspref search is displayed in the header

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32027: Fix 'librarian interface' to use 'staff interface' in Pages/HTML customiza...
Katrin Fischer [Mon, 6 Feb 2023 21:53:56 +0000 (22:53 +0100)]
Bug 32027: Fix 'librarian interface' to use 'staff interface' in Pages/HTML customizations/News

This changes all occurences of "librarian interface" to the
correct term "staff interface"

To test:
* Create a new Page
* Verify that the pull down for location has "librarian interface"
* Save your page
* Verify that the list of existing pages has "Librarian interface" as
  label for the link
* Verify that when you hover over on those links the titles read
  "librarian interface" as well
* Apply patch
* All those should read correctly now.

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31768: Add tools toolbar to tags page
Katrin Fischer [Mon, 6 Feb 2023 22:06:32 +0000 (22:06 +0000)]
Bug 31768: Add tools toolbar to tags page

The tags tool was missing the toolbar on the left side.
With the filters, this patch adds the toolbar below, like
we do on other pages like HTML customizations.

To test:
* Go to Tools > Tags
* Verify no toolbar
* Apply patch
* Verify toolbar is now present
* Compare to other tool pages
* Sign off :)

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32523: Links to missing fields in MARC editor error
Jan Kissig [Wed, 4 Jan 2023 13:04:28 +0000 (14:04 +0100)]
Bug 32523: Links to missing fields in MARC editor error

This bug appears after switching to the new staff interface design (from 22.05 to 22.11).
When adding/editing a biblio in staff interface leaving out mandatory fields and click on save, you get an error dialog with shortcuts/links to these missing fields. Clicking on these links should change section tabs and focus the field.
This patch fixes that error.

Test plan:
1) in staff interface go to /cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=
2) click Save
3) Error dialog appears, informing about missing input in mandatory fields.
4) Click on tab 0 (section 0) to make sure only marc 0XX fields are visible.
5) In the error dialog click on a "Go to field" which points f.e. to section 9
6) The selected / active tab will switch to section 9 and will not focus on the selected field
7) apply patch
8) repeat step 1) to 6)

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 28674: Fix typo 'hlpd' in schema comments
Katrin Fischer [Sat, 4 Feb 2023 23:04:08 +0000 (00:04 +0100)]
Bug 28674: Fix typo 'hlpd' in schema comments

Fixes the lines for old_reserves.item_level_hold and
reserves.item_level_hold comments to read 'hold'
instead of 'hpld'

To test:
* The easiest way to verify this change is by looking
at the patch itself

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32295: Fix punctuation for "Filters :" on serials claims page
Katrin Fischer [Sun, 5 Feb 2023 01:37:19 +0000 (01:37 +0000)]
Bug 32295: Fix punctuation for "Filters :" on serials claims page

To test:
* Add a subscription
* Generate next issue, to have a late one
* Go to serials > claims
* Select your vendor
* Verify one of the sections is labelled "Filters :"
* Apply patch
* Verify the section is now labelled "Filters:"

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32290: Fix terminology on ILL requests page
Katrin Fischer [Sun, 5 Feb 2023 02:18:05 +0000 (03:18 +0100)]
Bug 32290: Fix terminology on ILL requests page

This makes some fixes for the terminology used in
the ill-requests.pl page:

This item cannot be issued as it has no biblio record associated with it
> This item cannot be checked out out as there is no bibliographic
  record associated with it

You must choose a branch
> You must choose a library

View borrower details
> View patron details

Test plan:
* You can set up ILL using the instructions on
  https://wiki.koha-community.org/wiki/ILL_backends
* All strings will be located on the ILL request management page or
  the ILL requests list
* Or... you could verify looking at the patch itself

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32222: Fix capitalization in various "id is invalid"
Katrin Fischer [Sun, 5 Feb 2023 00:51:12 +0000 (01:51 +0100)]
Bug 32222: Fix capitalization in various "id is invalid"

ID is an abbreviation and should be written with capitals.

See: https://www.oxfordlearnersdictionaries.com/definition/english/identification

This fixes all occurences of "id is invalid" to read "ID is invalid"

To test:
* As some are hard to trigger warnings, the best way here is to review the patch.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32023: Remove hr in OpacNav for CMS pages
Katrin Fischer [Mon, 6 Feb 2023 21:44:03 +0000 (22:44 +0100)]
Bug 32023: Remove hr in OpacNav for CMS pages

In a page created with the new Pages tool, there is a
<hr> above the OpacNav block.
This hr is not present on other OPAC pages and is
removed by this patch.

To test:
1. Go to Tools > Pages > New entry
2. Create a page and save
3. Copy the OPAC link
4. Go to Tools > HTML customizations > New entry
5. Create an OpacNav entry with the link to the page
6. Go to the OPAC main page
   --> Notice how the left navigation section looks
7. Click on the link on the left to go to the page
   --> an horizontal line appears above OpacNav
8. Apply patch
9. Repeat test - the horizontal line should be gone now

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32226: Fix capitalization of "Add/Edit html content"
Katrin Fischer [Sun, 5 Feb 2023 00:57:15 +0000 (01:57 +0100)]
Bug 32226: Fix capitalization of "Add/Edit html content"

HTML is an abbreviation and as such should always be
capitalized.

To test:
* Go to administration > libraries
* Edit any existing branch
* The hint for OPAC info reads 'Add html content'
* Add some content, verify the link changes to 'Edit html content'
* Apply patch
* Verify both cases now read 'HTML'

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31860: Standardize capitalization used for item subfield descriptions
Katrin Fischer [Mon, 6 Feb 2023 22:18:41 +0000 (22:18 +0000)]
Bug 31860: Standardize capitalization used for item subfield descriptions

This standardizes "Total Holds" to "Total holds" etc.
Also changed is UNIMARC
* "Collection code" to "Collection" like MARC21
* "Current Location" to "Current library" like MARC21 (holdingbranch)
* "Permanent Location" to "Home library" like MARC21 (homebranch)

To test:
* You'll need to apply the patch and then run the web installer to
  create your frameworks
* Once you got a fresh installation, got to
  Administration > Bibliographic frameworks > Choose any
* Go to 995 (for UNIMARC) or 952 (for MARC21)
* Check the descriptions of the subfields for capitalization and
  spelling errors

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32264: Fix capitalization and terminology: Show in Staff client?
Katrin Fischer [Sun, 5 Feb 2023 01:14:09 +0000 (02:14 +0100)]
Bug 32264: Fix capitalization and terminology: Show in Staff client?

This fixes several occurences of Staff client to read
staff interface.

To test:
* Activate the search filter feature via the SavedSearchFilters
  system preference
* Do a search in the staff catalogue
* Use the link "save as search filter" on top of the results list
* Verify it reads "Show in Staff client?" in the form
* Go to administration > search filters
* Verify the table has a heading "staff client"
* Edit the filter
* Verify there is the "Show in staff client" again
* Apply patch
* All those spots should now read 'staff interface'

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32455: Cleanup and expand ExpireReservesAutoFill.t
Nick Clemens [Wed, 14 Dec 2022 14:20:20 +0000 (14:20 +0000)]
Bug 32455: Cleanup and expand ExpireReservesAutoFill.t

The tests here reused data, and deleted the tables before starting,
with a little shifting we can use specific data and avoid mass deletion

To test:
prove -v t/db_dependent/Holds/ExpireReservesAutoFill.t

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32455: Unit tests
Nick Clemens [Wed, 14 Dec 2022 13:46:24 +0000 (13:46 +0000)]
Bug 32455: Unit tests

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32455: Use from_email_address for 'from' field for hold notices
Nick Clemens [Tue, 13 Dec 2022 12:01:04 +0000 (12:01 +0000)]
Bug 32455: Use from_email_address for 'from' field for hold notices

This patch updates two occurrences where the inbound library email is
used as the from address

To test:
 1 - Set a unique 'Email' and 'Reply to' address for a library
 2 - Find a patron of that library, ensure they have an email
 3 - Ensure their messaging preference for holds is 'email'
 4 - Set system preference ReservesMaxPickupDelay to -1
 5 - Set system preference  ExpireReservesMaxPickUpDelay to Allow
 6 - Set system preference ExpireReservesAutoFill to Do
 7 - Place and fill a hold for that patron at that library
 8 - Check the patron's notification tab, confirm the from address is the 'Reply to'
 9 - Place a hold for another patron on the same item
10 - Run the expired holds cronjob:
     perl misc/cronjobs/holds/cancel_expired_holds.pl --reason=whatever
11 - Check the message_queue - notice the from address is the 'reply to'
12 - Apply patch
13 - Repeat 1-11, confirm the from addresses are correct now

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32580: Fix typo in cancel link on background jobs page
Katrin Fischer [Fri, 6 Jan 2023 23:24:11 +0000 (00:24 +0100)]
Bug 32580: Fix typo in cancel link on background jobs page

One way to test:
* Make sure you are using Elasticsearch
* Edit a record in your catalog
* Go to: /cgi-bin/koha/admin/background_jobs.pl
* Uncheck 'Current jobs only'
* Cancel the job, you'll see a 404 error
* Apply patch
* Repeat, now the redirect should work right

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 24616: (QA follow-up) Remove "This has bug" comment
Katrin Fischer [Fri, 3 Feb 2023 14:51:25 +0000 (14:51 +0000)]
Bug 24616: (QA follow-up) Remove "This has bug" comment

... hopefully because there is no more bug now!

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 24616: Do not save form if user press cancel
Emmi Takkinen [Tue, 1 Nov 2022 07:21:57 +0000 (09:21 +0200)]
Bug 24616: Do not save form if user press cancel

If one starts to copy a notice but then cancels
this when pop-up is displayed, changes are still
saved. This patch fixes this.

To test:
1. Copy notice to a library where it already exists
2. Press save and then cancel when pop-up is
displayed
=> Form and changes are still saved
3. Apply this patch.
4. Repeat steps 1. and 2.
=> Form is no longer saved

Sponsored-by: Koha-Suomi Oy
Signed-off-by: ml-inlibro <marie-luce.laflamme@inlibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 24616: Allow copying notice to a branch even if it exists in that branch
Emmi Takkinen [Thu, 28 Jul 2022 12:22:20 +0000 (15:22 +0300)]
Bug 24616: Allow copying notice to a branch even if it exists in that branch

If you try to copy notice or slip to a branch which already
has that notice or slip Koha won't let you save it. Instead
pop-up saying branch already has that notice is displayed.

This patch allows users to copy and override already existing
notice or slip.

To test:
1. Find notice which exists e.g. in all branches and branch A.
2. Copy that notice, add notice screen is displayed.
3. Press save.
=> Pop-up informing that notice already exists in branch A
is displayed.
4. Apply this patch.
5. Repeat steps 2. and 3.
6. Pop-up to confirm overwrite of notice is displayed.
=> Confirm that if you press OK, notice is saved succesfully.
=> Otherwise, changes to notice should not be saved.

Also try to save the notice you tested with as a new (same code)
to branch A. Confirm that pop-up is displayed as it should be.

Sponsored-by: Koha-Suomi Oy
Signed-off-by: Nick <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32772: Make all autocomplete searches 'starts_with'
Nick Clemens [Tue, 31 Jan 2023 20:15:09 +0000 (20:15 +0000)]
Bug 32772: Make all autocomplete searches 'starts_with'

To test:
1 - Add patrons with surname Fitzwilliams and Williams
2 - Enable 'PatronAutocomplete' syspref
3 - In checkout box type 'Will'
4 - You see fitwilliams first
5 - Apply patch
6 - Type 'Will'
7 - Autocomplete does not suggest Fitzwilliam, only Williams
8 - Type '%will'
9 - Fitzwilliams is suggested

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32230: Fix capitalization of "Manage Domains"
Katrin Fischer [Sun, 5 Feb 2023 01:07:20 +0000 (02:07 +0100)]
Bug 32230: Fix capitalization of "Manage Domains"

To test:
* Go to administration > Identity providers
* Add a new identity provider and fill out all required form fields
  Hint: you can use the buttons to add example JSON to the input fields
* Save
* Verify the entry in the table now shows a "Manage Domains" button
* Apply patch
* Verify the button now reads correctly: "Manage domains"

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32881: System preferences sub menu text is hard to read
Pedro Amorim [Fri, 3 Feb 2023 16:11:02 +0000 (16:11 +0000)]
Bug 32881: System preferences sub menu text is hard to read

This patch makes the font-size slightly larger and applies a background color to the selected submenu.

To test:
Go to system preferences
Click on any side menu item and check the items in the sub menu under it
Apply patch
run yarn build
Go to system preferences again and check the changes

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32761: Correct typos in CircControl syspref
Andrew Fuerste-Henry [Fri, 3 Feb 2023 17:32:43 +0000 (17:32 +0000)]
Bug 32761: Correct typos in CircControl syspref

To test:
1: look up the CircControl syspref, see that it says "wether" and "libray"
2: apply patch
3: reload, see it says "whether" and "library"

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32294: Fix capitalization for user ID in self checkout
Katrin Fischer [Sun, 5 Feb 2023 01:24:58 +0000 (02:24 +0100)]
Bug 32294: Fix capitalization for user ID in self checkout

Fixes capitalization of "user ID" on the self checkout help
page.

To test:
* Enable WebBasedSelfCheck
* Go to: /cgi-bin/koha/sco/sco-main.pl in the OPAC
* Log in and open help
* Verify there is a User ID within a sentence and a User id in the heading
* Apply patch
* Both should be corrected

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32289: Fix punctuation in "Delete desk "X?"
Katrin Fischer [Sun, 5 Feb 2023 01:44:23 +0000 (01:44 +0000)]
Bug 32289: Fix punctuation in "Delete desk "X?"

The question mark should be after the quote instead of before.

To test:
* Enable desks using the UseCirculationDesks system preference
* Go to administration > circulation desks
* Add a new desk and save
* Delete desk
* Verify the heading reads "Delete desk "X?"
* Apply patch
* Verify the punctuation now is fixed now

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32606: Revert Flatpickr style changes made in Bug 31943
Owen Leonard [Tue, 10 Jan 2023 19:32:56 +0000 (19:32 +0000)]
Bug 32606: Revert Flatpickr style changes made in Bug 31943

This patch removes the CSS controlling the width of a Flatpickr date
input. The side-effects of this change are worse than the problem the
change was intended to fix.

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

Check pages which are referenced in bugs caused by Bug 31943:

- The holds page (Bug 32259)
- Checking out when specifying a date due in the past (Bug 32210)
- Circulation -> Renew (Bug 32157)

Flatpickr inputs should look correct.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32515: Ignore no-block flag in check-in message
Nick Clemens [Tue, 27 Dec 2022 20:32:10 +0000 (20:32 +0000)]
Bug 32515: Ignore no-block flag in check-in message

Bug 12225 changed the templates to correctly pass through the no-block flag,
however, we don't have a no-block routine for checkins

This patch restore previous behaviour of performing a normal checkin when
no block was requested - it adds a new FIXME

To test:
1 - See bug 32537
    https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=32537
2 - Repeat test plan on that bug, noting that there is no response when no-block = Y
3 - Apply this patch
4 - Repeat the tests and confirm no-block = Y has a standard checkin response

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Blou <philippe.blouin@inlibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32787: Patron restrictions admin page has patron categories search bar
Owen Leonard [Thu, 2 Feb 2023 14:43:38 +0000 (14:43 +0000)]
Bug 32787: Patron restrictions admin page has patron categories search bar

This patch updates the patron restriction administration page to correct
the markup around the header and breadcrumbs: Using the header WRAPPER,
using the sub-header WRAPPER, and switching to the system preferences
search bar.

The patch also corrects the page title to prevent a leading "rsaquo;"
in some cases.

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

To test, apply the patch and go to Administration -> Patron
restrictions. The system preferences search should be preselected in the
header search bar, and everything should look correct.

Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32546: Move ILL system preferences into their own tab in administration
Katrin Fischer [Fri, 20 Jan 2023 14:12:22 +0000 (14:12 +0000)]
Bug 32546: Move ILL system preferences into their own tab in administration

Without this patch the interlibrary loan related system preferences
appeared on the circulation tab, that is already quite long. As ILL
is a complete module, it deserves its own tab.

To test:
* Search for interlibrary loan related preferences in Admin, verify their number
  and location
* Apply patch
* Verfiy all the previously found preferences now appear on their own tab:
  Interlibrary loans

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32655: Move phone and itiva variables into templates
Lucas Gass [Tue, 17 Jan 2023 18:42:28 +0000 (18:42 +0000)]
Bug 32655: Move phone and itiva variables into templates

To test:
1. Go to a patron record or create a new one.
2. Toggle the 'Patron messaging preferences' fieldset so it is hidden.
3. Notice the variables.
4. Apply patch
5. Try steps 1 & 2 again, no varibales.
6. Attempt to toggle on/off options for email/sms. When email/sms are off the digest option next to it should be disabled.
7. Go to  Administration > Patron categories and try step 6 there as well.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32785: Typo: Maximum number of simultaneus pickups per interval (curbside pickups)
Caroline Cyr La Rose [Wed, 1 Feb 2023 19:59:38 +0000 (14:59 -0500)]
Bug 32785: Typo: Maximum number of simultaneus pickups per interval (curbside pickups)

This patch corrects a small typo in the curbside pickup administration
page.

To test:
1. Apply patch
2. Enable the CurbsidePickup system preferences
3. Go to Administration > Curbside pickup
   --> Next to Maximum patrons per interval, the tip should be "Maximum number of simultaneous pickups per interval"

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32793: import_patrons.pl typo in usage
Pedro Amorim [Thu, 2 Feb 2023 10:00:39 +0000 (10:00 +0000)]
Bug 32793: import_patrons.pl typo in usage

Typo fix to prevent confusion in CLI usage

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 28314: Spinning icon is not always going away for local covers in staff
Hammat Wele [Thu, 19 Jan 2023 15:50:49 +0000 (15:50 +0000)]
Bug 28314: Spinning icon is not always going away for local covers in staff

The spinner is always visible with images which are under 80-90 px high

this patch remove the spinner when the image is loaded.

To test:
1. Make sure the LocalCoverImages system preference is enabled
   1.1. Go to Administration > Global system preferences
   1.2. Search for Coverimages
   1.3. Set LocalCoverImages to 'Show'
   1.4. Click 'Save all Enhanced content preferences'
2. Add a short local cover image to a record (I added one which is just a grey rectangle with the size printed on it, to facilitate the test)
   2.1. Download the attached image
   2.2. Find a record without an image
   2.3. Click the 'Images' tab
   2.4. Click 'Upload'
   2.5. Click 'Drop files here or click to select a file' and choose the downloaded image
   2.6. Click 'Process images'
   2.7. Click on the title of the record in the page heading to access the detailed record
   --> Note that the image is displayed normally, but the spinner is also displayed
4. Apply the patch
5. Search for the previous record with the small image
6. Click on the title of the record in the page heading to access the detailed record
   --> Note that the spinner is no more displayed

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 30962: (QA follow-up) Rename attribute and simplify tests
Tomas Cohen Arazi [Fri, 27 Jan 2023 17:41:17 +0000 (14:41 -0300)]
Bug 30962: (QA follow-up) Rename attribute and simplify tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 30962: Add unit tests for /auth/password/validation endpoint
David Cook [Wed, 4 Jan 2023 00:52:25 +0000 (00:52 +0000)]
Bug 30962: Add unit tests for /auth/password/validation endpoint

Test plan:
0. Apply patch
1. prove -v t/db_dependent/api/v1/password_validation.t

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 30962: REST API: Add endpoint /auth/password/validation
David Cook [Fri, 17 Jun 2022 04:43:44 +0000 (04:43 +0000)]
Bug 30962: REST API: Add endpoint /auth/password/validation

This patch adds an endpoint for /auth/password/validation

This allows a third-party, using an authenticated and authorized Koha
API user, to check if the username and password given by a user is
correct in Koha.

For example, a Keycloak extension can be created using its
User Storage SPI to use Koha as the user database for Keycloak. This
API allows us to authenticate the user as a particular Koha user - without
creating a Koha user session for them.

Test plan:
0. Apply patch and koha-plack --restart kohadev
1. Go to http://localhost:8081/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=RESTBasicAuth
2. Enable "RESTBasicAuth"
3. Run the following commands while substituting correct values for <koha_user> and <koha_password>
3. curl -XPOST -H "Content-Type: application/json" -u <koha_user>:<koha_password> http://localhost:8081/api/v1/auth/password/validation -d '{ "username": "<koha_username">, "password": "<koha_password>" }' -v
4. Note "204 No Content" response
5. curl -XPOST -H "Content-Type: application/json" -u <koha_user>:<koha_password> http://localhost:8081/api/v1/auth/password/validation -d '{ "username": "<koha_username">, "password": "this is definitely not the password" }' -v
6. Note "400 Bad Request" response and error message {"error":"Validation failed"}

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32672: Incorrect CSS path to jquery-ui
Owen Leonard [Wed, 18 Jan 2023 15:41:51 +0000 (15:41 +0000)]
Bug 32672: Incorrect CSS path to jquery-ui

This patch removes links to jQueryUI assets which are not required in
the self-checkout and self-checkin pages.

The patch also adds missing JS to the self-checkin page related to
internationalization. This prevents a JS error related to an undefined
function, "__".

To test, apply the patch and view the main pages in self-checkout and
self-checkin, and the help page in self checkout. There should be no
errors in the browser console related to missing files.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32537: (QA follow-up): Tidy code
Kyle Hall [Tue, 3 Jan 2023 13:14:50 +0000 (08:14 -0500)]
Bug 32537: (QA follow-up): Tidy code

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32537: (QA follow-up) Don't allow invalid no block values
Kyle Hall [Tue, 3 Jan 2023 13:12:08 +0000 (08:12 -0500)]
Bug 32537: (QA follow-up) Don't allow invalid no block values

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32537: Add no-block option to SIP cli emulator
Nick Clemens [Tue, 27 Dec 2022 20:21:15 +0000 (20:21 +0000)]
Bug 32537: Add no-block option to SIP cli emulator

This patch adds the option to pass a no-block option and use this
in checkout/checkin/renew messages

To test:
1 - perl misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkin --item 39999000010831
2 - Confirm out like:
    SEND: 09N20221227    20183920221227    201839APCPL|AOCPL|AB39999000010831|ACterm1|BIN|
    (Note the N after 09)
3 - Apply patch
4 - Restart SIP, repeat 1
5 - Confirm still an N
6 - perl misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkin --item 39999000010831 -n N
7 - Confirm still an N
8 - perl misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkin --item 39999000010831 -n Y
9 - Confirm the send has a Y after 09

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32797: Check if fields have a value, not if true
Nick Clemens [Thu, 2 Feb 2023 14:57:14 +0000 (14:57 +0000)]
Bug 32797: Check if fields have a value, not if true

When saving OAI set mappgins we are checking for truth, this prevents
saving subfield 0. We should check for content

To test:
1 - Go to Admin->OAI sets
2 - Create a set
3 - Define mappings for the set
4 - Attempt to save a rule on field 952 subfield 0 (withdrawn)
5 - It does not save
6 - Apply patch
7 - Try again
8 - Success!

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32673: Remove misc/load_testing/ scripts
Jonathan Druart [Wed, 18 Jan 2023 13:32:23 +0000 (14:32 +0100)]
Bug 32673: Remove misc/load_testing/ scripts

see comment 0 for more info

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32612: (QA follow-up) Add missing interface for Logger
Marcel de Rooy [Fri, 3 Feb 2023 09:45:03 +0000 (09:45 +0000)]
Bug 32612: (QA follow-up) Add missing interface for Logger

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32612: (QA follow-up) Remove worker.log
Marcel de Rooy [Fri, 3 Feb 2023 09:41:11 +0000 (09:41 +0000)]
Bug 32612: (QA follow-up) Remove worker.log

It is not used; overruled by daemon's --output option.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32612: (QA follow-up) Remove more unneeded appender lines
Marcel de Rooy [Fri, 3 Feb 2023 08:14:06 +0000 (08:14 +0000)]
Bug 32612: (QA follow-up) Remove more unneeded appender lines

To be more consistent ;)

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32612: (QA follow-up) Update package files
Kyle Hall [Thu, 2 Feb 2023 11:53:53 +0000 (06:53 -0500)]
Bug 32612: (QA follow-up) Update package files

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32612: (QA follow-up) Remove superfluous line
Kyle Hall [Wed, 1 Feb 2023 17:37:44 +0000 (12:37 -0500)]
Bug 32612: (QA follow-up) Remove superfluous line

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32612: Add worker-error to log4perl conf
Nick Clemens [Wed, 11 Jan 2023 18:46:11 +0000 (18:46 +0000)]
Bug 32612: Add worker-error to log4perl conf

To test:
1 - Apply patch
2 - vim /etc/koha/sites/kohadev/log4perl.conf, Add lines below:
log4perl.logger.worker = WARN, WORKER
log4perl.appender.WORKER=Log::Log4perl::Appender::Screen
log4perl.appender.WORKER.stderr=1
log4perl.appender.WORKER.mode=append
log4perl.appender.WORKER.layout=PatternLayout
log4perl.appender.WORKER.layout.ConversionPattern=[%d] [%p] %m %l%n
log4perl.appender.WORKER.utf8=1
3 - Restart all
4 - Edit misc/background_jobs_worker.pl
-        my $job = Koha::BackgroundJobs->find($args->{job_id});
+        my $job;# = Koha::BackgroundJobs->find($args->{job_id});
5 - In another terminal: tail -f /var/log/koha/kohadev/koha-worker-error.log
6 - Force enqueue a job (that won't be found because of #4
  perl -e 'use Koha::BackgroundJob::BatchUpdateItem; my $bg = Koha::BackgroundJob::BatchUpdateItem->new(); $bg->enqueue({ record_ids=>['888888']});'
7 - Note error in log like:
  [2023/01/11 19:26:10] [WARN] No job found for id=2983 main:: /kohadevbox/koha/misc/background_jobs_worker.pl (111)

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32712: (QA follow-up) Add missing include
Tomas Cohen Arazi [Thu, 2 Feb 2023 15:30:06 +0000 (12:30 -0300)]
Bug 32712: (QA follow-up) Add missing include

I assumed it wasn't needed because teh .tt files using this already
includ teh Koha plugin. But we shuoldn't skip, just in case someone
doesn't notice when reusing this, and debugging will be a pain.

Sorry for that.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32741: Fix {biblios|authorities}/bib1.att duplicate codes
Tomas Cohen Arazi [Fri, 27 Jan 2023 19:32:16 +0000 (16:32 -0300)]
Bug 32741: Fix {biblios|authorities}/bib1.att duplicate codes

This patch fixes a duplicate attribute code for Author-in-order in the
biblios definition.
The picked code matches what was already in ccl.properties.

Also Chronological-term for authorities gets fixed.

To test:
1. Apply the regression tests
2. Run:
  k$ prove xt/verify_bib1.att.t
=> FAIL: Some failiures
3. Apply this patch
4. Repeat 1
=> SUCCESS: Tests now pass!
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32741: Regression tests
Tomas Cohen Arazi [Fri, 27 Jan 2023 18:59:52 +0000 (15:59 -0300)]
Bug 32741: Regression tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32779: ERM - Fix import from list
Jonathan Druart [Wed, 1 Feb 2023 13:06:27 +0000 (14:06 +0100)]
Bug 32779: ERM - Fix import from list

There is a typo, '$' is missing, which caused the following error:
Use of inherited AUTOLOAD for non-method Koha::BackgroundJob::CreateEHoldingsFromBiblios::fix_coverage() is no longer allowed at /kohadevbox/koha/Koha/BackgroundJob/CreateEHoldingsFromBiblios.pm line 126

Test plan:
Create a list, add an item
Turn on ERM
Create a package
Go to /cgi-bin/koha/erm/eholdings/local/titles
Click "Import from list"
Select the package, then your list, and import
It should succeed

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32779: Add tests
Jonathan Druart [Wed, 1 Feb 2023 13:28:23 +0000 (14:28 +0100)]
Bug 32779: Add tests

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32401: Remove x-koha-query support
Tomas Cohen Arazi [Tue, 6 Dec 2022 14:19:31 +0000 (11:19 -0300)]
Bug 32401: Remove x-koha-query support

HTTP headers can only contain ASCII characters, and it is thus
impractical to use a header for passing DB queries that could contain
non-ascii characters.

We don't need it, and should be removed.

This patch removes traces from the datatables.js files and also from
detail.tt, which had it set to false anyway.

See bug 32406 and bug 32409 for the cases in which it was being used,
and problematic.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32409: Fix cashup searching with non latin-1 chars
Tomas Cohen Arazi [Tue, 6 Dec 2022 14:02:20 +0000 (11:02 -0300)]
Bug 32409: Fix cashup searching with non latin-1 chars

This patch fixes a problem with the way queries are passed to the API so
cashups are searchable with non-laint1 chars.

To test:
1. Have two superlibrarian users, one with non-latin1 chars on the name
   (e.g. خمسة)
2. Setup a debit type that can be sold.
3. Use the POS module to have some activity, using both your regular
   user and the other one.
4. Go to the register you used, and choose 'Transaction history'
5. Perform a couple cashups with each user ('Record cashup').
6. Look at the 'Cashup history' table
=> SUCCESS: You see cashups for both users
7. Use the 'Search' filter with latin chars
=> SUCCESS: Your user with only latin1 chars is displayed on the table
8. Repeat, using some non-latin1 char found on the other user
=> FAIL: Table is not refreshed or filtered!
9. Apply this patch
10. Reload the page
11. Repeat 8
=> SUCCESS: Filtering works now!
12. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32406: Switch acq datatable from headers to query param
David Cook [Mon, 5 Dec 2022 22:50:23 +0000 (22:50 +0000)]
Bug 32406: Switch acq datatable from headers to query param

This patch changes the pending orders datatable from using the
x-koha-query header to the "q" query parameter, so that it is
able to support UTF-8 encoded scripts rather than just Latin-1
scripts.

Test plan:

1. Apply patch
2. Go to
http://localhost:8081/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=29
3. Change title from "Gairm" to "五" (alternatively use "cœur" or Arabic title)
4. Create a basket containing multiple records including bib 29 五
5. Close the basket
6. Receive shipment
7. You should be on a page like the following:
http://localhost:8081/cgi-bin/koha/acqui/parcel.pl?invoiceid=3
8. In the search box, type in 五
9. Note that you see a "Processing..." box and then the
results are filtered to just show the order for 五

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
tcohen amend: removed the line instead as we are probably phasing out
that DT configuration option anyway.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20256: DBRev 22.12.00.003
Tomas Cohen Arazi [Wed, 1 Feb 2023 19:03:39 +0000 (16:03 -0300)]
Bug 20256: DBRev 22.12.00.003

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20256: DBIC schema
Tomas Cohen Arazi [Wed, 1 Feb 2023 19:03:09 +0000 (16:03 -0300)]
Bug 20256: DBIC schema

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20256: (QA follow-up) Make atomicupdate idempotent
Tomas Cohen Arazi [Wed, 1 Feb 2023 14:33:56 +0000 (11:33 -0300)]
Bug 20256: (QA follow-up) Make atomicupdate idempotent

Without this patch, running the atomicupdate twice crashes on patrons
with edit_items permissions:

C4::Installer::run_atomic_updates(): DBI Exception: DBD::mysql::db do failed: Duplicate entry '19-9-edit_any_item' for key 'PRIMARY' at /kohadevbox/koha/installer/data/mysql/updatedatabase.pl line 24303
DEV atomic update /kohadevbox/koha/installer/data/mysql/atomicupdate/bug_20256.perl  [14:26:41]
ERROR - C4::Installer::run_atomic_updates(): DBI Exception: DBD::mysql::db do failed: Duplicate entry '19-9-edit_any_item' for key 'PRIMARY' at /kohadevbox/koha/installer/data/mysql/updatedatabase.pl line 24303

It also aligns this 3yro script with the new structure we've been using.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20256: Add unit tests
Kyle M Hall [Fri, 29 Mar 2019 18:58:00 +0000 (14:58 -0400)]
Bug 20256: Add unit tests

Signed-off-by: Bob Bennhoff - CLiC <bbennhoff@clicweb.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20256: Use new methods
Kyle M Hall [Thu, 28 Mar 2019 15:07:02 +0000 (11:07 -0400)]
Bug 20256: Use new methods

Signed-off-by: Bob Bennhoff - CLiC <bbennhoff@clicweb.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20256: Update groups editor
Kyle M Hall [Thu, 28 Mar 2019 11:12:37 +0000 (07:12 -0400)]
Bug 20256: Update groups editor

Signed-off-by: Bob Bennhoff - CLiC <bbennhoff@clicweb.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20256: Add new methods for checking item editing permissions
Kyle M Hall [Wed, 27 Mar 2019 17:31:28 +0000 (13:31 -0400)]
Bug 20256: Add new methods for checking item editing permissions

Signed-off-by: Bob Bennhoff - CLiC <bbennhoff@clicweb.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20256: Refactor subs for rights to view patrons to make them generic for general use
Kyle M Hall [Wed, 27 Mar 2019 17:06:54 +0000 (13:06 -0400)]
Bug 20256: Refactor subs for rights to view patrons to make them generic for general use

Signed-off-by: Bob Bennhoff - CLiC <bbennhoff@clicweb.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20256: Add new permission to editor
Kyle M Hall [Wed, 27 Mar 2019 17:05:24 +0000 (13:05 -0400)]
Bug 20256: Add new permission to editor

Signed-off-by: Bob Bennhoff - CLiC <bbennhoff@clicweb.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20256: Update database
Kyle M Hall [Wed, 27 Mar 2019 17:03:16 +0000 (13:03 -0400)]
Bug 20256: Update database

Test Plan:
1) Apply this patch set
2) Run updatedatabase.pl
3) Create two library groups with some libraries in them,
   make sure to enable the new feature to limit editing of items
4) Test the functionality, if an item is owned by a library in
   your group, you should have full editing abilities. If an item
   is from a different group, you should only be able to make the
   same changes you would be able to if IndependentBranches were.

Signed-off-by: Bob Bennhoff - CLiC <bbennhoff@clicweb.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32633: (QA follow-up) Add handling for authorities merge
Martin Renvoize [Tue, 31 Jan 2023 14:15:53 +0000 (14:15 +0000)]
Bug 32633: (QA follow-up) Add handling for authorities merge

When you first click 'actions -> merge' from a result in the authories
search page you will see a new 'Merging with authority: ' text appear at
the top of the search results.

Prior to this patch, the text appears outside of the white page-section
and is almost un-noticable.

After this patch, we add a page-section with bg-info (blue backround)
around the merge message which makes it stand up more clearly.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32633: (QA follow-up) Move page-section nesting
Martin Renvoize [Tue, 31 Jan 2023 13:39:20 +0000 (13:39 +0000)]
Bug 32633: (QA follow-up) Move page-section nesting

This follow-up makes a small change to the page-section nesting on the
Cataloging and Authorities search results pages.  We move the 'h2'
outside of the page section but include the paging and number of results
inside with the results tables themselves.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32633: Add 'page-section' to cataloging and authority pages
Owen Leonard [Fri, 13 Jan 2023 12:12:30 +0000 (12:12 +0000)]
Bug 32633: Add 'page-section' to cataloging and authority pages

This patch adds a "page-section" container div around the main section
of cataloging and authority pages which lack it.

This patch contains indentation changes, so please ignore whitespace
when looking at the diff.

Apply the patch and view the following pages to confirm that the main
content is contained in a white box:

 - Cataloging -> Cataloging search results
 - Cataloging -> Edit items: The table of items and the item edit form
   should each be contained in a page-section.
 - Authorities -> Search results
 - Authorites -> Merge authorities: From the authorities search results
   list, click "Actions -> Merge" for one result, and then "Actions ->
   Merge" for another.
 - Click "Next" after selecting a merge reference.
   - The "Destination record" information should be contained in a
     page-section.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32239: Remove uneeded CSS from reports.css
Lucas Gass [Mon, 9 Jan 2023 18:32:39 +0000 (18:32 +0000)]
Bug 32239: Remove uneeded CSS from reports.css

To test:
1. Apply patch.
2. When adding a new SQL report, the options for adding/creating groups and sub groups should be aligned properly.
3. Turn on Mana and look at Mana Knowledge Base report search results to make sure everything is still properly aligned there.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32588: (QA follow-up) Add missing filter
Tomas Cohen Arazi [Tue, 31 Jan 2023 14:06:03 +0000 (11:06 -0300)]
Bug 32588: (QA follow-up) Add missing filter

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 31326: Koha::Biblio->get_components_query fetches too many component parts
Johanna Raisa [Tue, 9 Aug 2022 08:58:59 +0000 (11:58 +0300)]
Bug 31326: Koha::Biblio->get_components_query fetches too many component parts

This patch adds double quotes to rcn and cni when searching component parts
with get_components_query.

Test plan:
1) Apply the patch
2) prove Koha/t/db_dependent/Koha/Biblio.t

Sponsored-by: Koha-Suomi Oy
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32377: Set param skiptotals on call of GetBudgetHierarchy in acqui/histsearch.pl
Emmi Takkinen [Wed, 30 Nov 2022 10:33:19 +0000 (12:33 +0200)]
Bug 32377: Set param skiptotals on call of GetBudgetHierarchy in acqui/histsearch.pl

Calling GetBudgetHierarchy from acqui/histsearch.pl
is slow if param skiptotals is not used.

To test:
1. Open browsers Console -> Network (F12).
2. Navigate to Order search page and perform search.
=> Take a note how long it takes to load the Search results page.
3. Apply this patch.
4. Repeat step 2.
=> Page should now load faster.

Sponsored-by: Koha-Suomi Oy
Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20473: Whitespace
Nick Clemens [Fri, 16 Dec 2022 13:14:51 +0000 (13:14 +0000)]
Bug 20473: Whitespace

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 20473: Don't display 'Item information' tab when adding to basket from a file...
Nick Clemens [Fri, 16 Dec 2022 13:12:19 +0000 (13:12 +0000)]
Bug 20473: Don't display 'Item information' tab when adding to basket from a file and not creating items

This patch adds a conditional, and moves another up one level to remove the tab
when it will have no content/effect

To test:
1. Stage a MARC file from Tools > Stage MARC records for import
2. Go to Acquisitions and create a basket for a vendor
3. Add to basket from staged file
4. Note that the "item information" tab is present, if you click on it, not that it is not useful
5. Cancel adding to basket
6. Apply patch
7. Add to basket from the staged file again
8. Confirm there is no item information tab
9. Confirm orders are added on 'Save'

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
20 months agoBug 32588: Make filters on 'items with no checkouts' report translatable
Katrin Fischer [Sat, 7 Jan 2023 02:11:48 +0000 (02:11 +0000)]
Bug 32588: Make filters on 'items with no checkouts' report translatable

This makes the filters on top of the 'items with no checkouts' report
translatable. The descriptions of the filters used the wrong terms and
were also pulled from the .pl file, making them untranslatable.

To test:
* Without patch: Run the 'items with no checkouts' report with various
  settigs.
* Verify, that the display on top doesn't use standard terminology
  Doc type = item type, Branch = library
* Apply patch
* Verify display is improved and standard terminology is used

If you know how to, you can also confirm strings show up nicely in
translations:
https://wiki.koha-community.org/wiki/Translating_Koha#Updating_the_po_files_in_your_installation

Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>