Dan Scott [Thu, 11 Jul 2013 14:41:32 +0000 (10:41 -0400)]
Maintenance message: avoid Unicode corruption, support KPAC
By shifting from an Apache config environment variable to a config.tt2
variable, we gain the advantage of more robust Unicode support as well
as the ability to turn maintenance messages on or off without requiring
a reload of Apache.
However, we do lose the convenience of per-vhost maintenance messages;
sites requiring this functionality can use the ctx.hostname variable to
provide conditional per-host messages.
This also adds support for displaying the maintenance message in the
KPAC.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Steven Chan [Thu, 23 May 2013 22:22:15 +0000 (15:22 -0700)]
Patron Editor can enter erroneous values for Claims-returned count
In the staff client, Patrons interface, Edit screen, when
mouse-scrolling up and down the Edit form, it is possible to
inadvertently change the value in Claims-returned Count or Claims Never
Checked Out Count field. It will happen if the mouse hovers over either
data field while using the mouse wheel.
Both data fields use the dijit.form.NumberSpinner widget to provide a
'spin' behaviour. The fix involves cancelling the mouse scroll event as
it propagates to input fields in table rows that are using the
dijit.form.NumberSpinner widget, because the mouse scroll would be
applied too early by the widget, before the user has intentionally
focussed on one of the input fields. Now, mouse scrolling has no effect
on the two input fields; it will only have an effect in scrolling the
page up or down.
Signed-off-by: Steven Chan <schan@sitka.bclibraries.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
James Fournie [Sat, 23 Feb 2013 01:28:29 +0000 (17:28 -0800)]
Server maintenance message via Apache config
This adds a custom maintenance message which you can issue in your
Apache config by setting the environment variable "MAINTENANCE_MESSAGE"
and restarting/reloading Apache. This message appears in the TPAC for
both staff and patrons in the form of a red banner across the top of the
screen.
Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca> Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
I totally screwed up this commit by committing old versions of files
instead of the deltas against current master. Reverting, then will apply
the correct commit.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
James Fournie [Thu, 11 Jul 2013 00:41:51 +0000 (20:41 -0400)]
Server maintenance message via Apache config
This adds a custom maintenance message which you can issue in your
Apache config by setting the environment variable "MAINTENANCE_MESSAGE"
and restarting/reloading Apache. This message appears in the TPAC for
both staff and patrons in the form of a red banner across the top of the
screen.
Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Mark Cooper [Mon, 18 Mar 2013 22:45:14 +0000 (15:45 -0700)]
LP1156905 lineitem worksheet sorts copies by org
Lineitem copies (details) were set to be sorted by branch ('owning_lib')
by default. However this was not happening because the lineitem_details
'owning_lib' referenced a fieldmapper object (not an id or name).
This submission sets the owning_lib to the shortname so that sorting can
occur in the intended way.
Signed-off-by: Mark Cooper <markchristophercooper@gmail.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Tue, 9 Jul 2013 20:53:29 +0000 (16:53 -0400)]
Correct Linux staff client build instructions
There were a few things going on here; 2.3 introduced linux32-client and
linux64-client targets, so the old linux-client Make target no longer
worked.
Also, Wine isn't generally how many of us would recommend running staff
clients when there's a perfectly good native client likely to better
support printing, etc.
Also, rather than pointing at evergreen-ils.org for downloads, which
won't work in many situations (and which prevents the use of the
auto-update mechanism), use the "updates" target to point at the locally
downloadable clients. Eventually we'll properly document the use of
auto-updates, but for now this is hopefully a step in the right
direction.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Mike Rylander [Tue, 25 Jun 2013 14:03:36 +0000 (10:03 -0400)]
Preserve record order of subfields for authority heading extraction
When extracting headings from authority records we currently read the
subfields of a tag in configuration order. We should, instead, read
them in record order, to preserve the desired sorting properties that
the cataloger has encoded in the record.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Yamil Suarez <yamil@yamil.com>
Michael Peters [Thu, 5 Apr 2012 14:23:32 +0000 (10:23 -0400)]
LP#973666: Print Purchase Order does not print PO Name
Printing a PO from the menu option "Actions-->Print Purchase Order"
generates a document that displays the PO #, but not the PO Name. It
was suggested that it would be helpful if the print document
displayed the PO Name instead of, or in addition to, the PO #. This
commit adds the PO Name in the default template for new installs,
but does not affect upgrades.
Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Dan Wells <dbw2@calvin.edu>
In the quest to not let staff put bad data into the system (losing battle,
but hey, gotta keep trying, right?), add a barcode regex specifically for
patron registration.
This intentionally does *not* check the opac "is this a barcode?" value.
Use cases for not checking that value include, but are not limited to:
Special "barcodes" for staff accounts. Specific OUs may have a barcode
regex of ".*" to ensure they can use anything for these accounts.
Different prefixes per library - To prevent libraries from using another
library's prefix, but still detect all of them as barcodes.
Special case "this is a barcode" checks for the opac, like legacy barcodes
that should no longer be assigned to new patrons, or on edits.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi> Signed-off-by: Ben Shum <bshum@biblio.org>
Jason Etheridge [Tue, 26 Jun 2012 15:39:48 +0000 (11:39 -0400)]
fix clear hold shelf with 25 or more holds
When there are 25 or more shelf expired holds to be processed, the API call
returns an array of objects instead of an object, which the staff client wasn't
prepared to accommodate. This fixes that.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Thu, 27 Jun 2013 13:46:55 +0000 (09:46 -0400)]
Avoid 0788 duplication from 2.3 failure
Recent installs of 2.3, or upgrades during 2.3, will have introduced
0788 already into the upgrade process -- meaning that the 2.3-2.4.0
script will rollback the entire transaction if it hits the duplicated
0788. Instead, move 0788 into its own transaction to increase the
chances that the 2.3-2.4.0 script will work for sites that stay up to
date or that recently installed Evergreen.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Mon, 24 Jun 2013 19:48:07 +0000 (15:48 -0400)]
Create upgrade script for ingest normalization changes
This provides the upgrade script for the ingest changes outlined
in LP 1187433. In addition, the version-upgrade script for 2.3 to
2.4.0 has been modified to move the final reingest step until after
this incremental change has been applied.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Dan Scott [Thu, 13 Jun 2013 05:16:23 +0000 (01:16 -0400)]
Retain index granularity with minimal bloat
The previous approach to reducing index bloat arguably went too far, in
that analytics such as separately catalogued songs for an album were all
simply aggregated together in a single metabib.title_field_entry row,
rather than being added as separated metabib.title_field_entry rows for
each unique value.
To avoid the original problem of exact duplicate rows being inserted, we
now check for an existing matching row before inserting into the index.
A good test record is title "Cello concerto." which results in 1 title
proper row and 4 added entry title rows in metabib.title_field_entry
after this change.
Mike Rylander [Wed, 12 Jun 2013 15:17:08 +0000 (11:17 -0400)]
Bring back "split-brain" indexing normalization
Before 2.4-era changes to indexing and search, normalizers were applied
in a way that resulted in different effects on the value and index_vector
columns of metabib.*field_entry tables. This behavior was lost during
the changes mentioned above, but we need it for several things to work
properly, phrase search and (likely) facets among them. This commit
brings that behavior back.
See here for the original behavioral documentation:
Bob Wicksall [Thu, 13 Jun 2013 05:06:10 +0000 (01:06 -0400)]
Reduce index bloat involving non-search_field values
Rows in metabib.title_field_entry, subject_field_entry,
series_field_entry, and author_field_entry are doubled or tripled due to
bad logic in biblio.extract_metabib_field_entry. This results in these
tables being 2 or more times their correct size.
This was introduced in 2.2.0 when the logic for browse_field and
facet_field were added to biblio.extract_metabib_field_entry. 2.1 is not
affected.
The duplicates are caused when biblio.extract_metabib_field_entry
returns TRUE in the search_field column for all rows even if they should
just be facet_field or browse_field after the first search_field value
is returned.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Mike Rylander [Tue, 25 Jun 2013 11:44:22 +0000 (07:44 -0400)]
Only attempt to map copies once per hold
The development of Calculated Proximity Adjustment (CPA) for 2.4 added a "prox"
column to action.hold_copy_map (ahcm) to store on variant of copy proximity. That
value is calculated at the same time that certain other data structures are
set up, and is conceptually tied to them, so the resulting combined data
set is used to insert values into the ahcm. However, user configuration
can cause that data set to contain non-unique values, where the data structure
used previous to CPA was guaranteed to be unique. This lack of uniqueness
would then violate a constraint on the achm table. This commit restores the
required uniqueness for the purpose of creating the ahcm rows.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
The "Reset" label for the button that generates random passwords can be
confusing for staff. Changes the label to "Generate Password" to let
people know what the button does.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Fri, 21 Jun 2013 18:49:27 +0000 (14:49 -0400)]
Prevent JavaScript error on non-Novelist sites
Unless the Evergreen site in question is signed up and configured to
support Novelist added content, every details page will generate a
JavaScript error due to the reference to an undefined JavaScript
function. Guard against that by testing for the presence of the Novelist
URL.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Wed, 19 Jun 2013 20:49:14 +0000 (16:49 -0400)]
Silence QP warning due to inappropriate cmp op
In QueryParser, we're comparing two strings, but using the numeric !=
operator. Switching to the 'ne' operator silences a warning that came up
7,000 today in our logs so far...
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Fri, 21 Jun 2013 03:11:20 +0000 (23:11 -0400)]
Silence uninit var warnings from query normalizer
$field_info can return undef from the search for a matching ID from the
list of normalizers, which in turn generates several uninit var warnings
when attempts are made to access members of the undef variable. We saw
6700 occurrences of these warnings during a typical day of operations.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Fri, 21 Jun 2013 03:39:21 +0000 (23:39 -0400)]
return, not next, from eval BLOCK
Per perldoc eval, exiting an eval BLOCK is not allowed. And it generates
warnings - 37,000 of them in one day - on a system on which the fine
generator runs every 15 minutes. Simply returning from the block
achieves the same goal without generating scads of warnings.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Bill Erickson [Mon, 13 May 2013 17:22:37 +0000 (13:22 -0400)]
LP1179609 ACQ lineitem identifier inline update
When the identifier value for a linetiem is changed, apply the change
and refresh the lineitem in real time instead of requiring users to
click the 'Apply Lineitem Identifier' link.
The 'Apply Lineitem Identifier' link has also been removed, since it is
no longer needed.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Dan Scott [Mon, 17 Jun 2013 04:38:43 +0000 (00:38 -0400)]
Support script-based circ in nearest_hold()
The nearest_hold() implementation recently changed to pull in the circ
library ID; however, if circulation runs through scripts, the circ
library on the copy object has been fleshed, and the nearest hold
routine gets very confused.
Check to see if we do, in fact, have an object instead of a plain
scalar, and assign the value to a placeholder variable accordingly.
Thanks to Jeff Godin for his great assistance on debugging this!
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
Dan Scott [Tue, 18 Jun 2013 16:17:40 +0000 (12:17 -0400)]
Prevent uninit var warnings in Search/Biblio.pm
The logger messages in Search/Biblio.pm throw _many_ uninitialized
variable warnings. With a little care, we can prevent those warnings and
return our attention to more important log messages.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Wells [Fri, 14 Jun 2013 18:21:10 +0000 (14:21 -0400)]
Post-2.5-m1 whitespace fixup
This is an attempt at an automated whitespace cleanup for the m1
milestone of version 2.5. It was created using the following
commands (run from Open-ILS/src/perlmods/lib):
Bill Erickson [Mon, 27 Aug 2012 14:38:48 +0000 (10:38 -0400)]
Repair fine generator memory leak
Calling "next" from within a "try" block results in a memory leak,
presumably because "try" is a tangled nest of subs and evals.
Replacing the "try" with a good ol' "eval" avoids the leak.
This particular leak in the fine generator is onerous when the fine
generator is run often (e.g. every 15 mins), which means circs that
have already been processed for the day are re-analzyed over and over,
causing the code to continue early (next) to the next loop iteration
for large numbers of circs. It also happens when a circs are skipped
because they have no fine interval, rate, or max fine.
You know this is happening because you will see something like this in
the storage stderr log:
Exiting eval via next at
/usr/local/share/perl/5.10.1/OpenILS/Application/Storage/Publisher/action.pm
line 820.
Exiting subroutine via next at
/usr/local/share/perl/5.10.1/OpenILS/Application/Storage/Publisher/action.pm
line 820.
This patch does not avoid the "exiting eval via next" warning, since
we're still next'ing out of the eval. It just avoids the memory leak
(and the "Exiting subroutine" warning). More extensive refactoring is
needed to to completely remove the second warning.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Tue, 11 Jun 2013 20:44:35 +0000 (16:44 -0400)]
Use the centralized initialization method for QP
QueryParser maintains an effective singleton for internal configuration of
the driver in order to avoid going to the database on every search request
to gather configuration parameters. There is also a centralized sub that
has the task of properly configuring said singleton. Previous to this commit
we were not using that centralized initializer in one case, and that case
happened to be the most important initialization of QP in all of Evergreen.
The fallout from that was that some configuration was not being gathered
and passed to QueryParser, resulting in incorrect search SQL being generated.
This is rectified by using the centralized initializer everywhere that it
is needed and can be used -- and particularly in the effected case.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Mike Rylander [Tue, 30 Apr 2013 20:45:55 +0000 (16:45 -0400)]
Search clicked /and/ preceding sf values
When looking for authority records to control a bib field, we currently
search using exactly, and only, the subfield that was clicked. This
commit changes that so that the full field up to and including the clicked
subfield is used in the simple authority heading search we perform to find
the best-match (pivot) authority record.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Ben Shum [Wed, 5 Jun 2013 04:40:53 +0000 (00:40 -0400)]
LP1079041 - making state not required (continued)
The last commit did not add the default YAOUS to the seed data. Also, some
wording tweaks to bring the content in line with the existing entries for
consistency.
Michael Peters [Thu, 15 Nov 2012 17:49:05 +0000 (12:49 -0500)]
Make the "state" field in registration a togglable YAOUS
Some countries do not use "State" therefore we need to create
a YAOUS to make it non-required/displaying. This also requires
that we no longer force a "not null" on state in actor.usr_address.
Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi> Signed-off-by: Ben Shum <bshum@biblio.org>
Add table, view and trigger for "aging" hold requests on delete.
This creates the action.aged_hold_request table, the
action.all_hold_request view, the action.age_hold_on_delete
function, and the action_hold_request_aging_tgr on action.hold_request.
Add fieldmapper entries for action.all_hold_request view and
action.aged_hold_request table.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Bill Erickson [Mon, 25 Feb 2013 18:17:59 +0000 (13:17 -0500)]
Z39.50 Batch Search/Overlay TPAC my-list entry point
Similar to the staff client bucket UI, this adds a button which allows
staff to access the batch Z39 search-and-queue operation directly from
the TPAC my-lists UI.
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Bill Erickson [Mon, 18 Feb 2013 15:41:01 +0000 (10:41 -0500)]
Z39.50 Batch Search/Overlay Z-Search UI
Adds a new "Find Z39.50 Matches" option to Cataloging -> Manage Record
Buckets. When selected, the user chooses the Z39 fields, the Z39
sources, the destination queue, and the queue match set. The user then
submits the search. Basic progress info is reported to the user.
Once complete, the user can open the destination queue, from which
regular vandelay import, etc. actions may be performed on the newly
found records.
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Bill Erickson [Thu, 31 Jan 2013 17:37:44 +0000 (12:37 -0500)]
Vandelay record bucket-limited matching
Provides the option to link record buckets to vandelay queues. When
linked, vandelay imports where a match set is specified will limit
matches to records within the selected bucket.
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Bill Erickson [Wed, 30 Jan 2013 22:44:30 +0000 (17:44 -0500)]
Z39.50 Batch Search/Overlay API
New API for performing Z39.50 queries for a set of bib records across a
set of Z39 sources. Searches are performed in parallel (up to a
configurable maximum number of active searches and maximum results) and
results are stored in a vandelay MARC Import/Export queue.
Search fields and values are determined by Z39 index field maps. At
search time, the caller provides a set of field maps to use for the
search. Search values for each bib record are found by following the
index maps to the indexed values in metabib.*_field_entry or
metabib.record_attr.
Signed-off-by: Bill Erickson <berick@esilibrary.com>