This patch makes minor modifications to the Chocolat CSS so that the
buttons (next, previous, close) are styled with colors that conform to
the new interface color scheme.
Note: You may encounter Bug 32307 when testing.
To test, apply the patch and enable at least two cover image services in
the staff interface: Amazon, Local cover images, and/or Coce.
Locate a bibliographic record which has at least two cover images and
view the detail page. Click on the cover image to trigger the image
viewer overlay.
Confirm that the controls in this view are colored green, matching the
current color scheme.
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
When the form to add orders from a staged file is validated, we use
toptabs functionality to switch to the item tab if there are missing fields.
The display now uses bootstrap tabs, so the JS is throwing an error:
Uncaught Error: cannot call methods on tabs prior to initialization; attempted to call method 'option'
This patch simply switches the call to switch tabs
To test:
1 - Stage a file for import
2 - Either use Marc(Item)FieldsToOrder to populate the orders
or select a budget on the third tab
3 - View the second tab, items info, confirm itemtype is required, but don't populate it
4 - Attempt to save order, nothing happens
5 - Check the JS console (F12)
6 - Note the error:
Uncaught Error: cannot call methods on tabs prior to initialization; attempted to call method 'option'
7 - Apply patch
8 - Cancel and add from staged file again
9 - Select a budget and save
10 - You now get an error popup: Some required item subfields are not set
11 - Confirm after the error you are shown the items tab
12 - Select itemtype
13 - Save
14 - Confirm orders added successfully
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Related to bug 24669, why didn't we use strip_non_numeric for one occurrence?
Note that there is still a problem, if none of the 3 inputs is filled,
no rule will be created (ie. action ignored)
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Added div to "Records found in this catalog".
Added page-section class to "Records found in the reservoir".
Corrected level two heading and removed horizontal line as it is now superfluous.
Test plan:
1) Apply patch from bug 32298
2) Navigate to Cataloging
3) Enter a search into the search field and run the search
4) Verify that the white page section identifier is now visible around both sections
Mentored-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Sponsored-by: PTFS Europe
Signed-off-by: Hammat Wele <hammat.wele@inlibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Test plan:
1) Navigate to `Cataloguing > Label creator > Manage label layouts`
2) Observe the missing page section surrounding the table
3) Apply patch
4) Observe that missing page section has now appeared
Mentored-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Sponsored-by: PTFS Europe
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
If we are waiting for ajax (there is a sleep 1s) and the alert pops up
at the same time, Selenium is raising "unexpected alert open"
We should not wait for the ajax request, but better wait for the
alert actually.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Can't call method "itemnumber" on an undefined value at /kohadevbox/koha/Koha/Recall.pm line 343.
We should set item_level and not let TestBuilder pick a value.
This may have been caught (make it more obvious) by the recent change to
TestBuilder for boolean (Bug 32030: fix test builder for boolean)
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
There is a missing wait_for_ajax call at after we click but wait_for_ajax
is waiting for the return of success, and the alert is there.
22:01:57 koha_1 | STRACE: /usr/share/perl5/Try/Tiny.pm:123 in Selenium::Remote::Driver::catch {...}
22:01:57 koha_1 | /usr/share/perl5/Selenium/Remote/Driver.pm:361 in Try::Tiny::try
22:01:57 koha_1 | (eval 541):1 in Selenium::Remote::Driver::__ANON__
22:01:57 koha_1 | (eval 543):2 in Selenium::Remote::Driver::__ANON__
22:01:57 koha_1 | /usr/share/perl5/Selenium/Remote/Driver.pm:654 in Selenium::Remote::Driver::_execute_command
22:01:57 koha_1 | t/db_dependent/selenium/authentication_2fa.t:282 in Selenium::Remote::Driver::get_alert_text
22:01:57 koha_1 | /usr/share/perl/5.32/Test/Builder.pm:334 in main::__ANON__
22:01:57 koha_1 | /usr/share/perl/5.32/Test/Builder.pm:334 in (eval)
22:01:57 koha_1 | /usr/share/perl/5.32/Test/More.pm:809 in Test::Builder::subtest
22:01:57 koha_1 | t/db_dependent/selenium/authentication_2fa.t:291 in Test::More::subtest
22:01:57 koha_1 |
22:01:57 koha_1 | # Looks like you planned 7 tests but ran 4.
22:01:57 koha_1 |
22:01:57 koha_1 | # Failed test 'Enforce 2FA setup on first login'
22:01:57 koha_1 | # at t/db_dependent/selenium/authentication_2fa.t line 291.
22:01:57 koha_1 | Error while executing command: no such alert at /usr/share/perl5/Selenium/Remote/Driver.pm line 411.
22:01:57 koha_1 | at /usr/share/perl5/Selenium/Remote/Driver.pm line 356.
22:01:57 koha_1 | # Looks like your test exited with 255 just after 4.
22:01:57 koha_1 | [20:59:37] t/db_dependent/selenium/authentication_2fa.t
Test plan:
Confirm that the test pass (execute it in a loop, hundreds of times)
Confirm that the behaviour of 2FA "enforced" (see bug 30588) is still
working as expected.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
NOTE: I have the impression that this unit test is quite
rudimentary. I do not see the apply function tested?
Test plan:
Run t/db_dependent/Koha/Item/Templates.t
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
tcohen amended: stray deps
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
We should use OO interface and leave encoding to database
layer.
Test plan:
Add a new item template containing real Unicode chars.
Save. Apply on new item.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
# Failed test at t/db_dependent/Koha/ERM/Agreements.t line 111.
# Structures begin differing at:
# $got->[0]{user_role_id} = '2'
# $expected->[0]{user_role_id} = Does not exist
# Looks like you failed 1 test of 4.
Another fix may be better, please suggest if you disagree
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To test:
1. Make a new HTML customization, news item, or page with the text editor ( CodeMirror ).
2. Save the content ( not Save and continue )
3. Notice the console error:
4. Apply patch
5. Try 1 & 2 again.
6. No error.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
We shouldn't change the current route (which will lead to change the
view) when we are adding an agreement to a EBSCO's package
Test plan:
Go to E-Resource management / eHoldings / EBSCO / Packages
Search for a package, select one
Click "Add new agreement"
Use the "Filter by expired" filter
=> Without this patch you are redirected to the package list view
=> With this patch applied the table is filtered as expected
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
There as a mismatch between the parameter name in documentation (bg-days)
and what was checked in the code (bg-jobs). This makes both match.
To test:
* Apply patch
* Make sure you have some background_jobs older than one day
* Verify the help of the script documents the parameter bg-days
* Run the cleanup_database.pl job
Example: ./misc/cronjobs/cleanup_database.pl --bg-days --confirm -v
* Verify there are no errors and the lines have been deleted as expected
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
During the development of the eRM module I've tried to use bootstrap 5
(and vue-bootstrap), but I didn't manage to make it work without
modifying the version used in Koha. This change is actually not needed
and we can keep version 4.
See commit 8c32f186d5
Bug 32030: ERM - Remove BootstrapVue3
Test plan:
% yarn install
% git diff
you should notice the version change in yarn.lock
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This is meant as a quick fix. It should be enhanced later on by
letting Net::Stomp do the UTF8 conversion.
Test plan:
Run batch mod items. Add a Unicode char in the notes.
Check if job runs and results are correct.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Either I am missing something obvious, or we need to add cypress to the scripts of package.json
With /kohadevbox/node_modules only (ie. without $SYNC_REPO/node_modules), I cannot run
yarn run cypress run
`cypress run` is working with an adjusted PATH (see https://gitlab.com/koha-community/koha-testing-docker/-/issues/313#note_1173792905) but I think both should work.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Since bug 25078 we do no longer use updatedatabase.pl. This test was
there to make sure the RM(aints) was replacing the XXX correctly.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
The condition is fine as long as we only have GDPR consents.
But if you dont, you would have trouble. I know :)
Lets prevent that here, although the table still has an ENUM. So
double safety.
Test plan:
Run t/db_dependent/Koha/Patrons.t
Bonus: Run cleanup_database.pl and check for unusual number of
locked accounts:
misc/cronjobs/cleanup_database.pl --confirm -v --sessions
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
We cannot (yet) move login to before, but we can set the pref before all
the tests. We need to login in before anyway to retrieve the value of
the pref.
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch solves this by enabling the system preference before each test,
right after login. It also sets the system preference back to its original
initial value after the tests finish running.
To test:
1) Disable ERMModule system preference
2) Run cypess tests: yarn cypress open / yarn cypress run
3) Verify that tests run successfully
(Optional): While tests are running, visit the system preferences panel and verify that the system preference is now "Enable".
4) Wait for the tests to finish and confirm that the system preference is set back to its original "Disable" value.
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
We should not (never) remove all patrons before tests
Test plan:
0. Don't apply the patch
1. Check an item out
2. Run the tests
=> Fail
3. Apply the patch
4. Create a patron with the erm permission
5. Run the tests
=> Must return green
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To test:
* Stage a MARC file with a few records
* Look at the import results
* The list of imported records doesn't have the white
page section background
* Apply patch
* Refresh page and verify the table now is contained
Signed-off-by: Jacob O'Mara <jacob.omara@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
In the header, if "Search catalog" is selected, there is an "option"
icon to display some filters.
Fitlers are displayed if IntranetCatalogSearchPulldown or
IntranetAddMastheadLibraryPulldown is set. If none are set we should
hide the icon to avoid and empty div to be displayed
Test plan:
Confirm that the icon is only displayed if one of the 2 prefs is turned
on.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
The previous patch switches to using 'query_string' which is returned encoded.
Using uri we doulbe encode the string - this patch prevents that
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch returns the query string from build_query_compat
Under Zebra, either works for the link, for ES we need the simple string
I expand the test for get_components_query to test both engines
To test:
1.0) Set search engine to Elasticsearch
1.1) Go to Tools > Stage MARC records for import
1.2) Upload the example file
1.3) In the form, choose the format 'MARCXML'
1.4) Click 'Stage for import'
1.5) Click 'Manage staged records'
1.6) Click 'Import this batch into the catalog'
2) Change MaxComponentRecords to 10
3) In the staff interface, search the catalog for 'easy piano'
4) Click on the record 'Easy piano pieces for children'
5) Click on the 'show all component parts' link at the bottom of the Components tab
--> it searches for HASH(...) - returns no results
6) Try the same in OPAC
--> it searches for HASH(...) - returns no results
7) Apply patch and restart all
8) repeat 3-6
9) Results returned!
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a new class to toolbars in certain contexts: Where the
toolbar contains only text links (as opposed to Bootstrap-styled
controls). This lets us set some comfortable padding on the links.
To test, apply the patch and rebuild the staff interface CSS.
Test the following pages to confirm that the toolbar of selection links
("Select all," "Clear all," etc.) has legible spacing.
- Cataloging -> Batch item modification -> List of submitted barcodes
- Cataloging -> Batch item deletion -> List of submitted barcodes
- Cataloging -> Batch record modification -> List of submitted records
- Cataloging -> Batch record deletion -> List of submitted records
- Circulation -> Checkout notes
- Tools -> Batch extend due dates -> Preview results
- Tools -> Batch patron modification -> List of submitted patrons
- Tools -> OPAC problem reports
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This updates the call to store after populating the order
I put this on it's own bug just for sake of dependency, in case it is needed
seperate from 32166 for backports
To test:
1 - Apply and test with bug 32166
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
When importing from a staged file we retrieve the records form the DB, skip any that are not selected,
and process the rest.
When we skip some, we still raise our record count, and use this to retrieve the inputs.
When building the page, we don't increment for skipped reocrds, so there can be a mismatch, i.e.
Record #1 on the page to add records may be the 3rd record in the import file
Rather than using a counting system, let us use the import record id directly
To test:
0 - Set system preferences:
MarcFieldsToOrder:
price: 949$g
quantity: 949$k
budget_code: 949$l
discount: 949$m
sort1: 949$n
sort2: 949$q
MarcItemFieldsToOrder:
homebranch: 949$a
holdingbranch: 949$b
itype: 949$y
nonpublic_note: 949$x
public_note: 949$z
loc: 949$c
ccode: 949$8
notforloan: 949$7
uri: 949$u
copyno: 949$t
price: 949$g
replacementprice: 949$v
itemcallnumber: 949$o
quantity: 949$k
budget_code: 949$l
1 - Stage attached sample file, Format:MARCXML, Record matching:Koha biblio 999$c
2 - Add to a basket from the staged file
3 - Select 1st record to basket and save
4 - Record is added with the fields above as expected
5 - Add to basket again, select 2nd record
6 - Record is added with price from 020a, ignoring incoming fields
7 - Repeat with 3rd, same problem
8 - Apply patch
9 - Stage file and repeat step 3
10 - Confirm added with correct values
11 - Add 2nd record and save, values correct
12 - Add 3rd record, values correct
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This param is not defined in routine, who knows whereit comes from
To test:
1 - Enable coce and coce intranet, select all providers:
https://coce.bywatersolutions.com
2 - Search on staff client
3 - Click Z3950 search
4 - Note url contains a random biblionumber
5 - Apply patch
6 - Repeat
7 - No biblionumber
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch updates the breadcrumb style to use the old caret icon
instead of a slash.
I've left the italic because I think it works well to set the text off
from the normal text above, in the search bar, and below in the main
body of the page.
To test, apply the patch and rebuild the staff interface CSS. Look at
various pages in the staff interface and check the style of the
breadcrumbs menu.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch reimplements certain tabbed interfaces to use Bootstrap
markup. Previously these tabs required special CSS because they're
static, i.e. not JS-driven tabs for switching in-page. The tabs are
links to separate pages.
Note: This patch includes whitespace changes, so use diff accordingly.
To test, apply the patch and rebuild the staff interface CSS.
Test the following pages to confirm that the tabs look correct and still
link to the correct locations:
- Patron details
- Accounting
- Pay amount
- Transactions
- Create manual invoice
- Create manual credit
- Tools -> Comments
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch eliminates some unnessesary CSS and converts the course details div into a fieldset.
To test:
1. Create or edit an existing course.
2. Search and add an instructor.
3. Note that the columns are misaligned: the name of the course instructor is shown first, then the label "Instructors" is shown next.
4. Add another three instructors.
5. Note that this pushes the labels for the next few fields to the right.
6. Apply patch
7. Try steps 1-4 again and confirm everthing looks and works correctly.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This moves the checkbox and its label out of the action field set
which makes it appear above the bottons instead of in front of it.
To test:
* Go to any record
* Select items and send to item batch delete
* Verify checkbox appears in front of button
* Apply patch
* Verify the checkbox and the yellow 'delete selected items' button
are now on separate lines
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a .page-section div to various circ-related pages in
order to provide a consistent page structure.
To test, apply the patch and view the following pages in Circulation to
confirm that the primary page content is wrapped in a container with a
white background:
- Overdues
- Overdues with fines
- Transfers to receive: Your system should have items which have been
transfered from at least two other libraries.
- Transfers to send: Your system must have one or more items in the
branchtransfers table with the datesent value = null.
- On-site checkouts
- Catalog -> Bibliographic record -> Items -> View item's checkout
history
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This requires that a discharge is added to the patron account first.
Then you'll see that the 'Aready validated discharges' appear within
the white page section.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Note: There is a trick here. If OnsiteCheckouts are active,
the circulation history will be tabbed and not use page-section.
If the pref is off, you'll see the page-section with this patch.
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a .page-section div to various patron-related pages in
order to provide a consistent page structure.
To test, apply the patch and view the following pages to confirm that
the primary page content is wrapped in a container with a white
background:
- Patrons ->
Patron details ->
- Files
- Holds history
- ILL request history
- Notices
- Purchase suggestions
- Routing lists
- Statistics
- Staff interface home page ->
Discharge requests pending
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a page-section div around the csv_profiles list.
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>