]> git.evergreen-ils.org Git - working/Evergreen.git/log
working/Evergreen.git
11 years agoUpgrade script for LP#1105225: LOC z39.50 seed data
Bill Erickson [Wed, 6 Mar 2013 18:54:35 +0000 (13:54 -0500)]
Upgrade script for LP#1105225: LOC z39.50 seed data

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1105225: update LOC z39.50 target seed data
Galen Charlton [Fri, 25 Jan 2013 16:35:27 +0000 (11:35 -0500)]
LP#1105225: update LOC z39.50 target seed data

This patch updates the seed data from the target list at
http://www.loc.gov/z3950/lcserver.html#addr.  It also changes the
structure attribute for the 'lccn' search attribute to wordlist,
which means that LCCNs can be searched without having to enter
the leading spaces.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1022582: MARC Exporter includes deleted copies in holdings export
Mark Cooper [Thu, 11 Oct 2012 06:20:02 +0000 (23:20 -0700)]
LP#1022582: MARC Exporter includes deleted copies in holdings export

Added check to filter out callnumbers/copies if deleted.

Signed-off-by: Mark Cooper <markchristophercooper@gmail.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
11 years agoStamping upgrade for truncate-to-max-fine
Mike Rylander [Tue, 5 Mar 2013 20:13:32 +0000 (15:13 -0500)]
Stamping upgrade for truncate-to-max-fine

Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agotruncate fines to max fine amount (LP#1145284)
Jeff Davis [Mon, 4 Mar 2013 21:42:08 +0000 (13:42 -0800)]
truncate fines to max fine amount (LP#1145284)

When the max fine amount is not a multiple of the recurring fine amount,
fines will actually max out at an amount greater than the max fine
value.  This commit adds YAOUS and some simple functionality to
optionally truncate the final amount billed to the max fine amount.

For example, if max fine is $5.00 and recurring fine is $0.30, the 17th
billing will bring the total amount billed to $5.10 (17 x $0.30),
thereby exceeding the max fine amount.  With this commit, if
circ.fines.truncate_to_max_fine is true, the final billing amount will
be reduced and the total amount billed will be $5.00.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoLP#1136084: drop silent dependency on 'bsdmainutils' Debian/Ubuntu package
Galen Charlton [Thu, 28 Feb 2013 17:39:40 +0000 (12:39 -0500)]
LP#1136084: drop silent dependency on 'bsdmainutils' Debian/Ubuntu package

colrm is a perfectly good command, but isn't guaranteed to be
present on a minimal Ubuntu system.  This patch replaces ti with
with cut, which is more likely to be present (including on *BSD
servers).

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
11 years agoRemove dependency on libreadline5-dev from Debian and Ubuntu.
Jason Stephenson [Mon, 4 Mar 2013 19:10:16 +0000 (14:10 -0500)]
Remove dependency on libreadline5-dev from Debian and Ubuntu.

libreadline5-dev is old and superseded by libreadline-dev.

Also OpenSRF installs libreadline-dev, so we should not have to
install it from Evergreen's Makefile.install.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: move up event listeners in place_hold.js
Ben Shum [Thu, 28 Feb 2013 03:37:31 +0000 (22:37 -0500)]
LP#1086458: move up event listeners in place_hold.js

The preceding two functions need the event listeners to be defined before
use. Move up to prevent errors.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
11 years agoLP#1086458: fix typo
Galen Charlton [Wed, 20 Feb 2013 20:00:55 +0000 (15:00 -0500)]
LP#1086458: fix typo

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: add destructor to caption binding
Galen Charlton [Wed, 30 Jan 2013 16:38:33 +0000 (11:38 -0500)]
LP#1086458: add destructor to caption binding

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: add destructor to messagecatalog
Galen Charlton [Wed, 30 Jan 2013 16:24:21 +0000 (11:24 -0500)]
LP#1086458: add destructor to messagecatalog

Based on patch by Jason Etheridge.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: clean up event listener functions
Galen Charlton [Wed, 30 Jan 2013 15:59:10 +0000 (10:59 -0500)]
LP#1086458: clean up event listener functions

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agomove EventListenerList out of global_util.js
Jason Etheridge [Thu, 24 Jan 2013 22:30:26 +0000 (17:30 -0500)]
move EventListenerList out of global_util.js

So that we can more easily pull it into main.xul (which we also do here)

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: remove references to windows during cleanup
Galen Charlton [Thu, 24 Jan 2013 20:25:47 +0000 (15:25 -0500)]
LP#1086458: remove references to windows during cleanup

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: clear util.list lists and trees during cleanup
Galen Charlton [Thu, 24 Jan 2013 20:16:52 +0000 (15:16 -0500)]
LP#1086458: clear util.list lists and trees during cleanup

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: add missing cleanup call
Galen Charlton [Thu, 24 Jan 2013 18:07:05 +0000 (13:07 -0500)]
LP#1086458: add missing cleanup call

Thanks to Jason Etheridge for the catch.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: clean up after event listeners in circ/patron interface
Galen Charlton [Sat, 19 Jan 2013 05:46:32 +0000 (00:46 -0500)]
LP#1086458: clean up after event listeners in circ/patron interface

Upon window unload, now removes event listeners, both ones explicitly
created by the page JavsScript as well as ones created by
util.list, util.controller, and persist_helper().

The same approach of defining cleanup fnctions used by unload
events can be applied to the rest of the staff client, but
this patch focuses on circulation first.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: add more event listener tracking
Galen Charlton [Thu, 24 Jan 2013 17:27:34 +0000 (12:27 -0500)]
LP#1086458: add more event listener tracking

util.list and util.controller now have cleanup()
methods that can be invoked to unregister the event
listeners they create.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: add way to clean up persist_helper event listeners
Galen Charlton [Thu, 24 Jan 2013 17:02:57 +0000 (12:02 -0500)]
LP#1086458: add way to clean up persist_helper event listeners

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1086458: add class to manage event listeners
Galen Charlton [Thu, 24 Jan 2013 16:56:30 +0000 (11:56 -0500)]
LP#1086458: add class to manage event listeners

EventListenerList allows one to maintain a list
of event listeners, then remove them all when it's
time to clean up a window.

Usage is:

var list = new EventListenerList();
// attach an event listener
list.add(node, 'command', function(ev) { alert('BOO!'); }, false);
...
// get rid of them
list.removeAll();

Based on an idea by Jason Etheridge.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoVersion upgrade script from 2.4-alpha1
Mike Rylander [Fri, 1 Mar 2013 21:13:44 +0000 (16:13 -0500)]
Version upgrade script from 2.4-alpha1

Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoUpdated translations for 2.4-alpha1
Mike Rylander [Thu, 28 Feb 2013 20:17:12 +0000 (15:17 -0500)]
Updated translations for 2.4-alpha1

Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoStamping upgrade scripts for ingest partitioning
Mike Rylander [Thu, 28 Feb 2013 20:00:14 +0000 (15:00 -0500)]
Stamping upgrade scripts for ingest partitioning

Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoLP#1066326: protect against flags being entirely missing from config.internal_flag
Galen Charlton [Thu, 28 Feb 2013 19:05:25 +0000 (14:05 -0500)]
LP#1066326: protect against flags being entirely missing from config.internal_flag

Belt, meet suspenders.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoLP#1066326: use internal flags; sync with master
Galen Charlton [Thu, 28 Feb 2013 18:30:36 +0000 (13:30 -0500)]
LP#1066326: use internal flags; sync with master

After discussion with Mike Rylander, moved the new flags
to internal flags, as exposing them to the staff client's
global flag admin page could lead to records getting incompletely
ingested without there being an easy way to rectify the problem
from the staff client.

Also, sync up with other recent work on ingest.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoLP#1066326: Allow component partitioning of ingest
Mike Rylander [Sat, 13 Oct 2012 15:38:55 +0000 (11:38 -0400)]
LP#1066326: Allow component partitioning of ingest

The component parts of the indexing process are fairly flexible. In some
places they can be called with parameters that control the behavior, and
other places will respond to global and/or internal flags.  However, there
is some inconsistency to which parts will react to each mechanism.

Previous to this commit, there was no way to cause ingest to skip specific
parts of the indexing process (search / facet / browse, in particular)
even though the stored procedure responsible for this had the ability to
perform, and parameters for the control of, this behavior.  Now, when any
of the parameters are false (the default, saying "do not skip") it will
check the value of a related global flag and, if enabled, skip that part
of the ingest.

This will allow one to do perform massive, batch, parallel ingests of bib
records, something that was effectively blocked by the way browse ingest
is performed.  By disabling browse ingest during the main record loading,
and then performing only the browse ingest later, one can significantly
reduce the time required to load massive batches of records.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoTPAC: Don't display serial headers without content
Dan Wells [Wed, 16 Jan 2013 20:05:17 +0000 (15:05 -0500)]
TPAC: Don't display serial headers without content

Currently, the TPAC serial display code will print a section
header, then see if there is any content to show.  This causes
headers to show up when they are unnecessary or unwanted.

Now, we only show the header if we have content needing heading.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoProvide some level of support for legacy install locations
Dan Scott [Tue, 22 Jan 2013 14:52:52 +0000 (09:52 -0500)]
Provide some level of support for legacy install locations

If someone really wants to keep OpenSRF and Evergreen installed in
/openils, then enable the configure script to find the osrf_config
script and add the library location to the test to prevent it from
failing.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoClean-up unused Apache header/library config vars
Dan Scott [Fri, 19 Oct 2012 21:24:50 +0000 (17:24 -0400)]
Clean-up unused Apache header/library config vars

apxs is used to build the Apache modules, so there is no need to
configure the Apache / APR header and library paths.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoReduce hard-coded configure defaults
Dan Scott [Fri, 19 Oct 2012 21:05:53 +0000 (17:05 -0400)]
Reduce hard-coded configure defaults

We can and should be smarter about how we set configuration variables.
Rather than using hard-coded defaults for the OpenSRF header and library
locations, ask osrf_config what values to use.

Also be smarter about how we check for the OpenSRF library as a dependency.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoeg_config should be installed
Dan Scott [Fri, 19 Oct 2012 20:10:35 +0000 (16:10 -0400)]
eg_config should be installed

We were not installing eg_config, which is a useful script for returning the
configured settings for an Evergreen installation.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoGenerate Apache config files for increased portability
Dan Scott [Fri, 19 Oct 2012 19:23:28 +0000 (15:23 -0400)]
Generate Apache config files for increased portability

Continue weaning ourselves off of hardcoded paths such as /openils in config
files. Also, install the Apache config example files into a docs directory
instead of just leaving them in the source tree. Similarly, remove some
hardcoded paths from eg_db_config.pl.

At the same time, drop the '.pl' suffix from the scripts that we're touching,
and make the Apache startup script a little less generic in name.

The change from "startup.pl" to "eg_startup" and from "eg_db_config.pl"
to "eg_db_config" also results in updates to installation and upgrading
documentation.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoRemove broken error message
Thomas Berezansky [Fri, 24 Aug 2012 14:48:39 +0000 (10:48 -0400)]
Remove broken error message

Checkout fills related hold causes an empty array sometimes, so don't throw
out errors for that.

Also, the original error would itself fail, throwing an error that would
then fail as well, likely due to a copy/paste issue.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoInclude barcode in pre-cat confirm dialog
Thomas Berezansky [Wed, 3 Oct 2012 19:27:37 +0000 (15:27 -0400)]
Include barcode in pre-cat confirm dialog

This allows staff to see what was scanned into the field as part of
the dialog window prior to confirming creating a pre-cat for it.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoReporter: Sort contents of remote selector widgets
Thomas Berezansky [Wed, 3 Oct 2012 19:25:53 +0000 (15:25 -0400)]
Reporter: Sort contents of remote selector widgets

Simple sort based on the display value.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoStamping upgrade script for Bib Merge Ignore Deleted Call Numbers
Ben Shum [Thu, 28 Feb 2013 02:15:06 +0000 (21:15 -0500)]
Stamping upgrade script for Bib Merge Ignore Deleted Call Numbers

Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoChanged bib merge to ignore deleted call numbers.
Steven Callender [Fri, 2 Nov 2012 20:20:32 +0000 (16:20 -0400)]
Changed bib merge to ignore deleted call numbers.

The asset.merge_record_assets function was not checking for deleted call numbers
and merging items onto deleted call numbers that of course causes issues.

Signed-off-by: Steve Callender <stevecallender@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agolp1092644 refresh row with Item Status Edit Volume
Jason Etheridge [Thu, 20 Dec 2012 18:40:41 +0000 (13:40 -0500)]
lp1092644 refresh row with Item Status Edit Volume

Assuming the Trim List box is not selected, this simply refreshes selected rows
in the Item Status interface that were used to provide context for the Actions
for Catalogers -> Edit Volumes command. If Trim List is selected, then the items
are instead re-added to top of the list.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoRepair clear holds shelf transaction timeout
Bill Erickson [Tue, 26 Feb 2013 19:33:58 +0000 (14:33 -0500)]
Repair clear holds shelf transaction timeout

Initiate our cstore transaction after making the initial, potentially
long-running call to collect the clear-shelf holds to process.
Otherwise, the cstore transaction may time out while waiting on the
holds retrieval to complete.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoset title during receipt/slip printing
Jason Etheridge [Wed, 30 Jan 2013 19:10:19 +0000 (14:10 -0500)]
set title during receipt/slip printing

This is to workaround a bug in CUPS where long window titles will
cause the print job to fail.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoSpeed up sorted-related-holds query
Mike Rylander [Fri, 8 Feb 2013 15:15:39 +0000 (10:15 -0500)]
Speed up sorted-related-holds query

In several interfaces, we use a server side method which gathers statistics
about a hold: related holds, it's position in the (approximate) queue, the
estimated wait time, etc.  Within this method is a relatively complicated
json_query that returns the list of related, (FIFO-ish) sorted holds -- ones
that could be filled by a copy which could fill the hold in question.  This
commit restructures that query so as to make it faster when the list of
related holds is large, by removing duplicate (cartesian product, actually)
hold ids that were being fed into an INNER JOIN clause.

Testing shows a speed increase of 4x for related-hold queue of around 675
holds [~2s -> ~0.5s] on a relatively large Evergreen installation,
appropriately tuned.  The speed improvement gets larger with longer queues.
There is no observed decrease in speed for smaller queue sizes.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoUse LIMIT to speed EXISTS subqueries
Mike Rylander [Tue, 12 Feb 2013 16:51:16 +0000 (11:51 -0500)]
Use LIMIT to speed EXISTS subqueries

EXISTS without LIMIT is considered harmful in many cases.  Thus, we will
apply such an explicit planner hint in SuperCat.  This reduces the runtime
of URI lookups on some records from 1.2s+ to less than 1ms.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoOne more tiny i18n fix
Lebbeous Fogle-Weekley [Wed, 27 Feb 2013 16:57:45 +0000 (11:57 -0500)]
One more tiny i18n fix

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
11 years agoFix omissions of [% l(...) %] for i18n
Lebbeous Fogle-Weekley [Wed, 27 Feb 2013 16:40:03 +0000 (11:40 -0500)]
Fix omissions of [% l(...) %] for i18n

Spotted by Pasi Kallinen.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoFixing upgrade script version of the permission id
Mike Rylander [Wed, 27 Feb 2013 16:04:24 +0000 (11:04 -0500)]
Fixing upgrade script version of the permission id

Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoStamping upgrade scripts for Org Unit Proximity Adjustment and Custom Best-Hold Sort...
Mike Rylander [Wed, 27 Feb 2013 16:02:47 +0000 (11:02 -0500)]
Stamping upgrade scripts for Org Unit Proximity Adjustment and Custom Best-Hold Sort Order

Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoCustom best-hold selection sort order
Lebbeous Fogle-Weekley [Thu, 13 Dec 2012 19:45:41 +0000 (14:45 -0500)]
Custom best-hold selection sort order

The ranking algorithm that chooses the best hold to target a copy in
hand at a capture time used to be fairly simple.  It had two modes, FIFO
and not-FIFO, and that was it.

This change allows full configuration of that algorithm.  In other
words, when the system captures a copy and sets out to evaluate what
hold, if any, that copy might best fulfull, site staff of sufficient
permission level are now empowered to choose exactly which comparisons
the systems makes in what order.  This gives said staff much greater
flexibililty than they have today over holds policy.

For more information, see the included tech spec documents.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Conflicts:
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/950.data.seed-values.sql

Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoCalculated Proximity Adjustments, a new feature
Lebbeous Fogle-Weekley [Wed, 12 Dec 2012 17:12:12 +0000 (12:12 -0500)]
Calculated Proximity Adjustments, a new feature

Allows customization to the way that Evergreen measures the distance
between org units for the purposes of 1) determining what copy at what
org unit is best suited for targeting a title-level hold, and 2)
determining what hold is best suited for fulfillment by a copy-in-hand
at capture (checkin) time.  The customization is based on a table
'actor.org_unit_proximity_adjustment', with certain matching criteria
that the system compares to properties of the holds and copies in
question.

