4 years 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

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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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:


Bump perm ID in seed data, take 2.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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

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

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
4 years 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

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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.


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

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

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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

Signed-off-by: Adam Bowling <abowling@emeralddata.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
4 years 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

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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
- Fix typo ("emtpy") preventing proper button disabling for blank call
- 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>
4 years 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

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years 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>
4 years agoLP#1749795 Close circ on adjustment when rebilled
Dan Wells [Mon, 30 Apr 2018 15:05:11 +0000 (11:05 -0400)]
LP#1749795 Close circ on adjustment when rebilled

When doing a re-bill, we were aborting too early when it rebilled to
exactly zero.  Move the 'zero' check to the top of the loop, and
thereby make sure we check if the xact can be closed if we do any
adjustment, up or down.

To test:
- Run new billing test from previous commit, see it fail
- Apply patch
- Run tests again; all should pass

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1751368 Items-out checkin of deleted copies
Bill Erickson [Tue, 19 Jun 2018 18:23:42 +0000 (14:23 -0400)]
LP#1751368 Items-out checkin of deleted copies

Allow deleted copies to be checked in from the patron items out list.
Checkin is based on copy ID instead of barcode.  Note that both values
are sent to the server, to reduce the number of changes in the UI code,
but the API inspects the ID first.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1669856 and LP#1776557: right clicks on egGrid
a. bellenir [Tue, 19 Jun 2018 22:25:05 +0000 (18:25 -0400)]
LP#1669856 and LP#1776557: right clicks on egGrid

select the row if right-clicking on a row that is not selected.
use the defult browser context-menu when right-clicking on links in eg grids.

Signed-off-by: a. bellenir <ab@grpl.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1730003 Courier code doesn't display in transit slip receipt preview
Garry Collum [Fri, 25 May 2018 20:31:21 +0000 (16:31 -0400)]
LP#1730003 Courier code doesn't display in transit slip receipt preview

Adds seed data for the transit and hold-transit slip preview in the print template editor.

To test add {{dest_courier_code}} as a variable in either the transit slip or hold transit slip template.

Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1736269: Mark Missing Pieces is non-functional
Mike Rylander [Fri, 1 Jun 2018 17:50:21 +0000 (13:50 -0400)]
LP#1736269: Mark Missing Pieces is non-functional

In the work to separate the item service into a reusable component, a
reference to $scope was left hanging around.  This causes the service to die
before it can complete its work.  The code using $scope does seem to be
necessary, so we'll have the function accept an outer_scope parameter and
adjust the call sites.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1745462: avoid trying to validate empty fields
Galen Charlton [Thu, 25 Jan 2018 19:57:40 +0000 (14:57 -0500)]
LP#1745462: avoid trying to validate empty fields

This patch is the belt to the previous patch's suspenders and ensures
that the web staff client does not attempt to authority-validate headings
fields in the MARC editor if they're empty (i.e., no subfield values).

To test
[1] In the web staff client, create a new bib. Ensure that at least one of the
    authority-controlled fields has no subfield values.
[2] Hit the Validate button.
[3] Note that the field(s) with empty headings show the tick
    mark indicating that they've been "validated".
[4] Apply the patch and repeat steps 1 and 2. This time, empty headings
    field should not be checked.
[5] Verify that validating headings that are not empty does continue
    to work.

Patch inspired by Mike Rylander.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1745462: guard against scanning entire authority table
Galen Charlton [Thu, 25 Jan 2018 19:40:47 +0000 (14:40 -0500)]
LP#1745462: guard against scanning entire authority table

This patch ensures that if, for whatever reason, a MARC editor headings
validation action includes a field whose subfield values are empty, it
ignores any cases where the normalized heading works out to NULL or the
empty string. Otherwise, the database can be asked to fetch the IDs
of most/all records in the database, and open-ils.cstore backend can be
asked to store the entire result set in memory.

To test
[0] Ensure that statement logging is turned on in the PostgreSQL database.
[1] In the web staff client, create a new bib. Ensure that at least one of the
    authority-controlled fields has no subfield values.
[2] Hit the Validate button.
[3] Note that the following query is logged by the database:

