]> git.evergreen-ils.org Git - Evergreen.git/log
Evergreen.git
6 years agoLP#1732275 - Add Notices Data to Patron Itemsout
Cesar Velez [Mon, 18 Dec 2017 21:10:10 +0000 (16:10 -0500)]
LP#1732275 - Add Notices Data to Patron Itemsout

Prep upgrade script for new YAOUS:
'webstaff.circ.itemsout_notice_count_excludes_courtesies'

Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Conflicts:
Open-ILS/src/sql/Pg/950.data.seed-values.sql

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP#1732275: Patron Itemsout Notices - Add YAOUS for pre-due notices
Cesar Velez [Fri, 8 Dec 2017 18:50:38 +0000 (13:50 -0500)]
LP#1732275: Patron Itemsout Notices - Add YAOUS for pre-due notices

Adding library permission 'webstaff.circ.itemsout_notice_count_excludes_courtesies'
so that pre-due/courtesy events aren't included in the notices count.

Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP#1732275: add open-ils.actor.user.itemsout.notices api
Cesar Velez [Mon, 13 Nov 2017 23:25:05 +0000 (18:25 -0500)]
LP#1732275: add open-ils.actor.user.itemsout.notices api

Add a method to Actor.pm to count completed action
trigger events for a given circ and return the latest
notice date. Uses the json_query for performance.

Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP#1732275: Add a Last Notice date and a Notices count column
Cesar Velez [Fri, 10 Nov 2017 21:01:41 +0000 (16:01 -0500)]
LP#1732275: Add a Last Notice date and a Notices count column

This adds the above 2 columns to Patron Items Out grid,
and preps the frontend for using the new service method.

Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Conflicts:
Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLp 1350916: marc_export --uris option release notes.
Jason Stephenson [Mon, 27 Nov 2017 20:48:06 +0000 (15:48 -0500)]
Lp 1350916: marc_export --uris option release notes.

Add release notes for the new --uris option on marc_export.

To test the new option, run marc_export to export records with
holdings for a given library using the --library and --items options.
If that library also has electronic resources, do another export with
the same options but add the --uris option and direct this output to a
different file.  Compare the file sizes.  The second file should be
larger than the first.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLp 1350916: Add located URI option to marc_export.
Jason Stephenson [Tue, 14 Nov 2017 19:21:45 +0000 (14:21 -0500)]
Lp 1350916: Add located URI option to marc_export.

Add code to marc_export to support exporting records with located
URIs.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1661688: tweak schema update
Galen Charlton [Wed, 28 Feb 2018 21:50:14 +0000 (16:50 -0500)]
LP#1661688: tweak schema update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLP#1661688: tweaks to release notes
Galen Charlton [Wed, 28 Feb 2018 21:30:46 +0000 (16:30 -0500)]
LP#1661688: tweaks to release notes

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLP#1661688: tweak code for style and whitespace
Galen Charlton [Wed, 28 Feb 2018 21:28:01 +0000 (16:28 -0500)]
LP#1661688: tweak code for style and whitespace

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLP#1661688: Add a link and other tweaks to alternate hold pickup feature
Kathy Lussier [Wed, 21 Feb 2018 20:19:34 +0000 (15:19 -0500)]
LP#1661688: Add a link and other tweaks to alternate hold pickup feature

Adding a couple of tweaks to the alternate hold pickup feature:
  * Created a link for the hold patron so that staff can easily retrieve the record and potentially verify that the user allows the alternate patron to pick
up their holds.
  * Tweaked the language in the event dialog.
  * Removed the new OU setting from actor.org_unit_setting so that a default value is not set.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLp 1661688: Change new setting description.
Jason Stephenson [Mon, 18 Dec 2017 15:32:08 +0000 (10:32 -0500)]
Lp 1661688: Change new setting description.

Alter the circ.clear_hold_on_checkout description to be more clear
about what it does.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Dan Pearl <dpearl@cwmars.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLp 1661688: Fix undefined value error in Circulate.pm.
Jason Stephenson [Fri, 15 Dec 2017 16:21:43 +0000 (11:21 -0500)]
Lp 1661688: Fix undefined value error in Circulate.pm.

We needed to check that there was a hold before picking out the hold
usr.

Also, fix an error in the flesh code added by this branch.  We don't
need to flesh text fields from actor.usr.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Dan Pearl <dpearl@cwmars.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLP##1661688 - Want easy way to clear a hold when picked up by other patron.
Dan Pearl [Tue, 24 Jan 2017 18:59:01 +0000 (13:59 -0500)]
LP##1661688 - Want easy way to clear a hold when picked up by other patron.

This common action was handled previously as
    1) item is scanned - The system detects that this items is for a different
       patron, and an error message is displayed.

    2) Force Override was selected - If the librarian had the appropriate
       privileges, the Force Override could allow the checkout to occur.

    3) librarian cancels original hold - This independent operation would
       be needed to cancel the original hold, otherwise the hold would be
       targeted again.

This feature provides the option to cancel the hold in step #2. An error
message will be displayed as before, but within that message will be a checkbox to allow cancelling of the original hold which, if checked, will mean that step #3 will be automatically done.

The checked/non-checked state of the checkbox is initialized with an
organizational unit setting. The default is false (to preserve default
prior behavior).

Note: This change only affects the "web client".

TO TEST THIS

A. Before the Patch

