This patch updates the OPAC bibliographic detail page so that it uses
the new WRAPPER syntax to generate tabs markup.
To test, apply the patch and locate a bibliographic record. View the
detail page. Verify that tabs are working, including all the options:
- Holdings
- Other holdings (If OpacSeparateHoldings is enabled)
- Descriptions (MARC notes)
- Subscriptions
- Serial collection (UNIMARC, untested)
- Components (If ShowComponentRecords is enabled. See Bug 11175 for
sample record)
- Comments
- Editions (OPACFRBRizeEditions)
- Html5media (If HTML5MediaEnabled is on. See Bug 8377 for sample
records)
- Images (If OPACLocalCoverImages is enabled)
- NovelistSelect
- Author identifiers (Witgh OPACAuthorIdentifiers enabled, see Bug
29897)
Bonus points for testing these tabs for which I don't have credentials:
- Syndetics TOC
- Syndetics Excerpt
- Syndetics Reviews
- Syndetics AuthorNotes
- LibraryThing for Libraries (with LibraryThingForLibrariesTabbedView
set to "in tabs.")
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To test.
1. On staff home page notice the gear icon necxt to 'Koha
administration' looks different than the others/
2. Apply patch.
3. It looks better.
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch updates icons which are listed as having changed names in
this document:
https://fontawesome.com/docs/web/setup/upgrade/upgrade-from-v4
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
6.3.0
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
1. Turn on RequirePaymentType
2. Create a manual invocie on a patron account
3. Go to pay it, 'Payment type:' is marked as required.
4. In the inscept the select input ( #payment_type ) with your browser's dev tools. Removed the required attribute.
5. You are able to make the payment without a payment type.
6. Apply patch and restart_all
7. Try 4-5 again. This time you should get a 500 error and the payment should not go through.
8. Try a paymnet again this time manipulate the DOM and change the value of 'CASH' to something else like 'SOMETHINGELSE'.
9. Try to submit the payment and again you will get a 500 error. The payment should not go through.
10. Turn RequirePaymentType off. Try a payment with a payment type, you shoud be successful.
11. Make sure tests will pass
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Test plan:
1. Turn on RequirePaymentType
2. Create a manual invocie on a patron account
3. Go to pay it, 'Payment type:' is marked as required.
4. In the inscept the select input ( #payment_type ) with your browser's dev tools. Removed the required attribute.
5. You are able to make the payment without a payment type.
6. Apply patch and restart_all
7. Try 4-5 again. This time you should get a 500 error and the payment should not go through.
8. Turn RequirePaymentType off. Try a payment with a payment type, you shoud be successful.
9. Make sure tests will pass:
prove -v t/db_dependent/Koha/Account.t
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch simply adds hidden inputs to the item parts confirm form
to ensure specified checkin date is retained
To test:
1 - Find or add an item with subfield 3 - materials specified
2 - Enable system preference CircConfirmItemParts
3 - Go to Circulation->Checkin
4 - Click the settings button in the input box and enter a checkin date and select the remeber check box
5 - Check in some items, confirm date retained
6 - Checkin the item with the materials specified
7 - Confirm checkin
8 - Note that checkin date is cleared
9 - Apply patch
10 - Repeat 3-7
11 - Confirm date is retained
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Andrii Nugged <nugged@gmail.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch implements the proposed switch to use the standard DB handle
and only require Koha::Encryption if necessary.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch includes a unit test which checks the memory address
of the $env hashref in middlewares before and after
Koha::Middleware::Env is applied.
It succeeds when the same $env is maintained before and after
this middleware. It fails if the $env has been overwritten with
a new hashref (as evidenced by the new memory address for the
hash).
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch fixes the Koha::Middleware::SetEnv, so that it
preserves the referential integrity of the $env hash
reference as it passes through the pre-process and post-process
stages of middleware wrapped around the core Koha Plack application.
Test plan:
0a. Apply the patch
0b. vi /etc/koha/sites/kohadev/koha-conf.xml
0c. Uncomment "koha_trusted_proxies"
0d. Add "172.0.0.0/8" to the end of the "koha_trusted_proxies"
0e. koha-plack --restart kohadev
1. vi /etc/apache2/sites-enabled/kohadev.conf
2. Add the following to the OPAC virtualhost:
SetEnv OVERRIDE_SYSPREF_LibraryName "The Best, Truly the Best, Koha Library"
RequestHeader add X-Koha-SetEnv "OVERRIDE_SYSPREF_LibraryName The Best\, Truly the Best\, Koha Library"
RequestHeader add X-Forwarded-For "192.168.100.100"
3. service apache2 restart
4. tail -f /var/log/koha/kohadev/plack.log
5. Go to http://localhost:8080/
6. Note that the plack.log lists 192.168.100.100 as the client IP address
7. Note that the title of the OPAC webpage is
"The Best, Truly the Best, Koha Library Library catalog"
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch makes minor changes to the structure of the "Manage MARC
imports" page so that sections are more clearly delineated and forms
have the correct structure.
The patch also shortens the new framework field labels and adds hints
for clarification.
To test, apply the patch and go to Cataloging -> Stage MARC records for
import.
- Import a batch of MARC records.
- Go to Cataloging -> Manage staged records.
- View the batch you just imported.
- You should see three sections:
- A list of information about the batch
- Options for changing the matching rules
- Options for setting frameworks during import.
- Test that the form for applying different matching rules still works
correctly.
- Import a batch of records which contains matches (by, for example,
exporting MARC records from Koha and then reimporting the same
batch)
- On the manage page for that batch try changing the matching rule
applied, switching between "Do not look for matching records" and a
matching rule which will catch the duplicate records.
- Test that your records are imported correctly according to the
framework settings you select, both for new records and for replaced
records.
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>
It was not consistent: indentation, bold, etc.
This patch is suggesting a new style using .page-section and .rows
Is it what we want?
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>
opac-user.tt wants to normalized_oclc number if using syndetics or B&T images
We don't need to fetch it if not, but we need to pass it if so
To test:
1 - Switch all Syndetics prefs to 'Show' or 'Use' except
SyndeticsClientCode = just enter 'test'
2 - Checkout some items to a patron, ensure the records have:
- ISBN
- UPC
- OCLC number
3 - View opac-user.pl (sign in to opac as the user)
4 - View the network console tab (may need to reload)
5 - Note requests like:
https://secure.syndetics.com/index.aspx?isbn=1780335792/MC.GIF&client=test&type=xw10&upc=&oclc=
6 - Note that oclc parameter is not filled for record with an oclc number
7 - Apply patch
8 - Reload
9 - Confirm the link now has oclc as expected
10 - Disable syndetics, enable google books or another source
11 - Confirm images display as expected
JD amended patch: tidy
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
If the end date is not set we should not set it to today.
On bug 30718 the following change was wrong:
-$enddate = eval { output_pref( { str => $enddate, dateonly => 1, dateformat => 'iso' } ); };
+$enddate = dt_from_string($enddate)->ymd;
output_pref returns undef if str is empty
After the change we returned today's date.
Test plan:
1. Go to Serials > Manage numbering patterns
2. Click Edit next to one of the existing patterns (e.g. Number)
3. Enter information in the Test prediction pattern section
- Frequency: choose one (e.g. 1/month)
- First issue publication date: enter a date (e.g. 2023-06-01)
- Subscription length: issues + enter a number of issues (e.g. 12)
- Locale: leave empty
- Begins with: enter a number in the X column, e.g. 42
4. Click Test pattern
=> Without this patch only one issue is shown, no matter how many you enter in Subscription length
=> With this patch applied the end date is not set to today and the
prediction pattern list is correct
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
When the pref is empty, the checkouts table would break.
This avoids it.
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
If a librarian has opted to load the checkouts table automatically on the checkouts page, it will trigger a call to svc/checkouts. If a librarian is checkout out 10 items to a patron, that means svc/checkouts is called uselessly 9 times, with only the 10th time being used to display the checkouts table.
It would be useful to add a delay such that the table only load if the page has been display for a given number of seconds. That way the continuous scanning does not trigger useless svc/checkouts calls, but the librarian also does not need to click the load checkouts button manually.
Test Plan:
1) Apply this patch
2) Run updatedatabase.pl
3) Verify "Always show checkouts immediately" retains its' original
behavior of loading the checkouts table immediately
4) Set LoadCheckoutsTableDelay to a non-zero integer
5) Verify the automatic table loading is delayed by that number of
seconds
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This trivial patch adds a test to the only_current parameter.
To test:
1. Apply this patch
2. Run:
$ ktd --shell
k$ prove t/db_dependent/api/v1/jobs.t
=> SUCCESS: New tests added, and pass
3. Sign off :-D
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Bug 17600 re-add those exports, but the module does no longer have the
subroutines. We should remove these export.
Test plan:
git grep is your friend
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Looking at the code here
if (Koha/Auth/TwoFactorAuth.pmoSelf->{Version}){ #--- auto version select
for(->{Version}=1; ->{Version} <= 40; ++->{Version}) {
last if ({->{Ecc}}->[->{Version}]
>= + ->[->{Version}]);
}
}
in https://metacpan.org/release/KWITKNR/GD-Barcode-1.15/source/Barcode/QRcode.pm#L349
It appears the version parameter is not required, and will default to whatever version has the necessary bits for the input words given
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
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>
Bug 22375 added use of KohaDates without the USE statement.
Test plan:
Make sure you have overdues and go to circ/branchoverdues.pl
Without this patch you get a 500
Template process failed: undef error - : filter not found at /kohadevbox/koha/C4/Templates.pm line 127
With this patch applied you can see the overdue list
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>
If the library name contains non-latin characters, the 2FA registration
process will fail with a JS alert coming from a 500 server-side.
The problem is that Auth::GoogleAuth is expecting an already UTF8 encoded string.
We should set the encoding correctly to make Auth::GoogleAuth deal with
the URL escaping internally correctly, then decode on our own (in the
REST API controller)
Test plan:
* Modify your logged in library name and add some non-latin characters
(eg. "my ❤ library")
* Turn on TwoFactorAuthentication
* Go to your account > More > Manage 2FA
* Click the enable button
=> Notice that you see the QR code and that both "issuer" and "key id"
entries display the library name correctly.
* Test the whole 2FA process, confirm that the library name is correctly
displayed on the app you are using.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch updates the teams.yaml to include the voted in 23.11 release
team and also updates the release date of 22.11 to match the actual
release.
Test plan
1/ Check against https://wiki.koha-community.org/wiki/Release_Teams
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
normalized_oclc is used in the template to build the link to syndetics,
but it's not passed from the controller. Is this patch correct? Is
syndetics broken on this page? Should we remove it or keep it?
Is oclc parameter in the URL unecessary and should be removed?
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To activate Curbside pickups
1- Enable the CurbsidePickup system preference
1.1 Go to Administration > Global system preferences
1.2 Search for CurbsidePickup
1.3 Change the value for 'Enable'
1.4 Click on 'Save all circulation preferences'
2- Configure time slots for at least one library
2.1 Go to Administration > Curbside pickup
2.2 Fill out the form for Centerville (or another library)
Enable: Check
Pickup interval: 10 (or other)
Maximum boss per interval: 3 (or other)
Patron-scheduled pickup: Check
Enable for waiting holds only: DO NOT check
2.3 Add a time slot
In 'New slot', enter
Monday
From: 10:00
To: 12:00
Click on 'Add'
3- Make an appointment from the OPAC
3.1 Go to OPAC
3.2 Open mobile mode
3.3 Connect with a user
3.4 Click on 'Curbside pickups'
3.5 Choose the library in 'Pick a library'
3.6 Choose a date in 'Pickup date'
3.7 Choose a time range in 'Select a time'
3.8 Click on 'Schedule pickup'
=> Notice The table is not responsive
4- Apply the patch
5- Execute 'yarn build --view opac'
6- Clean your cache or open your navigator on private mode (to load updated css files)
7- Perform step 3.1, 3.2, 3.3, 3.4,
8- click on 'Your pickups'
=> Confirm that the CurbsidePickup table are now displayed correctly and is now responsive.
9- Click on 'Charges'
=> Confirm that the Charges table are now displayed correctly and is now responsive.
I correct a little bug. The "suspend_hold" button did not work anymore. This change resets it to it's original state.
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Apply the patch and check for the responsivity of the following tables
1- Go to the OPAC
2- Open mobile mode
3- The following tables are not responsive
- Summary - Clubs
- Summary - Recalls
- Summary - Article requests
- Charges - (relative's)
- Search history - Authority
- Checkout history - All
- Checkout history - Checkouts
- Checkout history - On-site
- Recalls history
- Messaging
- Subscription (serial)
- Course reserves - Courses
- Course reserves - Reserves
- Authority search results
4- Apply the patch
5- Execute 'yarn build --view opac'
6- Clean your cache or open your navigator on private mode (to load updated css files)
7- Perform previous step (1-3)
8- Confirm that the tables are now displayed correctly and is now responsive.
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch applies a different button style and does a couple of clean
up tasks: Removing the redundant sorting-related CSS and moving the
responsive button CSS to _common.scss where other DataTable-related
styles are found.
I think this different button style is more consistent with the OPAC's
design. It also eliminates untranslatable strings from the CSS.
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This attachment correct the placement of the responsive button. It is now in its own column at the last column and the '+' and '-' are remplaced by 'Expand' and 'Unexpand' to make it more clear.
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Some OPAC tables are not displayed well in mobile mode, it is absolutely necessary to scroll to the right to read the content properly
This patch fix this problem by making the tables responsive
To test:
1- Go to the OPAC
2- Open mobile mode
3- Go to a bibliographic record detail page in the OPAC (opac-detail.pl?biblionumber=X)
4- Check the Holdings table
--> the information is not presented in a table as it is when viewing on a laptop or PC browser screen.
--> we see very narrow columns
--> unreadable text
5- Go to to the page 'Summary' (opac-user.pl)
6- Check the 'Checked out' table
--> the information is not presented in a table as it is when viewing on a laptop or PC browser screen.
--> The columns are overflowing to the right
7- Check the 'Overdue' table
--> the information is not presented in a table as it is when viewing on a laptop or PC browser screen.
--> The columns are overflowing to the right
8- Go to the page 'Charges' (opac-account.pl)
9- Click on 'Show all transactions'
--> the information is not presented in a table as it is when viewing on a laptop or PC browser screen.
--> The columns are overflowing to the right
10- Go to the page 'Search history' (opac-search-history.pl)
--> the information is not presented in a table as it is when viewing on a laptop or PC browser screen.
--> The columns are overflowing to the right
11- Apply the patch
12- Execute 'yarn build --view opac'
13- Clean your cache or open your navigator on private mode (to load updated css files)
14- Perform previous step (1-10)
15- Confirm that the tables are now displayed correctly and is now responsive.
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Remove the following 3 options that are not available in perltidy
v20190601 that is the version shipped with bullseye
--add-terminal-newline
--valign-exclusion-list
--extended-continuation-indentation
Extend max line length
--maximum-line-length=120
Prevent perltidy to format lists (see bug 30002 comment 10)
--break-at-old-comma-breakpoints
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>