working/Evergreen.git
3 years agoDocs: trivial typo
Dan Scott [Fri, 3 Mar 2017 19:48:56 +0000 (14:48 -0500)]
Docs: trivial typo

s/retriving/retrieving/

Signed-off-by: Dan Scott <dscott@laurentian.ca>
3 years agoLP#1667835: avoid edi_fetcher.pl crash upon fetching zero-length file
Galen Charlton [Fri, 24 Feb 2017 23:04:29 +0000 (18:04 -0500)]
LP#1667835: avoid edi_fetcher.pl crash upon fetching zero-length file

This patch fixes an issue that could cause edi_fetcher.pl to crash
if the EDI partner supplies a zero-length file for Net::FTP to
download; such files are now skipped.

Testing would entail setting up an FTP server that contains a
zero-length file, then setting up an EDI remote account and
using edi_fetcher.pl to try to retrieve the file.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
3 years agoReplace the 'broken cover' image asset with an actually transparent single-pixel...
Jonathan Schatz [Thu, 3 Nov 2016 08:51:12 +0000 (01:51 -0700)]
Replace the 'broken cover' image asset with an actually transparent single-pixel PNG.
Useful for fallback to a placeholder cover.

Signed-off-by: Jonathan Schatz <jonathan.schatz@bc.libraries.coop>
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1539089 Webstaff grid actions disabled until selected.
Bill Erickson [Fri, 23 Sep 2016 16:05:21 +0000 (12:05 -0400)]
LP#1539089 Webstaff grid actions disabled until selected.

The grid "Actions" menu is disabled until one or more rows are selected.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jeanette Lundgren <jlundgren@cwmars.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1537223 Shared bucket barcode links; last name
Bill Erickson [Mon, 27 Feb 2017 16:37:11 +0000 (11:37 -0500)]
LP#1537223 Shared bucket barcode links; last name

Display the owner barcode and last name in the shared bucket info
display.  Display the barcode as a link to the owning user.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1537223 Show Username on copy buckets
Kyle Huckins [Thu, 6 Oct 2016 16:17:19 +0000 (09:17 -0700)]
LP#1537223 Show Username on copy buckets

Display bucket owner name, id, and owner's home OU on copy
buckets and record buckets in webstaff client.

Signed-off-by: Kyle Huckins <khuckins@catalystdevworks.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1511358 Patron Survey Interface
Kyle Huckins [Wed, 30 Nov 2016 18:10:48 +0000 (10:10 -0800)]
LP#1511358 Patron Survey Interface

Add patron survey interface and link to interface
in "Other" dropdown beneath Statistical Categories.

Display surveys similarly to how notes are displayed,
as well as how surveys are displayed in the existing
XUL staff client.

Signed-off-by: Kyle Huckins <khuckins@catalystdevworks.com>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1668257: RTL CSS change for ebook tables
Ben Shum [Mon, 27 Feb 2017 13:03:33 +0000 (08:03 -0500)]
LP#1668257: RTL CSS change for ebook tables

When LP#1541559 was merged, we missed checking for CSS changes and this
orientation update was missed. Adding to the style-rtl.css.tt2 file the
new CSS IDs for ebook API tables.

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1493824: Install PG 9.4 on Debian Wheezy and Ubuntu Trusty
Ben Shum [Mon, 27 Feb 2017 21:32:48 +0000 (16:32 -0500)]
LP#1493824: Install PG 9.4 on Debian Wheezy and Ubuntu Trusty

Debian Wheezy only ships with PG 9.1 by default.  Ubuntu Trusty has Pg
9.3.  Pg 9.4 is the recommended version for use with Evergreen going
forward and will be the required minimum version of PostgreSQL for use
with Evergreen 3.0.  Since we envision continuing to support Wheezy
and Trusty through the lifetime of Evergreen 3.0, we therefore help
the user out by adding the apt.postgresql.org repository for them and
install PostgreSQL version 9.4 on these operating systems.

This commit does the following:

1. Sets up the installer to use the PostgreSQL community's apt sources
in a new Makefile.debian target, debian_postgresql_repo.  This target
is run on Debian Wheezy and Ubuntu trusty during prerequisite
installation.

2. Installs PG 9.4 client on Wheezy and Ubuntu.

3. Installs PG 9.4 server in the server prerequisite targets for
Wheezy and Ubuntu.

4. Uses pg_config in installation of lidbdi-drivers from source.

5. Updates the server installation document to reflect the above
changes.

6. Updates the server upgrade documentation to reflect the new minimum
(9.3) and recommended (9.4) PostgreSQL versions.

Benjamin Shum is the primary author of these changes, though they are
based on Chris Sharp's idea for using the PostgreSQL community apt
source.

The libdbi-drivers installation was fixed by Jason Stephenson who also
added an if block to skip the apt.postgresql.org repository set up if
it is already configured on the target host.

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jason@sigio.com>
3 years agoRemove Fedora from install documentation
Dan Scott [Thu, 2 Mar 2017 15:40:03 +0000 (10:40 -0500)]
Remove Fedora from install documentation

