working/Evergreen.git
7 years agoLP#1705524: Override angular date filter
Mike Rylander [Wed, 2 Aug 2017 20:56:20 +0000 (16:56 -0400)]
LP#1705524: Override angular date filter

Here we'll use moment.js to format all dates that want to use the angular date
filter, for consistency and standards compliance.  The primary benefit is the
ability to use a proper timezone (region) rather than just a simple GMT offset.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
7 years agoLP#1705524 Adding timezone release note
Mike Rylander [Mon, 24 Jul 2017 14:27:09 +0000 (10:27 -0400)]
LP#1705524 Adding timezone release note

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Tina Ji <tji@sitka.bclibraries.ca>
7 years agoLP#1705524: Adjust day-granular due date pushing
Mike Rylander [Mon, 24 Jul 2017 14:13:31 +0000 (10:13 -0400)]
LP#1705524: Adjust day-granular due date pushing

Now that due dates are globally stored in the configured timezone of the
circulating library, the automatic adjustment to day-granular due dates needs
to take those timezones into account.

An optional SQL command is provided by the upgrade script to retroactively
adjust existing due dates after library configuration is complete.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Tina Ji <tji@sitka.bclibraries.ca>
7 years agoLP#1705524: Use the new grid configuration for date format in the bills list
Mike Rylander [Thu, 20 Jul 2017 21:52:38 +0000 (17:52 -0400)]
LP#1705524: Use the new grid configuration for date format in the bills list

The bills list in the patron interface predated any grid date formatting, so
we bring it into the modern world.

This also enhances the grid autoformatting for dates to support both flattened
and dot-pathed item layout.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Tina Ji <tji@sitka.bclibraries.ca>
7 years agoLP#1705524: Honor timezone of the acting library where appropriate
Mike Rylander [Wed, 21 Jun 2017 18:03:29 +0000 (14:03 -0400)]
LP#1705524: Honor timezone of the acting library where appropriate

This is a followup to the work done in bug 1485374, where we added the ability
for the client to specify a timezone in which timestamps should be interpreted
in business logic and the database.

Most specifically, this work focuses on circulation due dates and the closed
date editor. Due dates, where displayed using stock templates (including
receipt templates) and used for fine calculation, are now manipulated in the
library's configured timezone. This is controlled by the new 'lib.timezone'
YAOUS, loaded from the server when required. Additionally, closings are
recorded in the library's timezone so that so that due date calculation is more
accurate. The closed date editor is also taught how to display closings in the
closed library's timezone. Closed date entries also explicitly record if they
are a full day closing, or a multi-day closing. This significantly simplifies
the editor, and may be useful in other contexts.

To accomplish this, we use the moment.js library and the moment-timezone addon.
This is necessary because the stock AngularJS date filter does not understand
locale-aware timezone values, which are required to support DST. A simple
mapper translates the differences in format values from AngularJS date to
moment.js.

Of special note are a set of new filters used for formatting timestamps under
certain circumstances. The new egOrgDateInContext, egOrgDate, and egDueDate
filters provide the functionality, and autogrid is enhanced to make use of
these where applicable. egGrid and egGridField are also taught to accept
default and field-specific options for applying date filters. These filters may
be useful in other or related contexts.

The egDueDate filter, used for all existing displays of due date via Angular
code, intentionally interprets timestamps in two different ways WRT timezone,
based on the circulation duration. If the duration is day-granular (that is,
the number of seconds in the duration is divisible by 86,400, or 24 hours worth
of seconds) then the date is interpreted as being in the circulation library's
timezone. If it is an hourly loan (any duration that does not meet the
day-granular criterium) then it is instead displayed in the client's timezone,
just as all other timestamps currently are, because of the work in 1485374.

The OPAC is adjusted to always display the due date in the circulating
library's timezone. Because the OPAC displays only the date portion of the due
date field, this difference is currently considered acceptable. If this proves
to be a problem in the future, a minor adjustment can be made to match the
egDueDate filter logic.

This work, as with 1485374 was funded by SITKA, and we thank them for their
partnership in making this happen!

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Tina Ji <tji@sitka.bclibraries.ca>
7 years agoLP#1659928: fix regression introduce by previous patches
Galen Charlton [Fri, 11 Aug 2017 16:23:01 +0000 (12:23 -0400)]
LP#1659928: fix regression introduce by previous patches

A couple other places that use the standing_penalty list needed to
be adjusted to account for the non-de-fleshing.

Kudos to Jason Etheridge for noting the live_t test failure. Also,
unit tests FTW.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP 1542495: Release Notes and Sample Config Change.
Jason Stephenson [Sun, 8 Jan 2017 00:49:12 +0000 (19:49 -0500)]
LP 1542495: Release Notes and Sample Config Change.

In addition to adding the release note file, we alter the location of
the encoding element in oils_sip.xml.example to the new, recommended
location.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Martha Driscoll <driscoll@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP 1542495: Remove OpenILS::SIP::clean_text.
Jason Stephenson [Mon, 2 Jan 2017 15:51:48 +0000 (10:51 -0500)]
LP 1542495: Remove OpenILS::SIP::clean_text.

This commit removes the OpenILS::SIP::clean_text utility function and
all references to it in the OpenILS::SIP modules.  Its job is now done
in SIPServer's write_msg routine.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Martha Driscoll <driscoll@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1681864: Add pocommentclean for db.seed cleanup prior to updatepo
Ben Shum [Mon, 17 Apr 2017 21:20:25 +0000 (17:20 -0400)]
LP#1681864: Add pocommentclean for db.seed cleanup prior to updatepo

By adding a segment to run pocommentclean against the db.seed locale file
prior to doing updatepo against the file from the PO template, we clear
any unwanted old and outdated comment IDs prior to applying clean newly
synchronized comment IDs from the PO template.

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1160347: (follow-up) fix a couple field class entries
Galen Charlton [Thu, 10 Aug 2017 21:26:24 +0000 (17:26 -0400)]
LP#1160347: (follow-up) fix a couple field class entries

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1160347 - Fixing missing closing parens in INSERT statement
Chris Sharp [Wed, 9 Aug 2017 12:42:29 +0000 (08:42 -0400)]
LP#1160347 - Fixing missing closing parens in INSERT statement

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1160347: i18n fixes for db.seed
Ben Shum [Wed, 19 Apr 2017 13:10:33 +0000 (09:10 -0400)]
LP#1160347: i18n fixes for db.seed