This feature is actually side-ported from the FulfILLment project, where
it was originally developed by Mike Rylander.  Lebbeous Fogle-Weekley
was responsible for integration into current Evergreen code, some
testing and bug-fixing, and minor refinement of documentation.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoStamping upgrade scripts for Vandelay default match set, with minor adjustments
Mike Rylander [Wed, 27 Feb 2013 15:46:00 +0000 (10:46 -0500)]
Stamping upgrade scripts for Vandelay default match set, with minor adjustments

Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoAdd default Vandelay match set to schema
Ben Shum [Thu, 31 Jan 2013 23:15:28 +0000 (18:15 -0500)]
Add default Vandelay match set to schema

Only had the upgrade SQL, need to actually make the change to the stock schema too.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoRelease notes entry for default Vandelay match set
Kathy Lussier [Thu, 31 Jan 2013 17:50:47 +0000 (12:50 -0500)]
Release notes entry for default Vandelay match set

Adding a release notes entry for default Vandelay match set.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoVandelay: default match set
Jeff Davis [Wed, 17 Oct 2012 23:19:36 +0000 (16:19 -0700)]
Vandelay: default match set

Adds an org unit setting to specify a default Record Match Set when
importing MARC records with Vandelay.  NB: If this is set, it will not
be possible to leave the Record Match Set field blank; it may be
necessary to define a default match set that replicates the current
default behavior.