Hold an item for patron "A".  Attempt to check it out for patron "B".
Observe the choices to Force Override (to allow the checkout) or to cancel.
Do a Force Override and observe that the original hold is still active.

B. After the Patch

Repeat the above scenario, and observe the (blank) checkbox.  Perform the
Force Override and observe that the original hold is still active.

Repeat the scenario, except this time check the checkbox.  Observe after the checheckout is done that original hold is gone.

Adjust the organizational setting (see the Release Notes) to change the default
appearance of the checkbox.

For completeness, you can verify that if you cancel out the message pop-up that the checkout is cancelled and and that the hold status is unchanged, regardless of the state of the checkbox.

Signed-off-by: Dan Pearl <dpearl@cwmars.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>
6 years agoLP#1744385: Stamping upgrade scripts for search and display infrastructure improvements
Dan Wells [Wed, 28 Feb 2018 21:30:26 +0000 (16:30 -0500)]
LP#1744385: Stamping upgrade scripts for search and display infrastructure improvements

Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Additions and edits to release note entry
Kathy Lussier [Mon, 26 Feb 2018 20:04:30 +0000 (15:04 -0500)]
LP#1744385: Additions and edits to release note entry

Minor edits to the release notes entry. Also, I highlighted the increased
use of Display Fields in the client since I thought it would be of
interest to some users. I also incorporated information regarding
default weights, which were added after Mike wrote up his release
note for this feature.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Adding Mike's commit message as a starter release note entry
Kathy Lussier [Mon, 26 Feb 2018 19:26:42 +0000 (14:26 -0500)]
LP#1744385: Adding Mike's commit message as a starter release note entry

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Remove debug timing display
Mike Rylander [Mon, 26 Feb 2018 16:52:27 +0000 (11:52 -0500)]
LP#1744385: Remove debug timing display

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Final seed data fixups
Mike Rylander [Fri, 23 Feb 2018 15:32:19 +0000 (10:32 -0500)]
LP#1744385: Final seed data fixups

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Treat phrase terms the same as non-phrase terms WRT dictionaries
Mike Rylander [Mon, 26 Feb 2018 17:05:37 +0000 (12:05 -0500)]
LP#1744385: Treat phrase terms the same as non-phrase terms WRT dictionaries

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Adjust function for a change in PLPgSQL in PG 9.4.16
Mike Rylander [Thu, 22 Feb 2018 20:19:14 +0000 (15:19 -0500)]
LP#1744385: Adjust function for a change in PLPgSQL in PG 9.4.16

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Add "Main Title" index definition and set reasonable defaults for virtual...
Mike Rylander [Thu, 22 Feb 2018 18:08:51 +0000 (13:08 -0500)]
LP#1744385: Add "Main Title" index definition and set reasonable defaults for virtual weighting

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Add genre stemming to baseline schema
Mike Rylander [Thu, 22 Feb 2018 15:47:16 +0000 (10:47 -0500)]
LP#1744385: Add genre stemming to baseline schema

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Update seed data with more Display Field mappings
Mike Rylander [Wed, 21 Feb 2018 21:39:21 +0000 (16:39 -0500)]
LP#1744385: Update seed data with more Display Field mappings

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Make use of short-term unAPI cache and parallelize metarecord constituent...
Mike Rylander [Wed, 21 Feb 2018 20:08:35 +0000 (15:08 -0500)]
LP#1744385: Make use of short-term unAPI cache and parallelize metarecord constituent retrieval

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Fix typo and allow stemmed search and highlighting of Genre
Mike Rylander [Tue, 20 Feb 2018 21:39:54 +0000 (16:39 -0500)]
LP#1744385: Fix typo and allow stemmed search and highlighting of Genre

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Limit UNIONs and fields therein to those that have different weights...
Mike Rylander [Mon, 19 Feb 2018 22:50:15 +0000 (17:50 -0500)]
LP#1744385: Limit UNIONs and fields therein to those that have different weights for the virtual map

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Parallelize highlight gathering with XML feed retrieval
Mike Rylander [Mon, 19 Feb 2018 21:48:33 +0000 (16:48 -0500)]
LP#1744385: Parallelize highlight gathering with XML feed retrieval

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Add highlighting for ISBN and ISSN
Mike Rylander [Mon, 19 Feb 2018 21:46:59 +0000 (16:46 -0500)]
LP#1744385: Add highlighting for ISBN and ISSN

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Speed up highlighting
Mike Rylander [Fri, 16 Feb 2018 17:35:41 +0000 (12:35 -0500)]
LP#1744385: Speed up highlighting

This commit removes a layer of opensrf-perl indirection and uses cstore
instead of storage for retrieval.  This trims seconds off the render time
of results and a bit off record detail.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Use series_title highlighting in OPAC
Mike Rylander [Fri, 16 Feb 2018 17:27:24 +0000 (12:27 -0500)]
LP#1744385: Use series_title highlighting in OPAC

Here we replace the series title link generation based directly on the MARCXML
with the Display Field equivalent.  Note, the previous method created broken
links in many cases, because it included more in the search terms than were
being indexed by the stock series title definition.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Starting # ../../../../multi-source-attrs.sql

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Optimize real-field additions to virtual field searches
Mike Rylander [Wed, 14 Feb 2018 17:52:21 +0000 (12:52 -0500)]
LP#1744385: Optimize real-field additions to virtual field searches

