Commit graph

1372 commits

Author SHA1 Message Date
d02e91f269 Bug 29859: Use iterator instead of as_list
On bug 29844 we decided to remove wantarray from Koha::Objects->search.
Reviewing the difference occurrences I found some unnecessary uses of ->as_list,
where iterators should be used instead.

This patch only removes the obvious places, not the tricky ones.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2022-02-09 15:36:23 -10:00
9bf19f628a Bug 29847: Make Koha::Patron::HouseboundProfile->housebound_visits return a resultset
This patch makes the method consistent with the rest of the codebase, by
making it return a proper resultset.

To test:
1. Run:
   $ kshell
  k$ prove t/db_dependent/Patron/HouseboundProfiles.t
=> SUCCESS: Tests pass!
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass!
4. Check the UI hasn't got broken either.
=> SUCCESS: It hasn't!
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2022-02-09 15:36:23 -10:00
db0ebb3ab5 Bug 29844: Simplify Koha::Clubs->get_enrollable
This patch removes the wantarray use in Koha::Clubs->get_enrollable and
adjusts the callers.

Also, reference to some unused params in Koha::Patron clubs-related
methods are removed as well.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2022-02-09 15:36:23 -10:00
081fbd2466 Bug 26102: Prevent XSS when To.json is used: guarantor_search.tt
To test, edit a patron record and go through the process of adding a
guarantor. In the guarantor search results table the address should be
displayed correctly.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2022-02-02 21:05:29 -10:00
ead3c624b6 Bug 29820: Set paging option using boolean instead of string
Bug 28450, "Make Account summary print tables configurable," added
DataTables to the print summary view. The updated page includes the
wrong option:

"paging": "false",

It should be:

"paging": false,

Because DataTables expects that option to be boolean (true or false).

To test, apply the patch and check out to a patron who has more than 20
checkouts and more than 20 holds.

 - From the toolbar, click Print -> Print summary.
 - On the acount summary page, confirm that the "Items checked out" and
   "Pending holds" tables show ALL entries, not just the first 20.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2022-01-18 21:15:05 -10:00
093cffe7c1 Bug 29735: Remove flatpickr init from categories.js and holds.js
Same as bug 29394, we want the flatpickr instanciations be done at the
same place, from calendar.inc. That way they will all behave
identically.

Test plan:
Edit a patron category and confirm that the "until date" calendar has
the "yesterday" and "today" dates disabled

Place a hold on an item, go to the patron detail page, click the "holds"
tab, suspend.
That should trigger a modal that will display a calendar with
"yesterday" and "today" dates disabled

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2022-01-13 16:37:33 -10:00
efce19392f Bug 29491: Improve display of notices in patron details
This patch updates the patron notices list so that notices are shown in
a modal dialog instead of inline in the table. The "Resend" button is
shown in the modal window controls.

To test, apply the patch and locate a patron in the staff interface with
multiple sent notices.

- View the patron's "Notices" tab.
- In the table of notices, click one of the notice titles.
- A modal window should appear with the notice subject as the header
  and the notice content in the main body of the modal.
  - If the message has any other status than 'pending' there should be a
    "Resend" button in the modal footer. Confirm that it submits the
    form and resends the correct message.
  - Try viewing multiple notices to confirm that the contents of the
    modal are correctly updated for each message.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2022-01-13 16:37:32 -10:00
2abdce7c94 Bug 29491: (preparatory step) Reindent template
Step 1: Replace tabs with spaces and reindent. This patch should include
only whitespace changes. If you view the diff while ignoring whitespace
there should be no changes.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2022-01-13 16:37:32 -10:00
c9263fe32e Bug 29289: 'Show fines to guarantor' should have its own id on patron detail page
This patch adds an id attribute to the list item containing the "Show
fines to guarantor" information on the patron detail page in the staff
interface. This makes it consistent with the markup for the similar
"Show checkouts to guarantor" list item.

