]> git.koha-community.org Git - koha.git/log
koha.git
3 days agoBug 31161: Mark hidden records as deleted
David Cook [Wed, 14 Aug 2024 00:41:46 +0000 (00:41 +0000)]
Bug 31161: Mark hidden records as deleted

If a bib record is hidden by OpacHiddenItems,
mark it as deleted in the OAI-PMH, so that it's metadata
is not consumed in a new OAI-PMH harvest, and it's marked
for removal if the metadata was consumed in previous harvested.

Test plan:
0. Setup
vi /etc/koha/sites/kohadev/oai.conf
format:
  marcxml:
    metadataPrefix: marcxml
    metadataNamespace: http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim
    schema: http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd
    include_items: 1

Set sysprefs:
OAI-PMH: Enable
OAI-PMH:ConfFile: /etc/koha/sites/kohadev/oai.conf
OAI-PMH:AutoUpdateSets: Enable
OAI-PMH:AutoUpdateSetsEmbedItemData: Enabled

OpacHiddenItems:
barcode: [3999900000001]
OpacHiddenItemsHidesRecord: Hide

Adminsitration->OAI set configuration->New set
Choose anything for setSpec and setName
On new set: Actrion->define mappings
Field: 952
Subfield: p
Operator: is equal to
Value: 3999900000001

perl misc/migration_tools/build_oai_sets.pl -r -v -i

1. koha-plack --restart kohadev
2. Go to http://localhost:8080/cgi-bin/koha/oai.pl?verb=ListRecords&metadataPrefix=marcxml
3. Confirm KOHA-OAI-TEST:1 is marked as deleted and not metadata visible
4. Go to http://localhost:8080/cgi-bin/koha/oai.pl?verb=ListIdentifiers&metadataPrefix=marcxml
5. Confirm KOHA-OAI-TEST:1 is marked as deleted
6. Go to http://localhost:8080/cgi-bin/koha/oai.pl?verb=GetRecord&metadataPrefix=marcxml&identifier=KOHA-OAI-TEST:1
7. Confirm record is marked as deleted and no metadata visible
8. View Sets and confirm the record appears in the set but as deleted record
9. Change OpacHiddenItemsHidesRecord syspref to "Don't hide" and repeat above steps
10. Confirm that the record metadata is now visible and the record is not marked as deleted

Signed-off-by: Jake Deery <jake.deery@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
3 days agoBug 37524: (QA follow-up) Tidy affected block in checkouts.js
Paul Derscheid [Fri, 13 Sep 2024 15:31:02 +0000 (15:31 +0000)]
Bug 37524: (QA follow-up) Tidy affected block in checkouts.js

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
3 days agoBug 37524: Do not attempt to renew check outs if there is nothing to renew
Emmi Takkinen [Tue, 30 Jul 2024 12:43:08 +0000 (15:43 +0300)]
Bug 37524: Do not attempt to renew check outs if there is nothing to renew

If patrons loans are not renewable and one hits "Renew all"
button in patrons "Check out" page, Koha is redirected to
"Export data" tool. This happens because when there is
nothing to renew call to function renew_all produces error:
"Uncaught TypeError: renew_all(...) is undefined". This
patch prevents call to this function and adds alert to
inform user that there are no items to be renewed.

To reproduce:
1. Find patron with check outs which renewals count has hit
the maximum limit of renewals.
2. Press "Renew all" button.
=> Koha is redirected to "Export data" tool.
3. Apply this patch.
4. Try to renew check outs again.
=> Alert pop up is displayed.

Sponsored-by: Koha-Suomi Oy
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
3 days agoBug 37587: (QA follow-up) Tidy reserve/placerequest.pl
Paul Derscheid [Fri, 13 Sep 2024 15:48:34 +0000 (15:48 +0000)]
Bug 37587: (QA follow-up) Tidy reserve/placerequest.pl

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
3 days agoBug 37587: Fix priority of multiple item-level holds
Emily Lamancusa [Tue, 6 Aug 2024 20:12:51 +0000 (16:12 -0400)]
Bug 37587: Fix priority of multiple item-level holds

The rank parameter is passed per biblio record, not per item. When
placing multiple item-level holds on one bib record, only $rank[0] is
defined.

To test:
1. System preference and circulation rule setup
    i. Set the system preference DisplayMultiItemHolds to Enable
    ii. Edit the default circulation rule to allow 5 holds per record
2. Find or create a bib with 4 or more items
3. Place several bib-level holds
4. Place 4 or more item-level holds at once on that same record
    i. Search for a patron to place the holds for (not one of the
       patrons you used in step 3)
    ii. Select "Hold a specific item"
    iii. Check the checkboxes for 4 or more items
    iv. Click Place hold
--> Note that one of the new item-level holds is at the end of the list
    as it should be, but the rest are out of order
5. Cancel the item-level holds from step 4
6. Apply patch and restart_all
7. Repeat step 4
--> All the new item-level holds are now at the end of the list

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
3 days agoBug 37913: Remove more unreachable code in aqcontract.tt
Phil Ringnalda [Thu, 12 Sep 2024 22:07:50 +0000 (15:07 -0700)]
Bug 37913: Remove more unreachable code in aqcontract.tt

When you successfully delete an acquisitions contract, you are redirected to
the page with the vendor details, which shows contracts for that vendor, which
shows you that the contract you deleted was deleted.

The aqcontract.tt template has a block in [% IF ( delete_confirmed ) %] (which
is never set) that thinks it will show you a '<h1>Contract deleted</h1>' and
make you click an OK button. That block has never been shown, but the button
is in a form which POSTs without an 'op' param, which is now forbidden by the
CSRF code, and will be caught by a test once bug 37728 updates the test.

There's nothing visible to test, so the test plan just makes sure nothing
blows up and you can still delete a contract.

1. Nothing will change, so start with the patch applied
2. Acquistions - click the Search button to search for vendors
3. New -> Contract
4. Give it a name, a start date, and an end date, and Save
5. In the list of contracts for My Vendor, click the Delete button for
   the contract you created
6. In the confirmation page asking if you wanted to delete, click 'Yes,
   delete contract'
7. Note that you are at acqui/supplier.pl?booksellerid=1, the details page
   for the vendor, and your contract isn't listed at the bottom of the page,
   and especially that you weren't shown a page that just said "Contract
   deleted."

Sponsored-by: Chetco Community Public Library
Signed-off-by: Sukhmandeep Benipal <sukhmandeep.benipal@inLibro.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
3 days agoBug 37916: Convert plugin install button to form
Martin Renvoize [Fri, 13 Sep 2024 12:59:08 +0000 (13:59 +0100)]
Bug 37916: Convert plugin install button to form

This patch takes the usual approach of converting linked buttons to form
with the csrf token included.

Signed-off-by: Jesse Maseto <jesse@bywatersolutions.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37757: (follow-up) Adjust existing tests
Tomas Cohen Arazi [Fri, 13 Sep 2024 19:14:54 +0000 (16:14 -0300)]
Bug 37757: (follow-up) Adjust existing tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
6 days agoBug 37818: (follow-up) Remove failing XXX tests from Installer.t
Katrin Fischer [Fri, 13 Sep 2024 14:16:41 +0000 (14:16 +0000)]
Bug 37818: (follow-up) Remove failing XXX tests from Installer.t

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37917: Add some wait time to RecordSources_spec.ts for the intercepted request...
Tomas Cohen Arazi [Fri, 13 Sep 2024 13:49:29 +0000 (10:49 -0300)]
Bug 37917: Add some wait time to RecordSources_spec.ts for the intercepted request responses

This patch introduces the `cy.wait(500)` we use in several other Cypress
tests when an (intercepted) API request is made. This is very important
when tables are being rendered as DataTables is particularly bulky and
prone to take longer to finish loading the components if the CPU load is
a bit high.

I wasn't able to reproduce the problem very often, but you can test
yourself:

1. Run:
   $ ktd --shell
  k$ run_cypress --spec t/cypress/integration/Admin/RecordSources_spec.ts
2. Run it many times
=> FAIL: At some point it fails, you can overload your computer to try
3. Apply the patch
4. Repeat 2
=> SUCCESS: No failures :-D
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 36595: (follow-up) Conditionals and consistency
Martin Renvoize [Fri, 13 Sep 2024 13:39:32 +0000 (14:39 +0100)]
Bug 36595: (follow-up) Conditionals and consistency

Added a conditional to only display email if there's actualy a
notice_email_address present.

Updated the address used to match the address displayed.

Not sure how to resolve the translation issue.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Removed "Hold item:" from subject line as it would not translate.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 35402: Fix cypress test csrf.ts
Katrin Fischer [Fri, 13 Sep 2024 13:25:15 +0000 (13:25 +0000)]
Bug 35402: Fix cypress test csrf.ts

The tests were failing because of the class having changed from
message to alert.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37636: Remove sort of pending_checkouts by timestamp
Nick Clemens [Tue, 20 Aug 2024 13:25:26 +0000 (13:25 +0000)]
Bug 37636: Remove sort of pending_checkouts by timestamp

Renewals or automatic renewal attempts can change the timestamp of an issue and cause a sort
on this field to functionally randomize the order of checkouts returned.