Now we only add on UNION query for each class providing real fields to a
virtual field, rather than a UNION per real field.  This should reduce
core-query run time.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Adjust virtual-combined-class real-field search
Mike Rylander [Wed, 14 Feb 2018 17:25:25 +0000 (12:25 -0500)]
LP#1744385: Adjust virtual-combined-class real-field search

Instead of searching by combined field within the rank-addition real fields,
we'll just search on the fields itself.  This preserves the ranking additions
provided by the real-virtual mapping.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Various improvements based on testing
Mike Rylander [Fri, 9 Feb 2018 20:19:31 +0000 (15:19 -0500)]
LP#1744385: Various improvements based on testing

 * Improve author and publisher display fields
 * Reimplement Simple Record Extracts using Display Fields
 * Address potential failure in combined search collection
 * Provide useful helper function for inspecting transformed records
 * Implement MODS transforms specified by LoC documentation but not
   actually included in the stylesheet
 * Expand highlighting use to publisher, edition, and physical description
 * Reifying schema from updates

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Set best order for upgrade scripts
Mike Rylander [Fri, 26 Jan 2018 21:52:09 +0000 (16:52 -0500)]
LP#1744385: Set best order for upgrade scripts

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Allow highlight disabling globally via config.tt2
Mike Rylander [Wed, 10 Jan 2018 19:44:48 +0000 (14:44 -0500)]
LP#1744385: Allow highlight disabling globally via config.tt2

Also, add CC0 highlighter icon from https://pixabay.com/en/highlight-highlighter-highlighting-2022407/
and provide highlight en/dis-able.

Signed-off-by: Mike Rylander <miker@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Additional seed data and display field use in the OPAC
Mike Rylander [Fri, 12 Jan 2018 20:24:12 +0000 (15:24 -0500)]
LP#1744385: Additional seed data and display field use in the OPAC

... and teach subjects.tt2 how to search with a facet in HL mode (for genre)

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744385: Search and Result Display improvements
Mike Rylander [Mon, 11 Sep 2017 19:24:55 +0000 (15:24 -0400)]
LP#1744385: Search and Result Display improvements

== Virtual Index Definitions

The practical purpose of Virtual Index Definitions is to supply an Evergreen administrator with
the ability to control the weighting and field inclusion of values in the general keyword index,
commonly referred to as "the blob," without requiring tricky configuration that has subtle semantics, an
over-abundance of index definitions which can slow search generally, or the need to reingest all
records on a regular basis as experiments are performed and the configuration refined. Significant
results of recasting keyword indexes as a set of one or more Virtual Index Definitions will be simpler
search configuration management, faster search speed overall, and more practical reconfiguration and
adjustment as needed.

Previous to this commit, in order to provide field-specific weighting to keyword matches against titles or authors, an
administrator must duplicate many other index definitions and supply overriding weights to those
duplicates. This not only complicates configuration, but slows down record ingest as well as search. It
is also fairly ineffective at achieving the goal of weighted keyword fields. Virtual Index Definitions will
substantially alleviate the need for these workarounds and their consequences.

  * A Virtual Index Definition is not required supply any configuration for extracting bibliographic
    data from records, but instead can become a sink for data collected by other index definitions
    which is then colocated together to supply a search target made up of the separately extracted
    data. Virtual Index Definitions are effectively treated as aggregate definitions, matching across
    all values extracted from constituent non-virtual index definitions.  They can further make use
    of the Combined class functionality to colocate all values in a class together for matching even
    across virtual fields.

  * Configuration allows for weighting of constituent index definitions that participate in a
    Virtual Index Definition. This weighting is separate from the weighting supplied when the index
    definition itself is a search target.

  * The Evergreen QueryParser driver returns the list of fields actually searched using every
    user-supplied term set, including constituent expansion when a Virtual Index Definition is
    searched. In particular, this will facilitate Search Term Highlighting described below.

  * Stock configuration changes make use of pre-existing, non-virtual index definitions mapped
    to new a Virtual Index Definition that implements the functionality provided by the
    keyword|keyword index definition. The keyword|keyword definition is left in place for the time
    being, until more data can be gathered about the real-world effect of removing it entirely and
    replacing it with Virtual Index Definition mappings.

  * New system administration functions will be created to facilitate modification of Virtual Index
    Definition mapping, avoiding the need for a full reingest when existing index definitions are
    added or removed from a virtual field.

== Increased use of Metabib Display Fields

In extention of changes proposed in other available branches, we here use Metabib Display Fields
to render catalog search results, intermediate metarecord results, and record detail pages.
This will requires the addition of several new Metabib Display Field definitions, as well as Perl
services to gather and render the data.

== Search Term Highlighting

This commit enables Search Term Highlighting in the OPAC on the main search results page, the record
detail page, and intermediate pages such as metarecord grouped results page. Highlighting
search terms will help the user determine why a particular record (or set of records) was retrieved.

Highlighting of matched terms uses the same stemming used to accomplish the search, as configured
per field and class.

This feature will help the user more quickly determine the relevance of a particular record by calling their
attention to search terms in context. Lastly, it will help familiarize the user with how records are
searched, including which fields are searched as well as exposing concepts like stemming.

== Interfaces

A new AngularJS "MARC Search/Facet Fields" interface has been created to replace the Dojo version, and
both have been extended to support Virtual Index Definition data supplier mapping and weighting.

== Settings & Permissions