Some strings were not marked for translation. Also, there were strings
with incorrect IDs, or mismatched entries.

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1709932: recognize more strings from oils_i18n_gettext()
Galen Charlton [Thu, 10 Aug 2017 16:45:58 +0000 (12:45 -0400)]
LP#1709932: recognize more strings from oils_i18n_gettext()

This patch makes db-seed-i18n.py more flexible about
where commas between strings in invocations of oils_i18n_gettext()
can appear, reduces the chances that strings fail to be grabbed
for translation. It also improves the error message shown
when parsing errors occur.

To test
-------
[1] Apply patch and run

    cd build/i18n && make sql2pot

[2] Verify that no error messages are produced during
    this step.
[3] Inspect the changes to po/db.seed/db.seed.pot and
    verify that additional strings are added, including
    "Item Print Label Font Family".
[4] (optional) Deliberately remove a comma from an
    oils_i18n_gettext invocation in 950.data.seed-values.sql
    and run make sql2pot again. The error message shoudl
    now include the failing chunk of text.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
7 years agoLP#1659928: (follow-up) the flesh stays on...
Galen Charlton [Thu, 10 Aug 2017 20:43:36 +0000 (16:43 -0400)]
LP#1659928: (follow-up) the flesh stays on...

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP1659928 SIP is not respecting standing penalties for charge ok and hold ok
blake [Thu, 15 Jun 2017 18:39:08 +0000 (13:39 -0500)]
LP1659928 SIP is not respecting standing penalties for charge ok and hold ok

This will include the block_list data in the blessed user object. This allows
charge_ok, renew_ok and hold_ok to determine if any of the respective blocks are
present in any of the applied penalties.

To test
-------
[1] Using a SIP emulator, issue a 63 message to fetch information
    about a patron that has nothing preventing it from doing loans,
    renewals, or hold requests, e.g.,

    6300020060329    201700Y         AOevergreen|AA99999384262||

[2] Verify that the first six positions of the response are
    '64  Y '
[3] Apply a standing penalty that blocks circulation and repeat
    step 1. This time, the response should start with '64Y Y '
[4] Apply other standing penalties that block holds or renewals
    and repeate step 1, verifying that the various privileges
    denied positions in the 64 response have expected values.
[5] Archive all of the penalties used during testing, then
    verify that the response returns to '64  Y ...'

Signed-off-by: blake <blake@mobiusconsortium.org>
Signed-off-by: Dan Pearl <dpearl@cwmars.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoDocs: Web Client Data Types
Angela Kilsdonk [Thu, 10 Aug 2017 19:08:34 +0000 (12:08 -0700)]
Docs: Web Client Data Types

Updated chart of data type icons in web client.

Signed-off-by: Angela Kilsdonk <akilsdonk@equinoxinitiative.org>
7 years agosyntax: end-quote for stored procedure
Jason Etheridge [Thu, 10 Aug 2017 18:06:08 +0000 (14:06 -0400)]
syntax: end-quote for stored procedure

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
7 years agosyntax error in schema script
Jason Etheridge [Thu, 10 Aug 2017 18:01:52 +0000 (14:01 -0400)]
syntax error in schema script

incidentally, I'm a huge fan of comma-first style, I18N-breakage aside :)

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
7 years agoStamping populariy parameter upgrade scripts
Mike Rylander [Thu, 10 Aug 2017 15:16:13 +0000 (11:16 -0400)]
Stamping populariy parameter upgrade scripts

Also, the org-count parameter function is adjusted to consistently find
and count copies by circ lib.  Because this parameter is about counting
copies on the shelves of libraries, this makes more sense than owing
library.  Changed in consultation with Kathy Lussier.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLP#1688099: Popularity parameter for the number of OUs that own a title
Kathy Lussier [Mon, 31 Jul 2017 17:43:38 +0000 (13:43 -0400)]
LP#1688099: Popularity parameter for the number of OUs that own a title

Creates a new badge that calculates a score based on a count of libraries
that own a copy of a title. The badge is based on libraries that are the copy's
circulation library. The intent of the badge is to measure the breadth of
ownership within a particular consortium with the hope that it doesn't
generate as many 'false hits' that are seen with the similar Total Copy Counts
badge.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLP#1688096: Popularity parameter for in-house use
Kathy Lussier [Mon, 31 Jul 2017 20:36:50 +0000 (16:36 -0400)]
LP#1688096: Popularity parameter for in-house use

Adds a new popularity parameter based on in-house use over time. The parameter
can be used for creating a statistically-generated popularity badge for titles.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLP#1709476 Copy summary aged circ display repair
Bill Erickson [Wed, 9 Aug 2017 20:41:53 +0000 (16:41 -0400)]
LP#1709476 Copy summary aged circ display repair

Always check active and aged circs (via "aacs" class) for circs to
display for a given copy in the item status Quick Summary and Recent
Circ History tabs.  When a aged circ is encountered, display the '<Aged
Circulation>' tag in lieu of the patron's name.

To test:
[1] Checkout and checkin a copy.
[2] Checkout and checkin the same copy to a different patron
[3] Manually delete the 2nd circulation in the database.
[4] Load the Item Status interface for the copy.
[5] Confirm chekout time, etc. for the 2nd show in the Quick Summary
    circulation data.
[6] Confirm the patron displayed under the 'Recent Circ History' tab
    shows '<Aged Circulation>'

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1691563: Prevent "Use of freed value in iteration" error during adjust to zero
Jeff Davis [Wed, 17 May 2017 21:16:26 +0000 (14:16 -0700)]
LP#1691563: Prevent "Use of freed value in iteration" error during adjust to zero

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoStamping upgrade script for slim all-circs view
Mike Rylander [Wed, 9 Aug 2017 19:37:05 +0000 (15:37 -0400)]
Stamping upgrade script for slim all-circs view

Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLP#1695007 Webstafff circ group summary display fix
Bill Erickson [Thu, 1 Jun 2017 20:11:11 +0000 (16:11 -0400)]
LP#1695007 Webstafff circ group summary display fix

Repair display of the Total Circs, Last Renewed On, and Renewal
Workstation fields in the web staff item summary Recent Circ History tab
Most Recent Circ Group Display.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLP#1695007 All-circulations slim DB VIEW
Bill Erickson [Thu, 1 Jun 2017 14:56:11 +0000 (10:56 -0400)]
LP#1695007 All-circulations slim DB VIEW