A new "Vandelay" settings group is also created.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoTPac: Lookup hold patron after paste
Thomas Berezansky [Wed, 27 Feb 2013 15:11:11 +0000 (10:11 -0500)]
TPac: Lookup hold patron after paste

Because staff apparently don't like having to hit tab or enter after pasting a
patron barcode into the place hold interface.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoFix 0752 and 0756 upgrade scripts
Ben Shum [Sun, 17 Feb 2013 06:46:16 +0000 (01:46 -0500)]
Fix 0752 and 0756 upgrade scripts

In 0752, change evergreen.is_json() to just is_json() since some
upgraded sites may still have this in their public schema.

In 0756, drop some additional remnant functions if they exist. These
functions may still lurk in older Evergreen systems upgrading from
pre-2.0 times.

See for reference these commits which drop the older functions from
the schema:

415e0c40cf8ac0fbba91541f9ddf386d02f01fec
24007bf27d6f53073cfb45e4db43b88f651b971b

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
11 years agoQueryParser: Improve container searches
Thomas Berezansky [Wed, 20 Feb 2013 17:26:01 +0000 (12:26 -0500)]
QueryParser: Improve container searches

Add a with/from set for containers for record limiting instead of using the
EXISTS methodology for better index usage.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoQueryParser: Check for URIs in staff visibility
Thomas Berezansky [Tue, 19 Feb 2013 16:42:08 +0000 (11:42 -0500)]
QueryParser: Check for URIs in staff visibility