Fedora is no longer a "well tested target" as the corresponding
Makefiles are not up to date. Therefore, remove all mention of it from
the install documentation.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
3 years agoLP#1668816: Prevent Internal Server Error in OPAC when logged-in user has no card
Jeff Davis [Wed, 1 Mar 2017 01:28:31 +0000 (17:28 -0800)]
LP#1668816: Prevent Internal Server Error in OPAC when logged-in user has no card

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1517596: add missing template file for webstaff patron merge
Galen Charlton [Thu, 23 Feb 2017 14:56:44 +0000 (09:56 -0500)]
LP#1517596: add missing template file for webstaff patron merge

This patch adds a file that was missed in commit df82edde.

To test:

[1] In the web staff client, verify that the patron merge
    button correctly display the dialog box for confirming
    the merge.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1668725: fix Z39.50 overlay when no profile set
Galen Charlton [Tue, 28 Feb 2017 18:59:24 +0000 (13:59 -0500)]
LP#1668725: fix Z39.50 overlay when no profile set

This patch fix an issue where, when performing an overlay
of a record from Z39.50 in the web staff client, if no
merge profile is set, the incoming record is not displayed
in the right-hand pane of the merge dialog.

To test
-------
[1] Select an overlay target, then use the web staff
    Z39.50 search interface to find a record to overlay
    it with.
[2] Open the Z39.50 overlay dialog and verify that no
    profile is set (you may need to clear the
    eg.cat.z3950.default_merge_profile key to ensure this).
[3] Note that the incoming record from Z39.50 doesn't display
    in the right-hand pane.
[4] Apply the page, then repeat step 2. This time, the incoming
    record should be displayed.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1655232: also update tpac/ru-RU.po
Galen Charlton [Mon, 27 Feb 2017 15:47:06 +0000 (10:47 -0500)]
LP#1655232: also update tpac/ru-RU.po

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoLP1655232: Fix misspellings of "messsage(s)"
Galen Charlton [Mon, 27 Feb 2017 15:45:43 +0000 (10:45 -0500)]
LP1655232: Fix misspellings of "messsage(s)"

Fixes the various misspellings of "messsages" in templates and localization files.

Signed-off-by: Adam Bowling <abowling@emeralddata.net>
Conflicts:
build/i18n/po/tpac/ar-JO.po
build/i18n/po/tpac/es-ES.po

Signed-off-by: Adam Bowling <abowling@emeralddata.net>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoLP#1607487: stamp schema update
Galen Charlton [Mon, 27 Feb 2017 15:22:48 +0000 (10:22 -0500)]
LP#1607487: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoLP#1607487: make schema update script use same whitespace
Galen Charlton [Mon, 27 Feb 2017 15:19:30 +0000 (10:19 -0500)]
LP#1607487: make schema update script use same whitespace

This patch ensures that the naco_normalize() and search_normalize()
functions preserve the exact whitespace used in the baseline
function definitions; this makes no functional difference, but
may help folks using diffs to compare schema versions.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoLP#1607487 - Fix broken URLs to NACO resources
Chris Sharp [Thu, 18 Aug 2016 18:52:59 +0000 (14:52 -0400)]
LP#1607487 - Fix broken URLs to NACO resources

Remington Steed pointed out that a couple of URLs are now
broken.  This corrects them.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoLP#1371772: update normalization library info URLs
Galen Charlton [Mon, 27 Feb 2017 15:09:09 +0000 (10:09 -0500)]
LP#1371772: update normalization library info URLs

This patch follows up on the previous patch by adjusting
the normalization of URLs when the lib.prefer_external_url
library setting is set to true.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoLP1371772: Correct Escape of Library Info URL
Jason Boyer [Mon, 13 Feb 2017 21:59:01 +0000 (16:59 -0500)]
LP1371772: Correct Escape of Library Info URL

Using the url filter in TT2 causes named anchors to
be escaped in such a way that urls including them
will likely return a 404. Since the url is being
used in an html document, the html filter is
sufficient and allows the url to work as intended.

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoMerge branch 'master' of git.evergreen-ils.org:Evergreen
Jane Sandberg [Thu, 23 Feb 2017 23:40:22 +0000 (15:40 -0800)]
Merge branch 'master' of git.evergreen-ils.org:Evergreen

3 years agoDocs: end-user documentation for Obalkyknih.cz added content
Linda Jansova [Thu, 23 Feb 2017 23:37:45 +0000 (15:37 -0800)]
Docs: end-user documentation for Obalkyknih.cz added content

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
3 years agoupdate upgrade instructions for 2.12-beta
Galen Charlton [Wed, 22 Feb 2017 17:30:18 +0000 (12:30 -0500)]
update upgrade instructions for 2.12-beta

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoinitial version of 2.12 release notes
Galen Charlton [Wed, 22 Feb 2017 17:21:06 +0000 (12:21 -0500)]
initial version of 2.12 release notes

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years ago2.11.3-2.12-beta schema upgrade script
Galen Charlton [Wed, 22 Feb 2017 16:46:17 +0000 (11:46 -0500)]
2.11.3-2.12-beta schema upgrade script

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoTranslation updates - po files
Galen Charlton [Wed, 22 Feb 2017 16:43:35 +0000 (11:43 -0500)]
Translation updates - po files

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoLP#1666928: fix build tests for ebook API Perl modules
Galen Charlton [Wed, 22 Feb 2017 15:52:44 +0000 (10:52 -0500)]
LP#1666928: fix build tests for ebook API Perl modules

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoDocs: Some corrections to hatch information in 2.12 release notes
Kathy Lussier [Wed, 22 Feb 2017 15:35:17 +0000 (10:35 -0500)]
Docs: Some corrections to hatch information in 2.12 release notes

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1666933: note that the minimum supported Pg version is 9.3
Galen Charlton [Wed, 22 Feb 2017 15:09:54 +0000 (10:09 -0500)]
LP#1666933: note that the minimum supported Pg version is 9.3