To test, apply the patch and view a patron's details in the staff
client. Inspect the source to confirm that the "Show fines to guarantor"
line has an id, "patron-privacy_guarantor_fines".

Alternatively, add this to the IntranetUserCSS system preference: #patron-privacy_guarantor_fines { background-color: pink; }

The line on the patron details page should be highlighted in pink.

Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2021-12-21 21:10:07 -10:00
fab3f92cd0 Bug 28377: Use the API to suspend/resume holds
This patch makes the patron page (detail and circulation) use the API to
suspend/resume holds on the holds tab.

It previously used the old svc/ scripts we plan to replace.

To test
1. Have a patron with some holds
2. Play with suspending/resuming holds. Include the indefinite
   suspension.
=> SUCCESS: Everything works as usual
3. Apply this patch
4. Repeat 2
=> SUCCESS: Nothing changed, a soft breeze surprises you
5. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2021-12-16 12:13:51 -10:00
Andreas Roussos
8cb4aeca8c Bug 29513: Convert remaining breadcrumbs div blocks into nav
As per https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=27846#c0,
breadcrumbs should adhere to the WAI-ARIA Authoring Practices. Most Staff
Client template files have already been fixed, but there were a few that
were missed.

This patch fixes that.

Test plan:
1) Apply this patch.
2) Visit these pages in the Staff Client:
   Home > Acquisitions > TestVendor > Basket TestBasket (1) for TestVendor (*)
   Home > Administration > Set library checkin and transfer policy (**)
   Home > Patrons > Merge patron records (***)
   ...and confirm that the breadcrumbs display correctly.

   (*) Can be accessed by creating a test basket for a test vendor
   (**) Can be found under Administration -> Patrons and circulation
   (***) Can be found by trying to merge two Patron records

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2021-12-01 21:38:12 -10:00
bcfd3849a9 Bug 29394: Remove flatpickr instantiations from most of the tt files
We must reduce the instantiations as much as possible to take advantages
of the default values and specific behaviours we have defined in
calendar.inc

This patch is suggesting to have a .flatpickr class and using the data
attributes:
- flatpickr-futuredate
- flatpickr-pastdate
- flatpickr-enable-time
- flatpickr-on-close-focus

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-11-22 11:48:45 +01:00
e4efbe396a Bug 29430: Table cell click doesn't activate buttons in patron search
Bug 15812 included a change which allows a click on the patron
search results table cell to toggle the checkbox it contains. This patch
modifies that click event so that it fires the change() event which is
required for toggling the "Add to patron list" and "Merge patrons"
buttons.

To reproduce this problem, perform a patron search in the staff client
which will return multiple results.
 - In the first column containing checkboxes, click in the empty part of
   the table cell. The checkbox should be checked.
   - However, the "Add to patron list" button remains disabled.
  - Clicking a table cell to check another checkbox should result in the
    "Merge selected patrons" button being enabled, but it doesn't.

To test, apply the patch and repeat the process above. The behavior of
the buttons should be the same whether you're clicking the checkbox
itself or the table cell it's in.

Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>

Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-11-08 11:42:07 +01:00
cc3a129db8 Bug 29411: Redirect to circulation if circsearch is true
TO test:
 1 - Have a patron with a unique surname i.e. Acosta
 2 - Enter the surename into 'Search patrons' box on staff homepage
 3 - You are redirected to 'members/moremember.pl'
 4 - Enter the surname into 'Check out' box at top of page
 5 - You are redirected to 'members/moremember.pl'
 6 - Apply patch
 7 - Enter the surename into 'Search patrons' box on staff homepage
 8 - You are redirected to 'members/moremember.pl'
 9 - Enter the surname into 'Check out' box at top of page
10 - You are redirected to 'circ/circulation.pl'

Signed-off-by: Owen <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-11-05 12:17:08 +01:00
91d1d3daeb Bug 29261: Add missing html filters
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-11-04 09:24:59 +01:00
a1f074ee8d Bug 28450: Make Account summary print tables configurable
This patch adds table settings for the three tables which appear on the
patron's "Print summary" view. This will allow the administrator to
set a default configuration for columns on the print summary page.