Specifically, don't show staff records with no copies but with URIs unless the
URIs are "in scope".

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoQueryParser: Adjust visibility order
Thomas Berezansky [Tue, 19 Feb 2013 16:39:40 +0000 (11:39 -0500)]
QueryParser: Adjust visibility order

Checking call number URIs last gives us a faster return on average based on
finding copy information first.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoQueryParser: Provide null rank query as default
Thomas Berezansky [Sun, 17 Feb 2013 00:03:27 +0000 (19:03 -0500)]
QueryParser: Provide null rank query as default

If a given node contains only negative atoms the rank query was coming out as
an empty string, which was generating bad SQL. This causes the default to be a
null tsquery instead.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoTranslation newpot
Bill Erickson [Thu, 21 Feb 2013 16:26:14 +0000 (11:26 -0500)]
Translation newpot

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoTPAC: Avoid leading / trailing space on pages
Dan Scott [Mon, 18 Feb 2013 22:48:44 +0000 (17:48 -0500)]
TPAC: Avoid leading / trailing space on pages

Use the [%- -%] whitespace-chomping directives to remove the leading
space on pages.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoTPAC: Let there be HTML5
Dan Scott [Mon, 18 Feb 2013 22:44:28 +0000 (17:44 -0500)]
TPAC: Let there be HTML5