The new Virtual Index Definition data supplier mapping table, config.metabib_field_virtual_map, requires
the same permissions as the MARC Search/Facet Fields interface: CREATE_METABIB_FIELD, UPDATE_METABIB_FIELD,
DELETE_METABIB_FIELD, or ADMIN_METABIB_FIELD for all actions

There is a new template-level global configuration variable in config.tt2 called search.no_highlight
which disables highlighting for users of that config.tt2 instance.

== Public Catalog

The public and staff catalog will make use of new APIs to identify and display highlight-augmented
values for those Display Fields used to render the search result pages, intermediate metarecord
constituent pages, and record detail pages.  Highlighting of terms will be performed using the
application of Template::Toolkit-driven CSS. A generic CSS class identifying a highlighted term,
along with CSS classes identifying the search class and each search field will be available for
use for customization of the highlighting. A stock CSS
template is provided as a baseline upon which sites may expand.

When highlighting is generally enabled, it may be turned on or off on a per-page basis through the use of
a UI component which will request the page again without highlighting.

== Backend

There now exist several new database tables and functions primarily in support of search highlighting.
Additionally, the QueryParser driver for Evergreen has been augmented to be able to return a data structure
describing how the search was performed, in a way that allows a separate support API to gather a highlighted
version of the Display Field data for a given record.

== Re-ingest or Indexing Dependencies

With the addition and modification of many Index Definitions, a full reingest is recommended.  However, search
will continue to work as it did before the changes in this commit for those records that have not yet been
reingested during that process.  Therefore a slow, rolling reingest is recommended.

== Performance Implications or Concerns

Because the Metabib Display Fields infrastructure will eventually replace functionality that is significantly more
CPU-intensive in the various forms of XML parsing, XSLT transformation, XPath calculation, and
Metabib Virtual Record construction, it is expected that the overall CPU load will be reduced by this
development, and ideally the overall time required to perform and render a search will likewise drop. It
is unlikely that the speed increase will be visible to users on a per-search basis, but that search in
aggregate will become a smaller consumer of resources.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1727487 Display field JS utils more docs
Bill Erickson [Thu, 26 Oct 2017 20:24:30 +0000 (16:24 -0400)]
LP#1727487 Display field JS utils more docs

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1727487 Webstaff record summary uses display fields
Bill Erickson [Thu, 26 Oct 2017 19:55:46 +0000 (15:55 -0400)]
LP#1727487 Webstaff record summary uses display fields

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1727487 Webstaff In-House-Use uses display fields
Bill Erickson [Thu, 26 Oct 2017 19:17:45 +0000 (15:17 -0400)]
LP#1727487 Webstaff In-House-Use uses display fields

Replace reporter.simple_record data with metabib display fields.

Use flat_display_entries instead of wide_display_entry partially as an
example, but also because it requires slightly less data munging on the
DB side.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Conflicts:
Open-ILS/web/js/ui/default/staff/circ/in_house_use/app.js

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1727487 Items out display uses collapsed display fields
Bill Erickson [Thu, 26 Oct 2017 19:14:15 +0000 (15:14 -0400)]
LP#1727487 Items out display uses collapsed display fields

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1727487 Webstaff display fields collapseMulti option
Bill Erickson [Thu, 26 Oct 2017 19:10:17 +0000 (15:10 -0400)]
LP#1727487 Webstaff display fields collapseMulti option

Support an option in the webstaff-side display field munging code to
collapse array/multi values down to a single comma-separated string.

This is useful for buidling displays (grids especially) where you have a
single spot to put a field's value (e.g. a list of ISBN's) and don't want
to munge the data by hand in each UI.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1727487 Webstaff Items Out uses display fields
Bill Erickson [Thu, 26 Oct 2017 16:25:51 +0000 (12:25 -0400)]
LP#1727487 Webstaff Items Out uses display fields

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Conflicts:
Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1727487 Display field seed data WIP
Bill Erickson [Wed, 25 Oct 2017 22:07:53 +0000 (18:07 -0400)]
LP#1727487 Display field seed data WIP

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1676608: avoid constraint creation that requires a TARDIS
Galen Charlton [Wed, 28 Feb 2018 16:41:30 +0000 (11:41 -0500)]
LP#1676608: avoid constraint creation that requires a TARDIS

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoset correct file extension for 1093 schema update script
Galen Charlton [Wed, 28 Feb 2018 16:39:58 +0000 (11:39 -0500)]
set correct file extension for 1093 schema update script

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoStamping follow-up upgrade script for copy alerts
Mike Rylander [Wed, 28 Feb 2018 16:28:48 +0000 (11:28 -0500)]
Stamping follow-up upgrade script for copy alerts

Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: activate more copy alert types by default
Galen Charlton [Wed, 28 Feb 2018 16:27:52 +0000 (11:27 -0500)]
LP#1676608: activate more copy alert types by default

Since users of 3.1 should be using the web staff client unless
they absolutely cannot switch from the XUL client yet, the copy
alert types for exceptional checkin and checkout statuses are now
active by default.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1748986 Release notes
Remington Steed [Tue, 27 Feb 2018 21:10:15 +0000 (16:10 -0500)]
LP#1748986 Release notes

Release notes for the new Billing Statement View.

Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP#1748986 Broaden billing interface labels
Dan Wells [Tue, 20 Feb 2018 22:39:17 +0000 (17:39 -0500)]
LP#1748986 Broaden billing interface labels

In a few places we use the word "Paid", but there are quite a few
things in that bucket (forgiveness, adjustments, etc.) which don't fit
well under the term "Paid".

