working/Evergreen.git
21 months agoLP 1768715: Use named arguments in function calls in pingest.pl.
Jason Stephenson [Wed, 4 Oct 2017 16:55:05 +0000 (12:55 -0400)]
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>
21 months agoLP 1768715: Add database connection parameters to pingest.pl command line.
Jason Stephenson [Wed, 4 Oct 2017 15:18:35 +0000 (11:18 -0400)]
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>
21 months agoLP 1768715: Make the pingest.pl --pipe option be greedy.
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>
21 months agoLP 1768715: Simplify Open-ILS/src/support-scripts/pingest.pl with selectcol_arrayref.
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>
21 months agoLP 1768715: Only connect to the database when needed in pingest.pl.
Jason Stephenson [Fri, 1 Apr 2016 14:02:45 +0000 (10:02 -0400)]
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>
21 months agoLP 1768715: Fix bug in pingest.pl after --pipe option was added.
Jason Stephenson [Fri, 1 Apr 2016 14:00:20 +0000 (10:00 -0400)]
LP 1768715: Fix bug in pingest.pl after --pipe option was added.

Apparently, the results of DBI->selectall_arrayref need to be cast to
an array and not just returned as a list.

Signed-off-by: Jason Stephenson <jstephenson@mvlcstaff.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
21 months agoLP 1768715: Add --pipe option to pingest.pl
Jason Stephenson [Thu, 31 Mar 2016 15:39:49 +0000 (11:39 -0400)]
LP 1768715: Add --pipe option to pingest.pl

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>
21 months agoLP 1768715: pingest supports max/min ID, duration, more ops
Bill Erickson [Tue, 16 Feb 2016 17:59:55 +0000 (12:59 -0500)]
LP 1768715: pingest supports max/min ID, duration, more ops

From the new help text:

    --batch-size
        Number of records to process per batch

    --max-child
        Max number of worker processes

    --skip-browse
    --skip-attrs
    --skip-search
    --skip-facets
        Skip the selected reingest component

    --start-id
        Start processing at this record ID.

    --end-id
        Stop processing when this record ID is reached

    --max-duration
        Stop processing after this many total seconds have passed.

    --help
        Show this help text.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
21 months agoLP 1768715: Add pingest.pl to Evergreen.
Jason Stephenson [Mon, 26 Oct 2015 14:32:19 +0000 (10:32 -0400)]
LP 1768715: Add pingest.pl to Evergreen.

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>
21 months agoLP#1732552: Move OPAC login username hint to separate template
Jeff Davis [Wed, 15 Nov 2017 22:36:21 +0000 (14:36 -0800)]
LP#1732552: Move OPAC login username hint to separate template

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
21 months agoDocs: finalizing 3.1.5 release notes
Jane Sandberg [Wed, 22 Aug 2018 20:58:24 +0000 (13:58 -0700)]
Docs: finalizing 3.1.5 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
21 months agoDocs: finalizing 3.0.11 release notes
Jane Sandberg [Wed, 22 Aug 2018 20:57:32 +0000 (13:57 -0700)]
Docs: finalizing 3.0.11 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
21 months agoLP1733590: Only Print Selected Items Out
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>
21 months agoDocs: more release notes for 3.1.5
Jane Sandberg [Wed, 22 Aug 2018 17:22:20 +0000 (10:22 -0700)]
Docs: more release notes for 3.1.5

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
21 months agoDocs: updating 3.0.11 release notes
Jane Sandberg [Wed, 22 Aug 2018 17:18:29 +0000 (10:18 -0700)]
Docs: updating 3.0.11 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
21 months agoLP#1788417: boolean fields should say 'Yes'/'No' instead of true/false
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>
21 months agoLP#1774448 Auth poll spam/timing repairs
Bill Erickson [Thu, 31 May 2018 19:12:55 +0000 (15:12 -0400)]
LP#1774448 Auth poll spam/timing repairs

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>
21 months agoLP#1724029 Patron search API returns correct order
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>
21 months agoLP#1743801: Item Status List Display Issues
a. bellenir [Mon, 4 Jun 2018 18:25:00 +0000 (14:25 -0400)]
LP#1743801: Item Status List Display Issues

Update fm_IDL.xml, establishing circ_as_type as a link to
config::item_type_map.  Flesh this field to display desired value on
client side.

Conflicts:
    Open-ILS/web/js/ui/default/staff/circ/services/item.js