Adds a new view action.all_circulation_slim which collects all
action.circulation and action.aged_circulation rows into a single set,
without the added joins for copy and patron data imposed by the existing
action.aged_circulation view.

The new leaner view is now used by various other views and APIs in place
of the all_circulation view:

DB:  action.all_circ_chain()
DB:  action.summarize_all_circ_chain()
DB:  rating.percent_time_circulating()
API: open-ils.circ.retrieve
API: open-ils.circ.copy_checkout_history.retrieve
API: open-ils.circ.copy_details.retrieve
API: open-ils.circ.renewal_chain.retrieve_by_circ[.summary]
API: open-ils.circ.prev_renewal_chain.retrieve_by_circ[.summary]

To Test (webstaff style):

[1] Open a copy in the web staff Item Status / Detail View interface
    that has live and aged circulations.
[2] Open the Recent Circ History tab
[3] Confirm relevent fields for both types of circs display as expected
    and that the Patron field for the aged circulation shows a value of
    <Aged Circulation>

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLP#1098685: Require OPAC patron holds w/ phone/SMS notification to enter that info
Cesar Velez [Tue, 23 May 2017 20:36:44 +0000 (16:36 -0400)]
LP#1098685: Require OPAC patron holds w/ phone/SMS notification to enter that info

This provides some plain vanilla JS form validation, and error feedback
using a yellow background color on the culprit input field.

Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1480432: stamp DB update
Galen Charlton [Tue, 8 Aug 2017 21:28:43 +0000 (17:28 -0400)]
LP#1480432: stamp DB update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1480432: choose broadest depth if staff has same perm multiple times
Michele Morgan [Thu, 29 Sep 2016 20:35:20 +0000 (16:35 -0400)]
LP#1480432: choose broadest depth if staff has same perm multiple times

Fixes a staff user permission depth issue that can exist when multiple
permission groups are assigned. In particular, this patch clarifies
that if a given permission is assigned to a staff member multiple times,
e.g., via mutiple profiles or by individual permission mapping, whatever
permission depth is the broadest will apply.

To test
-------
[1] Run the t/lp1480432_test_func.permissions.usr_perms_depth_sort.pg
    pgTAP test.
[2] Set up a staff user that has the same permission at multiple
    depths, and verify that its scope of applicability applies
    at the broadest depth. For example, if you give SET_CIRC_CLAIMS_RETURNED
    at system and consortial depth, verify that the staff user can
    mark any loan as claims returned regardless of system.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1480432 - Added tests for permission.usr_perms() change
Cesar Velez [Fri, 2 Jun 2017 14:36:30 +0000 (10:36 -0400)]
LP#1480432 - Added tests for permission.usr_perms() change

Making sure that returned permissions are depth sorted ascending.
Tests and verifies mmorgan's patch for said lp bug.

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

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1463166 Apply funds from view/place orders and search
Bill Erickson [Fri, 4 Aug 2017 15:54:15 +0000 (11:54 -0400)]
LP#1463166 Apply funds from view/place orders and search

Activate the copy-specific fund selectors for lineitems accessed from
the View/Place orders and MARC Federated Search interfaces.  Prior to
this, fund selectors existed, but could not accept values until after a
PO was created for a given lineitem.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1463166 Fix Batch update of Funds in Selection Lists
Liam Whalen [Sat, 19 Sep 2015 03:24:14 +0000 (20:24 -0700)]
LP#1463166 Fix Batch update of Funds in Selection Lists

Selection lists are currently unable to batch update funds.  The problem
stems from the fact that the Fund selection list is not populated in the
copy rows.  New code used to limit the number of funds, in the dropdown
list, to those funds available to the user was added for purchase
orders.  However, these changes were not added to Selection Lists.  This
code adds the new call to initBatchUpdater to the selection list code.

Signed-off-by: Liam Whalen <liam.whalen@bc.libraries.coop>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1669534 - OPAC hold request should not default to first SMS carrier
Cesar Velez [Tue, 23 May 2017 13:58:39 +0000 (09:58 -0400)]
LP#1669534 - OPAC hold request should not default to first SMS carrier

Added empty <option> tag to address this and related form validation issues.

To test
-------
[0] Ensure that SMS messaging is enabled.
[1] Apply the patch and go to the place hold form in the public
    catalog. Verify that no mobile carrier is selected.
[2] Set the default SMS carrier and number for the user account
    and go back to the place hold form. Verify that the user's
    default carrier and number appear in the form.

Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1681095: (follow-up) fix a template syntax error
Galen Charlton [Mon, 7 Aug 2017 20:52:04 +0000 (16:52 -0400)]
LP#1681095: (follow-up) fix a template syntax error

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1075401: add release notes entry
Galen Charlton [Mon, 7 Aug 2017 20:49:17 +0000 (16:49 -0400)]
LP#1075401: add release notes entry

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1075401: stamp DB update
Galen Charlton [Mon, 7 Aug 2017 20:44:32 +0000 (16:44 -0400)]
LP#1075401: stamp DB update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP 1075401 - Upgrade script to nullify existing bad data
Michele Morgan [Mon, 3 Jul 2017 18:49:42 +0000 (14:49 -0400)]
LP 1075401 - Upgrade script to nullify existing bad data

Sets to NULL any entries in asset.copy_template.age_protect and
asset.copy_template.circ_as_type that are not valid values.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1075401: adjust two fields in the legacy Serials Copy Template editor
Michele Morgan [Tue, 18 Apr 2017 16:11:01 +0000 (12:11 -0400)]
LP#1075401: adjust two fields in the legacy Serials Copy Template editor

This commit changes the Age Protection and Circ as Type fields to links in
the fm_IDL.xml to allow the template to read the data in the fields. It also
changes the owning_lib reporter type to org_unit so the org unit shortname
is displayed in the grid view, along with fixing the config.floating_group cfg
FM settings so that the name is displayed instead of the ID.

[Note from Galen: the forthcoming web staff serials module's serial
 copy template editor already provided drop-downs for those two fields,
 but the IDL changes remain beneficial.]

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1693851: Fix hardcoded paths in srfsh support scripts
Jeff Davis [Fri, 26 May 2017 17:05:02 +0000 (10:05 -0700)]
LP#1693851: Fix hardcoded paths in srfsh support scripts

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1704873 Stamping SQL upgrade for print labels
Bill Erickson [Mon, 7 Aug 2017 18:39:14 +0000 (14:39 -0400)]
LP#1704873 Stamping SQL upgrade for print labels