Prior to bug 19935 the GetPendingCheckouts routine returned items in issuedate order.

Removing the sort on timestamp will return the previous behaviour and provide a more predictable sorting

To test:
1 - Checkout some items to a patron
2 - Print a checkout slip - items are in the order they were checked out
3 - Renew an item,print the slip again it is now at the top of the list
4 - Apply patch, restart_all
5 - Print slip again - the items are now ordered in the order they were checked out.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37636: Unit test
Nick Clemens [Thu, 22 Aug 2024 12:06:13 +0000 (12:06 +0000)]
Bug 37636: Unit test

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37797: Change cancel button to a link styled as a button
Emily Lamancusa [Fri, 30 Aug 2024 20:50:36 +0000 (16:50 -0400)]
Bug 37797: Change cancel button to a link styled as a button

On the confirmation page for deleting a budget, change "Do not delete"
from a form submission to a link (styled to look like a button) in order
to avoid errors from POSTing with no op.

To test:
1. Go to Acquisitions > Budgets
2. Create a test budget
3. Attempt to delete the test budget
4. On the confirmation page, click "No, don't delete"
--> An error appears saying that the form was POSTed with no op!
5. Apply patch
6. Repeat steps 3-4
--> You are linked back to the Budgets page. The budget was not deleted.

Signed-off-by: Chloe Zermatten <chloe.zermatten@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37757: DBRev 24.06.00.028
Katrin Fischer [Fri, 13 Sep 2024 12:31:04 +0000 (12:31 +0000)]
Bug 37757: DBRev 24.06.00.028

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37757: (follow-up) Warn on bad values and survive
Tomas Cohen Arazi [Wed, 28 Aug 2024 18:43:53 +0000 (15:43 -0300)]
Bug 37757: (follow-up) Warn on bad values and survive

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37757: Make notice_email_address() handle EmailFieldPrimary values more robustly
Tomas Cohen Arazi [Wed, 28 Aug 2024 18:01:37 +0000 (15:01 -0300)]
Bug 37757: Make notice_email_address() handle EmailFieldPrimary values more robustly

This patchset makes:

* The EmailFieldPrimary value 'OFF' be replaced by an empty string
* Koha::Patron->notice_email_address() handle the empty case more
  gracefully

To test:
1. On main, manually set the EmailFieldPrimary syspref to empty
   $ ktd --shell
  k$ koha-mysql kohadev
   > UPDATE systempreferences SET value='' WHERE variable='EmailFieldPrimary';