Though we have some deep structural causes for this, we can take a baby
step in the right direction by sprinkling the term "Credited" in a few
key places.

Also, correct an mislabeled "Balance" field.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP#1748986 Billing Statement View
Dan Wells [Mon, 12 Feb 2018 19:47:21 +0000 (14:47 -0500)]
LP#1748986 Billing Statement View

Over time, Evergreen has developed a rich set of features to support
various billing scenarios.  Unfortunately, our interface has not kept up
in some ways, and this leads to some confusion at times, particularly
for front line staff.

One way to bring clarity is to apply better grouping, labeling, and
ordering of the various transactional events.  By doing so, we can
generate a billing "statement" with similarities to the statements we
regularly encounter when dealing with other financial institutions.

This branch does so for the staff client view, but it also seems viable
to carry over the same idea to an eventual patron (or print) view as
well.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoStamping upgrade scripts for new copy alerts
Mike Rylander [Wed, 28 Feb 2018 15:33:50 +0000 (10:33 -0500)]
Stamping upgrade scripts for new copy alerts

Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: Stop hold capture when an alert-force copy status change is requested
Mike Rylander [Wed, 28 Feb 2018 15:17:10 +0000 (10:17 -0500)]
LP#1676608: Stop hold capture when an alert-force copy status change is requested

Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: don't sound the klaxon for unusual copy statuses during checkin
Galen Charlton [Tue, 27 Feb 2018 22:23:22 +0000 (17:23 -0500)]
LP#1676608: don't sound the klaxon for unusual copy statuses during checkin

During a successful checkin, play the success sound if an
unexpected copy status is noted in the success message -- it
may have been set via a copy alert.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: inject copy alert dialog in two more places
Galen Charlton [Fri, 23 Feb 2018 21:54:51 +0000 (16:54 -0500)]
LP#1676608: inject copy alert dialog in two more places

The copy alert dialog (if an item has relevant copy alerts)
is now injected into the dialog box series when handling
checkouts of items that are in transit or where the patron
record has overridable conditions that would block the checkout.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: provide DB update script to convert legacy copy alert messages
Galen Charlton [Thu, 22 Feb 2018 22:02:11 +0000 (17:02 -0500)]
LP#1676608: provide DB update script to convert legacy copy alert messages

Legacy copy alert messages are moved to new normal checkout and
normal checkin copy alerts. This patch also converts the foreign
key relationship from asset.copy_alert to asset.copy to a "fake"
one using a constraint trigger.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: tweak defaults for alerts in vol/copy editor
Galen Charlton [Thu, 22 Feb 2018 21:34:15 +0000 (16:34 -0500)]
LP#1676608: tweak defaults for alerts in vol/copy editor

Changed the defaults key for new-style copy alerts to be the same
as what was used for legacy copy alert messages; this means that
users who set editor defaults prior to upgrading are more likely
to have the Copy Alerts button be active out of the box.

Also moved the location of Add/Edit Copy Alerts in the defaults
tab.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: remove legacy copy alerts field from vol/copy editor
Galen Charlton [Thu, 22 Feb 2018 21:17:43 +0000 (16:17 -0500)]
LP#1676608: remove legacy copy alerts field from vol/copy editor

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: tweak copy alert type manager
Galen Charlton [Thu, 22 Feb 2018 21:07:44 +0000 (16:07 -0500)]
LP#1676608: tweak copy alert type manager

The "Next Status" selector is now disabled unless the event type is
'Checkin'.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: allow focus-me to accept constant
Galen Charlton [Thu, 22 Feb 2018 20:44:52 +0000 (15:44 -0500)]
LP#1676608: allow focus-me to accept constant

A handfull of cases have arisen, including but not limited to
the copy alerts feature, where focus-me is set to simply "true"
rather than being bound to to a scope variable. This patch formalizes
this and gets rid of the following console warning:

angular.min.js:119 TypeError: model.assign is not a function
    at ui.js:23
    at angular.min.js:160
    at f (angular.min.js:45)
    at angular.min.js:48
(anonymous) @ angular.min.js:119

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: properly auto-override during missing checkout
Galen Charlton [Thu, 22 Feb 2018 20:25:10 +0000 (15:25 -0500)]
LP#1676608: properly auto-override during missing checkout

This patch ensures that suppressing the checkout of missing copy alert
does, in fact, suppress the alert.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: update seed data for new installations
Galen Charlton [Thu, 22 Feb 2018 19:25:19 +0000 (14:25 -0500)]
LP#1676608: update seed data for new installations

Prior to this patch, only the DB update scripts new about the
stock copy alert types and new OU settings.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: tweak labeling at circ/at owning library fields
Galen Charlton [Wed, 7 Feb 2018 21:52:20 +0000 (16:52 -0500)]
LP#1676608: tweak labeling at circ/at owning library fields

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: add some sorting to copy alert dialogs
Galen Charlton [Wed, 7 Feb 2018 21:41:55 +0000 (16:41 -0500)]
LP#1676608: add some sorting to copy alert dialogs

Copy alert types in drop-downs are now sorted by name
and copy alerts themselves are now consistently sorted
by ID (which will have the affected of putting the most
recent alert at the bottom in the copy alert manager dialog).

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: conditionally enable manage copy alerts button on item status details
Galen Charlton [Wed, 7 Feb 2018 21:30:04 +0000 (16:30 -0500)]
LP#1676608: conditionally enable manage copy alerts button on item status details