Signed-off-by: Bill Erickson <berickxx@gmail.com>
7 years agoLP#1704873 webstaff: item label setting stickiness
Jason Etheridge [Fri, 4 Aug 2017 21:47:12 +0000 (17:47 -0400)]
LP#1704873 webstaff: item label setting stickiness

Save last template applied as default.

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
7 years agoLP#1704873 webstaff: label printing
Jason Etheridge [Sun, 5 Mar 2017 21:07:17 +0000 (16:07 -0500)]
LP#1704873 webstaff: label printing

...initial hook
...better stock template for labels, and a | wrap filter
...pull in some Library Settings for Print Labels
...Reset to Default button for templates for both receipt and item print labels
...toward tabs for Print Label interface
...template management for print labels
...bundle the Call Number Template in with saved templates
...manual editing of cn's for print labels
...And affixes in the stock CN template.
...Settings tab for print labels
...add Print Labels action to Copy Buckets
...and some other cosmetic tweaks to the Actions menu
...add Print Labels to Holdings View
...provide MVR's for use with Print Labels
...better than super simple record, but Display Fields will be better yet later on
...new org unit settings for print labels
...and fix to stock call number template for affixes
...and cn_wrap filter for call numbers
...handle null location affixes
...implement Print Item Labels on Save & Exit in vol/copy editor

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
7 years agoLP#1681095: add release notes
Galen Charlton [Mon, 7 Aug 2017 18:43:55 +0000 (14:43 -0400)]
LP#1681095: add release notes

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1681095: fix TT syntax error
Galen Charlton [Mon, 7 Aug 2017 18:35:38 +0000 (14:35 -0400)]
LP#1681095: fix TT syntax error

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1681095: add cache-busting to a couple more links
Galen Charlton [Mon, 7 Aug 2017 18:22:02 +0000 (14:22 -0400)]
LP#1681095: add cache-busting to a couple more links

This covers a couple more resources added since the last
time that the branch for this bug was rebased.

The following command can help find other places where the
cache-busting key should be added:

  git grep -P '\.(gif|png|jpg|js|css)' Open-ILS/src/templates/{opac,kpac}|grep -v cache_key|grep -v eg_cache_hash

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1681095 Browser cache-busting key for longer expires
Dan Scott [Sat, 8 Apr 2017 13:26:42 +0000 (09:26 -0400)]
LP#1681095 Browser cache-busting key for longer expires

Extend the support for cache-busting that we added with autogen's generation of
ctx.eg_cache_hash for core JavaScript assets to other assets such as images,
stylesheets, and additional JavaScript. This will enable us to set very long
cache times for our assets, which can then be controlled explicitly by setting
eg.cache_key in config.tt2, or by default any time you run autogen.

Addresses TPAC and KPAC

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1681095 Set aggressive default cache expires timelines
Dan Scott [Sat, 8 Apr 2017 15:02:02 +0000 (11:02 -0400)]
LP#1681095 Set aggressive default cache expires timelines

Now that we have a broad cache-busting mechanism, set the default cache expires
timelines for non-HTML types far in the future.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1706365: cursor for record menu items should be a pointer
Kathy Lussier [Tue, 25 Jul 2017 14:23:20 +0000 (10:23 -0400)]
LP#1706365: cursor for record menu items should be a pointer

When using the Mark For or Other Actions menus on the bib record page, the
cursor becomes an i-beam while hovering over the menu items instead of the
expected pointer. This commit adds an empty href attribute to the a tag for menu
items so that a pointer displays instead.

Test plan:
Log into the web client and retrieve a record. Click the 'Mark For' menu on the
record page. Pre-patch, as you scroll through the menu items, the cursor will
turn into an i-beam, indicating that text can be selected. Post-patch, the
cursor will be the expected pointer that typically displays for links.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1694529: tweak wording of collision alert message
Galen Charlton [Mon, 7 Aug 2017 15:15:57 +0000 (11:15 -0400)]
LP#1694529: tweak wording of collision alert message

And here's a test plan for the patch series as a whole:

[1] In the web staff client, retrieve a patron that has some
    loans. In a separate window, open the patron editor
    for that same patron.
[2] In the first window, mark one of the patron's loans
    as either claims returned or claims never checked out.
[3] In the second window, make a change and attempt to save
    the record. You should see a alert dialog saying that
    the record could not be saved.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1694529 Patron editor friendly xact ID collision alert
Bill Erickson [Thu, 29 Jun 2017 21:53:56 +0000 (17:53 -0400)]
LP#1694529 Patron editor friendly xact ID collision alert

Display a friendly alert dialog message to staff when attempting to save
a patron record that has been externally modified during editing.  This
is an improvement over the existing debug alert with JSON data.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1694529 Claims never checked out updates patron last-xact-id
Bill Erickson [Thu, 29 Jun 2017 21:53:33 +0000 (17:53 -0400)]
LP#1694529 Claims never checked out updates patron last-xact-id

Force an upate to the user last_xact_id value when marking an item claims
never checked out, since the process results in patron record changes.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1694529 Claims returned updates patron last-xact-id
Bill Erickson [Thu, 29 Jun 2017 21:53:14 +0000 (17:53 -0400)]
LP#1694529 Claims returned updates patron last-xact-id

Force an upate to the user last_xact_id value when making an item claims
returned, since the process results in patron record changes.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1684126: copy images used by staff portal outside of /xul/
Galen Charlton [Mon, 24 Jul 2017 16:17:51 +0000 (12:17 -0400)]
LP#1684126: copy images used by staff portal outside of /xul/

This patch ensures that various images used by the web
staff client will remain available whenever the last bits
of the XUL client are removed.

To test:

[1] Apply patch
[2] Verify that all of the images on the web staff client's
    splash page are displayed.