Signed-off-by: a. bellenir <ab@grpl.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
21 months agoLP#1743801: Item Status List View Display Issues
a. bellenir [Thu, 24 May 2018 15:44:28 +0000 (11:44 -0400)]
LP#1743801: Item Status List View Display Issues

Age Protection was missing '.name' field.

Loan Duration and Fine Levels are numeric: 1, 2, or 3.
Added an Angular filter to show the desired string from numeric index.

Conflicts:
    Open-ILS/src/templates/staff/cat/item/t_list.tt2

Signed-off-by: a. bellenir <ab@grpl.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
21 months agoDocs: Adding release notes for 3.1.5
Jane Sandberg [Tue, 21 Aug 2018 17:12:45 +0000 (10:12 -0700)]
Docs: Adding release notes for 3.1.5

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
21 months agoDocs: Adding release notes for 3.0.11
Jane Sandberg [Tue, 21 Aug 2018 17:10:32 +0000 (10:10 -0700)]
Docs: Adding release notes for 3.0.11

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
21 months agoDocs: removing outdated info about alerts
Jane Sandberg [Mon, 20 Aug 2018 23:47:23 +0000 (16:47 -0700)]
Docs: removing outdated info about alerts

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
21 months agoDocs: small changes to record bucket docs
Jane Sandberg [Fri, 17 Aug 2018 19:25:55 +0000 (12:25 -0700)]
Docs: small changes to record bucket docs

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
21 months agoLP#1775216: Stamping upgrade script for inconsistent copy counts
Kathy Lussier [Wed, 15 Aug 2018 22:10:08 +0000 (18:10 -0400)]
LP#1775216: Stamping upgrade script for inconsistent copy counts

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1587620: inconsistent copy counts between opac and staff client for peer bibs
a. bellenir [Fri, 15 Jun 2018 19:53:10 +0000 (15:53 -0400)]
LP#1587620: inconsistent copy counts between opac and staff client for peer bibs

staff copy counts should include peer bib copies, per LP1587620.

Signed-off-by: a. bellenir <ab@grpl.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1775216: inconsistent copy counts between opac and staff client
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>
21 months agoLP#1775216: adding a pgtap test for inconsistent availability counts
a. bellenir [Fri, 8 Jun 2018 14:29:59 +0000 (10:29 -0400)]
LP#1775216: adding a pgtap test for inconsistent availability counts

Signed-off-by: a. bellenir <ab@grpl.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1775216: inconsistent availability counts between staff client and opac
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>
21 months agoLP#1721575 Stamping DB upgrade: batch catalog actions
Bill Erickson [Wed, 15 Aug 2018 18:08:41 +0000 (14:08 -0400)]
LP#1721575 Stamping DB upgrade: batch catalog actions

Also replaced a remaining reference to "cart" with "basket"

Signed-off-by: Bill Erickson <berickxx@gmail.com>
21 months agoLP#1721575: Changes to some strings
Kathy Lussier [Tue, 14 Aug 2018 20:28:35 +0000 (16:28 -0400)]
LP#1721575: Changes to some strings

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>
21 months agoLP#1721575: Batch Actions In the Public Catalog
Galen Charlton [Mon, 14 May 2018 19:24:59 +0000 (15:24 -0400)]
LP#1721575: Batch Actions In the Public Catalog

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:

* `GET /eg/opac/api/mylist/add?record=45`
* `GET /eg/opac/api/mylist/delete?record=45`

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.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
21 months agoLP#1770981 Apply OpenSRF locale on webstaff page load
Bill Erickson [Tue, 14 Aug 2018 19:22:49 +0000 (15:22 -0400)]
LP#1770981 Apply OpenSRF locale on webstaff page load

Translate the locale from the locale cookie into the global
OpenSRF.locale variable so network calls are stamped with the correct
locale.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
21 months agoTranslation updates - newpot
Ben Shum [Wed, 15 Aug 2018 15:31:01 +0000 (11:31 -0400)]
Translation updates - newpot

Signed-off-by: Ben Shum <ben@evergreener.net>
21 months agoLP1164061: Edit authority record by database ID
Jane Sandberg [Thu, 5 Jul 2018 21:33:24 +0000 (14:33 -0700)]
LP1164061: Edit authority record by database ID

Allow users to jump directly to the authority record MARC edit interface
by entering the authority record ID.