To test, apply the patch and restart-all to load the revised columns
settings YAML. Rebuild the staff interface SCSS
(https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_client).

- Go to Administration -> Table settings -> Circulation.
- Under the "Circulation tables" heading you should see a "Jump to" link
  to "print_summary."
- In the settings for the print_summary page you should see three
  tables: print-summary-checkouts, print-summary-fines, and
  print-summary-holds.
- Locate a patron account which has checkouts, fines, and holds.
  - From the patron detail view click "Print -> Print summary."
  - A new window should open with the print summary view. All tables
    should display correctly.
  - Test that the "Columns" buttons work correctly to show and hide
    columns.
- Make changes to the default settings for these tables to confirm that
  they work on the print summary page.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-11-03 15:40:52 +01:00
Katrin Fischer
aa2d8b024f Bug 24406: Wrap patron category type code in a span on patron search results
The patron category type code (A, C, O, ...) is currently displayed in the
patron module search and the patron card creator and acquisition patron searches.

This information is not useful for most users, as these are internal codes
that cannot be easily "decoded". And while you might be able to guess A as
Adult in English, it doesn't translate to other languages.

This patch wraps a span around the patron category type code shown
in () after the patron category.

To test:
- Verify for each of the following three searches, that the patron category code
  displays in the search results, but is wrapped in a span with the class
  patron_category_type
- Tools > Patron card creator
  - New > New card batch > Add patrons
  - Search for patrons
- Patrons
  - Search for patrons
- Acquisitions
  - Add a budget
  - Add a fund for the budget
  - Search for a user or owner to add

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-11-03 15:40:52 +01:00
4f57531d14 Bug 29261: (bug 15812 follow-up 3) Fix translation issue in include file
This is getting messy. No idea how I tested the previous patches but it
was not working, the problem still persisted.

This patch is using the I18N TT plugin to make things easier and fix the
original problem.

Test plan:
Apply the patch
perl translate update fi-FI
Edit misc/translator/po/fi-FI-messages.po
Locate and translate "Check out"
 61 #: koha-tmpl/intranet-tmpl/prog/en/modules/members/tables/members_results.tt:20
 62 msgid "Check out"
 63 msgstr "Laina"
Locate and transate "View"
 182 #: koha-tmpl/intranet-tmpl/prog/en/modules/members/tables/members_results.tt:22
 183 msgid "View"
 184 msgstr "Nayta"
Apply the change to the fi-FI templates
perl translate install fi-FI

Now enable the fi-FI in the lang syspref, search for patron and confirm
that the result view is displayed correctly.
Note that the "Check out" and "View" strings are correctly translated
(when you hover the cardnumbers or patron's names)

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-11-03 15:40:52 +01:00
204ded1950 Bug 29261: (bug 15812 follow-up 2) Fix translation issue in include file
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-28 17:32:34 +02:00
Katrin Fischer
6d7066e309 Bug 29309: (follow-up) Change 'Pay fines' to 'Pay charges'
Fixes another occurence of the fines to charges.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-25 14:08:06 +02:00
e1622fdf6f Bug 29227: Patron messaging preferences digest show as editable but are not
On moremember.pl we load the messaging preferences for display only, we do
not need to load the JS for editing the preferences

To test:
0 - Enable EnhancedMessagingPreferences
1 - Load the detais tab for a member
2 - Note the digest column in messaging preferences is clickable
3 - Apply patch
4 - Reload, it is not clickable
5 - Confirm editing the patron (or their messaging prefs) works as expected

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-25 14:08:06 +02:00
79960f3c65 Bug 29278: Fix selector of hint used to show age
This patch modifies the patron entry form to correct a problem with the
write_age() function introduced by the switch to Flatpickr on this page
(Bug 28937).

Rather than selecting the element based on the sequence of elements on
the page, we should add an ID for direct selection.

To test, apply the patch and go to Patrons.

- Locate a patron record which has a date of birth saved.
  - When you open that patron for editing, you should see their age
    displayed below the date of birth input field, e.g. "Age: 23 years 9
    months."
  - Changing the date in the date of birth field should update the age
    string correctly.
- Go to Patrons -> New patron.
  - The date of birth field should have a hint showing the required date
    format, e.g. "(DD.MM.YYYY)".
  - When you select a date of birth using the Flatpickr calendar the age
    string should be updated correctly.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-25 13:56:35 +02:00
417f03142a Bug 28867: (follow-up) Make error message translatable
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-21 12:24:04 +02:00
f64cc6b472 Bug 28867: Use Bootstrap button menu and modal for adding patrons to lists
This patch reworks the controls for adding patrons to a list from the
patron search results page. The <select> is converted to a Bootstrap
dropdown menu, and the list creation form is moved into a Bootstrap
modal.

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_client).