[3] Retrieve a patron that has an alertable condition (e.g.,
    the patron record is expired. Verify that the stop sign
    image is displayed.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ben Shum <ben@evergreener.net>
7 years agoLP#1708510 Postgres 9.6 full text search config user/rogan/lp11452113_bib_merge user/rogan/lp1387722_update_ldr
Bill Erickson [Thu, 3 Aug 2017 19:43:52 +0000 (15:43 -0400)]
LP#1708510 Postgres 9.6 full text search config

Avoid DB warnings about missing full-text search configs on PG 9.6 by
symlinking to original full text config.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1411699: ensure that Dojo remains available for added content tab
Galen Charlton [Wed, 17 May 2017 15:22:25 +0000 (11:22 -0400)]
LP#1411699: ensure that Dojo remains available for added content tab

This patch is meant to avoid a (very minor) silent regression
introduced by the previous patch; ultimately, though, the
functionality of tweaking the visibility of added content types
in the added content tab should be rewritten to drop any
requirement of Dojo.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
7 years agoLP#1411699: Make Dojo conditional for advanced search
Dan Scott [Sun, 2 Apr 2017 14:45:00 +0000 (10:45 -0400)]
LP#1411699: Make Dojo conditional for advanced search

While the copy locations filter is a core feature, it surfaces only in the
advanced search page. The current behaviour forces Dojo and all of its
dependencies to be loaded for every catalogue page.

By making it conditional on the advanced search page, we save approximately
600ms to first meaningful paint on the rest of the catalogue pages.

To test:

[1] Apply the two-patch series
[2] After applying the patch, verify that the copy location filter
    on the advance search page functions. Also verify that
    the JavaScript on the record details page that tweaks
    the visiblity of sub-tabs in the added content tab
    continue to work.
[3] Verify that other components that currently depend on Dojo,
    such as the ebook API, continue to work.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
7 years agoLP#1705478: add release notes
Galen Charlton [Wed, 2 Aug 2017 18:45:49 +0000 (14:45 -0400)]
LP#1705478: add release notes

These release notes also refer to the enhancement
made in bug 1692106.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1705478: (follow-up) emit prefix subfield before call number
Galen Charlton [Wed, 2 Aug 2017 18:39:23 +0000 (14:39 -0400)]
LP#1705478: (follow-up) emit prefix subfield before call number

This patch reorders the subfields so that the prefix (if present)
is emitted in 852$k /before/ the call number subfield ($j); that way,
MARC parsers return subfields in their order in the field (and
humans) will see the components of the call number in their
expected order.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1705478: Marc_export should include call number prefix and suffix
Martha Driscoll [Thu, 20 Jul 2017 18:19:56 +0000 (14:19 -0400)]
LP#1705478: Marc_export should include call number prefix and suffix

This commit adds the call number prefix and suffix, when present,
to the 852 $k and $m respectively when the --items option is used
in marc_export.

Signed-off-by: Martha Driscoll <driscoll@noblenet.org>
Signed-off-by: Dan Pearl <dpearl@cwmars.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1189989: (follow-up) normalize capitalization of "onclick"
Galen Charlton [Wed, 2 Aug 2017 15:55:12 +0000 (11:55 -0400)]
LP#1189989: (follow-up) normalize capitalization of "onclick"

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1189989: (follow-up) ignore invalid thaw date
Galen Charlton [Wed, 2 Aug 2017 15:49:08 +0000 (11:49 -0400)]
LP#1189989: (follow-up) ignore invalid thaw date

This patch ensures that the specified thaw date is valid,
as otherwise specifying a thaw date of "13/08/2017" (when,
at present, only dates of the form mm/dd/yyyy are accepted)
would result in an Apache internal server error.

If an invalid date is supplied, the thaw date is ignored, meaning
that the hold request will be placed as suspended but will not
automatically reactivate.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1189989: Release notes entry for suspend option when placing hold
Kathy Lussier [Tue, 1 Aug 2017 20:48:19 +0000 (16:48 -0400)]
LP#1189989: Release notes entry for suspend option when placing hold

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP 1189989: Add suspend option when placing hold
Jason Stephenson [Fri, 21 Jul 2017 16:47:14 +0000 (12:47 -0400)]
LP 1189989: Add suspend option when placing hold

This commit adds some bells and whistles to the basic functionality:

1. Adds two new styles in style.css.tt2 for toggled blocks and inline
text.  These styles allow text with id attributes beginnging with
certain strings to be normally hidden and then shown when they are the
target of an active anchor.  Only the block form is currently used,
but the inline text version may prove useful in the near future.

2. Moves the "Suspend this hold?" language above the checkbox and adds
a variant to make it clear that all of the holds will be suspended
when multiple holds are placed.

3. Adds the question mark graphic with mouseover help text indicating
that a suspended hold will not be fulfilled until it has been
activated.

4. Adds a "Set activation date" anchor to toggle the appearance of the
text input for the optional thaw date.

5. Adds a script block with a JavaScript function to toggle the
appearance of the text input for the optional thaw date and to check
the suspend hold check box when first toggled.  This function returns
false to prohibit the href of the anchor from firing and toggling the
appearance via CSS.  If JavaScript is disabled, the input's appearance
will be toggled via CSS, but the checkbox will not be checked
automatically.

6. Adds language to the place hold results page to indicate if the
hold is suspended and adds the reactive date if supplied.

7. Modifies the backend holds code to not set the expire time on a
hold if it is suspended.  This is a logical extension of code added
for Lp bug #1076399: Activating an expired hold cancels the hold.

PLEASE NOTE: I would very much like to keep this branch in three
commits because the first commit is Bill Ott's initial implementation
from 2013.  The second commit is a fix to Bill's work required to make
it work with modern ttopac.  This third commit overs the expansion of
the functionality to meet MassLNC requirements.  I think it would
behoove us to keep these three pieces of work in distinct commits.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP 1189989: Add suspend option when placing hold
Jason Stephenson [Sun, 23 Apr 2017 19:54:12 +0000 (15:54 -0400)]
LP 1189989: Add suspend option when placing hold

Fix the Apache Internal Server error caused by the previous patch.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP 1189989: Add suspend option when placing hold
Bill Ott [Tue, 20 Aug 2013 15:19:27 +0000 (11:19 -0400)]
LP 1189989: Add suspend option when placing hold

Return of an option from JSPAC, the ability to immediately suspend a
hold when it's placed.

TODO: As noted in the code for editing a hold, a calendar selection
would be preferred to requiring users to enter a valid date manually.

This commit was a patch submitted by Bill Ott to Launchpad in August
2013.  Jason Stephenson applied the patch on April 22, 2017 and
resolved conflicts caused by the addition of a metarecords hold
feature in the TPAC.  The revised patch was committed with the
original author and commit timestamp.

Signed-off-by: Bill Ott <bott@grpl.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1707549: Remove Perl 5.24+ syntax restriction
Mike Rylander [Tue, 1 Aug 2017 16:34:11 +0000 (12:34 -0400)]
LP#1707549: Remove Perl 5.24+ syntax restriction

Quoth the Perl docs: "An experimental feature added in Perl 5.14 allowed each,
keys, push, pop, shift, splice, unshift, and values to be called with a scalar
argument. This experiment is considered unsuccessful, and has been removed.
The postderef feature may meet your needs better."

The specific instance here was probably just a typo or thinko the did the
right thing on Perls "of a certain age" ... so, we fix that here, now.

To test:

[1] Upon applying the patch, verify that Perl 5.24+ will successfully
    compile metabib.pm, that the open-ils.storage service will
    start up, and that catalog searches continue to work.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1706148 - Hide "Hold is behind Circ Desk" checkbox in XUL patron registration.
Josh Stompro [Mon, 24 Jul 2017 18:51:55 +0000 (13:51 -0500)]
LP#1706148 - Hide "Hold is behind Circ Desk" checkbox in XUL patron registration.

When the library setting for "Behind Desk Pickup Supported" is not enabled then
the checkbox for "Hold is behind Circ Desk" should be hidden.

Test Plan - before fix:
  1. Check to make sure that the "Behind Desk Pickup Supported" library setting is
     unset or false.
  2. Open the patron registration screen in the XUL staff client and see that the
     user settings checkbox for "Hold is behind Circ Desk" exists.

After Fix Applied:
  1. Check to make sure that the "Behind Desk Pickup Supported" library setting is
     unset or false.
  2. Open the patron registration screen in the XUL staff client and see that the
     user settings checkbox for "Hold is behind Circ Desk" no longer is shown.
  3. Change the library setting in question to True.
  4. Reload/reopen the patron registration screen and see that the checkbox now
     is visible.

Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Dan Pearl <dpearl@cwmars.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoRevert "LP#1635737 Use new OpenSRF interval_to_seconds() context"
Mike Rylander [Mon, 31 Jul 2017 19:15:57 +0000 (15:15 -0400)]
Revert "LP#1635737 Use new OpenSRF interval_to_seconds() context"

This reverts commit 04a101312b0a42d34108c8d78997a3960241363a.

7 years agoLP#1635737 Use new OpenSRF interval_to_seconds() context
Dan Wells [Fri, 21 Jul 2017 18:28:16 +0000 (14:28 -0400)]
LP#1635737 Use new OpenSRF interval_to_seconds() context

Use the optional context for interval_to_seconds() to account for the
variable length of duration components.  For example, "1 day" may be
shorter or longer than 24 hours during a time change event, "1 month"
may be shorter or longer depending on which month it is currently, etc.

Also, remove some timestamp munging, as that happens within
interval_to_seconds() already.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoforward port 2.12.3-2.12.4 schema update
Galen Charlton [Fri, 28 Jul 2017 19:29:00 +0000 (15:29 -0400)]
forward port 2.12.3-2.12.4 schema update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoForward port 2.11.7 upgrade script
Dan Wells [Thu, 27 Jul 2017 21:20:52 +0000 (17:20 -0400)]
Forward port 2.11.7 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
7 years agoDocs: 2.12.4 Release Notes
Kathy Lussier [Thu, 27 Jul 2017 03:33:11 +0000 (23:33 -0400)]
Docs: 2.12.4 Release Notes

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoDocs: Release notes for 2.11.7
Kathy Lussier [Wed, 26 Jul 2017 21:21:00 +0000 (17:21 -0400)]
Docs: Release notes for 2.11.7

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoLP#1670448: Rearrange space for bib record action buttons
Kathy Lussier [Mon, 24 Jul 2017 22:11:41 +0000 (18:11 -0400)]
LP#1670448: Rearrange space for bib record action buttons

The addition of the view/place order button pushed other action buttons to a
2nd row. We also need to make room for the forthcoming serials button. This
commit 1) changes the div classes for the navigation buttons and action buttons
so that it is now a 50/50 split of screen space and 2) moves some action items
into a 'Other Actions' menu.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
7 years agoLP1670448 - Move View/Place Orders to Record Summary
Christine Morgan [Mon, 3 Jul 2017 20:08:11 +0000 (16:08 -0400)]
LP1670448 - Move View/Place Orders to Record Summary