Includes release notes.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
21 months agoLP#1718032 Patron merge honors group perms; no self-merge
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>
21 months agoLP#1752891 Crowded text on Print Item Labels page fix.
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.

Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Conflicts:
Open-ILS/src/templates/staff/cat/printlabels/t_view.tt2

21 months agoDocs: sample patron import script now also updates existing patron data
Jane Sandberg [Fri, 10 Aug 2018 17:34:28 +0000 (10:34 -0700)]
Docs: sample patron import script now also updates existing patron data

With inspiration and help from Martha Driscoll

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
21 months agoLP#1775719 Modify array check for Phantomjs; reduce logging;
Bill Erickson [Thu, 9 Aug 2018 14:20:54 +0000 (10:20 -0400)]
LP#1775719 Modify array check for Phantomjs; reduce logging;

PhantomJS doesn't support the handy [1,2,3].includes(1) function, so
replace it with the tried-and-true indexOf();

Avoid logging errors on failure to connect to the shared offline worker
when running within phantomjs.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1747512 Non-cat checkout fix display/print
Bill Erickson [Tue, 7 Aug 2018 19:00:12 +0000 (15:00 -0400)]
LP#1747512 Non-cat checkout fix display/print

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>
21 months agoLP#1702978: memcache Remove method used in a variadic way
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>
21 months agoLP#1785305: Item Status 'Edited By' shows id instead of username.
a. bellenir [Wed, 8 Aug 2018 15:49:57 +0000 (11:49 -0400)]
LP#1785305: Item Status 'Edited By' shows id instead of username.

This commit changes Item Status 'Edited By' field to show the editor's
username to match XUL.

Signed-off-by: a. bellenir <ab@grpl.org>
Signed-off-by: John Amundson <jamundson@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
21 months agoLP#621459 Clear Z39 overlay target message after overlay
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>
21 months agoLP#621459: Discard overlay target after merge in Z39.50 interface
Mike Rylander [Fri, 3 Aug 2018 15:00:25 +0000 (11:00 -0400)]
LP#621459: Discard overlay target after merge in Z39.50 interface

Cataloger concensus is that we should discard the overlay target after a merge
is completed in order to help avoid accidental re-overlay.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
21 months agoLP#1739460: Be more careful when gathering shelving locations
Mike Rylander [Wed, 10 Jan 2018 16:55:08 +0000 (11:55 -0500)]
LP#1739460: Be more careful when gathering shelving locations

Specifically, make sure we're getting the IDs, and comparing them as numbers.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
21 months agoLP 1780660: Add more workstation functions to OpenILS::Utils::TestUtils.
Jason Stephenson [Sun, 8 Jul 2018 18:19:10 +0000 (14:19 -0400)]
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:

* 14-lp1499123_csp_ignore_proximity.t
* 18-lp1592891_sip_standing_penalties.t
* 19-lp1306666-abort-transit-copy-status.t
* 25-lp1694058-multiple-hold-placement.t

Testing this is very simple:

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>
21 months agoLP#1785333: Right-click can clear grid selection
a. bellenir [Tue, 7 Aug 2018 22:18:41 +0000 (18:18 -0400)]
LP#1785333: Right-click can clear grid selection

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>
21 months agoLP#1768947 Disable offline download button, improve logging
Bill Erickson [Tue, 7 Aug 2018 16:10:17 +0000 (12:10 -0400)]
LP#1768947 Disable offline download button, improve logging

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>
21 months agoLP#1768947 Offline xact presence is cached; show date
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>
21 months agoLP#1768947 Offline DB runs in shared web worker
Bill Erickson [Fri, 8 Jun 2018 17:08:18 +0000 (13:08 -0400)]
LP#1768947 Offline DB runs in shared web worker

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>
21 months agoLP#1750894: Stamping upgrade script for workstation settings on server
Kathy Lussier [Fri, 3 Aug 2018 17:29:14 +0000 (13:29 -0400)]
LP#1750894: Stamping upgrade script for workstation settings on server

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1750894 Remove errant phantomjs-killing comma
Bill Erickson [Fri, 3 Aug 2018 15:39:15 +0000 (11:39 -0400)]
LP#1750894 Remove errant phantomjs-killing comma

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1750894 Additional workstation setting types + repairs
Bill Erickson [Tue, 31 Jul 2018 20:52:18 +0000 (16:52 -0400)]
LP#1750894 Additional workstation setting types + repairs

