* Remove hard-coded granularity for auto-renewal notification event
generation
* Moved schema update changes from 950 seed file into schema files.
* Added CircIsOpen validator to auto-renewal reactor on the off chance
a circ is renewed by the patron in the middle of event processing.
* Notification template formatting and language updates, and removed
debugging content.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
This branch adds the necessary changes to allow Evergreen via the
Action/Trigger system to generate daily automatic renewals of
outstanding loans. Implemented as pair of A/T definitions: Autorenew and
AutorenewNotify.
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Add an icon next to the primary name to indicate the presence of name keywords,
which can be seen via hovering. The name keywords continue to display at the
bottom of the patron summary sidebar.
Also fixes a minor bug where preferred name would display for anyone with
a middle name.
Adds a new set of patron preferred name fields for prefix, first,
middle, last, and suffix allowing patrons to provide preferred name
information. Preferred names are optional and each acts as an overlay
to the analogous primary name field, making it possible to provide
preferred name values for individual fields.
For example, a patron named William Erickson may have a preferred first
name (pref_first_given_name) of Bill, in which case the preferred name
would be Bill Erickson. Note a preferred last name is not required in
this case as the code uses primary name values as defaults when not
replaced with a preferred version.
* Patrons will see primary names displayed in the catalog when set.
* Staff will see both primary name and preferred name in the patron
summary side bar.
* Patron searches for any given name field will search both the primary
and preferred name data.
* Preferred name fields are available in Action/Trigger templates and
are present in various patron-focused print templates.
Name Keywords
Adds a new field to store miscellaneous patron name search terms. These
values are only for searching and do not appear in any interfaces, apart
from the patron summary side bar and the patron edit UI.
Included is a new search field in the patron search UI which searches
keyword values and all other name fields. It's essentially a global patron
name keyword search.
Avoid rendering the tooltip in the middle of a section of overflowed
text, since it can lead to tooltips being pushed far to the right.
Render at top left of cell instead.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Display a tooltip (popover), containing the full grid contents, when
mousing over a grid cell. This allows users to see the full contents of
a cell without having to resize the grid column.
This applies to text contents and pre-compiled HTML contents.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Kyle Huckins [Thu, 15 Mar 2018 18:54:13 +0000 (18:54 +0000)]
lp1744756 Profile Tree Display Entry Admin UI
- Flesh out permission.group_tree_display_entries table.
- Create pgtde IDL class corresponding to new permission.group_tree_display_entries
table.
- Admin UI for Permission Group Tree Entries capable of viewing, adding, removing,
or changing position of entries within tree based on OU.
- Save functionality to persist any changes made.
- Persist changes in positions of permission group display
entries in Admin UI with the Profile Selector in the patron
edit interface.
- Make profile selector use original functionality if there are no
display entries.
Jason Etheridge [Fri, 2 Feb 2018 16:30:36 +0000 (11:30 -0500)]
lp978095 auto-canceling lineitems
"Acq: lineitems display as "on order" even after all copies have been cancelled"
When a copy (lineitem detail) on a lineitem is canceled through the UI, all of
the sibling copies are examined, and if they also happen to be canceled, then a
cancel attempt is made on the parent lineitem.
The cancel reason fed to the lineitem cancelation attempt will be the last
cancel reason on an examined sibling lineitem where Keep Debits is True, or
failing that, the cancel reason used wih the copy just canceled.
The UI will refresh to the lineitem view when such an auto-cancelation happens.
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jane Sandberg [Sat, 31 Mar 2018 13:48:49 +0000 (06:48 -0700)]
LP1760160: Search bar has a different CSS class when on the home page
To test:
1. In templates/opac/css/style.css, add some highly noticeable CSS that
applies to .searchbar-home or an element within .searchbar-home, e.g.
.searchbar-home .search-box {
background-color: purple;
height: 4em;
}
2. Go to the home page of your public catalog. The .searchbar-home .search-box CSS
should have taken effect.
3. Go to another page of your public catalog, such as a search results
or login page. The CSS should not have taken effect here.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP 1768715: Fix pingest.pl bug discovered by Dan Scott of Laurentian U.
Reingest was not happening if all ingests were skipped, except for the
display field reingest. This came down to a matter of two conditional
statements not including checks for the $skip_display variable being
true.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP 1768715: Use named arguments in function calls in pingest.pl.
This makes it work, more or less, with Evergreen 3.0 and the changes
to metabib.reingest_field_entries. Note that the new skip_display
parameter is not set, so you might get collisions between the browse
ingest and one of the other ingest processes if they both work on the
same record at once.
I will make a branch for use with Evergreen 3.0 until I upgrade to
Evergreen 3.0 and merge that branch into master.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP 1768715: Add database connection parameters to pingest.pl command line.
This will serve as the model for future Perl scripts that need to
connect to the PostgreSQL database with DBI. I may go back and alter
the existing scripts to use this method.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jason Stephenson [Mon, 11 Apr 2016 16:25:57 +0000 (12:25 -0400)]
LP 1768715: Make the pingest.pl --pipe option be greedy.
The --pipe option is used with pingest.pl now assumes that that any
string of digits in the input is a record id. Instead of using just
the first string of digits on a line, as it did before, it now uses
each string of digits on a line.
Signed-off-by: Jason Stephenson <jstephenson@mvlcstaff.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jason Stephenson [Mon, 11 Apr 2016 14:39:02 +0000 (10:39 -0400)]
LP 1768715: Simplify Open-ILS/src/support-scripts/pingest.pl with selectcol_arrayref.
By switching to DBI->selectcol_arrayref in pingest.pl, we can avoid
having to check for references in the main loop. This eliminates an
extra variable and an extra line of code that are no longer needed.
Signed-off-by: Jason Stephenson <jstephenson@mvlcstaff.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP 1768715: Only connect to the database when needed in pingest.pl.
We chagne where we connect and disconnect the database in the parent
process in pingest.pl. There's no point connecting at all if the
--pipe option is used.
Signed-off-by: Jason Stephenson <jstephenson@mvlcstaff.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
With this option, pingest.pl reads a list of record IDs from standard
input, instead of running a query. This is useful if you have a
custom query to output only certain records to reingest and you can
pipe the output into pingest.pl.
Signed-off-by: Jason Stephenson <jstephenson@mvlcstaff.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Add Open-ILS/src/support-script/pingest.pl to do ingests in parallel.
See release notes for details.
NOTE: This and subsequent commits were added from a branch that
preserves the history of the repository from which pingest.pl was
copied. The dates on these commits represent when the code was added
or modified in the source repository. They do not reflect when the
code was added to Evergreen.
Also, pingest.pl predates this commit. The date on this commit was
when the source repository was split into separate directories for SQL
and Perl scripts.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jason Boyer [Wed, 22 Aug 2018 13:07:55 +0000 (09:07 -0400)]
LP1733590: Only Print Selected Items Out
The list of selected items being passed to print_receipt
was being ignored and the whole list of items currently
checked out used instead. This patch uses the list
presented so staff can only print those items that they
want to, such as a small number of items renewed today,
etc.
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
a. bellenir [Wed, 22 Aug 2018 15:33:55 +0000 (11:33 -0400)]
LP#1788417: boolean fields should say 'Yes'/'No' instead of true/false
boolean fields on egGrid use tt2-translated strings for "Yes" and "No"
instead of letting the browser translate the values 'true' and 'false'
(in accordance with the prophecy of XUL)
Signed-off-by: a. bellenir <ab@grpl.org> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Avoid spamming the server with authentication session checks on bad poll
time values. Specifically, never poll more often than once per minute
and avoid integer overflow on long authentication timeout values
(greater than about 24.8 days) resulting in the poll running with an
effective timeout of zero and spamming the server with API calls.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Bill Erickson [Fri, 10 Aug 2018 16:16:57 +0000 (12:16 -0400)]
LP#1724029 Patron search API returns correct order
Avoid use of max_chunk_size in patron search API as it results in
streaming responses in the wrong order. Use max_bundle_count instead,
which does not suffer from the sorting issues. What's more, its purpose
and affect is easier to grasp in the code.
Bundle count is set to 5 so the API will begin returning results at most
5 patrons into the data fleshing process.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
a. bellenir [Fri, 8 Jun 2018 15:42:53 +0000 (11:42 -0400)]
LP#1775216: inconsistent copy counts between opac and staff client
opac version of copy counts was including copies under deleted call numbers
more discussion here: http://irc.evergreen-ils.org/evergreen/2018-06-08#i_363334
Signed-off-by: a. bellenir <ab@grpl.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
a. bellenir [Tue, 5 Jun 2018 19:56:24 +0000 (15:56 -0400)]
LP#1775216: inconsistent availability counts between staff client and opac
update asset.staff_ou_record_copy_count to get an accurate available count.
borrow asset.opac_ou_record_copy_count's logic for counting available copies
so that statuses with is_available set to 't' in config.copy_status are used
instead of using the hardcoded status id list (0,7,12)
Signed-off-by: a. bellenir <ab@grpl.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
We missed one instance of cart when changing everything over to baskets. Also,
I updated language for clearing a basket after placing a hold to make it a
little clearer.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
The public catalog now displays checkboxes on the bibliographic and
metarecord constituents results pages. Selecting one or more titles
by using the checkboxes will dynamically add those title to the
temporary list, which is now renamed the basket.
Above the results lists there is now a bar with a select-all checkbox,
a link to the basket management page that also indicates the number of
of titles in the basket, and a link to remove from the basket titles that
are selected on the currently displayed results page.
The search bar now includes an icon of a basket and displays the number
of titles currently in the basket. Next to that icon is a menu of basket
actions.
The basket actions available are Place Hold, Print Title Details,
Email Title Details, Add Cart to Saved List, and Clear Cart. In the
web staff client, the basket actions also include Add Cart to Bucket.
When an action is selected from this menu, the user is given an
opportunity to confirm the action and to optionally empty the basket
when the action is complete. The action is applied to all titles
in the basket.
Clicking on the basket icon brings the user to a page listing the
titles in the basket. From there, the user can select specific records
to request, print, email, add to a list, or remove from the basket.
The list of actions on the record details page now provides separate
links for adding the title to a basket or to a permanent list.
The permanent list management page in the public catalog now also
includes batch print and email actions.
Additional information
++++++++++++++++++++++
* The checkboxes do not display on the metarecord results page, as
metarecords currently cannot be put into baskets or lists.
* The checkboxes are displayed only if Javascript is enabled. However,
users can still add items to the basket and perform batch actions on
the basket and on lists.
* A template `config.tt2` setting, `ctx.max_basket_size`, can be used to
set a soft limit on the number of titles that can be added to the
basket. If this limit is reached, checkboxes to add more records to the
basket are disabled unless existing titles in the basket are removed
first. The default value for this setting is 500.
Developer notes
+++++++++++++++
This patch adds the the public catalog two routes that return JSON
rather than HTML:
The JSON response is a hash containing a mylist key pointing to the list
of bib IDs of contents of the basket.
The record parameter can be repeated to allow adding or removing
records as an atomic operation. Note that this change also now available
to `/eg/opac/mylist/{add,delete}`
More generally, this adds a way for EGWeb context loaders to specify that
a response should be emitted as JSON rather than rendering an HTML
page using `Template::Toolkit`.
Specifically, if the context as munged by the context loader contains
a `json_response` key, the contents of that key will to provide a
JSON reponse. The `json_response_cookie` key, if present, can be used
to set a cookie as part of the response.
Template Toolkit processing is bypassed entirely when emitting a JSON
response, so the context loader would be entirely reponsible for
localization of strings in the response meant for direct human
consumption.
Bill Erickson [Tue, 7 Aug 2018 18:27:47 +0000 (14:27 -0400)]
LP#1718032 Patron merge honors group perms; no self-merge
Ensure the staff performing a patron merge have sufficient permission to
edit all users involved in the merge process, in addition the
MERGE_USERS permssion.
Prevent staff from merging their own logged in account.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Garry Collum [Sun, 10 Jun 2018 04:08:53 +0000 (00:08 -0400)]
LP#1752891 Crowded text on Print Item Labels page fix.
This patch replaces an h4 style used for labels for dropdown lists, removes a blue background, and changes the style of the title of the page. All to make this page look more consistent with other pages in Evergreen. Also removes some unnecessary extra divs and makes the bootstrap columns for the top form more consistent.
Fixes an issue which caused an exception to be thrown during non-cat
item checkout in the browser client, preventing the checkout from being
properly displayed in the checkout page, the Items Out list, and on the
receipt.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Mike Rylander [Fri, 7 Jul 2017 19:34:57 +0000 (15:34 -0400)]
LP#1702978: memcache Remove method used in a variadic way
Related to the OpenSRF branch on this same bug, the prevents Evergreen from
using a to-be-non-variadic memcache method in that way. This prevents issues
for memcache keys that contain a %.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
Bill Erickson [Tue, 7 Aug 2018 21:41:23 +0000 (17:41 -0400)]
LP#621459 Clear Z39 overlay target message after overlay
Reset the "Record with TCN XXX marked for overlay." message to show "No
record marked for overlay." once the overlay target is cleared after a
Z39 overlay.
Removed an errant '"' in the overlay message.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
LP 1780660: Add more workstation functions to OpenILS::Utils::TestUtils.
Add methods find_or_register_workstation($name, $lib) and
find_workstation($name, $lib) to OpenILS::Utils::TestUtils. These can
be used when writing tests or other scripts to find or create
workstations.
The following Perl live tests were updated to use the new methods
rather than their hand-rolled versions:
1. Install Evergreen from this branch.
2. Load the Concerto dataset.
3. Start Evergreen services with osrf_control.
4. cd to the perlmods source directory.
5. Do 'make livecheck' and see that all tests pass, particularly the 4
mentioned above.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
This commit uses egGrid's indexValue API to identify the clicked row rather
than depending on grid row order when checking whether the that row is
currently selected. This is a generalized fix for all grids.
Signed-off-by: a. bellenir <ab@grpl.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Once the offline block list download button is clicked, it's disabled to
prevent any possibility of double-clicks. The shared worker also
reports a more meaningful error in case a double-click sneaks past.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Bill Erickson [Fri, 22 Jun 2018 14:56:02 +0000 (10:56 -0400)]
LP#1768947 Offline xact presence is cached; show date
Maintain an entry to the object date cache table indicating the time of
the most recent offline transaction entry. This data is used on the
login page to determine if offline transactions exist, so the staff
logging in can be notified. We do this in lieu of checking the offline
transaction table, since that table only exists in the offline UI.
As a bonus, since we know the last transaction add time, display this
information in the login page offline xact alert panel.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Move the lovefield database access logic into a shared web worker
script. This ensures the only one connection (per schema) can exist,
avoiding data integrity problems caused by having multiple tabs writing
to the database at the same time.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
As with a single getItem() call, the batch version of the call, when
making server requests, will migrate any settings necessary from
localStorage to server settings.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Adds a new "Server Workstation Prefs" tab to the stored preferences
workstation admin interface. From here, users can view which
preferences are stored as server-stored workstation preferences and
delete select values.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Adds a new config.workstation_setting_type table for managing
workstation-specific settings.
Adds new PG and perl API functionality for determining values for
settings which may be represnted as workstation, user, and/or org unit
settings.
Teaches the AngularJS browser client to load and apply most settings at
the server. Values for settings stored in localStorage/Hatch are migrated
to server settings at time of next use.
Stock workstation setting types added to accommodate most browser client
settings.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>