- In the staff interface, perform a patron search that will return
  multiple results.
- In the toolbar at the top of the search results you should see two
  disabled Bootstrap-styled buttons: "Add to patron list" and "Merge
  selected patrons."
- The "Select all" and "Clear all" links should work to enable and
  disable the toolbar buttons.
- "Clear all" and then check the checkbox next to one of the results.
  The "Add to patron list" button should be enabled.
- Check a second checkbox. The "Merge selected patrons" button should be
  enabled.
- Test the "Add to patron list" button. It should trigger a dropdown
  menu listing existing patrons lists and a "New list" link.
  - Test adding to an exising patron list. It should trigger a message
    at the top of the page which shows a link to that list.
  - Test adding to a new list. It should trigger a Bootstrap modal where
    you can enter the name of the new list.
    - Submitting the list title form should close the modal and trigger
      the display of the message showing how many patrons were added to
      your new list. The link to the new list should be correct.
- Test the "Merge selected patrons" button. It should send the selected
  patrons to the patron merge screen.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-21 12:24:04 +02:00
d0ab4f292d Bug 28084: Standardize: Cardnumber, Card number, Card
This patch modifies templates so that instances of "cardnumber" are
replaced with "card number."

Some instances where the word "card" is used by itself have been updated
to "library card" to add some context.

To test, apply the patch and view the following pages:

- Circulation -> Built-in offline circulation interface -> Submit the
  "Check out" form without entering  number. Check the alert message
  which appears.
- Go to Administration -> System preferences and enable the
  AutoMemberNum system preference and use the BorrowerMandatoryField
  preference to make card number mandatory.
  - Go to Patrons -> New patron. The hint under the "Card number" field
    should refer to "card number" instead of "cardnumber."
- Go to Tools -> Import patrons.
  - Under the page heading, the note should read "If a card number
    exists..."
  - Under "Field to use for record matching" you should see a "Card
    number" option in the menu.
  - If you try to import a CSV with an invalid card number you'll see an
    error message, "Card number X is not a valid card number."
- Under Tools -> Upload patron images, check the "image file" radio
  button. The card number field label should read "Enter patron card
  number."
- Log in to the OPAC as a patron whose card has been marked lost. Try to
  place a hold. You should see a message containing "please take your
  library card to the circulation desk"
  - On the "your summary" page you should see a message, "Your library
    card has been marked as lost or stolen."
  - Try to check out an item to this patron in the self-checkout system.
    You should be shown a message, "This library card has been declared
    lost."

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-21 12:24:04 +02:00
b5da108e35 Bug 29215: (bug 3137 follow-up) Fix guarantor block toggle
The guarantor template must be kept hidden, always.

Test plan:

Edit a patron with a guarantor, click the legend of the "patron
guarantor" block and confirm that the template is not shown

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-21 10:09:50 +02:00
47528bffe2 Bug 29261: (bug 15812 follow-up) Fix translation issue in include file
Strings must be surrounded by double quote or it wil break the translate
script.