Added new workstation setting types:

circ.checkout.strict_barcode
cat.holdings_show_empty_org
cat.copy.defaults
cat.printlabels.default_template
cat.printlabels.templates

Bump perm ID in seed data, take 2.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1750894 Batch settings lookup handles migration
Bill Erickson [Tue, 31 Jul 2018 20:30:17 +0000 (16:30 -0400)]
LP#1750894 Batch settings lookup handles migration

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>
21 months agoLP#1750894 Hatch set local storage item thinko
Bill Erickson [Fri, 27 Jul 2018 21:52:24 +0000 (17:52 -0400)]
LP#1750894 Hatch set local storage item thinko

Ensure hatch.setItem() returns a promise for both server- and browser-
stored values.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1750894 Bump perm ID; apply consistently
Bill Erickson [Fri, 27 Jul 2018 21:26:08 +0000 (17:26 -0400)]
LP#1750894 Bump perm ID; apply consistently

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1750894 Store grid limits in grid config
Bill Erickson [Mon, 4 Jun 2018 21:14:24 +0000 (17:14 -0400)]
LP#1750894 Store grid limits in grid config

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1750894 Server-stored workstaion prefs admin view
Bill Erickson [Mon, 4 Jun 2018 16:10:20 +0000 (12:10 -0400)]
LP#1750894 Server-stored workstaion prefs admin view

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>
21 months agoLP#1750894 Workstation/Cascade setting pgtap tests
Bill Erickson [Wed, 30 May 2018 20:38:56 +0000 (16:38 -0400)]
LP#1750894 Workstation/Cascade setting pgtap tests

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1750894 Workstation/Cascade settings Release Notes
Bill Erickson [Tue, 29 May 2018 15:47:16 +0000 (11:47 -0400)]
LP#1750894 Workstation/Cascade settings Release Notes

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
21 months agoLP#1750894 Workstation & Cascade settings
Bill Erickson [Tue, 13 Mar 2018 18:06:23 +0000 (14:06 -0400)]
LP#1750894 Workstation & Cascade settings

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>
22 months agoLP1739284 Bib summary fetches classification scheme
Bill Erickson [Tue, 19 Jun 2018 15:27:43 +0000 (11:27 -0400)]
LP1739284 Bib summary fetches classification scheme

Always fetch the classification scheme org setting (or access the cached
value) instead of relying on the value getting stored in advance in
egEnv.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
22 months agoLP#1770973 Webstaff loads locale-specific IDL
Bill Erickson [Fri, 18 May 2018 17:15:57 +0000 (13:15 -0400)]
LP#1770973 Webstaff loads locale-specific IDL

Fetch the locale-specific version of the /IDL2js data so that IDL-based
labels in the UI may be correctly translated.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Garry Collum <gcollum@gmail.com>
22 months agoLP#1766716 Closed dates Perl live test API repair
Bill Erickson [Mon, 30 Jul 2018 14:23:37 +0000 (10:23 -0400)]
LP#1766716 Closed dates Perl live test API repair

Update the org unit close date Perl live test to match API changes for
emergecy org unit close dates handling.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
22 months agoLP#1193446: circ.staff.max_visible_event_age setting
John Yorio [Tue, 22 May 2018 13:05:46 +0000 (09:05 -0400)]
LP#1193446: circ.staff.max_visible_event_age setting

Signed-off-by: John Yorio <jyorio@equinoxinitiative.org>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
22 months agoLP#1766716 Stamping emergency closing DB upgrade
Bill Erickson [Thu, 26 Jul 2018 18:40:00 +0000 (14:40 -0400)]
LP#1766716 Stamping emergency closing DB upgrade

Signed-off-by: Bill Erickson <berickxx@gmail.com>
22 months agoLP#1766716: Adjust date display logic
Mike Rylander [Wed, 11 Jul 2018 20:51:59 +0000 (16:51 -0400)]
LP#1766716: Adjust date display logic

