This patch fixes instances where the pre-Bootstrap-5 class "pull-right"
was missed during the upgrade. Most cases were on dropdown menus, and
in all of these cases the class can be removed because Bootstrap 5 menus
have better responsive behavior.
Other changes: Added "dropdown-item" classes to some menu items which
lacked it; Added some custom style for the "Filter" form in the patron
permissions toolbar.
To test, apply the patch and rebuild the staff interface CSS. Test that
the following menus look correct and work correctly:
- Catalog -> Bibliographic details page -> Holdings table: The "Edit"
secondary menu shown for each item (requires that the LocalCoverImages
system preference be enabled.
- Administration -> Z39.50 servers: The "Actions" menu for each server
in the list of servers.
- Circulation -> Article requests: The "Actions" menu for each title and
under each tab (New, Pending, and Processing).
- Tools -> Patron lists: "Actions" menu.
- Administration -> Plugins: "Actions" menu (requires that you have at
least one plugin installed).
- Reports -> Saved SQL reports: The secondary menu on each saved
report's "Run" button .
- Cataloging -> Rotating collections: "Actions" menu.
- Serials -> Subscription search results: In the "Open" tab, the
secondary menu on the "Serial receive" button on each subscription. In
the "Closed" tab, the "Actions" menu.
- Acquistions -> Suggestions: The secondary menu on each title's
"Edit" button.
- Tools -> HTML customizations: The secondary menu on the "New
entry" button; The secondary menu on each entry's
"Edit" button; Edit entry -> The secondary menu on the "Save" button.
- Cataloging -> Stock rotation: The "Manage" menu on each rota.
A non-menu change:
- Patrons -> Patron details -> More -> Set permissions: CSS has been
added to correctly align the "Filter" menu.
Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
To test:
- Apply the patch and enable the CurbsidePickup system preference if
necessary.
- Properly testing requires testing data. You can run this command to
REPLACE your curbside pickup data with sample data:
bash <(curl -s https://gitlab.com/-/snippets/2572579/raw/main/test_curbside_pickups.sh)
- Go to Circulation -> Curbside pickups.
- Confirm that the tabs look correct. The first tab should be active
by default.
- Confirm that the right content is displayed when you click each tab.
- Under the "Schedule pickup" tab, search for a patron.
- After you submit the search the page should reload and the "Schedule
pickup" tab should be open.
- Go on each tab and try each button to verify you're staying on the
same tab.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
The tabs on Circulation -> Curbside pickups look broken because they
were not updated to use the tab WRAPPER markup. This patch revises the
template so that the tabs look correct and makes additional changes to
ensure that the correct tab is preselected.
To test:
- Apply the patch and enable the CurbsidePickup system preference if
necessary.
- Properly testing requires testing data. You can run this command to
REPLACE your curbside pickup data with sample data:
bash <(curl -s https://gitlab.com/-/snippets/2572579/raw/main/test_curbside_pickups.sh)
- Go to Circulation -> Curbside pickups.
- Confirm that the tabs look correct. The first tab should be active
by default.
- Confirm that the right content is displayed when you click each tab.
- Under the "Schedule pickup" tab, search for a patron.
- After you submit the search the page should reload and the "Schedule
pickup" tab should be open.
Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Fix last columns of tables to be printed in `bold`. This affects
various functions of Koha e.g. Notices and Slips, Pages etc.
1. Go to `Home / Tools / Additional content / Pages`
2. Select `Add new entry using text editor`
3. Add the following html
```html
<table>
<tbody>
<tr>
<td>col 11</td>
<td>col 12</td>
</tr>
<tr>
<td>col 21</td>
<td>col 22</td>
</tr>
</tbody>
</table>
```
4. Save
5. Use the `Staff`-URL from `Additional content: Pages`
to open the page in a new tab
6. Select `File / Print`
(or fire up the dev console via F12 and apply the Print-css)
7. The entries `col 12` and `col 22` appear in bold face.
8. Apply the patch
9. Reload the page
10. The entries `col 12` and `col 22` appear in normal font.
Sponsored-by: Deutsches Elektronen-Synchrotron DESY, Library
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
To test:
1. Find or create an item belonging to a library other than the
logged-in library
2. Check the item in and print slip
--> The transfer slip says "Transfer to" but the library name is blank
3. Apply patch and restart_all
4. Cancel the transfer or find a different item
5. Check the item in and print slip
--> The library name now appears on the slip
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch adds configuration options to the Point of sale "Transactions
to date" and "Older transactions" tables so that they don't appear to be
sortable. Both have an option that makes their sorting fixed.
To test, apply the patch and go to Point of Sale.
- Enable 'EnablePointOfSale' and 'UseCashRegisters' system preferences.
- Add a least one cash register (Administration -> Cash registers).
- Add a least one debit type (Administration -> Debit types). Check "Can
be sold."
- Go to the Point of Sale page.
- Under "Items for purchase" click "Add" next to an item.
- Under "Collect payment," fill out the form, including the cash
register selection, and submit.
- Click "Transaction history for..." in the sidebar menu. (You may have
to click "Cash summary for..." and then the name of the register you
used in your transaction.
- Check that the "Transactions to date" and "Older transactions"
tables do not have sorting indicators in the table headers.
Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This fixes the labels used for the type options when configuring
Elasticsearch search fields so that they use:
- sentence case
- the full name, instead of abbreviations (to make it clearer
for translators)
Test plan:
1. Go to Administration > Catalog > Search engine
configuration (Elasticsearch).
2. In the search fields tab, select the type column dropdown list
for any field. Note the labels used for these options:
- <empty entry> (the default option)
- Std. Number
- Call Number
3. Apply the patch.
4. Refresh the page.
5. Repeat step 2 and note that the option labels are now:
- Default (instead of being blank)
- Identfier (instead of Std. Number)
- Call number (instead of Call Number)
6. Sign off D:
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
The logic of the title tag construction should not result in a caret
preceding the first element on the Additional fields main page.
To test, apply the patch and go to Administration -> Additional fields.
There should be no caret appearing at the start of the page title
information:
Additional fields > Administration > Koha
Other pages (listing additional fields, adding additional fields, etc)
should have the correct title, e.g.
New field > Table 'aqbasket' > Additional fields > Administration > Koha
Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch adjusts the markup and CSS of the self checkout login screen
so that form layout is consistent and readable. I have adjusted the
template conditional so that it re-uses more form elements like
<legend>.
To test, apply the patch and enable WebBasedSelfCheck if necessary.
- Set the SelfCheckoutByLogin system preference to 'cardnumber'
- Go to the self-checkout page (/cgi-bin/koha/sco/sco-main.pl)
- The login form should be labeled "Log in to your account" followed
by the label, form field, and submit button arranged vertically.
- Set the SelfCheckoutByLogin preference to "username and password"
- Reload the self-checkout page. The form should look the same with the
addition of the password field.
Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
The remote branch for bug 13618 started out when OPAC authority search did its
own pagination in a template block, then bug 2735 replaced that with
pagination_bar, the template var passed from the script, then at some point
before bug 13618 landed the second time, a rebase error put the template block
back in. And since it's not at all obvious it is dead code unless you look for
where "pagination" rather than "pagination_bar" is used, we've kept updating
it, and bug 36032 thought the way it used >> instead of > for next ought to be
fixed while one that was actually used was fixed.
Time to get rid of it, before we 'fix' it again.
Test plan:
1. Without the patch, in the OPAC go to Authority Search and do a search that
will return pages of results, like the letter a
2. Note that the button for the next page uses ">" rather than the "Next >>"
in the block this patch removes
3. Apply patch, click the browser Back button, refresh page
4. Verify that when you search for something that returns more than one
page of results, the page navigation hasn't changed from what it was
before the patch, telling you that what the patch removes was unused
Sponsored-by: Chetco Community Public Library
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This corrects the display of the "Log not enabled" message for the
authentication module in the log viewer.
If either AuthFailureLog or AuthSuccessLog system preferences are
set to "Don't log":
- the "Log not enabled" warning icon is now shown
- clicking the triangle icon now links to the two system
preferences
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Typo in system preference 'AuthScuccessLog' -> 'AuthSuccessLog'.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Typo in system preference 'minPasswordPreference' -> 'minPasswordLength'
in opac/opac-password-recovery.pl
There is no 'minPasswordPreference' system preference in database.
Bug 23816 added the capability to override minPasswordLength.
Test plan:
==========
1. Check 'minPasswordPreference' appearances:
git grep -i 'minPasswordPreference' **/*
--> Note: only one in opac-password-recovery.pl; no one in sysprefs.sql
2. Apply the patch.
3. Repeat p. 1. Note there is not 'minPasswordPreference' at all.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
To test:
1. Create a list in the staff interface
2. Go to lists
3. See "Your lists" tab and find "Delete" button in "Actions" col, click "delete", no confirmation dialog pop up
4. Create another list
5. Go to lists and view the list detail
6. See "Edit" dropdown and click "Delete Lists" button, see confirmation dialog pop up
7. Apply patch
8. Try step 1 through 3 again
9. "Delete" button in "actions" column has the same confirmation dialog, and delete function works
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Reorder logic slightly for each to only create the counter_file after the mock_userenv has taken place
prove t/db_dependent/api/v1/erm_custom_reports.t
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
prove t/db_dependent/Koha/ERM/EUsage/CounterFile.t
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Edit: tidy (tcohen)
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
The ud_provider->{report_type} is only defined on ->harvest_sushi, meaning it'll never be defined here.
We don't need this anyway. The filename should be the filename of the file being manually uploaded. We only need this concat logic for COUNTER files being generated by Koha following a SUSHI harvest, and that works.
This also gets rid of a warning when running the tests
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
prove t/db_dependent/Koha/BackgroundJobs/ErmSushiHarvester.t
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Edit: tidy (tcohen)
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Improve messages clarity.
Show success message if no schema diff was found from audit.
Code refactor to ensure the title+message shown in UI is the same as the one shown in CLI and are all translatable.
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch updates the module as suggested by David to handle just the
diff code and leaves the display logic up to the templates and script.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: JesseM <jesse@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: JesseM <jesse@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Test plan #1 ensure same script functionality (same as bug 34064):
0. Apply patch
1. vi ./installer/data/mysql/kohastructure.sql
2. Comment out some columns, change NULL status, or whatever you like
3. perl misc/maintenance/audit_database.pl \
--filename /kohadevbox/koha/installer/data/mysql/kohastructure.sql
4. Note that the output includes SQL commands to change the database
to match the new kohastructure.sql
5a. Try using koha-foreach and note that the database name appears above
the database comparison
5b. koha-foreach "perl misc/maintenance/audit_database.pl \
--filename /kohadevbox/koha/installer/data/mysql/kohastructure.sql"
Test plan #2:
1. After doing test plan #1, access the new 'database audit' tab, visit:
<staff_url>/cgi-bin/koha/about.pl?tab=database
2. Ensure the output is the same as test plan #1
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: JesseM <jesse@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Test plan:
this patch removes trailing spaces from Acquisiton.pm
Run the QA script and confirm there are no trailing spaces
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Test plan:
Run t/db_dependent/Letters.t
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Test plan:
Try things like [% borrower.dateexpiry.strftime('%d-%m-%y') %] in
a notice. Also test datetime fields like borrower.lastseen.
Add locale support with strftime('%d %B', 'nl_NL') etc.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch makes the `_process_mappings()` method split the index values
in the event of them being bigger than the allowed 32766 bytes size.
To test:
1. Have KTD running with ES:
$ ktd --proxy --es7 up -d
2. Perform a search
3. Pick the first result for edition
4. Find a cool Wiki page with lots of paragraphs
5. Copy all of the paragraphs and put them on a 500$a field for the record.
6. Repeat 2
=> FAIL: The record is not found
7. Reindex manually:
$ ktd --shell
k$ perl misc/search_tools/rebuild_elasticsearch.pl --biblios --where "biblionumber=3" -v -v
=> FAIL: You get something like:
```
[22229] Committing final records...
One or more ElasticSearch errors occurred when indexing documents at /kohadevbox/koha/Koha/SearchEngine/Elasticsearch/Indexer.pm line 148.
[22229] There were errors during indexing
Record #3 Document contains at least one immense term in field="note.raw" (whose UTF8 encoding is longer than the max length 32766), all of which were skipped. Please correct the analyzer to not produce such terms. The prefix of the first immense term is: '[10, 109, 117, 115, 116, 97, 102, 97, 32, 102, 117, 101, 32, 101, 108, 32, 115, 101, 103, 117, 110, 100, 111, 32, 104, 105, 106, 111, 32, 100]...', original message: bytes can be at most 32766 in length; got 32771 (illegal_argument_exception) : max_bytes_length_exceeded_exception (bytes can be at most 32766 in length; got 32771)
[22229] Total 1 records indexed
```
8. Apply this patch
9. Repeat 7
=> SUCCESS: No error!
10. Repeat 2
=> SUCCESS: The record is indexed and can be found!
11. Sign off :-D
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
To test:
1. Try editing some items with a empty value in the flatpickr.
2. Make sure the empty date fields get a date set to today when you click on the empty field.
3. Try a datetime field, making sure the datetime is correctly set.
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
To test:
1. APPLY PATCH, restart_all
2. Pick a framework, I choose BKS in k-t-d
3. Make sure that a few date and datetime fields are exposed in the editor.
4. On additem.tt a date picker should be instantiated on the date or datetime fields.
5. Make sure the date pickers work on each field.
6. If it is a datetime field you should have the option to add hours and minutes. ( datelastseen )
7. Edit the framework and remove the dateaccessioned.pl plugin from any of these date fields.
8. Even without the dateaccessioned.pl plugin a date picker should be present on the field.
9. Add the dateaccessioned.pl plugin to a non date/datetime field.
10. Make sure the dateaccessioned.pl plugin works properly on the non date/datetime field.
11. Mark one of the date/datetime fields as mandatory, make sure it still acts as mandatory.
12. Hide date/datetime from the editor, make sure it hides properly.
+----------------------+-------------+
| COLUMN_NAME | COLUMN_TYPE |
+----------------------+-------------+
| dateaccessioned | date |
| replacementpricedate | date |
| datelastborrowed | date |
| datelastseen | datetime |
| onloan | date |
+----------------------+-------------+
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
To test:
1. Apply patch, updatedatabase, restart_all
2. Search for staff patron
3. More -> Set permissions
4. Check
- Staff access, allows viewing of catalogue in staff interface
- Add, modify and view patron information
- Manage patrons fines and fee
5. Notice under Manage patrons fines and fee there is a new permission "Voiding Payments"
6. Sign into staff interface as your selected staff patron
7. Search for a non-staff patron -> Accounting
8. Click 'Create manual invoice', add an amount and click 'Save and pay' -> 'Confirm'
9. Go to transactions and notice the option to Void payment appears
10. Go back to your staff patron's permission and unselect 'Voiding Payments'
11. Go to your non-staff patron and notice the option to void payments is gone
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
We don't need those 2 lines
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
k-t-d, from /kohadevbox/koha, run:
yarn run cypress run --spec "./t/cypress/integration/ERM/DataProviders_spec.ts"
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
For consistency, and to avoid 'null koha' for a file imported by
the koha user (no first name).
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch renames the embed method from borrowernumber to patron to fit with the use of 'patron' in the API
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>