Stop living the lie that we're pretending to be XHTML Transitional and
embrace HTML5. And save a whole bunch of bytes right off the bat!

Also, use a valid language/locale identifier--we need hyphens instead of
underscores.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoTPAC: Make Google Books Preview depend on Dojo
Dan Scott [Wed, 20 Feb 2013 16:37:08 +0000 (11:37 -0500)]
TPAC: Make Google Books Preview depend on Dojo

It would be possible, but painful, to do all of this in raw JavaScript,
so make the preview functionality depend on Dojo. Also, split out the
relevant JavaScript into its own file. Also, don't search for a preview
if no ISBNs have been gathered; I'm sure Google is never going to return
a result for ISBN:undefined.

You can test this functionality in the sample record set using ISBN
4431287752.

Thanks to Ben Shum for the review comments!

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoTPAC: Google Books preview loader
Dan Scott [Tue, 5 Feb 2013 17:25:24 +0000 (12:25 -0500)]
TPAC: Google Books preview loader

Refinements should include checking more than just the first ISBN for
embeddability and passing more identifiers to the preview loader.
Roughly equivalent to what JSPAC had though.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoStop requiring unneeded/absent RPC::XML::Method
Jason Stephenson [Fri, 9 Nov 2012 20:06:04 +0000 (15:06 -0500)]
Stop requiring unneeded/absent RPC::XML::Method