Removes View/Place Orders option from menu in Holdings View and adds a View/Place Orders button to Record Summary

Signed-off-by: Christine Morgan <cmorgan@noblenet.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoLP#1695062 - webstaff Make non-freetext required stat cats actually required
Cesar Velez [Fri, 14 Jul 2017 17:25:44 +0000 (13:25 -0400)]
LP#1695062 - webstaff Make non-freetext required stat cats actually required

In the Patron registration form this custom drop down needed to
have an ng-class attribute with the proper
object expression in order to do add class ng-invalid if the
stat cat was required and not there.

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

Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoLP#1691860: Release notes entry for nosound audio file
Kathy Lussier [Mon, 24 Jul 2017 18:12:26 +0000 (14:12 -0400)]
LP#1691860: Release notes entry for nosound audio file

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoLP#1691860 Webstaff audio alert nosound.wav
Bill Erickson [Thu, 18 May 2017 21:08:37 +0000 (17:08 -0400)]
LP#1691860 Webstaff audio alert nosound.wav

Adds a small nosound.wav file which may be used by administrators to
silence a specific alert for all users on the server.

To test:

[1] mkdir -p /openils/var/web/audio/notifications/success/patron/
[2] cd /openils/var/web/audio/notifications/success/patron/
[3] ln -s ../../nosound.wav by_search.wav
[4] Perform a patron search in the browser client and confirm no sound
    is played upon successful search.

If patron searches have recently been performed, step 4 may require a
cache clear, a different tab, browser restart, eye of newt.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoLP1702911: Correct Barcode State in Add Item
Jason Boyer [Fri, 7 Jul 2017 14:24:35 +0000 (10:24 -0400)]
LP1702911: Correct Barcode State in Add Item

When adding an item from the MARC editor the barcode
state was incorrect because the empty_barcode flag
is set on the copy and then not changed after
assigning a barcode. At that point the only way to
alter the flag is modifying the barcode in the UI,
which the user likely would not think to do. This
causes the Save buttons to remain disabled.

To test pre patch:
Open a record in the MARC editor, check Add Item
Add a call number label and barcode above, click Save
In the vol/copy editor, try as you might, you can't save. :(