SELECT "are".id AS "id" FROM authority.record_entry AS "are"
WHERE "are".control_set = '1'
AND "are".deleted = 'f' AND "are".simple_heading IS NOT NULL;

[4] Apply the patch and repeat steps 1 and 2. This time, note that
    no such query is recorded.
[5] Verify that validating headings that are not empty does continue
    to work.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1537228 Precat subsequent checkin shows route alert
Bill Erickson [Wed, 23 May 2018 15:54:34 +0000 (11:54 -0400)]
LP#1537228 Precat subsequent checkin shows route alert

Display the 'route to cataloging' alert every time a precat copy is
checked in, consistent with the XUL client, instead of displaying
it only with the first checkin.

As with the first checkin, if the alert is configured not to display,
it will not show.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1746566: Enable 500, 1K, and all rows in more patron grids
Galen Charlton [Tue, 27 Mar 2018 18:56:23 +0000 (14:56 -0400)]
LP#1746566: Enable 500, 1K, and all rows in more patron grids

This enables the allowAll option in the Patron Items Checked Out
and Other/Special Circulations grids.

To test
[1] Apply the patch.
[2] Verify that the Patron Items Checked Out, Other/Special Circulations,
    Non-Catalogued Circulations, and Holds grids now include row
    count options 500, 100, and All.
[3] Verify that the Item Status grid now includes the additional
    row count options.
[4] Verify that when choosing the "All" row count that you are prompted
    to confirm loading all of the rows.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1746566: Enable 500, 1K, and ALL-the-Rows in patron grids
Cesar Velez [Wed, 7 Feb 2018 17:05:10 +0000 (12:05 -0500)]
LP#1746566: Enable 500, 1K, and ALL-the-Rows in patron grids

This adds to the Patron (non-catalogued) Items Out, Patron Holds, and
Item Status grids an 'allowAll' grid feature which will enable the 500,
1K, and ALL (really 10K) rows/pagesize. For the ALL option a modal has
been wired to that the action can be confirmed, since it might be a
very slow operation.

Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1745207: tie together copy_tag() and site() search filters
Galen Charlton [Mon, 22 Jan 2018 23:01:00 +0000 (18:01 -0500)]
LP#1745207: tie together copy_tag() and site() search filters

The copy_tag() filter will now restrict itself to records that
have copies that both have matching copy tags and a circ_lib
within the site() scope.

To test
[1] Define two digital bookplate copy tags at two difference org units, e.g.,
    "BR1 Smith" at BR1 and "BR4 Smith" at "BR4".
[2] Arrange that a record has items in both BR1 and BR4, and assign the "BR4 Smith"
    copy tag to one of the BR4 items.
[3] On a separate record, set up a similar situation, but use BR1 instead.
[4] Enable the digital bookplate search option and do a bookplate search
    for "Smith" with the scope limited to BR1.
[5] Note that both of the records set up in #2 and #3 are included in the results
[6] Apply the patch and repeat step 5. This time, only the record set up in #3
    should be included.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP1742782 - fix display of cbox label in list of removable fields
Cesar Velez [Thu, 11 Jan 2018 19:12:55 +0000 (14:12 -0500)]
LP1742782 - fix display of cbox label in list of removable fields

The checkbox input element was being displayed in the middle
of the label text.

Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
4 years agoLP#1738499: barcode completion for copy buckets
Jeff Davis [Tue, 6 Mar 2018 18:46:49 +0000 (10:46 -0800)]
LP#1738499: barcode completion for copy buckets

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1692116 - Action trigger validator fix for paid Long Overdue items
Michele Morgan [Thu, 14 Sep 2017 15:48:31 +0000 (11:48 -0400)]
LP#1692116 - Action trigger validator fix for paid Long Overdue items

Adds a check for a NULL xact_finish to the CircIsOpen validator. The
result is that overdue notification a/t events for Long Overdue items that
have been paid for, and the transaction closed, will be invalid.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agolp1739286 default search box in Z39.50
Jason Etheridge [Tue, 10 Jul 2018 23:46:04 +0000 (19:46 -0400)]
lp1739286 default search box in Z39.50