It's not a thing in recent versions of RPC::XML

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
11 years agoIn XML-RPC Gateway, substitute __ for - in method names
Lebbeous Fogle-Weekley [Mon, 22 Oct 2012 22:42:55 +0000 (18:42 -0400)]
In XML-RPC Gateway, substitute __ for - in method names

Dashes have never actually been valid in XML-RPC method names, and some
clients (like newer versions of Perl's RPC::XML) enforce this rule on
their clients.  This way we give XML-RPC clients a way they can still reach
our methods.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
11 years agoStop requiring unneeded/absent RPC::XML::Function
Lebbeous Fogle-Weekley [Mon, 22 Oct 2012 22:19:03 +0000 (18:19 -0400)]
Stop requiring unneeded/absent RPC::XML::Function

It's not a thing in recent versions of RPC::XML

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Dan Scott <dan@coffeecode.net>
Conflicts:
Open-ILS/src/extras/Makefile.install

11 years agoInstall CPAN on Fedora
Chris Sharp [Thu, 21 Feb 2013 18:33:31 +0000 (13:33 -0500)]
Install CPAN on Fedora

Fedora 18 split CPAN out into its own separate package, rather
bizarrely, and as we sadly still need to install some unpackaged
dependencies from CPAN we had better try to install it.

Signed-off-by: Dan Scott <dan@coffeecode.net>
11 years agoSerials: change more carp() to croak() to avoid infinite loops
Lebbeous Fogle-Weekley [Wed, 13 Feb 2013 15:34:17 +0000 (10:34 -0500)]
Serials: change more carp() to croak() to avoid infinite loops

This addresses a problem very similar to that in LP #1075167, where
certain loops never end because problems with the data elicited calls to
carp(), which fills up log, but never gives our loops notice to end.

Visible symptoms include 1) a greate volume of log spew and 2) an
open-ils.serial drone that ties up a CPU.

The fault lies maybe in our loops rather than in the MFHD
package, but this fixes the problem fastest, and should not have
undesirable side-effects.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
11 years agoLP1108867: i18n support for holds in record details
Dan Scott [Tue, 29 Jan 2013 10:55:10 +0000 (12:55 +0200)]
LP1108867: i18n support for holds in record details

Rather than constructing a string of "Place hold on " + "copy", etc,
just display more complete "Copy hold" / "Volume hold" / "Issue hold"
strings that have a chance of being translatable.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
11 years agoStandardize on 'My' for user pronoun labels
Dan Wells [Fri, 1 Feb 2013 19:39:23 +0000 (14:39 -0500)]
Standardize on 'My' for user pronoun labels

The TPAC currently uses a mish-mash of 'My' and 'Your' when
labeling user elements (e.g. 'my list', 'your account', etc.).
This commit settles on the use of 'My', but only for labels, not
for "dialog" (e.g. 'Your payment has been approved') or for
imperative statements (e.g. 'Please change your password'). One
text which is borderline is 'Log in to Your Account', but I
decided to treat it as imperative and leave it alone for now.

This commit also changes a heading on the list page which was
lacking title case, as the rest of the interface uses title
case for all headings.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Dan Scott <dan@coffeecode.net>
Conflicts:
Open-ILS/src/templates/opac/myopac/lists.tt2

11 years agoTPAC: Allow multiline buttons and other minor button work.
Pasi Kallinen [Tue, 22 Jan 2013 10:53:46 +0000 (12:53 +0200)]
TPAC: Allow multiline buttons and other minor button work.

Allows using multiline buttons; instead of using opac-button
-class in the a-tag, wrap the a-tag in a div with
opac-multiline-button -class.

Changes the login help button so a longer button text
behaves properly and looks good.

Unifies the green OPAC button behaviour when hovering
a mouse over them; the input and button -tag buttons
did not change their color.

Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
Signed-off-by: Dan Scott <dan@coffeecode.net>
Conflicts:
Open-ILS/src/templates/opac/css/style.css.tt2

11 years agoAdd Finnish to the enabled languages list
Pasi Kallinen [Tue, 8 Jan 2013 07:49:39 +0000 (09:49 +0200)]
Add Finnish to the enabled languages list

Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
Signed-off-by: Dan Scott <dan@coffeecode.net>
11 years agoFix failing SIP unit test
Dan Scott [Mon, 18 Feb 2013 22:59:45 +0000 (17:59 -0500)]
Fix failing SIP unit test