We were using the wrong date formating filter, egDueDate, and additionly the
egOrgDateInContext filter was defaulting to the useless 'shortDate' format in
cases where a format was not passed (such as when $root.egDateAndTimeFormat
can't be found).  Both of these are addressed here.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
22 months agoLP#1766716 Closed dates API emergency filter fix
Bill Erickson [Mon, 9 Jul 2018 15:55:07 +0000 (11:55 -0400)]
LP#1766716 Closed dates API emergency filter fix

Fix closed dates emergency => emergency_closing DB column name thinko.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
22 months agoLP#1766716: (follow-up) expand CSS imports for now
Galen Charlton [Wed, 9 May 2018 16:28:00 +0000 (12:28 -0400)]
LP#1766716: (follow-up) expand CSS imports for now

The patches for bug 1739803 ended up removing the minification
of the CSS and constructing evergreen-staff-client-deps.0.0.1.min.css,
so consequently setting EXPAND_WEB_IMPORTS to 0 currently does not
work as expected. Unless that regression (if it is one) gets
fixed, stick with EXPAND_WEB_IMPORTS = 1 for now.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
22 months agoLP#1766716: Release notes
Mike Rylander [Tue, 24 Apr 2018 20:45:31 +0000 (16:45 -0400)]
LP#1766716: Release notes

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
22 months agoLP#1766716: Emergency Closing handler
Mike Rylander [Tue, 27 Feb 2018 21:49:57 +0000 (16:49 -0500)]
LP#1766716: Emergency Closing handler

New Feature Summary

Staff are provided with interfaces and mechanisms to create library closings
that, in addition to affecting future circulation and booking due dates, and
hold shelf expirations, will automatically move existing circulation and
booking due dates and hold shelf expiration times.  This new functionality is
conceptually described as Emergency Closings and business logic implementing it
as the Emergency Closing Handler. It contains additions and adjustments to the
user interface, business logic, and database layers.  Access to this
functionality is available through the Closed Dates Editor interface in the
staff client which has been ported to AngularJS.

Overview

This development has created new business logic code to inspect, in real time,
existing circulation, booking, and hold records, and modify such date and time
stamps so that the circulation, booking, or hold will end in the same state it
would have if the closing had existed at the time the circulation or booking
occurred, or the hold was placed and captured.  Of specific note, hourly loans
will have their due date adjusted to be the end of the day following the
closing.

When the Emergency Closing is saved, any fines accrued during the closing may
be voided, as settings dictate, with the exception of circulations that have
been marked as LOST or LONG OVERDUE.  That is, even for LOST and LONG OVERDUE
circulations with due dates that fall within the Emergency Closing, no fine
adjustment will be applied.  Emergency Closing processing is permanent, and
cannot be rolled back.

This functionality is explicitly initiated by staff action.  If staff do not
request an Emergency Closing, existing circulations, bookings, and holds will
not be processed and adjusted.  However, if staff request any Closing that
starts nearer in time than the length of the longest circulation duration
configured for use in the Evergreen instance they will be prompted with the
option to create the closing as an Emergency Closing.

Action/Trigger hooks have been created for circulations and bookings that are
adjusted by the Emergency Closing Handler.  These will facilitate the creation
of notifications to patrons that the due date has changed and to alert them to
potential changes in accrued fines.

Booking start dates are explicitly ignored in this implementation.  Because an
Emergency Closing is, by its nature, an unexpected event, it will be up to
staff to address any bookings which intersect with a new Emergency Closings.
Reports can be used to identify booking start dates that overlap with a closing
and that may require staff intervention.

Staff requsting and Emergency Closing must have the new EMERGENCY_CLOSING
permission.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
22 months agoLP#1766716 Supporting functionality added to date/time picker and progress dialog
Mike Rylander [Fri, 16 Mar 2018 13:52:50 +0000 (09:52 -0400)]
LP#1766716 Supporting functionality added to date/time picker and progress dialog

Here the date/time picker is given the ability to dynamically hide the time
picking component when show-time-picker is in effect.  This allows an
interface to use the time picker based on ephemeral state information and to
hide it when not useful.

Additionally, the progress dialog now takes an optional label property that
can be passed to both open() and update(), so that textual information can
be provided along with the numeric and visual progress data.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
22 months agoForward-port 3.0.10 upgrade script
Dan Wells [Thu, 26 Jul 2018 14:38:02 +0000 (10:38 -0400)]
Forward-port 3.0.10 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
22 months agoForward-port 3.1.4 upgrade script
Dan Wells [Thu, 26 Jul 2018 14:32:36 +0000 (10:32 -0400)]
Forward-port 3.1.4 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
22 months agoDocs: completing 3.1.4 release notes
Jane Sandberg [Wed, 25 Jul 2018 19:26:12 +0000 (12:26 -0700)]
Docs: completing 3.1.4 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
22 months agoDocs: adding to 3.0.10 release notes
Jane Sandberg [Wed, 25 Jul 2018 19:13:32 +0000 (12:13 -0700)]
Docs: adding to 3.0.10 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
22 months agoDocs: starting 3.1.4 release notes
Jane Sandberg [Wed, 25 Jul 2018 19:12:27 +0000 (12:12 -0700)]
Docs: starting 3.1.4 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
22 months agoDocs: Adding 3.0.10 release notes
Jane Sandberg [Wed, 25 Jul 2018 19:08:06 +0000 (12:08 -0700)]
Docs: Adding 3.0.10 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
22 months agoLP#1414197 Serial Item Delete Improvements
Dan Wells [Fri, 6 Jul 2018 15:47:42 +0000 (11:47 -0400)]
LP#1414197 Serial Item Delete Improvements

If a serial item is received, then deleted without any further status,
it can leave the system in an inconsistent state:

1) If from a multi-item unit, the unit contents are not updated.
2) If from a single-item unit, the unit is not deleted.
3) If the last holding of its kind, holdings summaries are not updated.