The 'Manage' button for copy alerts on the Item Status Detail view
is now enabled only if there is at least one active copy alert. This
patch also tweaks how the copy alert dialogs sequence record update
and modal-closing so that the caller can be sure that the transaction
has committed.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: fix glitch with egCore.pcrud.apply()
Galen Charlton [Wed, 7 Feb 2018 17:20:47 +0000 (12:20 -0500)]
LP#1676608: fix glitch with egCore.pcrud.apply()

pcrud.apply() is supposed to skip any entries in the list
of CUD actions that don't explicitly mark themselves as
being a creation, update, or deletion, but didn't manage
to fully skip them. As a consequence, the browser console
would note complaints that open-ils.pcrud.apply.$IDLCLASS
methods do not exist.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: fix positioning of copy alert buttons on Item Status Detail view
Galen Charlton [Wed, 7 Feb 2018 16:59:43 +0000 (11:59 -0500)]
LP#1676608: fix positioning of copy alert buttons on Item Status Detail view

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: add release notes
Galen Charlton [Wed, 7 Feb 2018 16:48:29 +0000 (11:48 -0500)]
LP#1676608: add release notes

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1676608: copy alert and suppression matrix
Mike Rylander [Tue, 20 Oct 2015 14:10:28 +0000 (10:10 -0400)]
LP#1676608: copy alert and suppression matrix

The Copy Alerts feature allows library staff to add customized alert
messages to copies. The copy alerts will appear when a specific event
takes place, such as when the copy is checked in, checked out, or
renewed. Alerts can be temporary or persistent: temporary alerts will be
disabled after the initial alert and acknowledgement from staff, while
persistent alerts will display each time the alert event takes place.
Copy Alerts can be configured to display at the circulating or owning
library only or, alternatively, when the library at which the alert
event takes place is not the circulating or owning library.  Copy Alerts
can also be configured to provide options for the next copy status that
should be applied to an item.  Library administrators will have the
ability to create and customize Copy Alert Types and to suppress copy
alerts at specific org units.

Copy alerts can be added via the volume/creator and the check in,
check out, and renew pages.  Copy alerts can also be managed at the
item status page.

Copy alert types can be managed via the Copy Alert Types page in
Local Administration, and suppression of them can be adminstered
via the Copy Alert Suppression page under Local Administration.

Co-authored-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
6 years agoLP#1733695: Stamping upgrade scripts for multilingual search
Kathy Lussier [Tue, 27 Feb 2018 21:29:51 +0000 (16:29 -0500)]
LP#1733695: Stamping upgrade scripts for multilingual search

Also, fixed a small typo in the 1094 upgrade script.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoAdd release note for multilingual search
Mike Rylander [Tue, 27 Feb 2018 20:48:01 +0000 (15:48 -0500)]
Add release note for multilingual search

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP#1733695: Pull record attribute values from multiple sources
Mike Rylander [Wed, 8 Nov 2017 21:26:10 +0000 (16:26 -0500)]
LP#1733695: Pull record attribute values from multiple sources

Previously, a multi-valued record attribute could only be extracted using
one strategy (XPath, tag+subfield, fixed field, etc).  For multi-valued
attributes, though, there's no reason to restrict this as long as the values
from various sources would, after normalization, have the same shape.  So
now we allow that, and we update the item_lang definition in order to allow
searching for records with multiple languages in various boolean ways.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP#1737016 Stamping upgrade script for easing constraints on afs.code
Dan Wells [Tue, 27 Feb 2018 21:08:46 +0000 (16:08 -0500)]
LP#1737016 Stamping upgrade script for easing constraints on afs.code

Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP1737016: Ease Constraints on afs.code
Jason Boyer [Thu, 7 Dec 2017 19:45:21 +0000 (14:45 -0500)]
LP1737016: Ease Constraints on afs.code

acq.funding_source.code currently has a UNIQUE
constraint applied, which can be confusing to
users. This branch only requires that a code be
unique to the funding source's owner, simplifying
the management of funding sources.

Signed-off-by: Jason Boyer <JBoyer@library.in.gov>
Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoForward-port 2.12.10 upgrade script
Dan Wells [Tue, 27 Feb 2018 18:27:16 +0000 (13:27 -0500)]
Forward-port 2.12.10 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoForward-port 3.0.4 upgrade script
Dan Wells [Tue, 27 Feb 2018 18:17:22 +0000 (13:17 -0500)]
Forward-port 3.0.4 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744996 Stamping upgrade script for record merge tracking
Dan Wells [Tue, 27 Feb 2018 17:58:39 +0000 (12:58 -0500)]
LP#1744996 Stamping upgrade script for record merge tracking

Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744996 Record merge tracking release notes
Bill Erickson [Thu, 25 Jan 2018 16:28:47 +0000 (11:28 -0500)]
LP#1744996 Record merge tracking release notes

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744996 Webstaff bib rec merged to link
Bill Erickson [Thu, 25 Jan 2018 16:10:45 +0000 (11:10 -0500)]
LP#1744996 Webstaff bib rec merged to link

Display a message in the web staff bib record display indicating when a
bib record has been merged to another record.  The message includes the
merge date and target record and is rendered as a link to the target
record.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1744996 Track bib record merges
Bill Erickson [Thu, 25 Jan 2018 16:05:23 +0000 (11:05 -0500)]
LP#1744996 Track bib record merges