This change tweaks the layout of search fields in the web client Z39.50
interface and adds radio buttons for the default search field to auto-focus.
The behavior is "sticky" without the need for an explicit Save action.  If the
current default field is not present due to a given combination of selected
services, then no field will be focused by default.

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP1736243: SMS Carrier Editing in Patron Editor
Jason Boyer [Mon, 9 Jul 2018 16:47:10 +0000 (12:47 -0400)]
LP1736243: SMS Carrier Editing in Patron Editor

The XUL Client treats many user setting entries as
quoted strings. Angular needs some help to recognize
that it needs to convert these incoming "strings"
to ints for use as the data model when editing. The
str-to-int directive gives it this hint.

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoDocs: fixing physical characteristics wizard representation in consolidated docs
Jane Sandberg [Fri, 6 Jul 2018 22:49:07 +0000 (15:49 -0700)]
Docs: fixing physical characteristics wizard representation in consolidated docs

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoDocs: adding indexterms to physical characteristics wizard docs
Jane Sandberg [Fri, 6 Jul 2018 22:30:52 +0000 (15:30 -0700)]
Docs: adding indexterms to physical characteristics wizard docs

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoDocs: configuring fixed field dropdown menus
Jane Sandberg [Fri, 6 Jul 2018 22:30:20 +0000 (15:30 -0700)]
Docs: configuring fixed field dropdown menus

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoDocs: removing broken link
Jane Sandberg [Fri, 6 Jul 2018 22:23:27 +0000 (15:23 -0700)]
Docs: removing broken link

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1779392: Stop sending broken queries
Jason Boyer [Fri, 29 Jun 2018 18:09:51 +0000 (14:09 -0400)]
LP1779392: Stop sending broken queries

It's possible to send invalid parameters to the
search.highlight_display_fields function which
wastes a db roundtrip and fills the logs with
errors. Checking to be sure there's anything in
the parameter will prevent both.

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
4 years agoLP 1772993: Ability to blank Age Hold Protection in Vol/Copy Editor.
Jason Stephenson [Thu, 24 May 2018 13:34:17 +0000 (09:34 -0400)]
LP 1772993: Ability to blank Age Hold Protection in Vol/Copy Editor.

Add the <NONE> option to the age-based hold protection field in the
web staff client Vol/Copy Editor.

To test:

1. Add a value for age-based hold protection to a copy.

2. Attempt to remove the value in the copy editor.  Note that the
   dropdown does not allow you to do so.

3. Apply this commit.

4. Repeat step 2.  Now there is a <NONE> option that removes the value
   from the copy.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
4 years agoForward-port 3.1.3 upgrade script
Dan Wells [Fri, 29 Jun 2018 16:42:05 +0000 (12:42 -0400)]
Forward-port 3.1.3 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoForward port 3.0.9 upgrade script
Dan Wells [Fri, 29 Jun 2018 16:41:26 +0000 (12:41 -0400)]
Forward port 3.0.9 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoDocs: Adding 3.1.3 release notes
Jane Sandberg [Thu, 28 Jun 2018 19:21:28 +0000 (12:21 -0700)]
Docs: Adding 3.1.3 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoDocs: Adding 3.0.9 release notes
Jane Sandberg [Thu, 28 Jun 2018 19:19:22 +0000 (12:19 -0700)]
Docs: Adding 3.0.9 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1635386: Restore to xul colors and remove colors from class names
Kathy Lussier [Fri, 1 Jun 2018 13:51:07 +0000 (09:51 -0400)]
LP#1635386: Restore to xul colors and remove colors from class names

This commit restores the xul display where overdue items were highlighted
in red and long overdue items were highlighted in orange. Also removes
the colors from the class names since people may decide to use totally different
colors or style the rows in different ways.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP#1635386 Clarify and simplify row highlighting code
Dan Wells [Fri, 23 Mar 2018 21:21:36 +0000 (17:21 -0400)]
LP#1635386 Clarify and simplify row highlighting code

The existing code had a few functional problems for me.  In the process
of fixing them, I decided it best to also apply a number of small
refactorings.  Here is a list of changes in rough order of significance:

-Made the new CSS classes test and apply once per row rather than once
per cell

-Fixed the test case for overdues: we now just look for no checkin-time
+ no lost/long-overdue stop-fines (matches XUL test)

-Made the color and icon tests totally consistent, and also simplified
where possible