Since 'resetting' items has all the necessary logic to handle the above
needs, this commit runs each deleted item through the reset code before
doing the actual delete.  This also gives the benefit of keeping the
logic centralized for future fixes/enhancements.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
22 months agoLP#1738249: Fix Circulation Library in Item Status Column Picker
Kathy Lussier [Fri, 6 Jul 2018 13:50:40 +0000 (09:50 -0400)]
LP#1738249: Fix Circulation Library in Item Status Column Picker

When the original branch was merged, the change to fix the display of
the Circulation Library to the copy's circ_lib in Item Status was
lost.  This commit restores it and uses the original patch author's
name on the commit.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
22 months agoLP#1781473 - fix cosmetic issue with circ Id column
Cesar Velez [Thu, 12 Jul 2018 20:28:45 +0000 (16:28 -0400)]
LP#1781473 - fix cosmetic issue with circ Id column

The column for Circ.Id on the Patron Checkout grid was
mislabeled "Bill#"

Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
22 months agoLP#1778268: Fix incorrect close tag for label on line 58 of
Adam Bowling [Sat, 23 Jun 2018 05:06:13 +0000 (01:06 -0400)]
LP#1778268: Fix incorrect close tag for label on line 58 of
Open-ILS/src/templates/staff/cat/printlabels/t_view.tt2

Signed-off-by: Adam Bowling <abowling@emeralddata.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
22 months agoLP#1777954 Open Electronic Resource Links in New Tab, Part 2
Dan Wells [Fri, 13 Jul 2018 18:04:00 +0000 (14:04 -0400)]
LP#1777954 Open Electronic Resource Links in New Tab, Part 2

For the same reasons given in the previous commit, let's also open
resource links in a new tab/window when clicking from the results
list.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
22 months agoLP#1777954 Open Electronic Resource Links in New Tab
Terran McCanna [Mon, 25 Jun 2018 16:15:21 +0000 (12:15 -0400)]
LP#1777954 Open Electronic Resource Links in New Tab

Open electronic resources links in new browser tab to accommodate
for external non-https links that will not otherwise open from the
web client.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
22 months agoLP#1739286: Revert "lp1739286 default search box in Z39.50"
Chris Sharp [Tue, 24 Jul 2018 17:19:07 +0000 (13:19 -0400)]
LP#1739286: Revert "lp1739286 default search box in Z39.50"