Before final release of 2.12.0, we should update the installation
instructions to note that apt.postgresql.org is available
for Debian-based distros that don't package 9.3 directly.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1666933: note that OpenSRF 2.5.0 is now the minimum required
Galen Charlton [Wed, 22 Feb 2017 15:07:38 +0000 (10:07 -0500)]
LP#1666933: note that OpenSRF 2.5.0 is now the minimum required

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1666933: fix to point schema update scripts
Galen Charlton [Wed, 22 Feb 2017 14:56:41 +0000 (09:56 -0500)]
LP#1666933: fix to point schema update scripts

- remove a duplicate call to metabib.remap_metarecord_for_bib()
- ensure that the 'ebook_api' config.settings_group row is added
  before adding YAOUS types that depend on it

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoDocs: Additions to the 2.12 release notes
Kathy Lussier [Wed, 22 Feb 2017 14:32:29 +0000 (09:32 -0500)]
Docs: Additions to the 2.12 release notes

We missed the release notes for some new features. I also updated a couple and
removed some release note entries from 2.11 that were still hanging around in
the release note directories.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoTranslation updates - newpot
Galen Charlton [Wed, 22 Feb 2017 01:33:23 +0000 (20:33 -0500)]
Translation updates - newpot

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
3 years agoLP#1665626: Update metarecord_constituent_result_reroute.pg test
Kathy Lussier [Tue, 21 Feb 2017 19:51:32 +0000 (14:51 -0500)]
LP#1665626: Update metarecord_constituent_result_reroute.pg test

Updating metarecord PgTAP test so that it points to an existing metarecord
group in the test data.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <ben@evergreener.net>
3 years agoLP#1665626: Change order of test bib loading
Kathy Lussier [Tue, 21 Feb 2017 16:27:33 +0000 (11:27 -0500)]
LP#1665626: Change order of test bib loading

As bshum did for e-book records, let's move MR records down to the end of the
script to avoid breaking tests. Also, made some tweaks to bibs_mr.sql so that
it would import bibs correctly.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <ben@evergreener.net>
3 years agoLP#1665626: adding new records to the meta group and breaking into new file
Rogan Hamby [Mon, 20 Feb 2017 19:11:18 +0000 (14:11 -0500)]
LP#1665626: adding new records to the meta group and breaking into new file

Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
3 years agoLP#1541559: Change order of test bib loading
Ben Shum [Tue, 21 Feb 2017 03:34:54 +0000 (22:34 -0500)]
LP#1541559: Change order of test bib loading

Move the new ebook bibs to the end of the script and away from the
rest of bib loading and item creation to avoid breaking tests.

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: Stamping upgrade scripts for e-book integration
Kathy Lussier [Tue, 21 Feb 2017 02:15:47 +0000 (21:15 -0500)]
LP#1541559: Stamping upgrade scripts for e-book integration

Missed this commit when pushing the e-book integration work.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: Use HTTPS for OverDrive requests
Jeff Davis [Mon, 20 Feb 2017 22:34:05 +0000 (14:34 -0800)]
LP#1541559: Use HTTPS for OverDrive requests

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: Minor tweaks to e-books circ in My Account
Kathy Lussier [Mon, 20 Feb 2017 21:46:02 +0000 (16:46 -0500)]
LP#1541559: Minor tweaks to e-books circ in My Account

A couple of tweaks to the CSS for E-items currently checked
out and a correction to the link for Cureent Items Checked
Out.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: remove non-functional sort on ebook API transaction details in My Account
Jeff Davis [Fri, 17 Feb 2017 21:24:47 +0000 (13:24 -0800)]
LP#1541559: remove non-functional sort on ebook API transaction details in My Account

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: improve display of ebook API transaction details in My Account
Jeff Davis [Fri, 17 Feb 2017 21:21:38 +0000 (13:21 -0800)]
LP#1541559: improve display of ebook API transaction details in My Account

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: eliminate duplicate entries in ebook API transaction details
Jeff Davis [Fri, 17 Feb 2017 20:51:28 +0000 (12:51 -0800)]
LP#1541559: eliminate duplicate entries in ebook API transaction details

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: ebook API integration for TPAC
Jeff Davis [Tue, 7 Feb 2017 23:29:39 +0000 (15:29 -0800)]
LP#1541559: ebook API integration for TPAC

When this feature is enabled, Evergreen will use the open-ils.ebook_api
service to look up title and patron information from specified vendor
APIs and display that information in the TPAC.  (The service should be
configured using org settings before being enabled in config.tt2.)

This frontend is essentially a JS layer over top of the OPAC, with some
light use of Dojo since we're already using it, plus a few additions to
TT2 templates.  The JS layer uses OpenSRF JS bindings to talk to the
backend service, which in turn makes the appropriate calls to the
third-party API.  Session IDs and (if logged in) patron information are
stored in cookies, which are cleared when the patron logs out.

The user will see the following changes:

- On search results and record summary, for any records from a known
  e-book vendor, Evergreen will automatically look up holdings info from
  the vendor API.  If detailed information on formats and available
  "copies" is provided by the API (e.g. for OverDrive), that information
  is displayed in a table within the record; if only basic availability
  info is available (e.g. for OneClickdigital), a line is added to each
  record indicating whether the title is available.  (Eventually, "Place
  Hold" or "Check Out" links will be added to allow patrons to
  checkout/hold titles without leaving the TPAC.)

- When the user is logged in, the dashboard will show a count of e-book
  checkouts and holds for all enabled e-book vendors, as will the
  account summary.  This is separate from the "main" checkouts/holds
  display, since checkouts/holds on titles from third-party vendors are
  unrelated to checkouts/holds in Evergreen.

- When the user is logged in, additional tabs will be available in My
  Account for displaying detailed information on the patron's ebook
  checkouts and holds.  (Eventually, functionality will be added to My
  Account allowing the user to download or renew titles, suspend or
  cancel holds, etc.)

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: ebook API handler for OneClickdigital
Jeff Davis [Tue, 7 Feb 2017 23:27:48 +0000 (15:27 -0800)]
LP#1541559: ebook API handler for OneClickdigital

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: ebook API handler for OverDrive
Jeff Davis [Tue, 7 Feb 2017 23:23:12 +0000 (15:23 -0800)]
LP#1541559: ebook API handler for OverDrive

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: ebook API sample MARC records for test module
Jeff Davis [Tue, 7 Feb 2017 23:11:59 +0000 (15:11 -0800)]
LP#1541559: ebook API sample MARC records for test module

This commit adds a small number of MARC records to the existing sample
data.  Each record contains a scoped URI in the 856 field.  The records
are intended to be usable with the OpenILS::Application::EbookAPI::Test
module.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: ebook API service and test module
Jeff Davis [Tue, 7 Feb 2017 23:08:31 +0000 (15:08 -0800)]
LP#1541559: ebook API service and test module

This commit introduces a new service, open-ils.ebook_api, for
integration of third-party APIs from vendors like OverDrive and
OneClickdigital.

The design of the service is somewhat similar to Evergreen's added
content module.  Common functionality and API calls are defined in the
main Perl module, OpenILS::Application::EbookAPI, while vendor-specific
details like endpoint URLs are broken out into separate "handler"
submodules for each vendor API.  (The actual mechanics of HTTP
requests/responses are handled by the new OpenILS::Utils::HTTPClient
module.)

An example handler module, OpenILS::Application::EbookAPI::Test, is
included with this commit, along with some live tests which depend on
the test module.  It can be considered a reference implementation for
future vendor-specific handlers.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: HTTPClient: a utility for sending HTTP requests and handling responses
Jeff Davis [Fri, 20 Nov 2015 21:54:36 +0000 (13:54 -0800)]
LP#1541559: HTTPClient: a utility for sending HTTP requests and handling responses

The intent of this package is to provide basic tools for communicating
with third-party APIs.  It is a dependency of the open-ils.ebook_api
service.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1541559: make active barcode available in OPAC
Jeff Davis [Mon, 3 Oct 2016 20:39:37 +0000 (13:39 -0700)]
LP#1541559: make active barcode available in OPAC

When logged in to the TPAC, the barcode of the patron's active card is
made available in $ctx->{active_card}.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1662541: Release notes entry for additional subject browse headings
Kathy Lussier [Sun, 19 Feb 2017 16:47:22 +0000 (11:47 -0500)]
LP#1662541: Release notes entry for additional subject browse headings

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1662541: Stamping upgrade script for added subject browse indexes
Kathy Lussier [Sun, 19 Feb 2017 16:36:16 +0000 (11:36 -0500)]
LP#1662541: Stamping upgrade script for added subject browse indexes

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1662541: several new subject browse index definitions
Galen Charlton [Fri, 17 Feb 2017 21:40:02 +0000 (16:40 -0500)]
LP#1662541: several new subject browse index definitions

This patch adds several config.metabib_field definitions
that are specifically for subject browses:

subject / topic_browse
subject / geographic_browse
subject / temporal_browse

These new definitions index the entire heading as a unit,
so a heading like this:

=650 \0$aCats$zUnited States$vCorrespondence.

will end up in the subject/topic_browse index as a single
entry for

Cats -- United States -- Correspondence

rather than separate browse entries for "Cats" as a subject/topic,
and "United States" as a subject/geographic.

Since the new *_browse indexes are meant to replace the browse
functions of the existing subject/topic, subject/geographic, and
subject/temporal indexes, the browse flag is turned off for the
older definitions.

This patch intentionally does not include an entry for subject/name_browse,
as additional coding would be required to get the display form of the
heading to be punctuated correctly.

To test
-------
[1] After applying the patch, perform subject browses in the
    OPAC and staff interfaces and verify that fully composed
    headings from bib records are now displayed as browse entries.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: Book Items Now from Item Status
Jason Etheridge [Mon, 13 Feb 2017 16:49:58 +0000 (11:49 -0500)]
webstaff: Book Items Now from Item Status

We can't do what we did with Make Items Bookable, consolidating the items into
one call and invoking a single interface; we get "Can't book multiple resource
types at once".  For now, we disable the 'Book Item Now' menu entry if multiple
items are selected.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: toward booking from Item Status
Jason Etheridge [Mon, 13 Feb 2017 16:21:43 +0000 (11:21 -0500)]
webstaff: toward booking from Item Status