Adds "merge_date" and "merged_to" fields for bib records.  Merge date
is applied to all records involved in a record merge at merge time.
merged_to is applied to all subordinate (merged) records and points to
the target record.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
6 years agoLP#1694058: Stamping upgrade script for duplicate holds coust
Kathy Lussier [Thu, 22 Feb 2018 02:01:22 +0000 (21:01 -0500)]
LP#1694058: Stamping upgrade script for duplicate holds coust

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP# 1694058: Release notes entry for placing multiple holds
Kathy Lussier [Thu, 22 Feb 2018 01:55:31 +0000 (20:55 -0500)]
LP# 1694058: Release notes entry for placing multiple holds

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLp 1694058: Fix Issue With Place Holds Reported in Testing
Jason Stephenson [Sun, 29 Oct 2017 19:14:41 +0000 (15:14 -0400)]
Lp 1694058: Fix Issue With Place Holds Reported in Testing

When staff did have to override in order to place the hold, and the
"Place another hold for this title" link was subsequnetly used, the
inputs for the patron barcodes and some other fields on the place
holds page were duplicated.  To avoid this, we now use uniq from the
List::MoreUtils library when retrieving the hold targets list from the
CGI parameters.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP 1694058: Final OPAC Changes for Multiple Hold Placement
Jason Stephenson [Sun, 1 Oct 2017 16:03:26 +0000 (12:03 -0400)]
LP 1694058: Final OPAC Changes for Multiple Hold Placement

Add JavaScript code to disable the number of copies selection when a
part is chosen for a record that has both parts and non parts holds
available.  If a part is chosen, the number of copies select should be
disabled and reset to 1.  It should be enabled again if the All Parts
option is chosen.  It does not appear if the hold requires a part.

Test Plan for the OPAC changes:

1. Set circ.holds.max_duplicate_holds to 5 for BR1.

2. Login to the OPAC as any patron from BR1.

3. Perform any search.

4. Select a title and click Place Hold.

5. See that the selection box for placing multiple holds does not appear on the place holds screen.

6. Place the hold to see that hold placement still works as expected.

8. Go to the patron’s list of holds in My Opac to see that the hold appears.

9. Cancel the hold so it doesn’t interfere with later testing.

10. Logout.

11. Login to the OPAC as any patron from BR2 or any branch other than BR1.

12. Perform any search.

13. Select a title and click Place Hold.

14. See that the selection box for placing multiple holds does not appear on the place holds screen.

15. Place the hold to see that hold placement still works as expected.

16. Go to the patron’s list of holds in My Opac to see that the hold appears.

17. Cancel the hold so it doesn’t interfere with later testing.

18. Logout.

19. Login to the web staff client as a circulator for BR1 at BR1.

20. Select a patron barcode for any BR1 patron.

21. Perform any search.

22. Choose a title without parts and click place holds.

23. See that the selection box for placing multiple holds appears with 1 as the default.

24. Click the selection box to see that the values go from 1 to 5.

25. Place any number of holds for the patron whose barcode was chosen in step 15.

26. Open the patron in the staff client and check the patron’s holds list to see that they have the correct number of holds for this title listed.

27. Repeat steps 21 – 26 with metarecord holds on one of the metarecord titles.

28. Perform a search and select a title.

29. Choose an item to place a copy hold for the same patron.

30. Notice that the multiple hold number selection box does not appear.

31. Place the hold as normal (if you like) to test that copy hold placement still works.

32. Search for a title with parts.

33. Select a part in the parts drop down or radio button.

34. Notice that the number of copies select box is reset to 1 and disabled when a part is selected.

35. Repeat the above steps for a BR2 circulation account logged in at BR2 (or any other branch staff).

36. Notice that the selection box never appears when placing holds where the org. unit setting does not apply.

37. Clear the org. unit setting for BR1 and repeat the above steps, if desired.

The web staff client tests should work in the XUL staff client as well.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP 1694058: Add confirmation dialog for multiple title holds.
Jason Stephenson [Sat, 30 Sep 2017 19:30:22 +0000 (15:30 -0400)]
LP 1694058: Add confirmation dialog for multiple title holds.

Add a dialog to confirm that the user really wants to place the
requested number of title or metarecord holds to the
validateHoldForm() function.

Along the way, we add a format() function to the JS String prototype
in the i18n_strings.tt2 so that we can have translated strings with
placeholders in JavaScript.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP 1694058: OPAC changes for multiple title and metarecord holds.
Jason Stephenson [Sat, 23 Sep 2017 18:45:41 +0000 (14:45 -0400)]
LP 1694058: OPAC changes for multiple title and metarecord holds.

We add the num_copies select box to the place_holds.tt2 whe appropriate.

The new select list generator has its own tt2 file:
Open-ILS/src/templates/opac/parts/multi_hold_select.tt2

Modify WWW/EGCatLoader/Account.pm to properly process multiple hold
requests for the same title or metarecord.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP 1694058: Perl tests for backend multiple hold placement changes.
Jason Stephenson [Sun, 13 Aug 2017 13:42:34 +0000 (09:42 -0400)]
LP 1694058: Perl tests for backend multiple hold placement changes.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP 1694058: Add backend code to allow multiple hold placement.
Jason Stephenson [Wed, 9 Aug 2017 01:23:44 +0000 (21:23 -0400)]
LP 1694058: Add backend code to allow multiple hold placement.

We add a constant for the circ.holds.max_duplicate_holds setting.

