"Last Copy Inventory" can be misunderstood at first reading as
inventory of the "last copy". "Latest Inventory" seems easier to
understand, and also still goes well with a potential future "All
Inventories" entry in the IDL.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Dan Wells [Thu, 23 Aug 2018 18:34:57 +0000 (14:34 -0400)]
LP#1777675 Re-add missing columns to checkin interface
During one iteration of the inventory code, a box was added to the
interface, and some room was made for it by shrinking these other
interface components.
Since the box is now gone, let's get this row back up to the expected
twelve units of width.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Testing revealed that the grid rows use a different data structure, and
the object member names include dots (periods). Thus, bracket notation
is required to access those members.
This commit also makes a few smaller changes:
- Prevents an error in the Check-in app when a last_copy_inventory
doesn't exist yet.
- Removes the "refresh" parameter from the updateInventory() function,
which is never supplied when called, nor used by the function.
- Adds some brief code comments.
- Add toggle for updating inventory date and workstation on checkin
- Create new table asset.last_copy_inventory containing inventory date and inventory workstation columns.
- Add code to do_checkin subroutine to update last_copy_inventory table on checkin.
- Update Holdings view, Checkins table, copy buckets, and item detail grid and lists to display new
inventory date and workstation information.
- Add Update Inventory action to Item Status detail and list views.
Kathy Lussier [Wed, 29 Aug 2018 21:00:39 +0000 (17:00 -0400)]
LP#1712854: Add wide_hold grid settings to server storage
Adds the new wide_hold grid settings used in the holds shelf and record holds
interfaces to server storage, as is done with other grid settings. Also removes
the legacy eg.grid.circ.holds.shelf and eg.grid.cat.catalog.holds settings.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Mike Rylander [Tue, 28 Aug 2018 16:23:50 +0000 (12:23 -0400)]
LP#1712854: Make use of local cache when moving to All Holds list
Clearing holds takes care of local updates to the hold data, so there is no
need to refetch the hold list when moving from Clearable to All. Actions
that change hold state otherwise do cause a refetch, however.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Mike Rylander [Thu, 19 Jul 2018 00:52:25 +0000 (20:52 -0400)]
LP#1712854: Speed improvements for two hold interfaces
The Hold Shelf and Record -> View Holds interfaces are painfully slow when
faced with a large set of holds. The main reason is the 2-stage process used
to gather the data: 1) find hold IDs for the context 2) for each hold, fetch
all the requisite data using a relatively slow API.
Here we create a new API that provides a streaming response of pre-inflated
hold data. The full result set is loaded immediately, and once loaded, the
grid makes use of the "clientsort" feature to provide fast sorting without
the need to go back to the server when only changing the sort columns and
direction, and when paging through results. The Hold Shelf UI now has a
progress indicator that appears whenever the hold list is retrieved from the
server, and the progress indicator for the Record -> View Holds UI is enhanced
to provide more granular updates.
It is expected that other hold interfaces will be able to make use of this new
API for performance and functionality improvements.
NOTE: This includes an additional change required to protect localStorage from
overlarge values when attempting to save the "last printed value" for future
reprinting. Previously, when attempting to print a 2000+ hold list,
localStorage throws an error and the print fails. Now the print will succeed,
but the value is not stored for reprinting and a message is logged to the JS
console.
NOTE: The original development plan was base this a new API on a native
Postgres materialized view, and provide a LISTEN/NOTIFY daemon to monitor for
events that should trigger a refresh of that view. As it happens, the use of
other new Postgres features (primarily the LATERAL join type) allows us to
avoid that maintenance and run-time complication.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Conflicts:
Open-ILS/web/js/ui/default/staff/services/hatch.js
* 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>