This patch also offers an improvement from the XUL version,
as batches involving multiple bibs are now correctly handled.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agotweak Booking administration pagse
Galen Charlton [Mon, 13 Feb 2017 15:44:07 +0000 (10:44 -0500)]
tweak Booking administration pagse

- remove admin/booking/conify/* routes in favor of
  admin/server/booking/* routes that already existed;
  as part of this, remove redudant admin EmbedBookingCtl
  controller
- alphabetize the entries on the Booking Administration splash
  page
- remove Booking links from the Server Administration splash
  page

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: implement Edit MARC Order Record
Galen Charlton [Thu, 9 Feb 2017 15:48:20 +0000 (10:48 -0500)]
webstaff: implement Edit MARC Order Record

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: implement Update Barcodes line item action
Galen Charlton [Wed, 8 Feb 2017 22:26:15 +0000 (17:26 -0500)]
webstaff: implement Update Barcodes line item action

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: rework line item sub-actions menu
Galen Charlton [Wed, 8 Feb 2017 22:04:07 +0000 (17:04 -0500)]
webstaff: rework line item sub-actions menu

Since Chrome doesn't generate click events for the act of
selecting an <option>, change to dispatching line item
sub-actions based on change events on the <select>.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: implement 'Export Single Attribute List'
Galen Charlton [Wed, 8 Feb 2017 20:56:34 +0000 (15:56 -0500)]
webstaff: implement 'Export Single Attribute List'

This bundles in FileSaver.js, an MIT-licensed library
that implements support for the HTML5 saveAs() routine.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: fix CSV-parsing of catalog record ID lists
Galen Charlton [Wed, 8 Feb 2017 20:21:26 +0000 (15:21 -0500)]
webstaff: fix CSV-parsing of catalog record ID lists

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: get Load Catalog Record IDs working
Galen Charlton [Wed, 8 Feb 2017 19:46:31 +0000 (14:46 -0500)]
webstaff: get Load Catalog Record IDs working

Provide an alternative using FileReader to the XPCOM-based
client-side file reading that this feature uses under XUL.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: fix highlighting of line item
Galen Charlton [Wed, 8 Feb 2017 18:21:35 +0000 (13:21 -0500)]
webstaff: fix highlighting of line item

Tweak the layout of the line item table so that returning
to it from the copy view causes only the border of the
line item information box to be highlighted, not both the
border and a random segment of the contents.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: avoid showing 'null' as source label when displaying line item
Galen Charlton [Tue, 7 Feb 2017 21:15:08 +0000 (16:15 -0500)]
webstaff: avoid showing 'null' as source label when displaying line item

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: using egEmbedFrame escape opens new window at frame's current location
Galen Charlton [Tue, 7 Feb 2017 20:45:35 +0000 (15:45 -0500)]
webstaff: using egEmbedFrame escape opens new window at frame's current location

... as opposed to whatever URL was originally embedded.

For example, if you doing a PO search, then open the frame in a
new window, the results of the search are displayed in that window
rather than an empty search form.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: add view/place orders action to holdings grid
Galen Charlton [Tue, 7 Feb 2017 17:56:43 +0000 (12:56 -0500)]
webstaff: add view/place orders action to holdings grid

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agodistinguish between XUL and Firefox when excluding XUL code from webstaff
Galen Charlton [Tue, 7 Feb 2017 17:32:05 +0000 (12:32 -0500)]
distinguish between XUL and Firefox when excluding XUL code from webstaff

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: more intra-acq linking fixes
Galen Charlton [Mon, 6 Feb 2017 22:23:34 +0000 (17:23 -0500)]
webstaff: more intra-acq linking fixes

- fix typo from previous patch
- implement linking out to queues and invoices from
  line item table

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoimprove linking out of acquisitions upload page
Galen Charlton [Mon, 6 Feb 2017 21:42:35 +0000 (16:42 -0500)]
improve linking out of acquisitions upload page

- cat/catalog/vandelay route no longer drops
  query parameters, permitting direct linking to import
  queues (e.g., /eg/staff/cat/catalog/vandelay?qtype=bib&qid=367)
- acq/legacy/:noun/:verb/:record now a valid acq route
- purchase order MARC loading now generates usable links
  back to PO, selection list, and/or import queue

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agotweak embedding of Dojo acq admin pages
Galen Charlton [Mon, 6 Feb 2017 17:53:41 +0000 (12:53 -0500)]
tweak embedding of Dojo acq admin pages

- turn on the "open in new window" button
- set minimum height of eframes to 2000px

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agotweak embedding of Dojo acquisitions pages
Galen Charlton [Mon, 6 Feb 2017 17:39:17 +0000 (12:39 -0500)]
tweak embedding of Dojo acquisitions pages

- turn on the "open in new window" button
- set minimum height of eframes to 2000px

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: Restrict spinner use to positive numbers
Mike Rylander [Tue, 17 Jan 2017 16:46:50 +0000 (11:46 -0500)]
webstaff: Restrict spinner use to positive numbers

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: improve truthiness test of bre.deleted in marc editor
Mike Rylander [Mon, 16 Jan 2017 21:21:31 +0000 (16:21 -0500)]
webstaff: improve truthiness test of bre.deleted in marc editor

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: colspan=0 does not render how we want in chrome -- change that for lineitem...
Mike Rylander [Tue, 10 Jan 2017 17:38:27 +0000 (12:38 -0500)]
webstaff: colspan=0 does not render how we want in chrome -- change that for lineitem tables

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agowebstaff: Protect some ACQ interfaces from XUL-ish calls
Mike Rylander [Tue, 10 Jan 2017 17:10:58 +0000 (12:10 -0500)]
webstaff: Protect some ACQ interfaces from XUL-ish calls

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoDocs: Copy Status "Is Available" Flag
Debbie Luchenbill [Sat, 18 Feb 2017 15:05:08 +0000 (07:05 -0800)]
Docs: Copy Status "Is Available" Flag

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
3 years agoMerge branch 'master' of git.evergreen-ils.org:Evergreen
Jane Sandberg [Sat, 18 Feb 2017 15:00:23 +0000 (07:00 -0800)]
Merge branch 'master' of git.evergreen-ils.org:Evergreen

3 years agoLP#1624366 Evergreen integration with obalkyknih.cz (Czech AC provider)
Jakub Kotrla [Wed, 15 Feb 2017 22:41:09 +0000 (23:41 +0100)]
LP#1624366 Evergreen integration with obalkyknih.cz (Czech AC provider)

By default is AC disabled. Fixed summary.tt2 to be based on latest
version -
http://git.evergreen-ils.org/?p=Evergreen.git;a=tree;f=Open-ILS/src/templates/opac/parts/record;h=bc962e52a84aaf95ffc5f1fa407c2ffc3d54dec4;hb=HEAD.

Signed-off-by: Jakub Kotrla <jakub@kotrla.net>
Signed-off-by: Jason Stephenson <jason@sigio.com>
3 years agoLP#1624366 Evergreen integration with obalkyknih.cz (Czech AC provider)
Jakub Kotrla [Fri, 10 Feb 2017 11:52:03 +0000 (12:52 +0100)]
LP#1624366 Evergreen integration with obalkyknih.cz (Czech AC provider)

AddedContent Perl plugin to display book covers from Czech provider
obalkyknih.cz. Also can display summary, table of content
and user reviews.

Conflicts:
Open-ILS/src/templates/opac/parts/record/summary.tt2

Signed-off-by: Jakub Kotrla <jakub@kotrla.net>
Signed-off-by: Jason Stephenson <jason@sigio.com>
3 years agoLP#1661754 - Prevent staff users from marking a Long Overdue item Lost
Michele Morgan [Tue, 7 Feb 2017 18:21:48 +0000 (13:21 -0500)]
LP#1661754 - Prevent staff users from marking a Long Overdue item Lost

Prevents circulations that are already Lost or Long Overdue from being
marked Lost or Long Overdue. Avoiding patrons being billed twice for the
same item.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1661661: Stamping upgrade scripts for Arabic and right-to-left support
Kathy Lussier [Fri, 17 Feb 2017 18:29:28 +0000 (13:29 -0500)]
LP#1661661: Stamping upgrade scripts for Arabic and right-to-left support

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1661661: Add release note about Arabic and RTL support in TPAC
Ben Shum [Thu, 16 Feb 2017 04:31:33 +0000 (23:31 -0500)]
LP#1661661: Add release note about Arabic and RTL support in TPAC

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1661661: Use new rtl field in config.i18n_locale
Ben Shum [Wed, 15 Feb 2017 19:22:27 +0000 (14:22 -0500)]
LP#1661661: Use new rtl field in config.i18n_locale

Add a new column for "rtl" in config.i18n_locale and then use that
to check which direction to assign for the CSS files.

Two upgrade scripts, one to change the schema for new column and a
second one to enable Arabic (Jordan) as an option.

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1661661: Fixing syntax in base.tt2
Ben Shum [Sat, 11 Feb 2017 22:59:04 +0000 (17:59 -0500)]
LP#1661661: Fixing syntax in base.tt2

There was a missing closing tag for the second stylesheet that caused an error
with the heading. Fixed that, and then made some whitespace adjustments.

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1661661: Support for right-to-left (RTL) languages
Nawras Othman [Tue, 7 Feb 2017 11:39:46 +0000 (06:39 -0500)]
LP#1661661: Support for right-to-left (RTL) languages

File changes added by Nawras Othman for RTL languages (such as Arabic).

First pass includes moving some remaining inline CSS to the stylesheet file,
Also includes a hard-coded check for the "ar-AR" locale (current Arabic).

Signed-off-by: Nawras Othman <othman.nawras@gmail.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1596595 Hold targeter Perl live test repairs
Bill Erickson [Fri, 17 Feb 2017 17:20:08 +0000 (12:20 -0500)]
LP#1596595 Hold targeter Perl live test repairs

Update live tests to match latest concerto data changes and to avoid
testing against data that is modified by tests that run before the
targeter test when running the full test suite.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoAdd Release Note for new helper
Jason Boyer [Wed, 15 Feb 2017 14:02:44 +0000 (09:02 -0500)]
Add Release Note for new helper

I can forget that while a feature seems straigtforward
enough it essentially doesn't exist if you don't tell
anyone about it.

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
3 years agoLP1661747: get_org_unit_ancestor_at_depth Helper
Jason Boyer [Fri, 3 Feb 2017 21:23:28 +0000 (16:23 -0500)]
LP1661747: get_org_unit_ancestor_at_depth Helper

Add a helper to the A/T system to retrieve an ou's
ancestor at the specified depth in the tree.

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
3 years agoLP#1662902: do not re-download EDI files that failed parsing
Bill Erickson [Tue, 14 Feb 2017 15:53:54 +0000 (10:53 -0500)]
LP#1662902: do not re-download EDI files that failed parsing

Avoid fetching and creating edi_message entries for EDI messages that
the system cannot parse.

In the event parsing failed due to a temporary condition (e.g. Ruby
translator was not running), messages can be reprocessed by either
deleting the offending edi_message row or setting its status to 'retry'.

See previous commit ("LP#1662902: do not re-download EDI files that
failed processing") for a more detailed explanation.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
3 years agoLP#1662902: do not re-download EDI files that failed processing
Galen Charlton [Thu, 9 Feb 2017 17:24:35 +0000 (12:24 -0500)]
LP#1662902: do not re-download EDI files that failed processing

At present, the EDI fetcher ignores files (as determined by file
name and EDI account details) that were already successfully
processed. With this patch, ones that failed processing (e.g.,
acq.edi_message.state = 'proc_error') previously are ignored
as well.

This is because most processing errors reflect conditions that
require some sort of manual intervention on the part of the materials
vendor or the Evergreen user; having edi_fetcher.pl simply redownload
and attempt to process the file has no effect other than causing
the acq.edi_message table to grow.

With this patch, the appearance of rows in acq.edi_message whose
state is 'proc_error' should be taken as a signal to the Evergreen
admin to investigate and resolve whatever issue caused the
message to not be processed; after doing that, removing the
acq.edi_message rows will allow the file to be downloaded again
(assuming it's still available on the file server).

To test
-------
[1] Arrange to create or simulate an EDI message that failed
    processing.
[2] Run edi_fetcher.pl to have it attempt to download the
    failed message in step #1; verify that the file is
    /not/ downloaded again and that no additonal acq.edi_message
    rows are created for it.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
3 years agoLP#1117808: Stamping upgrade scripts for extend use of merge profiles
Kathy Lussier [Fri, 17 Feb 2017 15:29:33 +0000 (10:29 -0500)]
LP#1117808: Stamping upgrade scripts for extend use of merge profiles

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1117808: release notes for New Access points for MARC Overlay
Galen Charlton [Fri, 10 Feb 2017 16:54:39 +0000 (11:54 -0500)]
LP#1117808: release notes for New Access points for MARC Overlay

Test plan for the feature:

[1] Define one or more merge profiles in the MARC import/export
    interface.
[2] Verify that the Default Merge Profile (Z39.50 and Record Buckets)
    library setting type exists, and that if you set it to a value
    for the workstation library, that it the merge profile selectors in the
    record bucket merge and Z39.50 overlay interfaces default to
    the specified value.
[3] In the web staff client, create a record bucket containing at least
    two or more similar bibliographic records.  From Bucket View,
    select at least two records and select Merge Selected
    Records from the actions menu.
[4] Verify that:
    * There is a widget for selecting a merge profile
    * That after choosing a lead record, that the lead record
      view reflects the results of the merge.
    * That the results of the merge are updated whenever you:
      * choose a different merge profile
      * choose a different lead record
      * remove a record from consideration
    * That the lead record's MARC is updated upon clicking the
      'Merge' button in the dialog.
[5] In the web staff client, mark a bib record for overlay, then
    go to the Z39.50 search interface and perform a search. Select
    a record and click the Overlay button, then verify that:
    * There is a widget for selecting a merge profile
    * That the results of the merge are updated whenever you:
      * choose a different merge profile
    * That after closing the dialog, that the overlaid record
      reflects the result of the merge profile.
[6] Verify that upon exiting and returning to the record bucket
    merge or Z39.50 overlay interfaces, that the last selected
    merge profile is pre-selected.

Development of this feature was performed by the Equinox Open
Library Initiative and sponsored by the BC Libraries Cooperative.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1117808: teach Z39.50 import about merge profiles
Galen Charlton [Fri, 23 Dec 2016 09:46:47 +0000 (04:46 -0500)]
LP#1117808: teach Z39.50 import about merge profiles

This patch adds a widget to the Z39.50 overlay dialog to
allow the user to select a MARC merge profile to use during
the merge. For the purpose of applying the merge profile,
the incoming record from the Z39.50 server is treated as
the target of the merge, as the user is assumed to be picking
a Z39.50 record that is "better" overall but may need to be
supplement with fields from the incumbent record.

As before, the user can choose to edit the incoming record, but
note that the version that is edited is the /original/ version of
the Z39.50 record, with any changes due to the merge profile being
applied after the edit.

Merge profiles that have a 'preserve' specification are excluded
from selection, as such profiles have the effect of swapping what
is considered the lead record for the purpose of the MARC merge

This patch also tweaks the dialog to use the egRecordBreaker directive
to display the incumbent record, as that permits easier copy-and-pasting
if the user chooses to edit the Z39.50 record.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1117808: teach record bucket merge about merge profiles
Galen Charlton [Fri, 23 Dec 2016 06:38:27 +0000 (01:38 -0500)]
LP#1117808: teach record bucket merge about merge profiles

This patch adds a widget to the record bucket merge dialog
to allow the user to select a MARC merge profile to use
during the merge.

After the user has chosen a lead record, the result of the merge
is displayed in the left-hand pane, and is updated whenever the user

- changes the selected merge profile
- swaps in a different lead record
- removes a subordinate record from consideration

As before, the user can choose to edit the lead record, but note that
the version that is edited is the /original/ version of the
lead record, with any changes due to the merge profile
being applied after the edit.

Since there can be more than one subordinate record in play, the
result of the merge is calculated by merging the first subordinate
record into the lead record, then in the second subordinate record,
and so forth.

Merge profiles that have a 'preserve' specification are excluded
from selection, as such profiles have the effect of swapping what
is considered the lead record for the purpose of the MARC merge.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1117808: fix marcXml binding for egRecordBreaker
Galen Charlton [Fri, 23 Dec 2016 06:37:48 +0000 (01:37 -0500)]
LP#1117808: fix marcXml binding for egRecordBreaker

This patch makes the binding of the marcXml attribute
in the egRecordBreaker directive dynamic.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1117808: add cat.default_merge_profile library setting
Galen Charlton [Fri, 10 Feb 2017 15:49:33 +0000 (10:49 -0500)]
LP#1117808: add cat.default_merge_profile library setting

This new library setting specifies the default merge profile
to select in the record bucket merge and Z39.50 record overlay
interfaces.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1117808: new egFmValueSelector directive
Galen Charlton [Fri, 23 Dec 2016 06:36:07 +0000 (01:36 -0500)]
LP#1117808: new egFmValueSelector directive

This directive supplies a select widget that draws its
values from a table specified by an IDL class code.  It
is meant to be used for tables containing a reasonably
small number of rows (i.e., dozens at most, not hundreds
or thousands).

The following attributes are available:

idl-class      : Code of IDL class to draw from, e.g., "vmp".
ng-model       : Model to bind the current selected value to.
filter         : JSON query filter to apply conditions on the set
                 of rows to be used. (optional)
sticky-setting : Local storage key to persist the last value
                 that was selected by the user. (optional)
ou-setting     : Name of library setting to use to set the default
                 selected value. If sticky-setting is used, any
                 previously-selected value will override the default
                 specified by the OU setting. (optional)

The list of values from the source table displayed in the select
widget are those that meet all of the following conditions:

- primary key is not null
- filter conditions (if supplied)
- logged-in user has PCRUD permissions to view the value

The option value is taken from the column in the source table
specified by the oils_persist:primary IDL attribute, while
the displayed label is taken from the column that has the
reporter:selector="name" IDL attribute.

Example:

<eg-fm-value-selector
  idl-class="vmp"
  ng-model="merge_profile"
  filter="{'preserve_spec':{'=':null}}"
  sticky-setting="eg.cat.z3950.selected_merge_profile"
  ou-setting="cat.default.merge_profile"
></eg-fm-value-selector>

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1117808: new methods for calculating MARC merges
Galen Charlton [Wed, 30 Nov 2016 17:06:18 +0000 (12:06 -0500)]
LP#1117808: new methods for calculating MARC merges

This patch adds three new middle-layer methods for calculating
the result of MARC merges.

open-ils.cat.merge.marc.per_profile:

        Calculate the result of merging one or more MARC records
        per the specified merge profile
        @param auth The login session key
        @param merge_profile ID of the record merge profile
        @param records Array of two or more MARCXML records to be
                       merged. If two are supplied, the first
                       is treated as the record to be overlaid,
                       and the the incoming record that will
                       overlay the first. If more than two are
                       supplied, the first is treated as the
                       record to be overlaid, and each following
                       record in turn will be merged into that
                       record.
        @return MARCXML string of the results of the merge

open-ils.cat.merge.biblio.per_profile:

        Calculate the result of merging one or more bib records
        per the specified merge profile

        @param auth The login session key
        @param merge_profile ID of the record merge profile
        @param records Array of two or more bib record IDs of
                       the bibs to be merged.
        @return MARCXML string of the results of the merge

open-ils.cat.merge.authority.per_profile:

        Calculate the result of merging one or more authority records
        per the specified merge profile

        @param auth The login session key
        @param merge_profile ID of the record merge profile
        @param records Array of two or more bib record IDs of
                       the bibs to be merged.
        @return MARCXML string of the results of the merge

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1117808: new Pg function to calculate MARC record merges
Galen Charlton [Wed, 30 Nov 2016 14:49:10 +0000 (09:49 -0500)]
LP#1117808: new Pg function to calculate MARC record merges

This patch adds a new stored function, vandelay.merge_record_xml_using_profile(),
that when passed two MARCXML strings and the ID of a merge profile.
returns the MARCXML string representing the results of the record merge.

This is meant for situations where we want to know the results
of a merge, but not immediately overlay a record in the database.

pgTAP tests are available in t/marc_merge.pg.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
3 years agoLP#1494748: Release notes entry for self check interface improvements
Kathy Lussier [Fri, 17 Feb 2017 06:56:07 +0000 (01:56 -0500)]
LP#1494748: Release notes entry for self check interface improvements

Signed-off-by: Kathy Lussier <klussier@masslnc.org>