We modify Holds.pm to check if we're placing a title or metarecord
hold, that we have the CREATE_DUPLICATE_HOLDS permission, and that we
haven't placed more than the maximum allowed number of duplicate holds
before returning the HOLD_EXISTS event.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP 1694058: Add org. unit setting for multiple hold placement.
Jason Stephenson [Sun, 30 Jul 2017 19:52:25 +0000 (15:52 -0400)]
LP 1694058: Add org. unit setting for multiple hold placement.

Add config.org_unit_setting_type circ.hold.max_duplicate_holds to set
the maximum duplicate title or metarecord holds allowed per patron.

Add pgtap test to make sure the new setting exists.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
6 years agoLP#1739803: add angular tablesport to vendor bundle
Galen Charlton [Tue, 20 Feb 2018 21:55:28 +0000 (16:55 -0500)]
LP#1739803: add angular tablesport to vendor bundle

Otherwise, offline breaks.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLP#1739803 Add newly required dependency for jasmine-core
Bill Erickson [Wed, 14 Feb 2018 18:25:54 +0000 (13:25 -0500)]
LP#1739803 Add newly required dependency for jasmine-core

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLP#1739803 Webstaff: Replace Grunt with Webpack
Bill Erickson [Wed, 20 Dec 2017 16:13:10 +0000 (11:13 -0500)]
LP#1739803 Webstaff: Replace Grunt with Webpack

* Remove grunt devDependencies
* Add Webpack devDepenencies
* Copy and minify operations are now handled by Webpack via 'npm run
  build' for dev builds and 'npm run build-prod' for
  production/minified builds.
* Running 'npm run build-watch' executes webpack in --watch mode to
  watch for affected file changes and automatically rebuild.  Useful for
  development.
* Karma unit tests are now invoked directly from node via 'npm run
  test'.
* Docs and release installer updated to match.
* Removed long-outdated inline installer readme.

Webpack is configured to create bundles from sets of JS files.  As it
stands, there are 2 sets: core.bundle.js and vendor.bundle.js.  Core has
all of the EG core services that are loaded on every page.  Vendor
contains all of the 3rd-party dependencies (angular, etc.).  These 2
bundles are loaded on every web staff page (via base_js.tt2).

All other <script/> tags remain as they were.

When building in dev mode ('npm run build'), core service JS files are
bunded un-minified with an inline source map for debugging.  Vendor
files (angularjs, etc.) are always minified because they are quite
large.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLP#1739803 Quiet some repetitive console messages for unit tests
Bill Erickson [Fri, 22 Dec 2017 17:19:43 +0000 (12:19 -0500)]
LP#1739803 Quiet some repetitive console messages for unit tests

These console logs repeat during unit test runs and add clutter (ditto
the browser console log).  I commented them out instead of removing them
since they may still be useful for debugging in the future.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLP#1739803 Remove superseded 'extern' directory
Bill Erickson [Thu, 21 Dec 2017 19:14:18 +0000 (14:14 -0500)]
LP#1739803 Remove superseded 'extern' directory

angular-location-update.js is now managed via npm.  No need to retain a
copy in the repo.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoLP#1739803 Angular 1.6 + dependency updates
Bill Erickson [Fri, 2 Jun 2017 21:01:32 +0000 (17:01 -0400)]
LP#1739803 Angular 1.6 + dependency updates

Rebuild package.json starting with Angular 1.6.  This resulted in a
number of dependency updates and small changes required to keep the
dependencies happy.

* Teach print.js to use promise-style $http responses, instead of
  .success() and .error()
* Remove unused '$http' dependency in hatch.js
* Fix egDate custom test matcher to work with newer version of
  karma-jasmine.
* Build IDL for test scripts using Grunt/exec "cwd" since Grunt fails to
  understand "&&" commands, like 'cd foo && bar'.
* For correctness, move dev-only depenencies into the package.json
  devDependencies section.

See also
https://docs.angularjs.org/guide/migration#migrating-from-1-5-to-1-6

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
6 years agoDocs: fixing typo in 2.12.9 release notes
Jane Sandberg [Tue, 20 Feb 2018 22:35:53 +0000 (14:35 -0800)]
Docs: fixing typo in 2.12.9 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
6 years agoRelease notes for 2.12.10
Jane Sandberg [Tue, 20 Feb 2018 22:34:10 +0000 (14:34 -0800)]
Release notes for 2.12.10

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
6 years agoAdding 3.0.4 release notes
Jane Sandberg [Wed, 21 Feb 2018 02:27:47 +0000 (18:27 -0800)]
Adding 3.0.4 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
6 years agoLP#1749992 Disable payment button during payment
Dan Wells [Tue, 20 Feb 2018 16:05:49 +0000 (11:05 -0500)]
LP#1749992 Disable payment button during payment

Since the display is not refreshed until the payment finishes, it
is possible to fire off a second payment by double-clicking.

This commit is a simple way to disable the button while a payment is
in process, then enable it again after the display refreshes.

Since the 'sendPayment()' function is wrapped, we may need to move
this logic up, but this being a single promise is simpler, and it
solved the problem in testing.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Jason Stephenson <jason@sigio.com>
6 years agoLp 1746584: Stamping Upgrade Script
Jason Stephenson [Tue, 20 Feb 2018 15:09:33 +0000 (10:09 -0500)]
Lp 1746584: Stamping Upgrade Script

Signed-off-by: Jason Stephenson <jason@sigio.com>