Per LP# 1099595, just copy the constant inline instead of requiring the
SIPServer code to be installed on every instance where you don't want
'make check' to fail. (Skipping the test in the absence of the SIPServer
code would be another option, but then you're skipping the test, and for
the sake of 1 constant, that seems like a bad trade.)

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agothe first rule of fixing typos is that you don't talk about fixing typos
Galen Charlton [Mon, 18 Feb 2013 22:42:11 +0000 (17:42 -0500)]
the first rule of fixing typos is that you don't talk about fixing typos

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
11 years agoLet's inch towards valid XHTML by making POST and GET lowercase in our forms
James Fournie [Mon, 18 Feb 2013 20:41:20 +0000 (12:41 -0800)]
Let's inch towards valid XHTML by making POST and GET lowercase in our forms

Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Dan Scott <dan@coffeecode.net>
11 years agotypos be gone
Galen Charlton [Mon, 18 Feb 2013 18:15:42 +0000 (13:15 -0500)]
typos be gone

There is nothing like an old typo
reaching out and shaking one by the collar
when reviewing patches.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
11 years agoAdd Rose::URI prerequisite for Ubuntu systems
Lebbeous Fogle-Weekley [Mon, 18 Feb 2013 16:07:23 +0000 (11:07 -0500)]
Add Rose::URI prerequisite for Ubuntu systems

The Ubuntu parts of Makefile.install don't use the same list of CPAN
packages to install since for Ubuntu there are more distro packages
available than for Debian.

Spotted by Ben Shum.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoLP#1129318: fix exception thrown when printing circ receipts
Galen Charlton [Mon, 18 Feb 2013 17:44:50 +0000 (12:44 -0500)]
LP#1129318: fix exception thrown when printing circ receipts

Because of a misplaced parenthesis in the patch introducing the
PATRON_EXPIRE_DATE_YMD receipt macro, attempting to print
various circ receipts would result in the following exception:

Error in util.date.formatted_date:
location.href = oils://remote/xul/2.3_5/server/circ/checkin.xul
typeof orig_date = string orig_date = 2014-11-07T00:00:00-0500
typeof _date = object _date = Fri Nov 07 2014 00:00:00 GMT-0500 (Eastern Standard Time)
format = undefined
TypeError: s is undefined

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoDocument new dependency for standalone databases
Lebbeous Fogle-Weekley [Mon, 18 Feb 2013 15:11:34 +0000 (10:11 -0500)]
Document new dependency for standalone databases

Rose::URI.  I had added this to Makefile.install, but I forgot about this
section of documentation that lists dependencies for standalone databases.

Spotted by Ben Shum.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoLP 1092284 - Fix add to my list dropdown with ContentCafe links
Ben Shum [Wed, 16 Jan 2013 21:33:22 +0000 (16:33 -0500)]
LP 1092284 - Fix add to my list dropdown with ContentCafe links

As noted in the bug ticket, the dropdown menu for Add to my list disappears
whenever hovering over the Reviews & More link for ContentCafe-enabled TPACs.

Removing position:relative from .results_review seems to keep the two areas
from having any strange interactions.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
11 years agoqp_fix: number upgrade scripts, disable QP unit tests needing more attention
Lebbeous Fogle-Weekley [Fri, 15 Feb 2013 20:36:01 +0000 (15:36 -0500)]
qp_fix: number upgrade scripts, disable QP unit tests needing more attention

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQueryParser: use combined metabib_field column
Thomas Berezansky [Tue, 18 Dec 2012 20:53:28 +0000 (15:53 -0500)]
QueryParser: use combined metabib_field column

Because I somehow forgot about it. Oops.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoAdd basic release notes and notes for docwriters
Thomas Berezansky [Tue, 18 Dec 2012 20:12:10 +0000 (15:12 -0500)]
Add basic release notes and notes for docwriters

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoUpgrade script for ts config use
Thomas Berezansky [Tue, 18 Dec 2012 19:35:28 +0000 (14:35 -0500)]
Upgrade script for ts config use

And the rest of that work

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoAdd config interfaces
Thomas Berezansky [Tue, 18 Dec 2012 15:38:24 +0000 (10:38 -0500)]
Add config interfaces

For metabib class, class ts maps, field, and field ts maps.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQueryParser Driver: Much work
Thomas Berezansky [Thu, 11 Oct 2012 15:43:25 +0000 (11:43 -0400)]
QueryParser Driver: Much work

Switch to configurable fts configs
Add "combined" index vectors
Add word boundary checks for phrase searches
Use combined rel_bump function