This commit caused unexpected side effects, reported in bug 1782401
( https://bugs.launchpad.net/evergreen/+bug/1782401 ). Reverting before
it ends up in a release.

This reverts commit 6996a3630dea3d6fd967c127417a800aba561603.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
22 months agoLP1782631: Stop Styling Grocery Bills as Overdues
Jason Boyer [Thu, 19 Jul 2018 18:29:32 +0000 (14:29 -0400)]
LP1782631: Stop Styling Grocery Bills as Overdues

Only checking for the lack of a value in the
checkin_time field causes grocery bills to still
trigger the bill colorizing feature, but because
they have no stop_fines reason they're colored
the same as an overdue item.

This patch requires the presence of a due_date
field before coloring a bill row.

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
22 months agoLP#1773417: Use CN owning lib when adding copies
Mike Rylander [Fri, 6 Jul 2018 19:33:05 +0000 (15:33 -0400)]
LP#1773417: Use CN owning lib when adding copies

This defaults the owner of new copies added to existing call numbers to the
owning lib of the call number, rather than the workstation library.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
22 months agoLP#1773417 Revamp item and call number tranfers
Dan Wells [Tue, 12 Jun 2018 18:20:03 +0000 (14:20 -0400)]
LP#1773417 Revamp item and call number tranfers

This commit attempts to achieve the goals of both simplification and
feature completeness/flexibility.  In brief, limit the number of
marking and transfer options, then have the code decide the right
action to take given the circumstances.

There are now just two "marking" actions, one at the record level,
one at the holdings level.  The holdings level mark will automatically
mark the destination as specifically as possible from the selected row,
which means either to the library or call number (vol) level.

We are also now down to two transfer options: transfer the selected
item, or transfer the selected call number.  Either option will use
as much given context as possible, then fill in any blanks with
reasonable defaults and actions.

As part of the change, a number of functions and variables are also
renamed.  This is all done for clarification, and in most cases is
due to the variable or function now being used more generally (i.e.
it is used in both the item and vol context, so it is confusing to
be named 'volume_transfer_target', etc.).

Finally, clear up a fair bit of now redundant and unused code.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
22 months agoLP#1773417 Improve empty volume handling
Dan Wells [Wed, 30 May 2018 16:43:08 +0000 (12:43 -0400)]
LP#1773417 Improve empty volume handling

The crux of this patch is to rethink how we handle the volume-only
editing interface.  Previously, we were attempting to distinguish
between when the volume was the only thing *showing* and when it
was actually the only thing *existing*.

We have now removed that distinction, so the volume-only interface
only cares about the volume regardless of the possible presence of
a copy.  This simplifies the interface logic, and reduces or
eliminates the chance of the hidden copy editor interfering with
the volume adding/editing functions.

Other smaller changes here include:
- Teach the edit function to pick up copy-less "empty" call numbers
- Reduce and clarify the arguments to spawnHoldingsAdd
  We had three arguments, but two were simply inversions of one another
  in every case.  Reduce to two arguments and give them more meaningful
  labels
- Fix typo ("emtpy") preventing proper button disabling for blank call
  numbers
- Move call number emptiness check from updateLabel() function to value
  watch instead.  This ensure that any updates to that value (even those
  not using the update function) will flip the flag appropriately.  This
  fixes a timing bug which prevented call numbers from being saved
  without further edits in some cases.

Ultimately, as J. Boyer suggests, we would be better off not generating
the copy editor at all (rather than just hiding it), but we're a few
steps off from that yet.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
22 months agoLP#1773417 Relabel "Add Volumes" button
Dan Wells [Sat, 26 May 2018 02:20:49 +0000 (22:20 -0400)]
LP#1773417 Relabel "Add Volumes" button

Now that we have an interface for adding empty volumes, we need to be
more explicit that this button is for adding complete copies, not just
volumes.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
22 months agoLP#1715697 Refactor empty volume adding
Dan Wells [Wed, 23 May 2018 18:39:49 +0000 (14:39 -0400)]
LP#1715697 Refactor empty volume adding

The new ability to add empty volumes was causing the existing
ability to add new volume/copy combos to not work as expected.
More specifically, added volume/copy combos would not generate
in the selected org_unit, but always in the ws_ou.

To correct this, this change refactors/reverts significant portions of
920f585052ef809ea6ca1e447d416ada871b467c.  Reasons include:

- Existing code distinguishs 'adds' from 'edits' via two wrappers,
spawnHoldingsAdd and spawnHoldingsEdit.  With this commit, empty volume
adding now extends the 'add' function rather than the 'edit' one, as
this seems more intuitive.

- The previous change had extended both the catalog app and another
similar directive which is only used in a merging context.  Since the
merge context had no ability to add anything, and the new code was not
wired up to the interface, this has simply been removed (for now).

- The volcopy app is set up around the concept of passed in
'prototype' vol/copy objects of varying degrees of completeness.  It
then loops over these to generate the interface.  The previous code
extended this setup with a loop over a potential 'owners' array to
generate empty volumes, but this unrelated loop within a loop seemed
counterintuitive (and was the source of the original bug).  This change
has been removed, and empty volume creation now hews more closely to
the original model.

While this commit appears large, when viewed in the context of the
pre-920f58505 code, it is quite limited in scope.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
22 months agoLP#1737812: Simplify holdings tranfser options
Mike Rylander [Sun, 29 Apr 2018 22:56:38 +0000 (18:56 -0400)]
LP#1737812: Simplify holdings tranfser options

Instead of providing direct actions for transfer of library, or record, or
both, have just one volume transfer option that Does the Right Thing (tm).

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
22 months agoLP#1715697: Ability to add empty volumes
Mike Rylander [Wed, 25 Apr 2018 16:32:15 +0000 (12:32 -0400)]
LP#1715697: Ability to add empty volumes

Staff can add volumes to any library that is allowed to have holdings.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
22 months agoLP#1715697 & 1738242 & 1753005: Holdings Filtering Checkboxes
Mike Rylander [Tue, 24 Apr 2018 19:21:37 +0000 (15:21 -0400)]
LP#1715697 & 1738242 & 1753005: Holdings Filtering Checkboxes

When the appropriate checkbox is selected, display subordinate libraries of
the context library that do not have any holdings or empty volumes.

Additionally, the holdings view checkboxes for limiting detail display can
cause console alerts, and should be made visually interdependent.  This commit
addresses both of those issues.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
22 months agoLP#1710401: Z39.50 should notice overlay target change
Mike Rylander [Thu, 12 Jul 2018 15:03:44 +0000 (11:03 -0400)]
LP#1710401: Z39.50 should notice overlay target change

Currently, we record the overlay target at UI startup and use that going
forward until the interface is reloaded.  This commit inspects the local
storage version of the target for changes and offers the user the chance to
proceed with the new target or cancel the action.  If the target has been
unset, the user is given the option of proceeding with the load-time target.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
22 months agoFix quote nesting issue in TAP test
Mike Rylander [Fri, 13 Jul 2018 13:56:13 +0000 (09:56 -0400)]
Fix quote nesting issue in TAP test

Signed-off-by: Mike Rylander <mrylander@gmail.com>
22 months agoStamping upgrade script
Mike Rylander [Thu, 12 Jul 2018 13:39:36 +0000 (09:39 -0400)]
Stamping upgrade script

Signed-off-by: Mike Rylander <mrylander@gmail.com>
22 months agoLP1773452: Repeating copy alerts
Jason Boyer [Thu, 21 Jun 2018 11:17:48 +0000 (07:17 -0400)]
LP1773452: Repeating copy alerts

Without considering the checkin_time on the most
recent circ for an item, checking in a lost, claims
returned, or claims never checked out item would
cause copy alerts on checkin repeatedly until it
was checked out again. Staff may be confused by this
thinking that there is a continuing problem with
the item until the alerts go away.

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
22 months agoStamping upgrade script
Mike Rylander [Thu, 12 Jul 2018 13:24:48 +0000 (09:24 -0400)]
Stamping upgrade script

Signed-off-by: Mike Rylander <mrylander@gmail.com>
22 months agoLP 1478712: Fix acq.fund_rollover_funds_by_org_tree DB function.
Jason Stephenson [Wed, 6 Jun 2018 18:59:41 +0000 (14:59 -0400)]
LP 1478712: Fix acq.fund_rollover_funds_by_org_tree DB function.

When looking for new funds, we need to also use the org unit from the
old fund because different org units may use the same fund code.  What
happens without this check is the second library to rollover ends up
assigning their rolled over debits to the first library that rolled
over or propagated funds with the same code.

Unfortunately, I do not know of a good way to test this branch with
the concerto data.  I will elaborate how I tested with a copy of our
production data in a test database below.

What I did to test with our production data was first to repair the
debits that had been moved to the wrong library's funds from the
previous year.  I then ran the acq.rollover_funds_by_org_tree function
for two libraries that share acq fund codes.  I verified that the fund
debits for the second library did indeed get assigned to funds with
the same code that were rolled over for the first library.  The debits
ended up on the newly propagated funds of the library that went first.

I reloaded the database, replaced the acq.rollover_funds_by_org_tree
function with the implementation from this branch, and repeated the
above steps.  The second library's debits rolled over to new funds
owned by that library as was expected.

This would be a good candidate for a pgtap test with additional data
added to concerto if anyone is feeling ambitious.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>