This patch adds the base vue app as well as the component to list vendors
Amended-by: Jonathan Druart
chmod 755 acqui/vendors.pl
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Bug 37911 added a follow-up that removed the original entry point from rspack to use the esm.js files
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This is an example patch for creating a Vue island component that can be used throughout Koha. The component can then also be used in the work in Bug 38010 to migrate Vendors to Vue. This removes duplication of code by having a .inc file as well as a vue component to maintain
Test plan:
1) Apply all patches including dependencies
2) Bug 37911 requires a Vue upgrade so you will need to run yarn install, then run a yarn build
3) Navigate to the acquisitions home page
4) The left menu should appear as before
5) Switch on the EDIFACT syspref - the acq menu should now display the edifact related options
6) Try logging in as a new patron with reduced permissions, the menu should update correctly according to the permissions
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch adds a permissions store to hold a user's permissions and run checks when required
Test plan:
1) Apply the patch and run the following commands
a) yarn build
b) restart_all
2) Ensuring you are logged in as the Koha superlibrarian user, navigate to the ERM module and click into Agreements
3) Note that the button for New Agreement is visible
4) Choose a random staff user and assign them the following permissions:
- Staff access, allows viewing of the catalogue in staff interface (catalogue)
- Manage Koha system settings (Administration panel) (parameters)
- Acquisition management (acquisition)
- Manage the electronic resources module (erm)
These are the permissions required to access the ERM module
6) Open an incognito browser and log in as the chosen staff member with these permissions
7) For this example, the New agreement button has been hidden behind the CAN_user_suggestions_suggestions_create to demonstrate how it would work
8) Navigate to the Agreements page again, the button should not be visible
9) Back in your main browser, assign the following permission set to the user:
- Create purchase suggestions (suggestions_create)
10) Hard refresh the incognito browser, the button should now be visible again
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
To test:
1. Place multiple holds, good to have at least 4, for pickup at a location, I used Nick's handy script
2. Perl misc/cronjobs/holds/build_holds_queue.pl
3. Check in at least 4 items for pickup at one location so they'll be wating
4. Update the expiration date on those holds using ktd --dbshell
update reserves set expirationdate = DATE('2024-01-01') where branchcode='CPL';
5. On Circulation > Holds waiting past their expiration date tab use the cancel button that is in the actions column to cancel a hold
The page loads on the Holds waiting tab, although in the url you see /circ/waitingreserves.pl?tab=holdsover
6. APPLY PATCH
7. Try 1 - 5 again, this time after step 5 you should be redirected.
8. Try cancelling holds with a transfer, ensuring you get redirected correctly.
Signed-off-by: Andrew Auld <andrew.auld@openfifth.co.uk>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
When OnSiteCheckoutsForce is set it is possible to on-site checkout an
item to a restricted patron. But the due data that is labelled with
"Automatic due date:" is not being set. As a result, when such a
checkout is performed and you do not set the date manually, the due
date will be set as for normal checkout (even if it is marked as
on-site checkout).
Test plan:
==========
1. Enable OnSiteCheckouts and OnSiteCheckoutsForce; manually restrict
a patron.
2. Go to checkout page for this patron. You will notice:
"On-site checkouts only. Automatic due date:" with an empty input
field for the date. Perform the checkout (pick any existing
barcode).
Note the due date in patron's checkouts. In standard ktd it will be
+5 days from today, as for a regular checkuot (cf. Circulation and
fine rules) and the checkout will be marked as on-site checkout.
3. Apply the patch ; restart_all.
4. Repeat p. 2 (with another barcode or after checking-in). The date
in the date input field should be set to today's date and after
performing the checkout the sue date should also be set to
the current date.
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Because the CSS rule for turning odd-numbered rows grey is highly-specific
(tbody tr:nth-child(2n+1):not(.dtrg-group, .active, .ok) td:not(.bg-danger,
.bg-warning, .bg-info, .bg-success, .bg-primary)), it overrides the
.highlighted-row, .highlighted-row td rule that some tables use to turn the
background of a currently-selected row yellow, so highlighted-row needs to be
added to the lists of not().
Test plan:
1. Without the patch, Cataloging - New from Z39.50/SRU, perform a search like
Author smith which will return at least two results.
2. On an even-numbered row with a white background, click MARC and note that
the row is given a yellow background (either by increasing the size of the
popup to peer around the preview, or by closing the preview, since the
highlight persists).
3. On an odd-numbered row with a grey background, click MARC and note that
the row isn't given a yellow background
4. Administration - Circulation and fine rules, if you don't already have at
least two rules add one by just changing the Patron category in the edit
row and Save
5. On a row with a white background, click Edit and note that the background
for that row is yellow
6. On a row with a grey background, click Edit and note that the background
remains grey, not yellow
7. Apply patch, in ktd --shell yarn build (or in a sandbox Actions - Build
CSS and JS), clear browser cache or shift+Reload the page
8. Repeat steps 1-6, but this time note that you get the same yellow
highlighted background for both odd and even rows.
Signed-off-by: Magnus Enger <magnus@libriotech.no>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Bug 35065 moved to additional contents.
Remove call in opac/sco/help.pl.
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch add a class for the background on the badge element to fix color contrast
To test:
1. Go to a bib record and place multiple holds on it
2. Select multiple holds and click 'Cancel selected (4)'
3. The Alert says 'This action will cancel 4 hold(s).'
4. Note that the contrast on the number of holds is very low
5. Click 'Cancel' apply patch and restart_all
6. Repeat steps 2-3
7. Note that the contrast on the number of holds is good
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch adds deleted_biblio to the patron holds api and adjsuts the display to
shwo the data for deleted items
To test:
- place a hold
- cancel the hold
- look in patron hold history, see the title
- delete the biblio
- reload patron hold history
- you see a line with no title or author
- apply patch, yarn build, restart_all
- reload patron hold history
- success, you see deleted title info
- enable OPACHoldsHistory preference
- sign in to OPAC as patron
- confirm holds history shows deleted title info
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
To test:
- place a hold
- cancel the hold
- look in patron hold history, see the title
- delete the biblio
- reload patron hold history, error
[2025/04/23 11:43:28] [WARN] OpenAPI >>> GET api/v1/patrons/5/holds [{"message":"Expected integer - got null.","path":"\/body\/3\/biblio_id"},{"message":"Expected integer - got null.","path":"\/body\/4\/biblio_id"}]
- apply patch, yarn build, restart_all
- reload patron hold history
- success
- enable OPACHoldsHistory preference
- sign in to OPAC as patron
- confirm holds history can be loaded
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This fixes the patron registration form in the staff interface. There is
no "Gender" label before the radio buttons.
Test plan:
1. Go to Patrons > +New patron > [Select any patron type]
(http://localhost:8081/cgi-bin/koha/opac-memberentry.pl).
2. In the patron identity section you will see four radio buttons used
to choose a gender. Note that there is no label next to the buttons.
3. Apply the patch and refresh the page..
4. The label "Gender" is now visible next to the radio buttons.
5. Sign off and have an amazing day! :D
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
To test:
1. Visit http://localhost:8080/cgi-bin/koha/opac-memberentry.pl or your test OPAC self registration page.
2. Under Identity scroll down until you see four radio buttons used to choose a gender. Note that there is no label next to the buttons.
3. Apply the patch.
4. The label “Gender” is now visible next to the radio buttons.
5. Sign off and have an amazing day! :D
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
On the Koha OPAC, the 'Lists' page contains tabs which aren't clearly marked as such (no relevant attribute set on the element).
This means that screen readers will not recognise the tabs as such, and screen reader users will not be made aware that these are available.
Since the 'Advanced Search' page contains tabs that are correctly identified and described by screen readers, update the HTML atributes for the tabs on the 'Lists' page so that it matches theirs.
Note: this is a quick and simple fix aiming to meet accessibility requirements. Another approach could be to implement wrappers (as in advsearch.tt), but it seems a bigger refactor of opac-shelves.tt may be needed to allow that.
Test plan:
0) Before testing, ensure that the relevant patron has a few public and private lists.
1) Log in on the Koha OPAC
3) Navigate to Home > koha > Lists
2) Notice that, when the page first load, the 'Your Lists' tab panel is displayed (functionality is preserved)
3) Select 'Public lists', and notice that the tab panel now matches that (again, functionality is preserved)
4) Either inspect the page's HTML or run a Lighthouse test, and check that all aria attribute required by screen readers are present
(aria attributes assumed to be required are aria-controls, aria-selected, and aria-labelledby. It is also assumed that 'role' attributes are needed)
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Caused by a bad conflict resolution when bug 36081 was pushed
Uncaught SyntaxError: missing ) after argument list
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
When ILS-DI is disabled we still expect to return the correct service name/section in the
xml, but just indicate that it is disabled.
We should skip the check for authorized IPs in this case, as the IP only matters when service is enabled
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This test is not really needed. It the new window opens correctly the
next test will pass.
And should fail if it does not.
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch copies and adapts some CSS from the default DataTables CSS in
order to add to the OPAC the required styles for new features added by
the updated ILL request page: Paging, table information, and the
"Processing" message shown while the table loads.
To test, apply the patch and rebuild the OPAC CSS. You should have
ILL enabled and configured.
- Log in to the OPAC as a user who has submitted multiple ILL requests.
- From the user summary page, click "Interlibrary loan requests" in the
left-hand sidebar.
- The table of ILL requests should look correct with legible information
and controls.
- All the DataTable features should work: Paging, showing different
numbers of entries per page, sorting.
- Go to the user summary page and confirm that the tables on that page
still display correctly: Checkouts, overdues, holds, etc.
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>
This patch ports the staff side feature into the OPAC. To be used by bug
39600.
To test:
1. Apply and verify no behavior change in OPAC tables
=> SUCCESS: They work the same
2. Verify 39600 still works after bug 39739 iis reverted.
=> SUCCESS: It does
3. Sign off :-D
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
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>
This will make xt/find-missing-op-in-forms.t pass
But also enforce the use of a op=cud- parameter.
It is at the end of the form element, so if another is passed in the
modal body the one passed will get retrieved properly by CGI->param
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Currently when adding to a basket from a new/staged file, we don't check whether a matched record still exists when importing. This patch changes the conditional check to be based on the existence of the biblio record rather than just on the biblionumber from the match
Test plan:
1) Stage and import a record into Koha
2) Stage the same record again, this time matching on ISBN
3) Check that the match has been found in the batch details
4) Delete the original record that you imported in step 1
5) Find a basket, and add to it from a staged file
6) Choose the file/record you imported in stage 2
7) Select the record and save to add the orders
8) You will get a 500 error
9) Apply patch and restart_all
10) Refresh the page to re-submit the form
11) The form should submit correctly
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This patch moves the OPACVirtualCard and OPACVirtualCardBarcode system
preferences from the Suggestions subsection of the OPAC preferences to the
Features subsection.
To test:
1. Apply patch
2. Go to Administration > System preferences > OPAC
3. Search the page (Ctrl + F) for OPACVirtualCard
--> The two preferences (OPACVirtualCard and OPACVirtualCardBarcode)
should be in the Features section
Signed-off-by: Aude Charillon <aude.charillon@openfifth.co.uk>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Previous commit 'HistoryCheck now only considers same patron' added the following regression:
HistoryCheck is performed and shown in the OPAC even if no user is authenticated (using ILLOpacUnauthenticatedRequest).
This fixes that. History check is skipped unless a user exists.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit addresses all Hackfest QA related feedback:
1) Update of all strings that required update, including UI messages and
sys pref description
2) Moved the history check information from staffnotes to its own
pipe-separated illrequestattribute 'historycheck_requests'
3) Fix display of ILL request information on the history check screen
(Staff), including proper label naming (e.g. branchcode -> library),
show status description instead of code, uppercase labels.
4) Updated OPAC display to match Staff UI's display of matching history
requests
5) Removed ISSN criteria for matching requests check
6) Update tests accordingly
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Initial implementation checked existing ILLs for same patron and other patrons.
User testing reported ILLs for other patrons are not helpful, and makes this stage
screen show up much more frequently than it should.
This patch simplifies the original implementation to only consider the
patron of the request being placed for an ILL history check.
It also changes the ID matching to only 'DOI' or only 'Pubmed ID' if any of
those is set. This is to minimize scenarios where different articles from
the same journal come up as matching results e.g. same ISSN but different DOI.
It is also updating tests accordingly.
Other QA improvements
Improve HistoryCheck request list:
- Make link external and show icon (to prevent staff member from clicking away from the historyCheck screen unintentionally)
- Show requests' status
- Show requests' placed date
- Add id_prefix to request ID if possible
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
prove xt/find-missing-filters.t
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
It appears the atomic update had wrong permissions:
prove xt/find-misplaced-executables.t
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
C4::Context->userenv may be undef (after a reset_all, trying to place an unauthenticated request without being logged).
This change prevents a nasty 500 error trying use undefined as hash
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Test plan:
1) Apply patches
2) Run (ignore if using a sandbox):
$ reset_all
3) Visit ILL system preferences:
<staff_url>/cgi-bin/koha/admin/preferences.pl?tab=interlibrary_loans
4) Enable ILLModule and ILLHistoryCheck system preferences
-- STAFF testing --
5) Create a new ILL request, visit:
<staff_url>/cgi-bin/koha/ill/ill-requests.pl?method=create&backend=Standard
6) Pick type = 'Journal article', enter '123' for DOI, '42' for cardnumber and any library. Click create.
7) Repeat 5) and 6). Notice you're now on the 'Request history check' screen. Verify your previous ILL request is listed. Click 'Submit anyway'.
8) Repeat 5) and 6). But pick a different patron cardnumber this time e.g. '23529000035676'.
9) Verify you're not shown the 'Request history check' screen as its a different patron.
-- OPAC testing --
10) Place a new request through the OPAC, visit:
<opac_url>/cgi-bin/koha/opac-illrequests.pl?op=add_form&backend=Standard
11) Pick type = 'Journal article', enter '123' for DOI. Click 'Create'. Notice it shows the 'history check' screen listing the existing requests. Click 'Submit anyway'.
12) Return to the Staff UI:
<staff_url>/cgi-bin/koha/ill/ill-requests.pl
13) Click on the latest ILL request. Verify 'History check requests' is displayed and contains information relating to the already existing ILL requests.
-- Bonus testing --
16) Play around with ILLModuleDisclaimerByType and
ILLOpacUnauthenticatedRequest enabled at the same time as
HistoryCheck (easy)
17) Play around with ILLCheckAvailability and AutoILLBackendPriority
enabled at the same time as HistoryCheck
(reach out for help using these preferences)
Run tests:
$ prove t/db_dependent/Koha/ILL/Request/Workflow/HistoryCheck.t
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
- Use pre for staffnotes in staff illview
- Ensure <pre> has same font-family as rest of the page
- Render html for staff notes in list. Truncate to 100 chars max
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>