Without this patch you get:
  5  "dt_name":
  6  "<a %]\"="%]\""
in the translated template and the UI explodes with "Template process
failed: file error - parse error"

Test plan:
Apply this patch, update PO files for a given language, translate
"View". Search for something like:
  msgid "\\\"View\\\""
  msgstr "\\\"Näytä\\\""
Remove fuzzy.
Install the language and search for patrons

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-21 10:04:38 +02:00
e6d635ec86 Bug 29240: Rename start_for with date_to
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-19 14:08:09 +02:00
30196fcdf3 Bug 29240: Centralise from/to handling
This patch moves to using a data-start_for attribute to point the 'from'
flatpickr to the 'to' flatpickr.

We also fix the date validation issue in the onClose handler inline.

Test plan.
1. Check that the from/to datpicker combinations work on each of the
   changed pages.
2. Look at the console for errors, there should be none

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-19 09:50:08 +02:00
ef089661ff Bug 15812: (follow-up) Enable click cell to select
This patch adds handling to allow clicking anywhere in the table cell to
select/deselect the patron

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-14 09:19:30 +02:00
3ddfe42eeb Bug 15812: (follow-up) Tweaks to patron results display
Move the button into the actions column and make 'cardnumber' a link to
checkout, with a tooltip.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-14 09:19:30 +02:00
cd4f18471a Bug 15812: (follow-up) Add permission check for 'Check out' button
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-14 09:19:30 +02:00
c7a7e45812 Bug 15812: Use patron search in place of circ search
The 'Checkout' search hijacks some of the DataTables searching code used for 'Search patrons'
Rather than try to implement the search again on another page, we can simply send the user
to the patron search if the cardnumber is not found

Additionally, this patch adds a 'Check out' button to the patron search results to allow
going to checkotus directly

To test:
1 - Apply patch
2 - Perform a 'Checkout' search from the header
3 - Note that:
    For a cardnumber, you are redirected directly to checkouts page for the borrower
    For a search with one result, you are redirected directly to the checkout page for the borrower
    For a search with many results, you are redirected to the patron search results
    and there is a 'Checkout' button under the cardnumber
4 - Confirm circulation page works as expected (i.e. checkout to a patron)

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: George Williams <george@nekls.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-14 09:19:30 +02:00
87e53a3352 Bug 27725: Use JavaScript to set history state during patron search
This patch modifies the patron search page so that clicks on the "Browse
by last name" letters add an entry to the browser history, allowing the
user to click back and forth from results while preserving their search.

To test, apply the patch and go to Patrons in the staff interface.

- Click one of the "Browse by last name" letters.
- The table of search results should load the correct data.
- In the browser's location bar you should see a query string added to
  the URL, e.g. /cgi-bin/koha/members/members-home.pl?firstletter=Q
- Click another letter.
- Click the back button. You should be returned to the search results
  for your first letter choice.
- Clicking the forward button should work correctly as well.
- Other patron searches (header search, sidebar search) should continue
  to work as expected.

EDIT: Clear single-letter querystring history item if only one result
was returned.

EDIT 2: Fixed handling of history state changes so that forward and back
buttons work correctly.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Bug 27725: (follow-up) Remove code for clearing search results

This patch removes code which cleared search results if there was no
first-letter search. It was unnecessary for the letter search
functionality and made all other searches fail.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-07 11:18:29 +02:00
83c3b10a8a Bug 26544: Add housebound details to delivery page
To test:
1. Turn on the housebound module
2. go to the housebound for a given patron /cgi-bin/koha/members/housebound.pl?borrowernumber=X
3. add some housebound details, fill out all the fields
4. Go to 'Add a new delivery'
5. No housebound details, hard to know what the patron likes or days to deliver!
6. apply patch
7. Go to 'Add a delivery'
8. See the housebound details, yay! All the line breaks should be preserved.

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-07 11:07:04 +02:00
02db36b95c Bug 29083: Update article requests-related Koha::Patron methods to use relationships
This patch makes Koha::Patron->article_requests use the underlying DBIC
relationship and _new_from_dbic instead of a plain search. It also
refactors 'article_requests_current' and 'article_requests_finished' to
use ->article_requests, as well as the new methods introduced by bug
29082 for filtering.