-Made the widened configuration header style (to accommodate status
column) functional again (it was using old 'statusicon' class)

-Made row highlight colors '!important' to avoid bad interactions with
alternating row color styles

-Changed status-cell (and statusCell) to status-column (and
statusColumn) for a little extra clarity

-Changed nested function name from 'rowClass()' to 'apply()' for greater
code distinction (i.e. avoid 'rowClass.rowClass()' calls, and instead
have 'rowClass.apply()')

-Removed some unused variable assignments from grid.js

-Cleaned up a few field attributes for necessity and consistency

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
4 years agoLP#1635386: Improve contrast for colors used in Bills interface
Kathy Lussier [Tue, 30 Jan 2018 20:51:13 +0000 (15:51 -0500)]
LP#1635386: Improve contrast for colors used in Bills interface

The contrast between cell contents and background colors did not
meet WCAG standards. This commit provides adequate contrast to
meet AA level of WCAG standards. The red and dark red background
colors are similar to what we saw in the XUL client. The orange
for long overdue is much lighter.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
4 years agolp1635386 Items Column & Styles for Bill Item Status
Kyle Huckins [Fri, 17 Nov 2017 23:54:53 +0000 (23:54 +0000)]
lp1635386 Items Column & Styles for Bill Item Status

- CSS classes for red, dark red, and orange eg-grid-cells.
- New parameter for eg-grid 'rowClass' to take an object with a function
to set the class of a cell, allowing such customizations as coloring based
on item fields.
- Implementation of 'rowClass' on the Patron Bills interface to display
colors indicating current Fines Stop reason, based on XUL client.
- New parameter for eg-grid 'statusCell' to take an object with a function
to programattically add status icons to a new "Status Icon" column. Said
column requires a boolean in the object in order to display.
- Implementation of 'statusCell' on the Patron Bills interface to display
glyphicons based on if the bill is for a circ that is lost, overdue, or long

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
 Changes to be committed:
modified:   Open-ILS/src/templates/staff/circ/patron/t_bills_list.tt2
modified:   Open-ILS/src/templates/staff/css/style.css.tt2
modified:   Open-ILS/src/templates/staff/share/t_autogrid.tt2
modified:   Open-ILS/web/js/ui/default/staff/circ/patron/bills.js
modified:   Open-ILS/web/js/ui/default/staff/services/grid.js

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
4 years agoLP#1773832: Empty deleted records can be surfaced in search results
Mike Rylander [Wed, 20 Jun 2018 13:22:38 +0000 (09:22 -0400)]
LP#1773832: Empty deleted records can be surfaced in search results

There are cases where we avoid checking the deleted flag of bibs as an
optimization that avoids a JOIN in the search query.  However, for some
shapes of real-world data, particularly in upgraded instances, deleted
records can slip through.  This commit adds an explicit check for the
flag to all search queries.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Daniel Pearl <dpearl@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
4 years agoLP 1758160: Bump version in upgrade_log.
Jason Stephenson [Wed, 27 Jun 2018 20:08:17 +0000 (16:08 -0400)]
LP 1758160: Bump version in upgrade_log.

Signed-off-by: Jason Stephenson <jason@sigio.com>
4 years agoLP1758160_Deleting_patrons_can_exceed_staff_client_timeouts
blake [Tue, 10 Apr 2018 00:52:08 +0000 (19:52 -0500)]

Added an index to action.usr_circ_history for much needed postgresql justice.
This will increase the speed when deleting patrons with large number of circulations.

Signed-off-by: blake <blake@mobiusconsortium.org>
Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Jason Stephenson <jason@sigio.com>
4 years agoDocs: documenting --items option of marc_export
Jane Sandberg [Wed, 20 Jun 2018 21:33:25 +0000 (14:33 -0700)]
Docs: documenting --items option of marc_export

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoDocs: improving index terms for MARC import/export options
Jane Sandberg [Wed, 20 Jun 2018 21:33:25 +0000 (14:33 -0700)]
Docs: improving index terms for MARC import/export options

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoadded fields for hold notification preference to display
Jeanette Lundgren [Tue, 19 Jun 2018 19:21:50 +0000 (15:21 -0400)]
added fields for hold notification preference to display