2. Enable `AutoEmailNewUser`
3. Create a new user
=> FAIL: Koha explodes like:
```
The method Koha::Patron-> is not covered by tests!

Trace begun at /kohadevbox/koha/Koha/Object.pm line 992
Koha::Object::AUTOLOAD('Koha::Patron=HASH(0xaaaae37ac550)') called at /kohadevbox/koha/Koha/Patron.pm line 1662
Koha::Patron::notice_email_address('Koha::Patron=HASH(0xaaaae37ac550)') called at /kohadevbox/koha/members/memberentry.pl line 448
...

4. Apply this patches
5. Run:
  k$ updatedatabase
=> SUCCESS: Update succeeds
6. Restart all and retry creating a patron
=> SUCCESS: It worked!
7. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37757: Update EmailFieldPrimary value
Tomas Cohen Arazi [Wed, 28 Aug 2024 17:57:18 +0000 (14:57 -0300)]
Bug 37757: Update EmailFieldPrimary value

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37757: Unit tests
Tomas Cohen Arazi [Wed, 28 Aug 2024 17:56:44 +0000 (14:56 -0300)]
Bug 37757: Unit tests

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoUpdate contributor list with some new contributors
Katrin Fischer [Fri, 13 Sep 2024 12:11:48 +0000 (12:11 +0000)]
Update contributor list with some new contributors

Final stats update will be done before 24.11 release.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37873: Unable to delete user from routing list or preview/print routing list...
CJ Lynce [Tue, 10 Sep 2024 18:12:04 +0000 (18:12 +0000)]
Bug 37873: Unable to delete user from routing list or preview/print routing list slip

This patch restores the ability to delete a recipient from a serials routing list.
It also fixes the slip preview when using the "Save and preview slip", and removes
the koha staff intranet head from the slip when using 'Print list' from the
Serial collection information screen.

To test:
1) Login to the staff client.
2) Open the Serials module.
3) + New subscription to add a new serial.
4) Create a new subscription.
a) Search for a record (I searched for 'dog') and chose that record.
b) Under 'When receiving this serial', select 'Create an item record'
c) Under the 'Item type' dropdown, select anything.
d) Click Next -> (and confirm the popup).
e) Select any 'First issue date'.
f) Select any 'Frequency'.
g) Enter a number larger than 5 in the 'Subscription length'.
h) Select any 'Subscription start date'.
i) Select your favorite numbering pattern.
j) Verify your prediction pattern using "Test prediction pattern".
k) Click "Save subscription".
5) On the 'Subscription details' screen, click "Receive".
6) Under the first volume, click "Add item" then "Save".
7) Repeat step 6 to receive one more issue.
8) On the 'Serial collection information' page click "+ Create routing list"
9) Click "+ Add recipients".
10) Search for and add several recipients.
11) Click "Close" to exit the 'Add recipients' page.
12) Click "Delete" next to any recipient.
*Note that the recipient is not deleted.
13) Click "Save" on the 'Modify routing list for ...' page.
14) Click "Save and preview routing slip" button.
*Note you are redirected to the Subscription details page, but no routing
slip preview appears.
15) Click "Serial collection" from the left-side menu.
16) Click "Print list" on either of the issues you previously received.
*Note the routing slip includes the staff intranet header, menu, etc.

17) Apply patch.
18) Return to the 'Serial collection information' screen for your subscription.
19) Click "Edit routing list".
20) Repeat steps 12-16 and verify the issues are fixed.
-"Delete" button works to remove a recipient from a list.
-"Save and preview routing list" button pops-up a preview before redirecting.
-"Print list" pops-up a vanilla routing list to print.

Sponsored-by: Westlake Porter Public Library
Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 27490: DBRev 24.06.00.027
Katrin Fischer [Fri, 13 Sep 2024 11:48:42 +0000 (11:48 +0000)]
Bug 27490: DBRev 24.06.00.027

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 27490: (follow-up) Fix custom installer files
Nicolas Hunstein [Tue, 3 Sep 2024 09:34:57 +0000 (09:34 +0000)]
Bug 27490: (follow-up) Fix custom installer files

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 27490: More instances of changing language syspref to StaffInterfaceLanguages
Aleisha Amohia [Mon, 29 Jul 2024 02:26:11 +0000 (02:26 +0000)]
Bug 27490: More instances of changing language syspref to StaffInterfaceLanguages

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nicolas Hunstein <nicolas.hunstein@bsz-bw.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 27490: Update systempreference 'language' to 'StaffInterfaceLanguages'
Doris Tam [Thu, 25 Jul 2024 23:48:30 +0000 (23:48 +0000)]
Bug 27490: Update systempreference 'language' to 'StaffInterfaceLanguages'

Test plan

1. Go to the staff client
2. Go to administration
3. Search systempreferences for 'StaffInterfaceLanguages'
4. Ensure there is a systempreference variable matching 'StaffInterfaceLanguages'

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nicolas Hunstein <nicolas.hunstein@bsz-bw.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37881: (QA follow-up) Correction to TT filters used
Martin Renvoize [Fri, 13 Sep 2024 10:52:46 +0000 (11:52 +0100)]
Bug 37881: (QA follow-up) Correction to TT filters used

We were missing a couple of TT filters and we were using a `$raw` where it
was more appropriate to use `html`.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37881: Fix the delete button for guarantor
Baptiste Wojtkowski [Wed, 11 Sep 2024 11:22:34 +0000 (13:22 +0200)]
Bug 37881: Fix the delete button for guarantor

This patch fixes issue introduced by BZ32530

Test Plan (on main):
1 - Edit a patron
2 - Do not change anything and submit -> you get an error
3 - Apply both patches
4 - Repeat 1&2 -> everything works fine
5 - Try and delete the guarantor -> it will be deleted

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37881: Editing patron with guarantor won't crash
Baptiste Wojtkowski [Wed, 11 Sep 2024 09:54:38 +0000 (11:54 +0200)]
Bug 37881: Editing patron with guarantor won't crash

This patch fixes issue introduced by BZ32530

Test Plan (on main):
1 - Edit a patron
2 - Do not change anything and submit -> you get an error
3 - Apply both patches
4 - Repeat 1&2 -> everything works fine
5 - Try and delete the guarantor -> it will be deleted

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 34805: (QA follow-up) Tidy acqui/acqui-home.pl
Paul Derscheid [Wed, 21 Aug 2024 09:47:15 +0000 (09:47 +0000)]
Bug 34805: (QA follow-up) Tidy acqui/acqui-home.pl

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 34805: Add order search form to acq start page
Owen Leonard [Fri, 14 Jun 2024 12:36:12 +0000 (12:36 +0000)]
Bug 34805: Add order search form to acq start page

This patch adds the order search form to the Acquisitions home page.
I've modified acqui-home.pl so that it will pass the same default date
limiters as histsearch.pl.

To test, apply the patch and go to Acquisitions.

Test the order search form to confirm that it works as expected. Any
search from this version of the form should return identical results to
seraches performed from the "Advanced search" link in the sidebar.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37846: Fix serial prediction pattern layout
Owen Leonard [Fri, 6 Sep 2024 12:13:37 +0000 (12:13 +0000)]
Bug 37846: Fix serial prediction pattern layout

This patch corrects the class which is added to the serial prediction
pattern in order for it to display as a second column in the
subscription edit page. "col-xs-*" classes no longer exist in Bootstrap
5.

To test, apply the patch and go to Serials.

1. Click "New subscription"
2. Enter a record number in the form (e.g. 55)
3. Click "Next" (and confirm there is no vendor)
4. Enter values for
   - First issue publication date
   - Frequency
   - Subscription length
   - Subscription start date
   - Numbering pattern
   - Numbering "Begins with"
5. Click "Test prediction pattern"
   - The prediction pattern panel should appear as a second column on
     the page.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 36337: Hiding lists with OpacPublic breaks styling for language list
Owen Leonard [Wed, 26 Jun 2024 11:53:21 +0000 (11:53 +0000)]
Bug 36337: Hiding lists with OpacPublic breaks styling for language list

This patch adjusts the CSS of elements in the OPAC header so that menu
items are correctly aligned with various combinations of the OpacPublic
and OpacLangSelectorMode system preferences.

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

- View the header menu in the OPAC with these combinations of settings:
  - OpacPublic = On; OpacLangSelectorMode = Top;
  - OpacPublic = On; OpacLangSelectorMode = Footer;
  - OpacPublic = Off; OpacLangSelectorMode = Top;
  - OpacPublic = Off; OpacLangSelectorMode = Footer;
- With each configuration, test that the elements in the header (Logo,
  Cart/List menu, Language selctor, and user menu items) align
  correctly. The Cart/List menu items should always align to the left,
  the Language selector and user menu should aways align to the right.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37801: Search results with limits create URLs that cause XML errors in RSS and...
Phil Ringnalda [Thu, 5 Sep 2024 03:38:27 +0000 (20:38 -0700)]
Bug 37801: Search results with limits create URLs that cause XML errors in RSS and Atom output

The template for RSS and Atom feeds of search results (curiously named
opac-opensearch.tt) is careful to escape ampersands in the query_cgi param
while adding it to URLs, but doesn't escape the limit_cgi param at all. It
should.

Two drive-by fixes for Atom: because the <title> when your search has a limit
includes &nbsp;, which isn't an XML character entity, you couldn't get as far
as the error from the <link> URL, and as long as I was going to have blame for
the line, I couldn't bear to leave the stray undefined SEARCH_RESULT. in the
(hard-coded and bogus) <link rel="last">.

Test plan:
1. In the OPAC, Advanced search - check the boxes to limit by item type Books
   and Mixed Materials and search for the keyword Perl
2. At the top of the search results, click the orange RSS icon
3. That gives you an ugly "not well-formed" error, so in the URL for the page
   change the final "format=rss" to "format=atom"
4. That gives you an ugly "undefined entity" error, so apply the patch
5. Reload the page with the Atom feed, it should change from an error page
   to a garbled display of the feed. Click Back to go back to the RSS feed
   and reload it if it's still cached on the error page. That should give
   a pretty-printed display of the RSS feed without parsing errors

Sponsored-by: Chetco Community Public Library
Signed-off-by: Sukhmandeep Benipal <sukhmandeep.benipal@inLibro.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37213: (follow-up) Remove stray closing em tag, make title logic consistent with...
Owen Leonard [Fri, 28 Jun 2024 11:21:13 +0000 (11:21 +0000)]
Bug 37213: (follow-up) Remove stray closing em tag, make title logic consistent with breadcrumbs

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37213: Improved breadcrumbs in rotating collections
Eric Garcia [Thu, 27 Jun 2024 18:06:47 +0000 (18:06 +0000)]
Bug 37213: Improved breadcrumbs in rotating collections

To test:
1. Tools -> Rotating collections -> New collections
2. Add a title and description
3. After adding the new collection notice the breadcrumb isn't right
4. Apply patch
5. Repeat steps 1 and 2
6. After adding the new collection notice the breadcrumb is improved.

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37763: (QA follow-up): Tidy
Julian Maurice [Fri, 6 Sep 2024 09:02:30 +0000 (11:02 +0200)]
Bug 37763: (QA follow-up): Tidy

Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37763: Do not show SQL report editor after 'Update and run'
CJ Lynce [Wed, 28 Aug 2024 18:45:24 +0000 (18:45 +0000)]
Bug 37763: Do not show SQL report editor after 'Update and run'

This patch corrects an error where the SQL editor screen would appear
after the report results when using 'Update and run SQL' when editing
reports.
This also corrects a related issue where the saved_sql.id of the report
would be repeatedly appended to SQL code when using 'Update and run
SQL'.

To test:
1) Login to staff client
2) Navigate to Reports -> Create from SQL
3) Create a short report (SELECT * FROM items), name it and SAVE it.
4) On the resulting "Edit SQL report' page, click 'Update and run SQL'
5) See the report runs, but at the 'Edit SQL report' screen shows at the
   bottom.
6) Apply Patch
7) Return to Reports -> Saved Reports and Edit the report you created.
8) On "Edit SQL report' page, click 'Update and run SQL'
9) Verify that the report runs, but the 'Edit SQL report' section is
   gone.

Sponsored-by: Westlake Porter Public Library
Signed-off-by: Sam Sowanick <sam.sowanick@corvallisoregon.gov>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37818: Remove 'XXX' from the installer code
Jonathan Druart [Tue, 3 Sep 2024 09:43:49 +0000 (11:43 +0200)]
Bug 37818: Remove 'XXX' from the installer code

We were adding "XXX" that was replaced with "999" before the move to the atomic update files (bug 13068).

We do no longer need this code.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37823: Remove unreachable code in vendor contract page
Emily Lamancusa [Tue, 3 Sep 2024 15:15:16 +0000 (11:15 -0400)]
Bug 37823: Remove unreachable code in vendor contract page

The vendor contract management page has a few sections of code that are
meant to display a minimal confirmation message ("Data recorded") after
saving a new or edited vendor contract.

However, aqcontract.pl redirects back to the vendor details page after
saving, so this code is never reached and should be removed.

Test plan:
1. Apply patch
2. Go to the Acquisitions module and find a vendor
3. Click + New > Contract
4. Fill in the information and click Save
5. Click the "Contracts" link in the navigation menu on the left
--> Confirm that the contract was saved correctly
6. Click the Edit button and make changes to all fields
7. Save the information and click "Contracts" again
--> Confirm that the new information saved correctly

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37732: (follow-up) Fix some missed instances
Owen Leonard [Tue, 3 Sep 2024 11:26:38 +0000 (11:26 +0000)]
Bug 37732: (follow-up) Fix some missed instances

This patch fixes a few templates which I had missed, including some
which simply had the wrong classes (instead of getting the wrong class
from the perl script).

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37732: Fix 'Invalid PIN code' styling for 2FA
Jonathan Druart [Tue, 3 Sep 2024 10:02:07 +0000 (12:02 +0200)]
Bug 37732: Fix 'Invalid PIN code' styling for 2FA

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37732: Fix administration_tasks.t
Jonathan Druart [Tue, 3 Sep 2024 10:01:49 +0000 (12:01 +0200)]
Bug 37732: Fix administration_tasks.t

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37732: Update templates to use Bootstrap styles when alert class comes from the...
Owen Leonard [Fri, 30 Aug 2024 11:46:34 +0000 (11:46 +0000)]
Bug 37732: Update templates to use Bootstrap styles when alert class comes from the perl script

Many pages can have alerts that get their style from a variable passed
by the script, e.g.:

push @messages, { type => 'message', code => 'success_on_update' };

Rather than change these to match Bootstrap 5 styles, I propose we add a
copy of the existing Bootstrap style using the existing vocabulary:

message -> info
alert  -> warning
error -> danger

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

- Clear your browser cache if necessary.
- Navigate to pages which have been updated by this patch. Many pages
  will implement this kind of alert after saving an edit, especially
  administration pages, e.g.

  Administration -> Libraries -> Edit library -> Save.

- You can test the various alert classes by adding this HTML to
  IntranetMainUserBlock and OpacMainUserBlock and viewing the staff
  interface and OPAC main pages.:

<div class="alert alert-danger">A standard Bootstrap danger alert with
  <a href="#" class="alert-link">an example link</a>.</div>
<div class="alert alert-warning">A standard Bootstrap warning alert with
  <a href="#" class="alert-link">an example link</a>.</div>
<div class="alert alert-info">A standard Bootstrap info alert with
  <a href="#" class="alert-link">an example link</a>.</div>
<div class="alert alert-error">A Koha error alert with
  <a href="#" class="alert-link">an example link</a>.</div>
<div class="alert alert-alert">A Koha alert alert with
  <a href="#" class="alert-link">an example link</a>.</div>
<div class="alert alert-message">A Koha info alert with
  <a href="#" class="alert-link">an example link</a>.</div>

Sponsored-by: Athens County Public Libraries
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37841: Switch OPAC language menu alignment in header and footer
Owen Leonard [Wed, 11 Sep 2024 16:01:49 +0000 (16:01 +0000)]
Bug 37841: Switch OPAC language menu alignment in header and footer

The OPAC language menu is now generated by the same include file in both
the header and the footer. We have a switch for the menu's direction
based on this context, but we also need a switch for alignment: The menu
should extend left into the page from the header, and right into the
page from the footer.

To test you should have at least one additional language installed and
enabled. To reproduce the bug I recomment en-GB because the language
description is long enough to trigger the misalignment.

- Apply the patch and set the 'opaclanguagesdisplay' system preference
  to "Allow" and the 'OpacLangSelectorMode' preference to "both top and
  footer".
- Go to the OPAC and test the language selector menus in the header and
  footer.
  - The expanded menu in the header should extend to the left of the
    "Languages" menu trigger.
  - The expanded menu in the footer should extend to the right of the
    "Languages" menu trigger.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37833: Incorrect logic controlling display of OPAC language selection menus
Owen Leonard [Wed, 4 Sep 2024 16:03:07 +0000 (16:03 +0000)]
Bug 37833: Incorrect logic controlling display of OPAC language selection menus

This patch corrects the logic around how the OPAC language menus are
displayed. Because the footer and header lanugage menus have been
combined into one, the logic for whether the menu should appear has to
live outside the include. The patch also makes corrections to ensure
that the footer menu appears even if the footer language menu is hidden.

NOTE: This patch contains whitespace changes, so please view the diff
accordingly.

To test you should have at least one additional language installed.

- Apply the patch and make sure the OPACLanguages system preference has
  more than one language checked.
- Set opaclanguagesdisplay to "Allow."
- In the OPAC, test that the various settings of the
  OpacLangSelectorMode preference work correctly (only top, only footer,
  both top and footer).
- Test with OPACReportProblem on and off, and CookieConsent on and off.
- Test with OPACReportProblem or CookieConsent enabled and
  opaclanguagesdisplay disabled.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37779: Fix forms that POST without an op in tag moderation
Phil Ringnalda [Fri, 30 Aug 2024 04:10:13 +0000 (21:10 -0700)]
Bug 37779: Fix forms that POST without an op in tag moderation

We intend not to have forms with method="post" without an op variable (so we
can check that the op starts with "cud-" as part of the CSRF protection), but
because of bug 37728 some were missed.

There are two in tags/review.tt: the filters for term, status, reviewer, and
dates, which are better as a GET since you can then bookmark and link to a
particular set of filters, and the no-JavaScript fallback for checking whether
a term has been approved or rejected, which currently doesn't work at all,
but with a working op param then works just fine as a GET.

Test plan:

If you have to use Chrome, you're on your own for the disabling JavaScript
and getting rid of the body {display: none !important} style rule, my plan
uses Firefox's devtools to do it

 1. Without the patch, Tools - Tags - change the filter from the default
    status "pending" to "all", Apply, and bookmark the page
 2. Open your bookmark, note that it's status "pending"
 3. You can't test the no-JS fallback for term testing since it doesn't
    work, so apply patch and restart_all
 4. Tools - Tags - change the filter from the default status "pending"
    to "all", Apply, and bookmark the page
 5. Open your bookmark, note that it's status "all"
 6. You need a couple of tags to test the Test feature, so open the OPAC,
    log in, search for any record and add the tags approveme, rejectme
 7. Back in Tools - Tags, click the Reject button to reject rejectme
 8. In the Check lists input, test that approveme shows "approveme is
    permitted!" and rejectme shows "rejectme is prohibited!"
 8. Now to disable JavaScript, open Firefox's More tools - Web Developer
    Tools. You're going to need the Style Editor, so if it's not visible
    you'll want to enable it in Settings in the next step
 9. Top bar, right side, there's a three-dots menu, with an option for
    Settings. In Advanced settings, click the checkbox for Disable JavaScript
    (which as hovering the * says, is only for that tab and only until you
    close the tab or the toolbox).
10. Checking Disable JavaScript turned your page to blank white, so go to
    the Style Editor, where the first thing, already selected, is an inline
    style sheet with the rule "body {display: none !important}" - select all
    the text of the rule and delete it, which you'll have to do on every
    page load
11. In the Check lists input, test that approveme still shows "approveme
    is permitted!" (after you delete the display: none !important rule, and
    with a rather annoying message about "Tested 1 Term(s)." replacing the
    list of terms).

Sponsored-by: Chetco Community Public Library
Signed-off-by: Sukhmandeep Benipal <sukhmandeep.benipal@inLibro.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37827: Switch OPAC download list form from POST to GET
Phil Ringnalda [Wed, 4 Sep 2024 04:46:11 +0000 (21:46 -0700)]
Bug 37827: Switch OPAC download list form from POST to GET

The hidden form that the OPAC uses for downloading a list has no need to be
a POST, which is good because it can't be one without having an op param
that starts with "cud-" which it doesn't have.

Test plan:
1. Nothing visible will change, so start with the patch applied
2. Log in to the OPAC, then do a search for something like Perl which will
   return a couple of results. Select two, With selected titles: Add to
   list - New list - give it a name and Save
3. Lists - choose the one you just created
4. Download - ISBD
5. Verify that the page you were on didn't change, that a file was downloaded,
   and that the file contains the two titles in your list

Sponsored-by: Chetco Community Public Library
Signed-off-by: Chloe Zermatten <chloe.zermatten@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37853: Do not POST a form at the end of changing the password (OPAC)
Phil Ringnalda [Thu, 5 Sep 2024 22:13:32 +0000 (15:13 -0700)]
Bug 37853: Do not POST a form at the end of changing the password (OPAC)

Rather than having a form that does a POST (without an op, which isn't proper),
the final step in changing your password in the OPAC should just be a link.

Test plan:
1. Without the patch applied, log in to the OPAC as a user that you don't
   mind changing the password for
2. Welcome, {username} - Your account - Change password
3. Type the old password, and a new password twice, click Change password
4. Below the success message is a green button with white text, Return to
   my account - click it
5. Apply patch
6. Change password, type the (new) old password, and a (newer) new password
   twice, click Change password
7. Below the success message is what looks like a green button with white
   text, Return to my account
8. Hover the button, check your browser status bar for a URL showing you
   that it's now a link. Click it to be sure it works.

Sponsored-by: Chetco Community Public Library
Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Amended-by: Jonathan Druart
Edited commit message

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37859: Fix style of tabs on comment review page
Owen Leonard [Mon, 9 Sep 2024 11:45:17 +0000 (11:45 +0000)]
Bug 37859: Fix style of tabs on comment review page

This patch corrects the tab markup on the comment review page. These
tabs are just links styled as tabs -- there isn't any JS tab swapping.
This kind of "static" tab markup wasn't handled by the tabs WRAPPER
work.

To test you should have some comments data in your system:

 - Go to Administration -> System preferences and enable the
   "OPACComments" preference.
 - Log in to the OPAC and search for a bibliographic record.
 - View the detail page for the record and click the "Comments" tab.
 - Click "Post your comments on this title."
 - Enter some text in the review box and submit.

In the staff interface, go to Tools -> Comments.

 - You should see two tabs: "Approved comments" and "Comments awaiting
   moderation."
 - Confirm that the tabs look correct.
 - Approve one or more comments and confirm that the tabs work correctly
   to switch views.

Signed-off-by: Sukhmandeep Benipal <sukhmandeep.benipal@inLibro.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37785: Remove dead code in tools/letter.tt that looks like a form that would...
Phil Ringnalda [Fri, 30 Aug 2024 04:17:09 +0000 (21:17 -0700)]
Bug 37785: Remove dead code in tools/letter.tt that looks like a form that would POST without an op

We intend not to have forms with method="post" without an op variable (so we
can check that the op starts with "cud-" as part of the CSRF protection), but
because of bug 37728 some were missed.

The two in tools/letter.tt are blocks of never-used code which would display
a message confirming that you saved a notice, or that a notice was deleted
after you confirmed that you wanted to delete it, but neither one has ever
been executed. Now, the names of the ops don't match, because they are
cud-add_validate etc. and would have to explicitly set a param for
add_validate, but even before the CSRF change to cud- ops, they explicitly
unset their $op so that as they say "# we return to the default screen for
the next operation". Prior to that, they just did
"print $input->redirect("letter.pl");"

No test plan is possible, since this code has never once done anything.

Sponsored-by: Chetco Community Public Library
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 35771: Unselecting titles when making multi-hold
Katariina Pohto [Tue, 21 May 2024 13:33:52 +0000 (16:33 +0300)]
Bug 35771: Unselecting titles when making multi-hold

When placing a hold on multiple biblios Place Holds page (request.pl) has checkboxes for unselecting some of the listed biblios.
Removing the checkmark does not actually unselect the biblio. Clicking the Place holds button will place a hold for all the biblios on page that can be reserved.
If unchecked biblio does not have a pickup location, it will get past form validation and cause an error.

Test plan:
1. Select several biblios and choose Place hold
2. Choose a patron
3. Select a pickup location for all biblios and unselect one of the checkmarks
4. Place holds and note that even the deselected holds was placed.
5. Repeat steps 1-2.
6. Leave pickup locations empty and try to place the holds.
7. Note alert: "Please make sure all selected titles have a pickup location set"
8. Uncheck one of the biblios and add pickup locations to the checked biblios.
9. Try to place the holds and note that there is no alert, and you get an error 500.
10. Apply patch.
11. Repeat steps 1,2,8 and place holds.
12. Note that there is no error 500, and while all the biblios are shown on page, only the checked biblios have a new hold placed on them.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37765: Fix forms that POST without an op in systemprefernces
Phil Ringnalda [Thu, 29 Aug 2024 02:57:52 +0000 (19:57 -0700)]
Bug 37765: Fix forms that POST without an op in systemprefernces

We intend not to have forms with method="post" without an op variable (so we
can check that the op starts with "cud-" as part of the CSRF protection), but
because of bug 37728 some were missed.

The two in systempreferences are the button to cancel deleting a local
preference, which can be fixed with no visible change, and the button to
return to the preferences list after being told that your requested deletion
has been done, which makes a visible change because right now, the whole page
that tells you the preference was deleted doesn't show at all.

Test plan:
 1. Without the patch, Administration - System preferences - Local use (in the
    left sidebar)
 2. New system preference - Explanation and Variable are required, so make
    them both Trash and Save
 3. In the row for your new preference, click the Delete button
 4. In the confirmation page, click the No, do not delete button
 5. You'll be taken back to the list of Local use preferences. That's the
    behavior that you want to see unchanged after the patch
 6. Click the Delete button for your preference again, but this time click
    Yes, delete
 7. You'll be taken to a blank page with no category of preferences selected
    or listed. That's the behavior that you want to see change with the patch
 8. Apply patch, restart_all
 9. Administration - System preferences - Local use - New system preference -
    'Trash' for both Explanation and Variable - Save
10. In the row for the new preference, click the Delete button
11. In the confirmation page, click No, do not delete
12. Verify that it returns you to the list of Local use preferences just like
    before
13. Click Delete again, but this time click Yes, delete
14. Now you should get a page saying "Data deleted" with a Back to system
    preferences button. Click that button, you should return to the list
    of Local use preferences, with your Trash preference gone

Sponsored-by: Chetco Community Public Library
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37820: Upgrade fails at 23.12.00.023 [Bug 36993]
Emmi Takkinen [Wed, 4 Sep 2024 05:47:20 +0000 (08:47 +0300)]
Bug 37820: Upgrade fails at 23.12.00.023 [Bug 36993]

If table aqbudgets is miissing foreign key
'aqbudgetperiods_ibfk_1' database update fails on
"Can't DROP FOREIGN KEY" error.

To test:
1. Remove changes made in bug 32132, drop foreign key
aqbudgetperiods_ibfk_1 and downgrade your database:
- ALTER TABLE aqbudgets MODIFY COLUMN `budget_period_id` INT(11) NULL;
- UPDATE aqbudgets SET budget_period_id = NULL
WHERE budget_period_id IN(SELECT budget_period_id FROM aqbudgetperiods
WHERE budget_period_description = "Budget for funds without budget");
- DELETE FROM aqbudgetperiods
WHERE budget_period_description = "Budget for funds without budget";
- ALTER TABLE aqbudgets DROP FOREIGN KEY aqbudgetperiods_ibfk_1;
- UPDATE systempreferences SET value="23.1200022" WHERE variable = "Version;
2. Upgrade your database (e.g. running installer/data/mysql/updatedatabase.pl)
=> Update fails on error "Can't DROP FOREIGN KEY `aqbudgetperiods_ibfk_1`;...".
4. Apply this patch.
5. Try to update your database again.
=> Database should now be upgraded succesfully.
=> Confirm table aqbudgets now contains 'aqbudgetperiods_ibfk_1'.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37814: Fix incorrect use of __() in .tt files
Owen Leonard [Tue, 3 Sep 2024 11:41:03 +0000 (11:41 +0000)]
Bug 37814: Fix incorrect use of __() in .tt files

This patch corrects instances of the double-underscore function being
used in .tt files where the single-underscore function should
be used instead.

To test, apply the patch and update a translation, e.g. fr-FR:

  > gulp po:update --lang fr-FR

- Open the corresponding .po file for the affected  strings, in this
  case misc/translator/po/fr-FR-staff-prog.po
- Confirm that the strings are now in the .po file for translation. You
  should find these lines:

  - koha-tmpl/intranet-tmpl/prog/en/modules/members/alert-subscriptions.tt:
    "Are you sure you want to unsubscribe %s from email alerts for %s?"
  - koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
    "Click to expand this section"

- Check fr-FR-opac-bootstrap.po for this line:
  - koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-alert-subscriptions.tt:
    "Are you sure you want to unsubscribe %s from email alerts for %s?"

Sponsored-by: Athens County Public Libraries
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37783: Fix form that looks like it would POST without an op in reserve/request.tt
Phil Ringnalda [Fri, 30 Aug 2024 01:17:12 +0000 (18:17 -0700)]
Bug 37783: Fix form that looks like it would POST without an op in reserve/request.tt

We intend not to have forms with method="post" without an op variable (so we
can check that the op starts with "cud-" as part of the CSRF protection), but
because of bug 37728 some were missed.

In reserve/request.tt the modal for cancelling a hold looks like it is a form
that will do a POST without an op input, but in fact it requires JavaScript to
work at all, and with JavaScript it clears out the div where it stashes inputs
and then inserts one with the op cud-cancel.

To persuade the test at xt/find-missing-op-in-forms.t that there is an op,
and to let a casual skimmer of the code see what that op will be, without
actually changing the behavior in any way, we can just stick the op in the
div which the JS will .empty() out before sticking the same thing back in.

Test plan:
1. Search for any record with an item, click Place hold, place two holds
2. In the row for the second hold, click the trash can icon to delete
3. Nothing changed from normallly cancelling a hold, did it? It shouldn't
   have.

Sponsored-by: Chetco Community Public Library
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37768: Fix form that POSTs without an op in itemtype administration
Phil Ringnalda [Thu, 29 Aug 2024 23:18:52 +0000 (16:18 -0700)]
Bug 37768: Fix form that POSTs without an op in itemtype administration

We intend not to have forms with method="post" without an op variable (so we
can check that the op starts with "cud-" as part of the CSRF protection), but
because of bug 37728 some were missed.

For itemtype administration, that's the "No, do not delete" cancel button
when you decide not to delete an itemtype, which doesn't need to POST
anything since it's just taking you back to the list of itemtypes. The only
visible change from switching to a GET is that the URL ends with a "?" from
a GET with no params, but someone can fix that by choosing one of our various
link-as-a-cancel-button styles and switching it to a link in a bug that
doesn't block an RM_priority bug.

Test plan:
1. You aren't going to see a visible difference, so start with the patch
   applied
2. Administration - Item types
3. You need an itemtype that isn't in use to be able to delete it - ktd
   provides you with an unused Computer Files type, so click the Delete
   button for that row
4. In the "Are you sure..." page, click No, do not delete
5. Verify that you are back at the list of itemtypes, with only the "?" at
   the end of the URL to tell you that you did a GET rather than a POST

Sponsored-by: Chetco Community Public Library
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37733: Fix header menu style for preservation link
Owen Leonard [Thu, 29 Aug 2024 15:56:29 +0000 (15:56 +0000)]
Bug 37733: Fix header menu style for preservation link

This patch adds the missing "dropdown-item" class to the link in the
header menu for the preservation module.

To test, apply the patch and enable the preservation module
(PreservationModule).

Reload the page and click "More" in the header menu. The "Preservation"
link should be styled like all the others.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
6 days agoBug 37766: Fix forms that POST without an op in MARC bibliographic frameworks
Phil Ringnalda [Thu, 29 Aug 2024 23:51:27 +0000 (16:51 -0700)]
Bug 37766: Fix forms that POST without an op in MARC bibliographic frameworks

We intend not to have forms with method="post" without an op variable
(so we can check that the op starts with "cud-" as part of the CSRF
protection), but because of bug 37728 some were missed.

In MARC bibliographic frameworks, that's the tag search form, which
should be a GET so the URL includes what you searched for and you can
bookmark it or link to the search, and the cancel "No, do not delete"
button in the page to confirm deleting a subfield, which should also be
a GET to take you back to the page where you were, which was
?tagfield=903&frameworkcode=VR when you clicked Delete.

Test plan:
 1. No visible change in behavior (only the URL), so start with the
    patch applied
 2. Administration - MARC bibliographic framework - choose one other
    than Default, since the "&framework=" of Default could be confused
    with a failure to get the code in there - Actions - MARC structure
 3. Type any three digit number higher than 009 (you want something with
    subfields) in the Search for tag input and hit Enter
 4. Verify that your URL has the searchfield and frameworkcode correct
    and that number or next highest number tag is displayed first
 5. Change the In framework select menu to another non-Default framework
    and click search, and verify that the URL change to that
    frameworkcode, and that framework is displayed
 6. Toggle the Display only used tags/subfields checkbox, search for a
    different tag, and verify that the state of the checkbox persists as
    you do more searches
 7. On any other listed tag - Actions - View subfields
 8. For any displayed subfield click Delete
 9. In the confirmation page click No, do not delete
10. Verify that the page you return to has the correct tagfield and
    frameworkcode for the tag you chose

Sponsored-by: Chetco Community Public Library
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37870: Tidy
Tomas Cohen Arazi [Wed, 11 Sep 2024 13:10:28 +0000 (10:10 -0300)]
Bug 37870: Tidy

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37870: Run tests from ClassSources.t within transactions
Jonathan Druart [Tue, 10 Sep 2024 08:40:20 +0000 (10:40 +0200)]
Bug 37870: Run tests from ClassSources.t within transactions

Signed-off-by: CJ Lynce <cj.lynce@westlakelibrary.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37870: Fix sort order of class sources
Jonathan Druart [Tue, 10 Sep 2024 08:39:13 +0000 (10:39 +0200)]
Bug 37870: Fix sort order of class sources

There are several things going on here.
The tests are failing randomly when some additional class sources are in the
DB. This should never happen on Jenkins, but it happened, see the third
patch of this patch set (spoiler: tests not run within a txn)

There were also a sorting problem: by default sort will show
uppercases first:
  A, B, C, a, b, c
However we want:
  a, A, b, B, c, C
which is what fc does (https://perldoc.perl.org/functions/fc)

Test plan:
0. Checkout the main branch, without patches from this patchset.
1. Run t/db_dependent/ClassSources.t several times
=> Notice that new entries in the DB table 'class_sources' are created
2. Run t/db_dependent/Koha/UI/Form/Builder/Biblio.t and
t/db_dependent/Koha/UI/Form/Builder/Item.t
=> They fail (if not, run t/db_dependent/ClassSources.t again)
3. Apply the patches
4. Run t/db_dependent/ClassSources.t
=> No more additional entries in DB, tests are correctly run within
transactions
5. Run t/db_dependent/Koha/UI/Form/Builder/Biblio.t and
   t/db_dependent/Koha/UI/Form/Builder/Item.t several times
=> They always pass

Note that the sort should actually be done on the description, not the
code. But that's for another bug...

Signed-off-by: CJ Lynce <cj.lynce@westlakelibrary.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
7 days agoBug 37870: Remove warning if biblionumber is not passed
Jonathan Druart [Tue, 10 Sep 2024 07:57:30 +0000 (09:57 +0200)]
Bug 37870: Remove warning if biblionumber is not passed

Not directly related to the failure, only a bit of cleaning before
starting.

Signed-off-by: CJ Lynce <cj.lynce@westlakelibrary.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 37513: Fix and add more Cypress tests
Tomas Cohen Arazi [Mon, 9 Sep 2024 14:11:39 +0000 (11:11 -0300)]
Bug 37513: Fix and add more Cypress tests

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
10 days agoBug 35402: Fix cypress tests
Jonathan Druart [Mon, 9 Sep 2024 08:20:36 +0000 (10:20 +0200)]
Bug 35402: Fix cypress tests

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 35402: Fix regressions.t
Jonathan Druart [Tue, 3 Sep 2024 09:03:17 +0000 (11:03 +0200)]
Bug 35402: Fix regressions.t

The audio alert feature is not correctly designed and is problematic.
It looks at the class name in the DOM, not when the element with this class name
will be displayed to the end user

So it's not possible to make it work for modals for instance, or if an element
is built in JS then displayed

This patch remove the modal code from the code, if there are no waiting
holds. It is the behaviour that existed prior to the Bootstrap update.
However it is kind of random behaviour, the song that is played when the
librarian open the circ page is different if the user has waiting holds or not.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 35838: Fix addition of new slots
Jonathan Druart [Wed, 4 Sep 2024 12:50:47 +0000 (14:50 +0200)]
Bug 35838: Fix addition of new slots

The "Add" button didn't add new slots.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 34440: bookings_lead_period and bookings_trail_period cant be set at categorycode...
Pedro Amorim [Mon, 2 Sep 2024 16:24:56 +0000 (16:24 +0000)]
Bug 34440: bookings_lead_period and bookings_trail_period cant be set at categorycode level

Follow Joubu's test plan. It should no longer fail.

Error from eval Koha::CirculationRules->set_rules($params) at onboarding.pl was:
set_rule cannot set 'bookings_trail_period' for a 'categorycode'! at /kohadevbox/koha/installer/onboarding.pl line 301.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
2 weeks agoRevert "Bug 37493: [DONT PUSH] Test only - Force test fail"
Katrin Fischer [Mon, 2 Sep 2024 15:21:42 +0000 (15:21 +0000)]
Revert "Bug 37493: [DONT PUSH] Test only - Force test fail"

This reverts commit 0d69fc60904ec6ad95863977d8cdec35e29047bf.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37794: Fix form that POSTs without an op in Holds to pull
Phil Ringnalda [Fri, 30 Aug 2024 17:04:12 +0000 (10:04 -0700)]
Bug 37794: Fix form that POSTs without an op in Holds to pull

We intend not to have forms with method="post" without an op variable (so we
can check that the op starts with "cud-" as part of the CSRF protection), but
because of bug 37728 some were missed.

In Holds to pull that's the form which lets you change from the default
starting and ending date. Switching that to a GET at least lets you refresh
the page without getting a browser warning about resending a POST and maybe
having your credit card double-charged.

Test plan:
1. Without the patch, Circulation - Holds to pull - change the start date to
   something earlier and click Submit
2. Refresh the page, get a warning about resubmitting data
3. Apply patch, Circulation - Holds to pull - change the start date to
   something earlier and click Submit
4. Refresh the page, no warning

Sponsored-by: Chetco Community Public Library
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37745: (follow-up) Remove "btn-default" from two controls.
Owen Leonard [Thu, 29 Aug 2024 11:31:15 +0000 (11:31 +0000)]
Bug 37745: (follow-up) Remove "btn-default" from two controls.

If we use "btn-link" we don't need "btn-default".

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37745: Remove more duplicated class attributes
Jonathan Druart [Thu, 29 Aug 2024 10:41:27 +0000 (12:41 +0200)]
Bug 37745: Remove more duplicated class attributes

Found using `egrep 'class=[^>]+class=' **/*.tt **/*.inc`

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37745: Fix change framework
Jonathan Druart [Thu, 29 Aug 2024 10:20:36 +0000 (12:20 +0200)]
Bug 37745: Fix change framework

Same problem as the previous patch when we try to change the bib
framework while editing a bib record

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37745: (bug 35402 follow-up) Fix "Rows per page" dropdown items
Jonathan Druart [Tue, 27 Aug 2024 10:53:49 +0000 (12:53 +0200)]
Bug 37745: (bug 35402 follow-up) Fix "Rows per page" dropdown items

There were 2 class attributes.

Test plan:
Create a new report and run it
Use the "Rows per page" dropdown to select another value
=> Without this patch nothing happens
=> With this patch applied the page is reloaded and the correct number
of rows is displayed

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 33907: Improve translation of title tags: OPAC part 1
Owen Leonard [Mon, 18 Sep 2023 14:09:48 +0000 (14:09 +0000)]
Bug 33907: Improve translation of title tags: OPAC part 1

This patch updates a batch of OPAC templates so that title tags can
be more easily translated. Some templates have been updated for
consistency as well: Harmonizing page title, breaddrumb navigation, and
page headers.

To test, apply the patch and confirm that the following pages have
correct title tags:

- Log in to the OPAC by navigating directly to a user page like
    /cgi-bin/koha/opac-user.pl
- From your user summary page, click "Charges."
- Check the advanced search page.
- Search for a bibliographic record and view the details, and then click
  "MARC view" and "ISBD view."
- From this page click "Save to your lists" and check the title in the
  popup window."
- Still on a detail page, click "Add to your cart." Open the cart and
  check that page.
- Go to authority search (must have OpacAuthorities enabled).
  - Perform an authority search which will return results.
  - View the detail page for one of the results, and check the MARC view
    as well.
- With UseCourseReserves enabled, view the course reserves page, then
  the course reserve detail page.
- Search for a subscription which has patron notification enabled.
  - View the detail page, then open the "Subscriptions" tab. Click "More
    details."
    - On this page you should see a "Subscribe to email notification"
      button. Click it to open the subscription page.
- Check both /cgi-bin/koha/opac-browse.pl and
  /cgi-bin/koha/opac-browser.pl. Whether or not the features are enabled
  you should be able to check the title.
- Check /cgi-bin/koha/ilsdi.pl as well as one or more views linked to on
  that page.
- Navigate to a page in the OPAC which doesn't exist to test the error
  page template.
- Go to Administration -> System preferences and enable the
  OpacMaintenance preference.
  - Go to the OPAC and check the system maintenance page.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37046: Use template wrapper for OPAC curbside pickup tabs
Owen Leonard [Thu, 6 Jun 2024 16:17:36 +0000 (16:17 +0000)]
Bug 37046: Use template wrapper for OPAC curbside pickup tabs

This patch updates the OPAC curbside pickups template to use WRAPPERs
for the Bootstrap tabs markup.

To test, apply the patch and enable the "CurbsidePickup" system
preference if necessary.

- Log in to the OPAC and click the "Curbside pickups" tab in the sidebar
  of the user summary page.
  - With no curbside pickup policy defined, you shoul see a single tab,
    "Your pickups" and the message "No curbside pickups."
- In the staff interface go to Administration -> Curbside pickup.
  - Configure curbside pickups for at least one branch.
- Return to the OPAC and refresh the curbside pickups page.
  - You should now see a "Schedule a pickup" tab along with the "Your
    pickups" tab, and it should be active by default.
  - Schedule a pickup.
    - When the page refreshes, the "Your pickups" tab should now be
      active by default.

Sponsored-By: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37033: Plugin intranet_js won't load in Cart popup (intranet-bottom.inc missing)
Lari Strand [Wed, 5 Jun 2024 07:10:02 +0000 (10:10 +0300)]
Bug 37033: Plugin intranet_js won't load in Cart popup (intranet-bottom.inc missing)

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 34325: Rename "Barcode" to "Item barcode" on manual invoice and credit forms
David Nind [Mon, 8 Jul 2024 02:36:24 +0000 (02:36 +0000)]
Bug 34325: Rename "Barcode" to "Item barcode" on manual invoice and credit forms

The forms for adding a manual invoice and credit for patrons (in
the accounting section) have a field for entering a barcode. This
can cause confusion, as it is not clear if it is for an item
barcode or the patron card number.

This patch changes the form labels and error message for the
manual invoice and credit forms to clarify that this is for an
item barcode. Related table column headings are left as "Barcode".

Test plan:
1. Go to a patron's record: Patrons > search for a patron >
   select a patron.
2. Go to Accounting > Create manual invoice.
3. Note that there is a label "Barcode:"
4. Enter details for a manual invoice and 'Save':
   - Type: Manual fee
   - Barcode: an item barcode, for example 39999000011418
   - Amount: 15
   ==> Result: Manual invoice saved
5. Repeat step 4, but enter a patron card number for the barcode.
   For example: 23529000651225.
   ==> Result: You get an error message
               "Error: Invalid barcode entered, please try again".
6. Enter details for a manual credit and 'Save':
   - Credit type: Credit
   - Barcode: an item barcode, for example 39999000011418
   - Amount: 5
   ==> Result: Manual credit saved.
7. Check the tables listing transactions - note that the column
   heading is "Barcode". (Tables are Transactions, Make a payment,
   and Transactions > Details (under the Actions column).
8. Apply the patch.
9. Repeat steps 4 to 7. Note that:
   - The label is now "Item barcode:" for the manual invoice and
     manual credit forms.
   - The error message in step 5 is now "Error: Invalid item
     barcode entered, please try again".
   - For the tables in step 8, the column headings remain as
     "Barcode" - there is generally enough context that it doesn't
     need to be changed.
10. Sign off D:

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 32218: Update string grammar in identity-providers.tt
Jennifer Sutton [Thu, 25 Jul 2024 22:22:06 +0000 (22:22 +0000)]
Bug 32218: Update string grammar in identity-providers.tt

Adiministration > Identity Providers > New identity provider under allow
OPAC the language string was updated.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37491: Remove duplicate asset import
Matt Blenkinsop [Fri, 26 Jul 2024 11:12:16 +0000 (11:12 +0000)]
Bug 37491: Remove duplicate asset import

This patch removes a duplicated asset import from import_from_kbart_file.inc

Test plan:
1) Apply patch and look at import_from_kbart_file.inc to observe that where previously there were two uses of "[% Asset.js("js/job_progress.js") | $raw %]" and now there is just one

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37436: Move EmailPatronWhenHoldIsPlaced to Holds policy sysprefs
Caroline Cyr La Rose [Tue, 23 Jul 2024 16:07:18 +0000 (12:07 -0400)]
Bug 37436: Move EmailPatronWhenHoldIsPlaced to Holds policy sysprefs

This patch moves the EmailPatronWhenHoldIsPlaced system preference
from Circulation > Patron restrictions to Circulation > Holds policy.

To test:
1. Apply patch
2. Go to Administration > System preferences > Circulation > Holds
   policy
   --> EmailPatronWhenHoldIsPlaced should be right after
       emailLibrarianWhenHoldIsPlaced

Signed-off-by: hebah <hebah@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 34183: Remove MARC format hint from OPACResultsLibrary system preference description
Katrina Bassett [Thu, 25 Jul 2024 23:46:37 +0000 (23:46 +0000)]
Bug 34183: Remove MARC format hint from OPACResultsLibrary system preference description

Test Plan
1. Navigate Koha Administration
2. Search for OPACResultsLibrary
3. Note that sentence "Please note that this feature is currently available for MARC21 and UNIMARC." is removed

Signed-off-by: Chloe Zermatten <chloe.zermatten@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37515: Add common class to all places where an item type image is shown
Owen Leonard [Mon, 29 Jul 2024 18:28:00 +0000 (18:28 +0000)]
Bug 37515: Add common class to all places where an item type image is shown

This patch adds an "itemtype-image" class to templates in all places
where we show itemtype images. This patch affects both the OPAC and the
staff client.

To test you should have icons associated with multiple item types.

- Apply the patch and go to Administration -> System preferences
- Search for "itemtype"
  - noItemTypeImages should be set to "Show"
  - OpacNoItemTypeImages should be set to "Show"
  - BiblioItemtypeInfo should be set to "Show"
- Search for "usercss"
  - Add an obvious style rule for item type images to IntranetUserCSS
    and OPACUserCSS, e.g.

    .itemtype-image { border: 3px solid orange; }

- In the staff interface, check the following pages to confirm that your
  custom style is visible:

  - Administration -> Item types
    -> Edit
  - Administration -> Authorized values -> CCODE -> Edit a CCODE
  - Advanced search
    - Search results
    - Bibliographic details
  - Place hold
  - Lists -> List contents view (must set the item-level_itypes
    preference to "bibliographic record")

- In the OPAC:
  - Advanced search
    - Search results
      - Bibliographic details
  - Place hold
  - Log in as a user with checkouts ->
    - View the checkouts tab on the patron summary page
  - Lists -> List contents view (must set the item-level_itypes
    preference to "bibliographic record")

Sponsored-by: Athens County Public Libraries
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37490: Add a test to detect when yarn.lock is not updated
Mason James [Fri, 26 Jul 2024 10:54:15 +0000 (22:54 +1200)]
Bug 37490: Add a test to detect when yarn.lock is not updated

to test...

1/ set koha repo to state where yarn.lock is not updated

    $ git reset --hard 67db70d4

2/ run test, observe FAIL

    $ prove ./xt/verify-yarnlock.t
    ./xt/verify-yarnlock.t .. error Your lockfile needs to be updated, but yarn was run with `--frozen-lockfile`.
    ./xt/verify-yarnlock.t .. 1/1
    #   Failed test 'verify yarn.lock file is updated correctly'
    ...
    Result: FAIL

3/ set koha repo to state where yarn.lock is updated

    $ yarn install

4/ note yarn.lock is now updated

    $ git status
    ...
    modified:   yarn.lock

5/ run test, observe SUCCESS

    $ prove -v ./xt/verify-yarnlock.t
    ./xt/verify-yarnlock.t ..
    ok 1 - verify yarn.lock file is updated correctly
    All tests successful.
    Files=1, Tests=1,  1 wallclock secs ( 0.02 usr  0.01 sys +  1.16 cusr  0.27 csys =  1.46 CPU)
    Result: PASS

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 33731: Allow for default sounds on SCO page
Lucas Gass [Wed, 14 Aug 2024 16:35:42 +0000 (16:35 +0000)]
Bug 33731: Allow for default sounds on SCO page

To test:
1. APPLY PATCH
2. Enable AudioAlerts system preferencce
3. Set up some audio alerts to trigger on the SCO page. ( I used #sco_main for east testing)
4. Make sure the sounds work properly.

Note: It is not my favorite thing to duplicate these assets for intranet and OPAC, is there a better way?

modified:   koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/IM_notification.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/beep.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/call.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/critical.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/device_connect.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/device_disconnect.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/ending.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/fail.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/incoming_call.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/loading.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/loading_2.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/maximize.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/minimize.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/new_mail_notification.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/opening.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/panic.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/popup.ogg
new file:   koha-tmpl/opac-tmpl/bootstrap/sound/warning.ogg

Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37691: Improve visibility of password expiration reset link
Owen Leonard [Wed, 21 Aug 2024 10:31:09 +0000 (10:31 +0000)]
Bug 37691: Improve visibility of password expiration reset link

This patch moves the password expiration reset link into the error box
so that it is more prominent.

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

Try to log in to the staff interface as a user whose password has
expired. You will probably have to use SQL to update a patron record
directly, e.g.

UPDATE borrowers SET password_expiration_date = '2022-01-01' WHERE borrowernumber = X;

When you submit your login details the page should reload with an error
message: "Error: Your password has expired." Within the red dialog you
should see the "You must reset your password" link.

Sponsored-by: Athens County Public Libraries
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 33925: Improve translation of title tags: Serials
Owen Leonard [Tue, 6 Jun 2023 15:29:12 +0000 (15:29 +0000)]
Bug 33925: Improve translation of title tags: Serials

This patch updates serials templates so that title tags can be more
easily translated. Some templates have been updated for consistency as
well: Harmonizing page title, breaddrumb navigation, and page headers;
Adding "page-section" <div> where it was lacking.

To test, apply the patch and confirm that the following pages have the
correct title tags:

- Serials home
  - Serials search results
    - Subscription details
      - Subscription edit
        - Search for vendor
        - Search for bibliographic record
      - Subscription renew
      - Serial collection
      - Create and modify routing list
        - Preview routing list
          - View routing slip
      - Claims
      - Check expiration
      - With a subscription which has manual history enabled, click the
        "Edit history" link under the "Planning" tab.
     - Select multiple serial search results and batch edit
  - New subscription
  - Manage frequencies: Create and edit
  - Manage numbering patterns: Create and edit

Signed-off-by: Loïc Vassaux-Artur <loic.vassaux-artur@outlook.fr>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 36945: Fix several missed instance of breadcrumb WRAPPER use
Owen Leonard [Thu, 23 May 2024 12:32:01 +0000 (12:32 +0000)]
Bug 36945: Fix several missed instance of breadcrumb WRAPPER use

This patch corrects some templates which never got the breadcrumb
WRAPPER update. Some breadcrumbs and page titles have been updated to be
more consistent with page headings.

To test, apply the patch and enable the "CatalogConcerns" system
preference if necessary. Check the following pages to confirm that the
breadcrumbs menu looks correct and that breadcrumbs are consistent with
page titles and page headings.

- Circulation -> Upload offline circulation file (.koc)
  - Upload file -> Add to offline circulation queue
  - View pending offline circulation actions
- Cataloging -> Cataloging concerns
- Reports -> Cash register stats

Sponsored-By: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37081: Reword button on addorderiso2709.tt
Lucas Gass [Mon, 17 Jun 2024 13:54:45 +0000 (13:54 +0000)]
Bug 37081: Reword button on addorderiso2709.tt

To test:
1. Go to Acquisition and create or find a vendor.
2. Create a new basket.
3. Add to basket -> from a new file
4. Upload a .mrc file and stage fro import.
5. Add the files to your basket.
6. For each item in the basket notice the button set which includes MARC, Card, and Add order.
7. APPLY patch and reload the page.
8. Add order should now be New order.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37493: [DONT PUSH] Test only - Force test fail
Pedro Amorim [Fri, 26 Jul 2024 13:20:07 +0000 (13:20 +0000)]
Bug 37493: [DONT PUSH] Test only - Force test fail

Apply this patch only, run:
1) cypress run --spec "t/cypress/integration/flatpickr_spec.ts"
2) run `git status`.
  Notice t/cypress/screenshots/ and t/cypress/videos/ show
3) Apply 2nd patch. Repeat 2). Notice its empty

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 34185: Capitalized OPAC in OpacItemLocation syspref
Laura_Escamilla [Fri, 30 Aug 2024 16:54:19 +0000 (16:54 +0000)]
Bug 34185: Capitalized OPAC in OpacItemLocation syspref

To test:
1. In K-T-D git grep for “OpacItemLocation”
    1. Notice that related XSLT / XSL scripts are not coming up. Only .pm, .pl and .sql scripts.
2. Git grep for “OPACItemLocation”. Note that XSLT/XSL files show up but not the .pm, .pl and .sql scripts.
3. Apply the patch. Updatedatabase. Restart_all
4. Git grep for “OPACItemLocation”
    1. Notice that both the XSLT/XSL files in addition to the .sql, .pm and .pl scripts are now showing up.
5. Sign off and have a spectacular day :D

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 37004: Add branchcode as HTML class to each grouped result in search results
Lucas Gass [Fri, 31 May 2024 21:12:04 +0000 (21:12 +0000)]
Bug 37004: Add branchcode as HTML class to each grouped result in search results

To test:
1. Apply patch and restart_all
2. Do a catalog search that returns results.
3. Using the browsers dev tools inscpet the page and look for the 'available_items_loop_items' class in the 'Location column'.
4. Each child <li> element should have a class that is the branchcode.
5. Make sure that branchcode is correct.
6. Change the StaffSearchResultsDisplayBranch system preference. Make sure that each branchcode is still correct.
7. Change the system preference 'noItemTypeImages' to 'Dont show'.
8. Make sure the branchcode is still correct.
9. Checkout an item that would show up in these search results.
10. Do steps 3-8 again excpet this time look for the HTML element 'onloan_items_loop_items'.
11. Put some items in transfer that would show up in these search resultss.
12. Do steps 3-8 again excpet this time look for the HTML element 'other_items_loop_items'.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 35239: (follow-up) Correct more missing label inconsistencies
Owen Leonard [Fri, 26 Jul 2024 18:17:11 +0000 (18:17 +0000)]
Bug 35239: (follow-up) Correct more missing label inconsistencies

This patch corrects a couple more labels and modifies the process of
cloning a patron attribute field so that each new cloned row has
matching label and input.

To test, apply the patch and, if necessary, create some patron attribute
types:

- Go to Administration -> Patron attribute types
- Create at least two new patron attribute types.
- Go to Tools -> Batch patron modification.
- Submit a batch of patrons for batch modification
- In the list of fields to modify, test that clicking each label gives
  focus to the corresponding field (except date fields, we need to fix
  that globally).
- Click "New" next to the patron attribute field.
  - A copy of the field should be created. Test that the new field also
    has matching label and <select>

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 35239: Missing form field ids in batch patron modification template
Catalyst Bug Squasher [Thu, 25 Jul 2024 23:01:04 +0000 (23:01 +0000)]
Bug 35239: Missing form field ids in batch patron modification template

Test Plan
1. Tools > Batch patron modification
2. List valid card number in text box
3. [Continue]
4. Edit patrons form, click on input box label
5. Matching input box gets focus

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 36085: (QA follow-up) Tidy members/memberentry.pl
Paul Derscheid [Tue, 27 Aug 2024 14:04:59 +0000 (16:04 +0200)]
Bug 36085: (QA follow-up) Tidy members/memberentry.pl

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 36085: Only superlibrarians can protect patrons
PerplexedTheta [Thu, 18 Jul 2024 11:01:44 +0000 (12:01 +0100)]
Bug 36085: Only superlibrarians can protect patrons

A drive-by patch which hopes to resolve bug 36085 by only allowing superlibrarians
to protect or unprotect patrons.

Test plan:
a)  prepare two koha staff users:
        1)  a superlibrarian
        2)  a user that only has permission to edit patrons
b)  when logged in as the user prepared in step a2 (non-superlibrarian),
    then go to edit any patron
        *)  note how you can set the protected yes/no radios
c)  apply the patch
d)  repeat steps a-b as this same user
        *)  note how you can now no longer see the protected yes/no radios
e)  log in as the user prepared in step a1 (superlibrarian), then repeat
    steps a-b
f)  note how the protected yes/no radios are back

Signed-off-by: Jan Kissig <jkissig@th-wildau.de>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 34440: (QA follow-up) Tidy changes to t/db_dependent/Koha/Item.t
Paul Derscheid [Thu, 22 Aug 2024 12:23:52 +0000 (12:23 +0000)]
Bug 34440: (QA follow-up) Tidy changes to t/db_dependent/Koha/Item.t

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 34440: Unit test for change to Koha::Item
Martin Renvoize [Thu, 22 Aug 2024 10:02:58 +0000 (11:02 +0100)]
Bug 34440: Unit test for change to Koha::Item

This adds a unit test for the new preparation_period handling introduced
into the find_booking method of Koha::Item.

Sponsored-by: Cuyahoga County Public Library <https://cuyahogalibrary.org/>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 34440: Enforce lead/trail restrictions
Martin Renvoize [Thu, 25 Jul 2024 15:15:18 +0000 (16:15 +0100)]
Bug 34440: Enforce lead/trail restrictions

This patch adds rule enforcement into the user interface. When
attempting to make a booking now, instead of just visually displaying
the lead and trail period and highlighting when an overlap appears, we
now block the ability to select a date when such an overlap case is
found.

Sponsored-by: Cuyahoga County Public Library <https://cuyahogalibrary.org/>
Signed-off-by: Kristi Krueger <KKRUEGER@cuyahogalibrary.org>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2 weeks agoBug 34440: Highlight overlaping lead and trail periods
Martin Renvoize [Mon, 15 Jul 2024 15:23:02 +0000 (16:23 +0100)]
Bug 34440: Highlight overlaping lead and trail periods

This adds a further distinction between a lead/trail period and whether
it would conflict with an existing booking or not.

Sponsored-by: Cuyahoga County Public Library <https://cuyahogalibrary.org/>
Signed-off-by: Kristi Krueger <KKRUEGER@cuyahogalibrary.org>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>