No behavior change should take place.

To test:
1. Apply the unit tests patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/Patron.t \
           t/db_dependent/ArticleRequests.t
=> SUCCESS: Tests pass!
3. Apply this patch
4. Repeat 2
=> SUCCESS: Tests pass!
5. Sign off :-D

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 29083: Unit tests

This patch adds missing tests for Koha::Patron->article_requests and
moves (and extends) tests for 'article_requests_current' and
'article_requests_finished' that were originally in ArticleRequests.t
into Koha/Patron.t as we now do.

To test:
1. Apply this patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/ArticleRequests.t \
           t/db_dependent/Koha/Patron.t
=> SUCCESS: Tests pass!

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 29083: (QA follow-up) Remove unused param

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 29083: Fix OPAC listing of article requests

This patch makes the OPAC template reuse a precalculated value for the
active article requests for the patron (and its count).

The original code relied on the methods returning a list, which is not
the case for _new_from_dbic until bug 28883 is pushed.

This patch fixes that.

Note: there was an odd behavior when ArticleRequests was enabled but no
active article requests were present: the tab wasn't rendered but the
'empty table' with the 'You have no article requests currently.' message
was displayed below the Checkouts tab. I'm not sure that was caused by
this patches, or other. Fixed on this patch.

To test:
1. In the OPAC, go to 'your summary'
=> FAIL: Things don't show for article requests
2. Add some article requests and repeat 1
=> FAIL: Something's wrong there
3. Apply this patch and repeat 1
=> Yes! Things show correctly!
4. Cancel all your article requests
=> SUCCESS: Things render as they should
5. Re-enter the 'your summary' page (to force re-rendering)
=> SUCCESS: Things render correctly for empty article requests
6. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Bug 29083: Remove article_requests_finished and article_requests_current

This patch removes those methods that are not really needed. Templates
are adjusted to use the expected combination of
->article_requests->filter_by_current.

To test:
1. Apply this patch
2. Visit a patron with article requests
=> SUCCESS: All works
3. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/Patron.t
=> SUCCESS: Tests pass, less tests.
4. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-10-07 10:54:59 +02:00
da758626fe Bug 28772: Display API secret once
This patch makes the apikeys.pl display the generated API secret once,
when generated. After that, it won't be displayed by the UI.

To test:
1. Generate a new API key
=> FAIL: The secret is displayed in the API keys table
2. Visit some other page, and go back to the API keys page
=> FAIL: The API key secret is there
3. Apply this patch
4. Go to More > Manage API keys
=> SUCCESS: It no longer displays the secret
5. Generate a new API key
=> SUCCESS: The API key details (including the secret) are displayed.
=> SUCCESS: A message telling to copy the secret because it won't be
            displayed again is shown.
6. Repeat 4
=> SUCCESS: The secret is no longer displayed
7. Sign off :-D

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-09-30 09:19:05 +02:00
e5f1ada249 Bug 28937: Use Flatpickr on circulation and patron pages
This patch replaces the use of jQueryUI's datepicker on circulation and
patron-related pages.

The patch modifies Flatpickr's default configuration (in calendar.inc)
so that it has the following features:

 - A Flatpickr input with a "futuredate" class will require that the
   selected date be after today.
 - The Flatpickr input field will be wrapped in a container to
   facilitate better CSS styling.
 - Generic handling of paired date fields is enabled using
   ".flatpickrfrom" and ".flatpickrto" field classes. This mimics the
   same feature we have for jQueryUI datepickers using ".datepickerfrom"
   and ".datepickerto".

