Documentation for storing Z39.50 credentials.  Added to existing file on Z39.50 permissions.

Signed-off-by: Angela Kilsdonk <akilsdonk@esilibrary.com>
Add new get_combined_holdings() method to MFHD.pm

This commit adds a new method to the MFHD module which creates an
array of compressed holdings from all holdings for a given caption,
combining as needed.

NOTE: This method is similar to, but much less aggressive/strict than
get_compressed_holdings(). Ultimately, get_compressed_holdings()
might be deprecated in favor of this.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Tie in new MFHD method to serials module/MFHD tests for compressing, combining

[This commit has been squashed for merging. LFW]

 *  Now that we have a potentially better alternative, let's call
    get_combined_holdings() in place of get_compressed_holdings() in
    Serial.pm.

 *  First, add a test for the new get_combined_holdings() method.

    Second, add a known problem case for get_compressed_holdings().
    The fix will come in a subsequent commit.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Fix logic in get_compressed_holdings()

[This commit has been squashed for merging. LFW]

  * This commit rearranges some of the logic branches to protect
    against an unusual case of having two holding statements with
    the same start value, but one being open-ended and one not.

  * The logic in get_combined_holdings() was a little sloppy and
    repeated some steps unnecessarily.  This cleans things up.

    See the test case in the previous commit for more clarity.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Solidify caption/holding relationship, improve MFHD::Holding comparisons

[This commit has been squashed for merging. LFW]

  * This commit:
    - Makes sure that holding data is valid for the given caption
      for new holding objects
    - Teaches field_values() to fall back to '*' (unknown marker)
      when a holding is missing data
    - Allows the caption() method to be a setter

  * This commit:
    - Makes the comparison operator consider chron data, not just
      enumeration data
    - Teaches the comparison operator a way to handle 'unsure' data
      (that is, data presented in brackets [])

  * The code was assuming the $end_holding param would be uncompressed,
    but this was not stated anywhere, nor enforced.  Let's allow the
    method to take both compressed and uncompressed holdings as the "end"
    (and handle it appropriately).

  * Add some holdings with missing and unsure data to test the new
    comparison operators handling of such data.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Inter-authority linking

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Link browse entries to authority record when possible

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Bib record browser with 'see also', etc from linked authority headings

This feature provides a patron-oriented OPAC interface for browsing
bibliographic records.

Users choose to browse by Author, Title, Subject, or Series. They then
enter a browse term, and the nearest match from a left-anchored search
on the headings extracted for browse purposes will be displayed in a
typical backwards/forwards paging display. Headings link to search
results pages showing the related records. If the browse heading is
linked to any authority records, and if any *other* authority records
point to those with "See also" or other non-main entry headings, those
alternative headings are displayed a linked to a search results page
showing related bib records related to the alternate heading.

The counts of holdings displayed next to headings from bibliographic
records are subject to the same visiibility tests as search. This means
that the org unit (and copy location group) dropdown on the browse
interface affects counds, and it further means that whether or not
you're looking at the browse interface through the staff client makes a
difference.

This builds on the two previous commits that provide inter-authority
linking and the linking of metabib.browse_entry rows to authority
records.

This also contains, in squashed form, these commits that resulted from
collaboration on LP #1177810:

    Two bugfixes to OPAC Browse: non-filing indicators, leading-article warning
    Fix paste-o encountered in Bib browse upgrade script
    OPAC Browse: fix 0-9 link in paging shortcuts; padding issues
    OPAC Browse: Improve authority code to show more headings
    OPAC Browse: Fix authority counting
    Extensions to our MODS32 stylesheet to capture all possible NFI in fields
    OPAC Browse: i18n improvement for short terms
    OPAC Browser: Display Public General Notes from authorities when possible
    OPAC Browse: Build browse entry sort_value column separately from value
    OPAC Browse: We don't want role/relator info in browse headings
    OPAC Browse: Better display of tracings from authorities
    OPAC Browse: Pick up authority links from 650 fields
    OPAC Browse: Show authority tracings only when inter-authority links exist
    OPAC Browse: use  superpage concept for performance; fix other counting bug
    OPAC Browse: Fix broken authority reference link

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Fix problem with YYYY.schema.bib-auth-browse.sql.

Disable ALL triggers on authority.control_set_authority_field before
altering and updating the table to avoid an error related to altering
a table with pending trigger events.

The triggers are enabled again after the updates and alters are done.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
OPAC Browse: some squashed commits from LP #1177810

Namely:
    OPAC Browse: Various interface improvements
    OPAC Browse: Put best-matched browse entry in middle of result set
    OPAC Browse: Don't try to build hyperlinks from 680 ‡a
    OPAC Browse: add a CSS class to the best-matching result when not paging
    Remove unwanted space before question makr in "Did you mean" message
    OPAC Browse: Fix browse interface's use of hits-per-page user setting

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Break up expensive queries, match index to quals

First, we order browse queries over MBE by (sort_value, value) so we
want to match the unique index to that.

We're only going to use the first few rows of the cursors we build from
the back/forward MBE paging queries, and the embedded GROUP BY defeats
the planners desire to use an index for ordering the rows. So, instead,
we use a simpler core query and gather aggregate data as a secondary,
index-capable query for each MBE row.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
OPAC Browse: bugfixes squashed together from LP #1177810

In specific:
    OPAC Browse: go back from numbered to bulleted results
    OPAC Browse: Avoid showing tracing if linked authorities have no bibs
    OPAC Browse: Replace English pager with customizable pager
    OPAC Browse: Extra small bit of documentation about author headings

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Fix issues with multiple divs having the search-wrapper id.

Basically, remove the extra <div> from all the files that INCLUDE
searchbar.tt2, and leave the <div> that searchar.tt2 uses alone.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Fix problem where basic search bar was flush with left edge of page

Reported by Ben Shum.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Stamping upgrade scripts for bib record browser

LP #1177810

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Finish stamping for bib record browser

Sorry for the noise...

Signed-off-by: Dan Wells <dbw2@calvin.edu>
LP 1169193 long-overdue SQL seed data

Seed data for managing long-overdue circulations.

* new copy status
* new billing types
* new org settings
* new permissions
* sample action/trigger event definitions

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
LP 1169193 long-overdue automated processing

Middle layer components for marking circulations long overdue.  The
automation is controlled with an Action/Trigger event definition
(sample included in seed data), which uses a new MarkItemLongOverdue
reactor.  The reactor makes use of a new util function (AssetCommon.pm)
for doing the actual work and looking up the relevant org unit settings.

Inluded is a new PatronNotInCollections Validator, which can be used to
avoid marking circulations long overdue for patrons that are in
collections processing.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
LP 1169193 long-overdue item checkin

Checkin of long-overdue items now goes through a very simimlar process
as check-in of Lost items.  Staff can control how long after the due
date (and potentially other date-related fields) the item may be
returned for a configurable set of refunds and/or reinstatement of
overdue fines.  All settings are controlled by a series of new org unit
settings specifically related to long-overdue processing.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
LP 1169193 transit_slip macro for copy status

Adds support for a new 'transit_slip' receipt template macro called
"transit_copy_status", which displays the stored status of the
in-transit copy (i.e. the status the copy will be placed in once it
arrives at the transit destination).  This is useful, in particular, for
lost or long-overdue items which are not "immediately available" upon
checkin.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>