To test post-patch:
Open a record in the MARC editor, check Add Item
Add a call number label and barcode above, click Save
In the vol/copy editor, the Save buttons will already be enabled
(barring required stat cats, etc.)

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoLP#1691264 - WebStaff Add stickiness to Patron Search Org-level selector
Cesar Velez [Wed, 28 Jun 2017 21:52:22 +0000 (17:52 -0400)]
LP#1691264 - WebStaff Add stickiness to Patron Search Org-level selector

When searching for users within the patron app, the org-unit selector
dropdown would stay cached to the last used value, but reloading the
PAtron sarch view would reset that. This adds stick-setting attribute
to that custom dropdown and LocalStorage via key eg.circ.patron.search.ou

Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoLP#1312837 - Item Status - Alternate View - Holds/Transit tab: Transit and Hold
Josh Stompro [Mon, 30 Jan 2017 14:21:40 +0000 (08:21 -0600)]
LP#1312837 - Item Status - Alternate View - Holds/Transit tab: Transit and Hold
 information does not refresh

When switching between copies that have different transit and hold information,
the data in the hold/transit tab doesn't get cleared when there isn't a new hold
or transit to clear it.

Test Plan:

Acquire the barcodes for 3 copies, one that is available, on that is in transit
and one that is captured for a hold.

Before Change:
  1. Open item status alternate view and switch to hold/copy tab.  Note that the
     labels default to saying that the item is in transit and captured for a
     hold before any barcodes are scanned.
  2. Enter the available item and note that the labels changed to not in transit
     , not captured.
  3. Scan in the In Transit for Captured item and note that the labels don't
     change when they should.
  4. Scan in the available item and note that the hold or transit data isn't
     cleared.

After Change:
  1. Enter the barcodes for the 3 copies with different statuses and note that
     the Holds/Transit information now updates correctly.

Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoLP#1683555 - Bad barcode image missing from dialog.
Michele Morgan [Mon, 17 Jul 2017 19:36:06 +0000 (15:36 -0400)]
LP#1683555 - Bad barcode image missing from dialog.

Copies the existing bad_barcode.png image to web/images. Also tweaks
wording and style of the dialog box for clarity.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: stamp schema update
Galen Charlton [Mon, 24 Jul 2017 15:32:10 +0000 (11:32 -0400)]
LP#1673857: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: Disable browser autocomplete for tag entry
Josh Stompro [Mon, 17 Jul 2017 16:35:24 +0000 (11:35 -0500)]
LP#1673857: Disable browser autocomplete for tag entry

Adds an autocomplete="off" to the input field to stop browsers
from trying to fill in values.  When the browser fills in values
for tags it can prevent the typeahead feature from being used
easily.

Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: release notes
Galen Charlton [Thu, 11 May 2017 16:46:38 +0000 (12:46 -0400)]
LP#1673857: release notes

Overall test plan
-----------------
[1] In Server Admnistration -> Copy Tag Types, test creating
    and modifying copy tag types.
[2] In Server Admnistration -> Copy Tags, test creating
    and modifying copy tags.
[3] In the volume/copy editor, test use of the 'Copy Tags'
    button to link or unlink tags from copies.
[4] In the volume/copy editor, test use of the 'Copy Tags'
    button to create and link new tags on the fly.
[5] In the copy buckets interface, test use of the 'Apply Tags'
    grid action to link tags to copies.
[6] In the catalog, test the copy_tag(type, search) and
    copy_tag(*, search) filters. Verify that tag visiblity
    (as controlled by the "public" flag on a copy tag) is
    respected.
[7] In the catalog, test the display of copy tags in
    the copy table on the record summary page.
[8] Test the opac.search.enable_bookplate_search library setting
    and verify that it causes a 'Digital Bookplates' search option
    to be added.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: some test cases
Galen Charlton [Thu, 11 May 2017 17:03:16 +0000 (13:03 -0400)]
LP#1673857: some test cases

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: interface for applying tags from copy buckets
Galen Charlton [Fri, 31 Mar 2017 22:31:52 +0000 (18:31 -0400)]
LP#1673857: interface for applying tags from copy buckets

The copy buckets interface now includes an 'Apply Tags'
action that can be used to map tags to a set of selected
copies. Note that interface cannot be used to remove
tag mappings; the volume/copy editor is needed to do that.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: add ability to set copy tags in volume/copy editor
Galen Charlton [Thu, 11 May 2017 15:29:25 +0000 (11:29 -0400)]
LP#1673857: add ability to set copy tags in volume/copy editor

The copy editor now has a 'Copy Tags' button that can be used
to assign or remove tags from a copy. A typeahead widget is
used to allow the user to select an existing tag, but users can
also use this interface to create an entirely new tag on the fly.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: admin interfaces for copy tag types and copy tags
Galen Charlton [Thu, 30 Mar 2017 21:08:19 +0000 (17:08 -0400)]
LP#1673857: admin interfaces for copy tag types and copy tags

This patch adds standard administration interfaces to manage
copy tag types (Server Administration) and copy tags (Local
Administration)

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: teach egFmRecordEditor how to create non-sequence-controlled ID values
Galen Charlton [Mon, 10 Apr 2017 18:33:34 +0000 (18:33 +0000)]
LP#1673857: teach egFmRecordEditor how to create non-sequence-controlled ID values

Since config.copy_tag_type uses a natural key, the egFmRecordEditor
dialog needs to allow the user to set it when creating a new
type.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: teach catalog how to search and display copy tags
Galen Charlton [Wed, 29 Mar 2017 20:15:31 +0000 (16:15 -0400)]
LP#1673857: teach catalog how to search and display copy tags

When the opac.search.enable_bookplate_search library setting is
set to true, the catalog will display a "Digital Bookplates" search
field in the drop-downs on both the search bar and the advanced search
page. Using this will add a "copy_tag(*, search_terms)" filter
to the search, i.e., all visible copy tags will be searched regardless
of type.  Users can also use the copy_tag() search filter directly.

Visible copy tags are displayed in the copy table in the record
summary page. Note that copy tags are displayed regardless of whether
or not opac.search.enable_bookplate_search is on or off.

Mike Rylander also contributed to this patch.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: add open-ils.circ.copy_tags.retrieve[.staff]
Galen Charlton [Wed, 29 Mar 2017 19:46:54 +0000 (15:46 -0400)]
LP#1673857: add open-ils.circ.copy_tags.retrieve[.staff]