This patch also removes an unused function which was repeated in three
templates: validate1.

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_client).

- Go to Circulation and check out to a patron.
  - Open the Restrictions tab and click "Add manual restriction."
    - In the "Expiration" field, test that the Flatpickr widget works
      correctly and limits to dates after today.
  - Enable the SpecifyDueDate preference if necessary.
    - Test the behavior of the SpecifyDueDate controls: Setting a date,
      clearing a date, session persistence.
- Enable the SuspendHoldsIntranet system preference if necessary.
  - Check out to a patron with existing holds.
    - Open the Holds tab and click the "Suspend" button for one of the
      holds.
      - In the modal window which appears, check that the Flatpickr
        widget works correctly and limits to dates after today.
      - At the bottom of the table of holds, test that the "Suspend all
        holds" Flatpickr works correctly and limits to dates after
        today.
        - Perform this same test from the patron details page.
- Enable the  BatchCheckouts system preference if necessary.
  - Open a patron record and click "Batch check out" in the left-hand
    sidebar menu.
    - Test that the "Hard due date" Flatpickr works correctly as a date
      and time picker.
- Go to Circulation -> Overdues.
  - Test that the date due filters in the sidebar work correctly and
    are linked, e.g. the "to" field cannot be before the "from" field.
     - Perform the same test here: Circulation -> Holds to pull; and
       here: Circulation -> Hold ratios.
- Enable the  HouseboundModule system preference if necessary.
  - Check out to or view details of a patron.
    - Click "Housebound" in the sidebar menu.
      - Save delivery day and frequency settings for that patron.
      - Click "Add a new delivery."
      - Test that the "Date" Flatpickr widget works correctly.
- Go to Patrons -> A patron record -> Edit.
  - Test that Flatpickr widgets work on the following fields:
    - Date of birth
    - Registration date & Expiration date (linked).
    - Patron restrictions -> Add manual restriction -> Expiration.
- View a bibliographic record and start the process of placing a hold.
  - After selecting a patron, test the "Hold starts on" and "Hold
    expires on" date fields. The fields should be linked and each
    should limit to future dates.
  - Confirm that the dates are saved correctly when you submit the
    hold.
- Locate a bibliographic record with multiple holds and view the holds.
  - In the table of holds, test each date field: Date, expiration, and
    suspend-until.
- Test that Flatpickr's static "formatDate" method is working
  correctly:
  - Locate a bibliographic record's item so that there is text in both
    the "Public note" and "Non-public note" field.
  - Check that item out to a patron.
  - After the page reloads the public and non-public notes should be
    shown under the checkout title highlighted in red.
- Check for references to a "validate1" function. There should be none.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-09-29 12:47:33 +02:00
13ad7c7ea0 Bug 28438: Capitalization: Various corrections
This patch makes capitalization corrections to many templates in the
OPAC and staff interface. A exhaustive test plan would be huge, so I
recommend examining the patch to confirm that it contains correct case
changes.

If you want to make it easier to examine changes you can try:
https://github.com/so-fancy/diff-so-fancy

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-09-28 15:12:45 +02:00
Didier Gautheron
bedf8d3b10 Bug 29025: Don't prefill userid and password in user creation form
Recent Firefox versions try to prefill userid and password with
logged in user credentials.

To test
1 - Log in staff as user foo password bar
2 - Save user and password in Firefox
3 - Log out
4 - Log in again, log in pop-up must be pre-filled
5 - Open Create a new patron form
6 - At least password field is pre-filled with logged in user's credentials
7 - Apply patch
8 - Redo 4 and 5
9 - Userid and password fields aren't prefilled

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-09-28 15:12:45 +02:00
bd34a3eead Bug 28803: (QA follow-up) Reinstate UNKNOWN_ERROR in templates
I can't see how this will ever get thrown, but as it's there we should
have the template handling included.

Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-09-28 10:22:36 +02:00
33165bd22e Bug 28803: (follow-up) Error details improvement
This patch updates the exceptions thrown by Koha::Email to include the
parameter that failed email validation and then updates the failure code
to include this parameter and finally display this field in the template.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-09-28 10:22:36 +02:00
9cfbdee6a8 Bug 28803: Add invalid email handling in _send_message_by_email
This patch adds a try/catch block around the call to Koha::Email->create
to catch and handle invalid emails being passed in the parameters.