And probably more I forgot about

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQueryParser Driver: Remove Unphrases, add negates
Thomas Berezansky [Wed, 10 Oct 2012 21:23:43 +0000 (17:23 -0400)]
QueryParser Driver: Remove Unphrases, add negates

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoUse ][ instead of # to split facets
Thomas Berezansky [Wed, 10 Oct 2012 20:51:36 +0000 (16:51 -0400)]
Use ][ instead of # to split facets

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQueryParser Driver: Add "lucky" modifier
Thomas Berezansky [Thu, 27 Sep 2012 20:48:03 +0000 (16:48 -0400)]
QueryParser Driver: Add "lucky" modifier

Forces to 1 result. Best used with redirect on single hit active.

Because why not.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQueryParser Driver: Improve format filter
Thomas Berezansky [Tue, 18 Sep 2012 15:55:07 +0000 (11:55 -0400)]
QueryParser Driver: Improve format filter

Allow multi-select in particular, and make negate more intuitive.

-format(at-d) would previously generate:
-item_type(a,t) -item_form(d)

Now it generates:
-(item_type(a,t) item_form(d))

Multi-select allows for things like:
format(at-d,g)

To generate:
((item_type(a,t) item_form(d)) || item_type(g))

Negating that results in:
-((item_type(a,t) item_form(d)) || item_type(g))

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQueryParser Driver: Long Line Cleanup
Thomas Berezansky [Fri, 14 Sep 2012 16:15:40 +0000 (12:15 -0400)]
QueryParser Driver: Long Line Cleanup

Both in the code and in the generated where clause.

The where clause we start a new line whenever:

1 - We encounter an AND or OR
2 - We are building a complex subquery (including embedded newlines)
3 - We enter a subplan

This makes for a nicely human-readable where clause.

For the code we split many long lines into multiple. A number of those were
changed due to the where clause formatting.

We also change all instances of multiple ${spc} being added to use the
${spc} x #
method of doing things, as it tends to be shorter.

Also, we move some conditionals from the ends of lines to the fronts, mainly
in those situations where we are moving something from single to multi line.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQueryParser Driver: Remove Switch usage
Thomas Berezansky [Fri, 14 Sep 2012 12:57:45 +0000 (08:57 -0400)]
QueryParser Driver: Remove Switch usage

Because not all distros install it by default.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQueryParser Driver: Improve anchored searches
Thomas Berezansky [Wed, 12 Sep 2012 13:12:41 +0000 (09:12 -0400)]
QueryParser Driver: Improve anchored searches

By checking individual atoms for ^ and $ anchors we can get better results,
without needing to have people quote individual terms.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQueryParser Driver: Protect against NULLs
Thomas Berezansky [Tue, 11 Sep 2012 19:02:59 +0000 (15:02 -0400)]
QueryParser Driver: Protect against NULLs

mrd.attrs->'value' can return NULL. If this happens:

Checking that the value is within a range or list will work fine.
NEGATING that will not.

This is because:
AND NULL returns NULL
AND NOT (NULL) also returns NULL

The solution? Adjust things so we can wrap all the offending checks in a
COALESCE to false. Then if mrd.attrs->'value' is null we get a false.

In the process we move any and all negations to outside the COALESCE.

Also apply the same logic to the bib_source filter, not to mention
making it support being negated.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoAdd bib_source filter
Thomas Berezansky [Tue, 11 Sep 2012 13:48:39 +0000 (09:48 -0400)]
Add bib_source filter

Because it would likely be very useful, if only for staff.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoFix empty statuses filter
Thomas Berezansky [Tue, 11 Sep 2012 13:42:38 +0000 (09:42 -0400)]
Fix empty statuses filter

By adding a check that was overlooked.

Also remove a leftover TODO note and add another test query.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQueryParser Driver: Use proper table alias
Thomas Berezansky [Tue, 11 Sep 2012 13:21:36 +0000 (09:21 -0400)]
QueryParser Driver: Use proper table alias

When all atoms are dummy atoms we need the correct table alias.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoAdd some more test queries to query_tester.pl
Thomas Berezansky [Tue, 11 Sep 2012 13:11:29 +0000 (09:11 -0400)]
Add some more test queries to query_tester.pl

At least one of which requires a follow-up change to the driver to resolve.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoRemove search.query_parser_fts from schema
Thomas Berezansky [Mon, 10 Sep 2012 20:47:15 +0000 (16:47 -0400)]
Remove search.query_parser_fts from schema

Including an upgrade script to drop it.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoQuick script for pushing queries into search
Thomas Berezansky [Mon, 10 Sep 2012 17:54:55 +0000 (13:54 -0400)]
Quick script for pushing queries into search

Several of the defaults are designed to trigger bad SQL generation.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>