Signed-off-by: Jeanette Lundgren <jlundgren@cwmars.org>
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
4 years agoDocs: fixing broken reference in cat manual
Jane Sandberg [Wed, 20 Jun 2018 01:44:47 +0000 (18:44 -0700)]
Docs: fixing broken reference in cat manual

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoDocs: adding info about item status screen
Jane Sandberg [Wed, 20 Jun 2018 01:44:16 +0000 (18:44 -0700)]
Docs: adding info about item status screen

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1772444: Updating list of variables in bill template descriptions
Jane Sandberg [Thu, 7 Jun 2018 17:11:43 +0000 (10:11 -0700)]
LP1772444: Updating list of variables in bill template descriptions

Bill: repaired merge conflicts and applied some additional docs
consistency across the two billing templates.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1772444: Add Patron Names to Bill Receipts
Jason Boyer [Mon, 21 May 2018 16:09:09 +0000 (12:09 -0400)]
LP1772444: Add Patron Names to Bill Receipts

The bills_current and bills_historical receipt templates
were missing patron information. This has been added to
match most other receipt templates (money_summary is not
included since it could potentially be stale).

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP#1774427 Parse DoB dates as whole dates
Bill Erickson [Thu, 31 May 2018 14:58:38 +0000 (10:58 -0400)]
LP#1774427 Parse DoB dates as whole dates

Fixes DoB parsing in the browser client patron edit interface by
creating date objects from a whole YMD date string instead of compiling
the date as collection of pieces.  Compiling dates from pieces (calling
setFullYear(), setMonth(), etc.) can have unexpected consequences,
because a change of month can result in a change of days as well, if the
number of days in the date object exceeds the capacity of the selected

For example:

> d = new Date()
> d.setMonth(1)
> d

Parsing as Date(YYYY,MM,DD) instead avoids this kind of shuffling.

To test

[1] Log in to the staff client on the 31st day of the month :)
[2] Change a patron's DoB to a month that does not contain 31 days.
[3] Save patron and note on reload, the DoB shows the wrong value.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
4 years agoDocs: Minor corrections to "Borrowing items" section
Remington Steed [Thu, 14 Jun 2018 13:31:33 +0000 (09:31 -0400)]
Docs: Minor corrections to "Borrowing items" section

This commit fixes a number of small inconsistencies in wording (between
the docs and the interface) and formatting (e.g. making menu names bold).
Also, one sentence is expanded for clarity.

Signed-off-by: Remington Steed <rjs7@calvin.edu>
4 years agoLP#1740535: retrieve list of billing types
Galen Charlton [Thu, 29 Mar 2018 15:46:03 +0000 (11:46 -0400)]
LP#1740535: retrieve list of billing types

This patch changes how the web staff client retrieves the list
of billing types available for use by the Bill Patron modal. PCRUD
permissions on config.billing_type don't quite match how the
the set of billing types available to a staff user used to work
in the XUL staff client, so this patch uses the
open-ils.circ.billing_type.ranged.retrieve.all method instead.

To test
[1] Log in as a Circulators staff user (assuming stock data
    and permissions).
[2] Try the Bill Patron dialog in the web staff client; note that
    no billing types are accessible.
[3] Apply the patch and repeat step #2. This time, it should
    include the miscellaneous billing type.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
4 years agoLP1739271 - Fix Item Edit when Part Present
Dan Pearl [Thu, 7 Jun 2018 18:20:49 +0000 (14:20 -0400)]
LP1739271 - Fix Item Edit when Part Present

Cannot edit item or call number after mono part
assigned.  This was indeed a timing error where parts were referenced before
they were completely assigned to the structure in which they were to reside.
I have restructured the code to ensure the parts are available.

Signed-off-by: Dan Pearl <dpearl@cwmars.org>
Signed-off-by: Jason Boyer <jboyer@library.in.gov>
4 years agoLP1770752: clicking 'update expire date' should flag field_modified
a. bellenir [Wed, 6 Jun 2018 13:41:06 +0000 (09:41 -0400)]
LP1770752: clicking 'update expire date' should flag field_modified

ensure user is warned that unsaved data may be lost when navigating away

Signed-off-by: a. bellenir <ab@grpl.org>
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>