These are methods to retrieve the set of copy tags associated
with a copy, scoped to an OU and its descendents at a
optional depth. The .staff version includes both
public and non-public notes (and requires STAFF_LOGIN
permission).

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: add search filter for copy_tags
Galen Charlton [Fri, 17 Mar 2017 21:46:59 +0000 (17:46 -0400)]
LP#1673857: add search filter for copy_tags

Copy tags can be used as a search filter in the catalog. Two
variations are supported:

* copy_tag(type_code, search_terms)

  Search for records that have copies that are linked to tags
  whose value matches the search terms and whose type's
  config.copy_tag_type.code matches the specified
  type_code. E.g., "copy_tag(bookplate, donated by jane smith)"

* copy_tag(*, search_terms)

  Search for records that have copies that are linked to tags
  whose value matches the search terms, regardless of type.

The copy_tag() search filter takes the OPAC-visiblity (as determined
by asset.copy_tag.pub) of the tag into account.

Mike Rylander also contributed to this patch.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1673857: schema, IDL, library settings & perms for copy tags
Galen Charlton [Fri, 17 Mar 2017 21:46:37 +0000 (17:46 -0400)]
LP#1673857: schema, IDL, library settings & perms for copy tags

Three new tables are added to store copy tags:

* config.copy_tag_type

  Defines types that can be used for distinguishing between
  classes of copy tags when searching the catalog. The
  seed data includes a 'bookplate' type by default. The new
  permission ADMIN_COPY_TAG_TYPES controls C/U/D access to this
  table.

* asset.copy_tag

  The actual copy tag values. Copy tags have both labels and values,
  and since at least one interface allows creating copy tags
  on the fly, a trigger will set the value of a new tag
  to its label if the value is null. asset.copy_tag also has a flag
  for setting whether given tag should be searchable (and visible)
  in the public catalog or not. The new permission ADMIN_COPY_TAG
  controls C/U/D access to this table.

* asset.copy_tag_copy_map

  This stores the link between copies and their tags. Only the
  UPDATE_COPY permission is required in order to set tag mappings.

The new library setting is opac.search.enable_bookplate_search, which
controls whether or not to display a "Digital Bookplate" entry in the
catalog search fields dropdowns.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Conflicts:
Open-ILS/src/sql/Pg/950.data.seed-values.sql

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1664715: Hold ratio template ignores some copies
Mike Rylander [Tue, 14 Feb 2017 20:59:53 +0000 (15:59 -0500)]
LP#1664715: Hold ratio template ignores some copies

The relatively new report template "Hold/Copy Ratio per Bib and Pickup Library
(and Descendants)" only includes copies that are at locations that are
actually pickup libraries of holds. For instance, if you have two branches (A
and B) in a system, each with 10 copies attached to a bib, but a hold only at
branch A, the ratio calculated at the system level sees 10 copies rather than
twenty. This has the effect of inflating the hold side of the hold/copy ratio.

The SQL definition is adjusted here to count copies across the entire branch
of the org tree per bib, rather than through a join that restricts to those
branches that are pickup libraries for a relevant hold.

Upgrade note: Report templates using the Hold/Copy Ratio at Pickup Library
and Descendants data source will need to be re-created to benefit from this
bug fix.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoLP#1705731: background batch MARC edits now report status less verbosely
Galen Charlton [Thu, 20 Jul 2017 20:17:12 +0000 (16:17 -0400)]
LP#1705731: background batch MARC edits now report status less verbosely

Rather than repeatedly inserting and fetching potentially
very large arrays of per-record status statements from the
anon cache, batch MARC edits that are run in the background
now report counts.

This patch changes how open-ils.cat.container.template_overlay.background
populates the anonymous cache; note that streaming status updates
if calling open-ils.cat.container.template_overlay instead are
*not* changed.

To test
-------
[1] Set up a MARC Batch Edit run using a reasonably large bucket
    as a source records.
[2] Verify that progress is reported correctly during the run.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
7 years agoLP#1668314 - Webstaff make marcEditor's flateditor checkbox sticky
Cesar Velez [Thu, 29 Jun 2017 17:27:40 +0000 (13:27 -0400)]
LP#1668314 - Webstaff make marcEditor's flateditor checkbox sticky

Just followed the same pattern of using $watch and localstorage
to store a boolean for FlatEditor checkbox. Made $scope.flatEditor
be an object wrapping an isEnabled :bool to avoid *future* ng-if
parent scope issues that could (potentially) occur.

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

Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 years agoLP#1689656: Adjust to zero on negative balance
Jeff Davis [Tue, 9 May 2017 21:17:29 +0000 (14:17 -0700)]
LP#1689656: Adjust to zero on negative balance

Adjust to zero was not actually adjusting to zero on negative balances
in at least some cases.  This patch corrects that behavior.

Test plan:

[1] Generate multiple overdue billings on an overdue circ.
[2] Apply a payment (cash or forgive) to resolve the overdue billings.
[3] Checkin the item using backdated checkin or amnesty mode, such that
    the overdue billings are automatically voided, resulting in a
    negative balance.
[4] Adjust to zero.  A single new manual adjustment billing is created,
    reinstating one overdue billing, and then the adjust-to-zero process
    exits.  The negative balance has been reduced by the amount of one
    overdue billing, rather than being fully adjusted to zero.
[5] Apply the patch and restart services.
[6] Repeat steps 1-3 with a new circulation.
[7] Adjust to zero.  This time, the balance should be correctly adjusted
    to zero, instead of exiting prematurely with an outstanding
    negative balance.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
7 years agoLP#1689656 Add test for manual adjustment of negative balance
Dan Wells [Thu, 20 Jul 2017 22:10:15 +0000 (18:10 -0400)]
LP#1689656 Add test for manual adjustment of negative balance

Without the fix in LP#1689656, this test fails.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
7 years agoLP#1680110 Webstaff circ.staff_client.receipt.* AOUS support
Bill Erickson [Wed, 5 Apr 2017 20:58:53 +0000 (16:58 -0400)]
LP#1680110 Webstaff circ.staff_client.receipt.* AOUS support

Support fetching and adding server-configured strings to print receipts
scope so they can be added to receipts.

Currently supported settings:

circ.staff_client.receipt.alert_text
circ.staff_client.receipt.event_text
circ.staff_client.receipt.footer_text
circ.staff_client.receipt.header_text
circ.staff_client.receipt.notice_text

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Lynn Floyd <lfloyd@andersonlibrary.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>