The message is marked as 'failed' with an error_code of 'INVALID_EMAIL'.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-09-28 10:22:36 +02:00
641c4ffa97 Bug 28882: Disable select/hide all links
We want to prevent non-superlibrarian users to remove superlibrarian
flag.
It's handled already in the controller, but needs to be done
client-side.

Here we are disabling the select/hide all links to remove the remaining
possibility to remove the superlibrarian flag from non-superlibrarian
users.

Signed-off-by: Hayley Pelham <hayleypelham@catalyst.net.nz>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-09-09 10:59:37 +02:00
3f58ecb609 Bug 28882: permission UI allows selection of superlibrarian permission
With bug 20100 and 22150 we allow to select all the permissions but the
superlibrarian permission, to ease the selection. And we also forbid a
non-superlibrarian user to add superlibrarian permission.

However there is something wrong in the JS code and it's possible to add
the superlibrarian permission. The user is getting an ugly 500 and so
the permission change is not done, but the UI checks must be fixed.

To recreate:
Login with a non-superlibrarian user
Edit permission
Clear all
=> You can select the "superlibrarian" permission

Test plan:
Login with a non-superlibrarian user
Try to set the superlibrarian permissions to a user
=> not possible
Try the select all/clear all
=> still cannot set the superlibrarian permission

Work to be done:
Login with a non-superlibrarian user
Edit permissions for a superlibrarian user
=> You can remove it, then cannot add it back
Should we allow removal of superlibrarian permission by
non-superlibrarian user?

Signed-off-by: Hayley Pelham <hayleypelham@catalyst.net.nz>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-09-09 10:59:37 +02:00
3eaa17682c Bug 28810: replace housebould detail inputs with textarea
To test:
1. apply patch
2. enable housebound module
3. go to a patron and look at the housebound tab
4. Edit the detials.
5. The preferred materials, subjects, authors, referral, and note inputs should be replace with much larger textareas.
6. You should now be able to added line breaks, so fill out each of the fields adding some line breaks. I added something like:
Fiction authors: Frank Herbert
Non-fiction authors: Malcolm Gladwell

7. Save changes
8. Now when you look at the housebound details those line breaks should be preserved and much easier to read.

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-08-30 17:02:07 +02:00
ca90632c5d Bug 28346: (QA follow-up) Add -action for consistency
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-08-18 15:10:18 +02:00
8a14278434 Bug 28346: Add classes to account action buttons
This patch adds identifiable classes to each action button that may be
displayed next to an accountline on the borrower account page.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-08-18 15:10:18 +02:00
dd8e23d85c Bug 10902: (follow-up) Account for singleBranchMode
This patch checks singleBranchMode before highlighting the current
branch in search results.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-08-16 11:55:56 +02:00
40a79145df Bug 10902: Highlight patrons from logged-in library in patron searches
This patch alters a few different patron search interfaces so that
patrons from the currently-logged-in library are highlighted in a way
that differentiates them from other patrons.

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_client).

- In Administration -> System preferences, make sure the
  PatronAutoComplete preference is enabled.
- In the "Check out" tab in the header, type a partial patron name which
  will return multiple results and wait for the autocomplete menu to
  appear..
  - Patrons in the autocomplete results should show the branchcode, and
    patrons from the currently-logged-in library should be highlighted
    in green.
- Submit your partial name in the "check out" tab.
  - In the search results the branch name of patrons from the
    currently-logged-in library should be similarly highlighted.
- Go to patrons browse for patrons. These results should be highlighted
  as in the previous steps.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-08-16 11:55:56 +02:00