working/Evergreen.git
12 years agoImport updated translations from Launchpad
Dan Scott [Wed, 6 Jun 2012 20:39:10 +0000 (16:39 -0400)]
Import updated translations from Launchpad

Lebbeous Fogle-Weekley originally imported these updated translations
from Launchpad. Dan Scott just weeded out a few metadata-only changes
to PO files that didn't need to be pushed to git.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoAddress LP #983487: Avoid clobbering bib records at authority merge
Lebbeous Fogle-Weekley [Tue, 5 Jun 2012 21:44:37 +0000 (17:44 -0400)]
Address LP #983487: Avoid clobbering bib records at authority merge

If you've set up a relationship between bib record and authority records
based on arbitrary sets of controlling and controlled fields, but your
authority records don't have the right Subj fixed field value
corresponding to a control set that defines the controlling and
controlled fields you're using, authority merge operations may wipe out
lots of bib data.

Yamil Suarez encountered this bug in testing, and in his case what he
needed to do was set the Subj fixed field in his authority records to
'A' to match his Song Title Index (see the launchpad bug referened
above).

Previously, you could not actually save the Subj fixed field in the MARC
editor (which showed HeadSubj instead of Subj for authority records, and
didn't work).  Now you can.

Thanks to Mike Rylander for help in figuring out the above.

To provide additional protection against merging authority records when
they might not be linked with the right control set, the Manage
Authorities interface will now also show you the linked control set for
any given records.

The implementation of that last bit incidentally meant making sure flesh
and flesh_fields get passed through to PermaCrud for retrieve() calls via
the Javascript openils.PermaCrud wrapper.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoMove 2.0.11 upgrade script into version_upgrade dir
Dan Scott [Tue, 5 Jun 2012 13:17:52 +0000 (09:17 -0400)]
Move 2.0.11 upgrade script into version_upgrade dir

Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoAdd the 2.0.10-2.0.11 upgrade script.
Jason Stephenson [Thu, 10 May 2012 17:56:41 +0000 (13:56 -0400)]
Add the 2.0.10-2.0.11 upgrade script.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoDistinguish route-to-cataloging exception circ messages
Dan Scott [Sun, 3 Jun 2012 00:06:30 +0000 (20:06 -0400)]
Distinguish route-to-cataloging exception circ messages

It appears as though a copy-and-paste error introduced duplicate keys in
circ.properties, which in turn makes newer versions of the Translate
Toolkit unhappy and results in empty translated files. Tracing through
the pertinent code in xul/staff_client/server/circ/util.js, it looks
like the desired key was for "not_found" for the second "cataloging" key
- so change that accordingly.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoFix check for duplicate strings in i18n properties
Dan Scott [Sat, 2 Jun 2012 23:51:55 +0000 (19:51 -0400)]
Fix check for duplicate strings in i18n properties

We had the core of the check in place - just failed to check the
property we were iterating over. Doh.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoImprove Fedora prereqs and instructions
Dan Scott [Sun, 3 Jun 2012 05:09:26 +0000 (01:09 -0400)]
Improve Fedora prereqs and instructions

Fedora 16 and 17 need the makensis package.

As well, make the Makefile.install target "fedora" to match the OpenSRF
target, and adjust the docs accordingly. This should lead to fewer
changes in the future as Fedora 18, 19, etc roll out.

Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoLP975422 patron search from portal/splash page
Jason Etheridge [Wed, 9 May 2012 14:30:17 +0000 (10:30 -0400)]
LP975422 patron search from portal/splash page

make it consider the "Patron circulation summary is horizontal" library setting

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoTPAC: Prevent unitialized variable warnings in My Account (repair)
Bill Erickson [Thu, 3 May 2012 20:36:38 +0000 (16:36 -0400)]
TPAC: Prevent unitialized variable warnings in My Account (repair)

The logic in the second IF test was slightly altered by the fix.  An
undef value for username_unlimit should result in executing the block.
Since org setting values are stored as real boolean values, I simplified
the test to a simple if(!username_unlimit) test.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoTPAC: Prevent unitialized variable warnings in My Account
Dan Scott [Wed, 11 Apr 2012 03:34:24 +0000 (23:34 -0400)]
TPAC: Prevent unitialized variable warnings in My Account

Viewing a user's account preferences would trigger two uninitialized
variable warnings if the corresponding org unit settings were not set.

Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoACQ guarantee no PO re-activation
Bill Erickson [Fri, 23 Mar 2012 19:17:50 +0000 (15:17 -0400)]
ACQ guarantee no PO re-activation

Prevent the possibility of double PO activation by preventing it within
the API.  There have been reports in the wild of double-activation, even
though the UI is supposed to prevent it.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoFix broken menu entries under "Other -> Booking" in patron interface
Lebbeous Fogle-Weekley [Fri, 1 Jun 2012 19:43:54 +0000 (15:43 -0400)]
Fix broken menu entries under "Other -> Booking" in patron interface

This issue was reported to me by Steve Callender.  The menu entries
under "Other -> Booking" had all stopped working.

There's a catalog of URL constants under window.urls sometimes, and
formerly (or other times?) at xulG.urls for XUL-based staff client
interfaces.  There's a new-tab-opening method that needed to be more
flexible when looking for that catalog.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoOverride arguments parameter repairs
Bill Erickson [Fri, 1 Jun 2012 14:28:28 +0000 (10:28 -0400)]
Override arguments parameter repairs

In some cases, the override arguments were passed as a paramater after
an @array or %hash argument.  In such cases, any params following are
clumped into the array/hash and the trailing parameters get no values.
Let's explicitly push the $oargs into the preceeding structures.

In the case of Circulate.pm:new, no $oargs argument is needed, as all keys
within the %args hash are tacked onto the circulator object.

Also, for consistency, this change affects one of the hold API calls by
moving $oargs into $params even when not strictly necessary.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agolp#1007248: tweak order in which pgt rows are renumbered
Galen Charlton [Fri, 1 Jun 2012 03:31:11 +0000 (23:31 -0400)]
lp#1007248: tweak order in which pgt rows are renumbered

Need to renumber from highest to lowest.  Because the primary
key constraint is not deferred, doing the renumbering in a single
statement will fail if there is overlap between the set of
existing pgt.id values and the set of {pgt.id + 100}.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTPAC bookbag CGI param changed to bbid
Bill Erickson [Fri, 25 May 2012 18:41:18 +0000 (14:41 -0400)]
TPAC bookbag CGI param changed to bbid

To avoid propagating a generic URL parameter like 'id', which can be
picked up by other pages and cause breakage, use 'bbid' instead.  Also,
clear the 'bbid' param from the my-account tabs.

While we're in there, silence an uninitialized string warning.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoWork Log entry for holds placed from "Search the Catalog"
Jason Etheridge [Fri, 20 Apr 2012 02:22:53 +0000 (22:22 -0400)]
Work Log entry for holds placed from "Search the Catalog"

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoWork Log entry for holds placed within patron display
Jason Etheridge [Fri, 20 Apr 2012 01:02:12 +0000 (21:02 -0400)]
Work Log entry for holds placed within patron display

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agofix error reporting when using list.wrap_in_full_retrieve
Jason Etheridge [Fri, 20 Apr 2012 01:01:35 +0000 (21:01 -0400)]
fix error reporting when using list.wrap_in_full_retrieve

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agowork log entries for payments received
Jason Etheridge [Tue, 17 Apr 2012 21:03:21 +0000 (17:03 -0400)]
work log entries for payments received

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoLP#856708 - Scrolling/div size issues in action trigger interface
Jeff Davis [Wed, 11 Apr 2012 16:04:19 +0000 (12:04 -0400)]
LP#856708 - Scrolling/div size issues in action trigger interface

The event definition content pane does not properly accommodate its contents.
In the Event Definitions tab, the list of event definitions exceeds the height of the
pane, but you can't scroll all the way down to the bottom of the list -- some of the
content gets cut off. Likewise, when editing an event definition, you can't scroll
all the way to the bottom of the page; the Cancel and Save buttons are cut off, and
you have to use the Tab key to move the focus down to those buttons, which forces
the pane to scroll to the bottom so that they're visible.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agotrivial whitespace change
Galen Charlton [Sat, 26 May 2012 16:42:20 +0000 (12:42 -0400)]
trivial whitespace change

(for testing post-receive hook after Gitolite upgrade)

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
12 years agoDOC: fix a couple typos
Galen Charlton [Sat, 26 May 2012 16:17:58 +0000 (12:17 -0400)]
DOC: fix a couple typos

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
12 years agoStamping upgrade for ACQ org setting group
Bill Erickson [Fri, 25 May 2012 18:54:23 +0000 (14:54 -0400)]
Stamping upgrade for ACQ org setting group

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoGroup acquisition OU settings in a new "Acquisitions" group
Dan Scott [Thu, 12 Apr 2012 01:56:56 +0000 (21:56 -0400)]
Group acquisition OU settings in a new "Acquisitions" group

As seen in LP867465, the current grouping of acquisition OU settings
under the generic "lib" group leads to confusion about which
context "default shelf location" and the like apply to. Creating a new
"Acquisitions" group will help clarify that current ambiguity.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoRepair tpac QueryParser bookbag/container filter
Bill Erickson [Fri, 25 May 2012 18:00:44 +0000 (14:00 -0400)]
Repair tpac QueryParser bookbag/container filter

The container() filter SQL now JOINs on m.source instead of mrd.id,
since mrd is not yet defined in the query (and m.source == mrd.id).

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoAcq: Use scope to constrain choice of lineitem alerts
Lebbeous Fogle-Weekley [Tue, 8 May 2012 18:20:24 +0000 (14:20 -0400)]
Acq: Use scope to constrain choice of lineitem alerts

This commit addresses this launchpad bug:
https://bugs.launchpad.net/evergreen/+bug/996033

The controlled vocabulary of acq lineitem alert text is set up in an
interface labeled "Line Item Alerts" in the staff client admin menu. In
the PO and selection list interfaces (where alerts can be applied), we
will limit the user to selecting alerts from those owned at the user's
workstation org unit (or its ancestors).

When we display applied alerts, we can also display the shortname of the
org unit at which the alert text is defined (the owning_lib column).
This should help clarify what's going on with alerts that have already
been applied using alert text from another org unit.

[Amended since original reference on Launchpad to also show the
owning_lib's shortname when confirming alerts at receive time.]

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agomenu entry Circulation->Clear Shelf-Expired Holds
Jason Etheridge [Tue, 10 Apr 2012 19:35:31 +0000 (15:35 -0400)]
menu entry Circulation->Clear Shelf-Expired Holds

This spawns the Browse Hold Shelf interface but automatically triggers the View
Shelf-Expired Holds and Clear these Holds options.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoStamping upgrade script for TPAC hold override setting
Mike Rylander [Fri, 25 May 2012 15:16:50 +0000 (11:16 -0400)]
Stamping upgrade script for TPAC hold override setting

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoTPAC auto-override permissable patron hold fail events
Bill Erickson [Tue, 22 May 2012 21:40:04 +0000 (17:40 -0400)]
TPAC auto-override permissable patron hold fail events

This adds a new org unit setting which tells the tpac to automatically
override hold placement failure events in cases where the patron has the
permission to do so.  The goal is to skip the confirmation step
currently required by patrons when overridding a tpac hold.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoAllow more granular overrides
Thomas Berezansky [Thu, 24 May 2012 15:45:36 +0000 (11:45 -0400)]
Allow more granular overrides

This adds a new parameter to backend override functions. In most cases the
system will act like a hash with all set to 1 was passed in when nothing was
passed in by the caller.

The new parameter should be a hash containing zero or more of the following
options:

all - If true (1) override all events
events - Should be an array of event textcodes to override

For hold placement the "all" option is ignored for possibility checks, but
is checked for other events like HOLD_EXISTS.

Also included for hold placement is to always run possibility checks for
the test and create batch method.

Overall, the default is to act like things did previously.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoStamping upgrade script for the flattener-based pull list
Mike Rylander [Fri, 25 May 2012 14:59:38 +0000 (10:59 -0400)]
Stamping upgrade script for the flattener-based pull list

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoNew pull list interface taking advantage of flattener for speed,
Lebbeous Fogle-Weekley [Sat, 31 Mar 2012 16:17:40 +0000 (12:17 -0400)]
New pull list interface taking advantage of flattener for speed,

and advanced sorting.  For now, access it by the "Simplifed Pull List"
button along the bottom edge of the existing holds pull list interface
(but I think when/if this thing is widely accepted, it should replace
the existing interface outright).

With thanks to Mike Peters for testing an early version.  Now including
some updates requested by Thomas Berezansky.  Specifically, the
queue_position column and its relatives fthat come from the same
calculation were removed, as they're [very] expensive in computing time to
produce and generally useless to pull lists.

One exception to the characterization of those fields as "useless" is the
"number of potential copies" column, which we should add back later
assuming we can find a fast way to do it rather than the previous ways,
which were slow.

Thanks to Bill Erickson for helping fix my issues in making auto-generated
columns coƶperate with the column picker (his changes are squashed into
this).  I think it's finally right.

Now with release notes.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agotpac : uri escape added content key
Bill Erickson [Thu, 24 May 2012 14:30:09 +0000 (10:30 -0400)]
tpac : uri escape added content key

The added content key may have spaces, etc.  URI escape the key to
prevent Net::HTTP from croaking in the URL.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agotpac added content default type improvements
Bill Erickson [Fri, 18 May 2012 17:23:53 +0000 (13:23 -0400)]
tpac added content default type improvements

* In the pre-JS state, only choose a default display type when the type
is known to have data.

* If no default type is chosen for the main tab link, because no data
was available to the template, set the default from the first added
content type determined to be available via JS.

* Move added content JS to separate template file for easier override.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoTPAC added content data retrieval sanity check
Bill Erickson [Tue, 15 May 2012 14:11:37 +0000 (10:11 -0400)]
TPAC added content data retrieval sanity check

On the backend, avoid fetching added content data when initial request
returns 404.  This prevents edge case where a specific type may be
selected (e.g. via bookmark) even though no data exists for the type.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoTPAC added content shows default tab
Bill Erickson [Tue, 15 May 2012 13:56:27 +0000 (09:56 -0400)]
TPAC added content shows default tab

Use the first available content as the default tab to show when the main
added content tab is expanded.

Note, if no content is known to exist until after JS has run, it's still
possible to expand the main tab and have no content selected by default.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoTPAC added content improvements
Bill Erickson [Tue, 15 May 2012 13:46:11 +0000 (09:46 -0400)]
TPAC added content improvements

* Style the sub-tabs to indicate which is selected
* If the template knows there is no content, hide the main tab
* cleanup

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoTPAC added content integration
Bill Erickson [Mon, 14 May 2012 19:22:08 +0000 (15:22 -0400)]
TPAC added content integration

https://bugs.launchpad.net/evergreen/+bug/984963

This adds a new tab on the detail page called Additional Content
(suggestions welcome).  When the tab is expanded, available content is
presented to the user via a series of sub-tabs.

At the start of loading the record detail page, kick off a series of
asynchronous HTTP HEAD requests, one per type of added content.  At the
end of context loading, read the results of the HTTP requests for any
that have completed.  If the status for a type is 200, the type is
marked as available.  If it's not 200 (usually 404) it's marked as not
available.  Otherwise, it's marked as unknown.

In the template, available content produces a link the user can click
to view the content.  Non-available content produces no links.  Unknown
content produces a link that may lead to content or no content when
JS/dojo is disabled.  When dojo is enabled, unknown content sends a
series of JS queries to determine the state of the content
asynchronously and results in displayed links for any type that is later
determined to have content.

TODO: when the user expands the Additional Content tab, no type is
chosen by default.  A default (available) type needs to be selected on
initial display.

TODO: better styling, particularly in the sub-tabs.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agominor fix.. this was working, but not in the same vein of other 'render' elements
Jason Etheridge [Tue, 22 May 2012 15:11:01 +0000 (11:11 -0400)]
minor fix.. this was working, but not in the same vein of other 'render' elements

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoREADME: Bump OpenSRF prerequisite to 2.1 for Evergreen 2.2+
Dan Scott [Fri, 25 May 2012 07:14:46 +0000 (03:14 -0400)]
README: Bump OpenSRF prerequisite to 2.1 for Evergreen 2.2+

Also use a title that fits into the DIG documentation more smoothly, and
be consistent about sentence-style capitalization of sub-headings.

Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoMerge branch 'master' of git.evergreen-ils.org:Evergreen-DocBook into doc_consolidati...
Dan Scott [Wed, 23 May 2012 20:16:58 +0000 (16:16 -0400)]
Merge branch 'master' of git.evergreen-ils.org:Evergreen-DocBook into doc_consolidation_master

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
12 years agoMerge branch 'master' of git.evergreen-ils.org:Evergreen into doc_consolidation_master
Dan Scott [Wed, 23 May 2012 20:16:38 +0000 (16:16 -0400)]
Merge branch 'master' of git.evergreen-ils.org:Evergreen into doc_consolidation_master

12 years agoTPAC: recover the ability to override hold placement failures
Bill Erickson [Tue, 22 May 2012 20:22:14 +0000 (16:22 -0400)]
TPAC: recover the ability to override hold placement failures

There is a certain class of hold failure events (e.g. HOLD_EXISTS,
HOLD_ITEM_CHECKED_OUT) that can be overridden by patrons when they have
the correct override permission.  This change recovers that ability,
which was recently removed with 99e8fc893a.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoUpdate upgrade instructions to release candidate 1.
rsoulliere [Wed, 23 May 2012 11:50:05 +0000 (07:50 -0400)]
Update upgrade instructions to release candidate 1.

12 years agostamping upgrade script for saved queries
Mike Rylander [Tue, 22 May 2012 19:10:14 +0000 (15:10 -0400)]
stamping upgrade script for saved queries

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoTPAC: Search Filter Groups
Bill Erickson [Thu, 23 Feb 2012 22:01:28 +0000 (17:01 -0500)]
TPAC: Search Filter Groups

Adds support for a new CGI param:

fg:<filter_group_code>=filter_group_entry

Each filter group entry will be mapped to a filter_group_entry()
filter and appended to the current search query.

This includes a new filter selector builder at
parts/filter_group_selector.tt2.

Usage, assuming a filter_group with code "audience":

<span>[% ctx.filter_groups.audience.label %]<span>
<span>
[%
    INCLUDE 'opac/parts/filter_group_selector.tt2'
    filter_group=audience
    none_ok=1
%]
<span>

The set of filter groups available to the TPAC are those defined at the
search org unit and its ancestors.  If multiple filters have the same
code name, the filter owned closest to the context org unit is used.
This allows for global filters with local overrides.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agotpac : search_HINT cache fixes
Bill Erickson [Wed, 18 Apr 2012 20:15:46 +0000 (16:15 -0400)]
tpac : search_HINT cache fixes

When searching for multiple values like a list of IDs, generate the
cache key from the sorted JSON form of the search value instead of the
bare ARRAY ref.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoNew QueryParser filter_group_entry filter
Bill Erickson [Thu, 19 Apr 2012 17:54:34 +0000 (13:54 -0400)]
New QueryParser filter_group_entry filter

filter_group_entry() takes one or more filter_group_entry IDs as
parameters and applies the included sub-searches as filters on the
current search.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoGive the PG QP driver a subquery callback for the new saved_query() filter
Mike Rylander [Wed, 18 Apr 2012 17:25:06 +0000 (13:25 -0400)]
Give the PG QP driver a subquery callback for the new saved_query() filter

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTeach QueryParser about search filter callbacks, and if a callback returns a value...
Mike Rylander [Wed, 18 Apr 2012 17:24:24 +0000 (13:24 -0400)]
Teach QueryParser about search filter callbacks, and if a callback returns a value, parse it at the current recursion level

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoSearch Filter Groups and Generic Queries : DB / IDL
Bill Erickson [Thu, 23 Feb 2012 19:28:50 +0000 (14:28 -0500)]
Search Filter Groups and Generic Queries : DB / IDL

Adds 3 new tables.  The first is a general purpose container for
query-parser queries.  These can be used by other entities for storing
saved searches, saved search filters, etc.  Each contains a query string
and a label.

The two other tables are for creating org unit saved search filter
groups.  A filter group is a named set of search queries, treated as
filters, collected to create a high-level search filter.  Filter group
entries use search_query's under the covers, so the content of the
filter can be any valid query string, including other filters or even
other filter groups.

For example, you could create an "Audience" filter group with entries
like, "Children" => "audience(a, b) locations(3,4,5)" to filter on copy
location in addition to the MARC audience data.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoQuery Parser merged copy / non-dynamic filters
Bill Erickson [Mon, 21 May 2012 14:32:56 +0000 (10:32 -0400)]
Query Parser merged copy / non-dynamic filters

When more than one copy-level filter (e.g. locations()) is used in a
query-parser query, all but the first are ignored.  The goal of this
work is to compress multiple copy-level filters into a single filter
that represents the full collection.  Wherever possible, boolean
structures will be honored, to the extent possible for post-search
copy-level filters.

Examples:

concerto locations(1,2) locations(3,4)

==> concerto locations(1,2,3,4)

( concerto locations(3,4,5) ) || (piano locations(3,5,7) )

==> ( concerto || piano ) locations(3,4,5,6,7)

( concerto locations(3,4,5) ) && ( piano locations(3,5,7) )

==> concerto piano locations(3,5)

Note, in the last 2 examples, the final query does not exactly match the
original.  This is because copy-level filters are applied after the
initial search and cannot be executed as part of the  nested query.  The
best we can do is create a representation of the final copy-level
filter, based on the nesting, and apply it to the final result of the
nested search.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoQuery Parser nested dynamic filters
Bill Erickson [Tue, 15 May 2012 22:00:30 +0000 (18:00 -0400)]
Query Parser nested dynamic filters

Dynamic filters (from metabib.record_attr) are now parsed along with
search strings and facets as Query Parser descends the parse tree.  The
WHERE clause for the query as a whole is now a combination of the main
WHERE and the ON clause for JOINing to metabib.record_attr.  This gives
us the ability to create complex boolean nested queries using
SVF/record_attr filters, unlike before where nested filters were either
ignored or always treated as global filters.

For example:

concerto && ( ( item_type(a) subject|topic[Music] ) || item_form(a) )

This query now successfully limits the "concerto" search to results that
have either (item_type(a) AND subject|topic[Music]) OR item_form(a).

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoQueryParser test script
Bill Erickson [Tue, 15 May 2012 21:59:56 +0000 (17:59 -0400)]
QueryParser test script

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoUse spaces instead of tabs in QueryParser.pm
Dan Scott [Mon, 21 May 2012 19:09:59 +0000 (15:09 -0400)]
Use spaces instead of tabs in QueryParser.pm

Copying swathes of SQL from logs into psql would often trigger the
autocompletion that psql offers, garbling a query awfully. Define the
local $spc var as two spaces and use that instead, leaving open the
option for reverting to tabs or anything else people prefer.

Also remove trailing whitespace, as this whole thing is about space.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoMakes a warning go away when running fts-replacement.pl, but may have...
Lebbeous Fogle-Weekley [Mon, 21 May 2012 18:22:40 +0000 (14:22 -0400)]
Makes a warning go away when running fts-replacement.pl, but may have...

...consequences.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoFix typo in TEST_SETUP for QueryParser.pm
Dan Scott [Mon, 21 May 2012 18:02:11 +0000 (14:02 -0400)]
Fix typo in TEST_SETUP for QueryParser.pm

"author|coporate" doesn't exist, probably doesn't matter much in
principle but is worthwhile getting rid of the distraction.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoabstract query representations from QueryParser
Mike Rylander [Thu, 29 Dec 2011 16:36:20 +0000 (11:36 -0500)]
abstract query representations from QueryParser

When you perform a search, you now also get back an abstract
representation of your search query.  fts-replacement.pl is a test
script that shows you things that QueryParser does, including the new
abstract query feature, and it also reconstitutes a string from the
abstract query to demonstrate the correctness of that query.

[Also]
Make last-wins true for facets, filters and modifiers -- arg!; Parameterized values win in the staged-search QP wrapper

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoQueryParser: comma-delimit multiple WITH clauses
Dan Scott [Mon, 21 May 2012 18:46:53 +0000 (14:46 -0400)]
QueryParser: comma-delimit multiple WITH clauses

Bill Erickson's fix for my breakage of QueryParser.pm for the speedup
via the WITH common table expression usage inadvertently left out
the commas required to delimit multiple WITH clauses, resulting in SQL
query errors.

This fixes that oversight. Note that the fts-replacement.pl script came
in quite handy for testing this; recommended.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoAdd libnet-https-any-perl as precise deb requirement in Makefile.install.
Jason Stephenson [Sat, 19 May 2012 02:51:14 +0000 (22:51 -0400)]
Add libnet-https-any-perl as precise deb requirement in Makefile.install.

Business::OnlinePayment::PayPal requires it, and it does not always want
to install from CPAN. It says it require either Net-SSLeay or
Crypt-SSLeay but the CPAN package never wants to install unless they
both are installed. The deb package for Ubuntu seems to do the right
thing.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoQP support for nested WITH construction
Bill Erickson [Fri, 18 May 2012 20:42:19 +0000 (16:42 -0400)]
QP support for nested WITH construction

Nested query plans build their own tsquery chunks which have to be
individually JOINed to the final query.  To do this, each tsquery SELECT
gets its own entry in the top-level WITH, complete with alias for
joining.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoFurther integration: link README to server install docs
Dan Scott [Mon, 21 May 2012 03:02:09 +0000 (23:02 -0400)]
Further integration: link README to server install docs

We will now have the INSTALL file linking to the README file which in
turn leads to the docs/installation/server_installation.text file. But
it all works!

Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoMerge the Evergreen docs into the code repository
Dan Scott [Mon, 21 May 2012 02:51:52 +0000 (22:51 -0400)]
Merge the Evergreen docs into the code repository

Rather than maintaining two separate repositories, with dual maintenance
of what are essentially single-sourced files in the release notes and
the install instructions, make better use of the docs/ subfolder of the
Evergreen repository. If this crazy scheme works, DIG can commit to the
docs/ subfolder, and devs can commit there too.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoMerge branch 'master' of git.evergreen-ils.org:Evergreen-DocBook into doc_consolidati...
Dan Scott [Mon, 21 May 2012 02:35:54 +0000 (22:35 -0400)]
Merge branch 'master' of git.evergreen-ils.org:Evergreen-DocBook into doc_consolidation_master

Conflicts:
README

Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoFix licensing image.
rsoulliere [Thu, 17 May 2012 16:00:19 +0000 (12:00 -0400)]
Fix licensing image.

12 years agoOptimize full text search with a CTE
Dan Scott [Wed, 16 May 2012 04:29:11 +0000 (00:29 -0400)]
Optimize full text search with a CTE

The tsquery used directly in a JOIN was resulting in bad
plan with lots of nested loops and operations. Using a CTE
to define the query improves the plan.

Also, instead of ARRAY_AGG(DISTINCT foo), just return the
whole thing in an array. Not great for dupes, but we can
handle those inside search.query_parser_fts if we really
need to.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agolink to local cc-by-sa license icon.
rsoulliere [Thu, 17 May 2012 13:52:38 +0000 (09:52 -0400)]
link to local cc-by-sa license icon.

12 years agoVandelay authority existing queue search repair
Bill Erickson [Wed, 16 May 2012 19:55:23 +0000 (15:55 -0400)]
Vandelay authority existing queue search repair

When searching for an existing authority queue, search for an authority
queue, not a bib queue.  Apart from simply not working, the query will
fail with an "invalid input value for enum vandelay.bib_queue_queue_type"
and result in a client-side error.

https://bugs.launchpad.net/evergreen/+bug/989391

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoTypo fix.
rsoulliere [Thu, 17 May 2012 13:39:23 +0000 (09:39 -0400)]
Typo fix.

12 years agoAdd licensing to root.txt
rsoulliere [Thu, 17 May 2012 13:31:24 +0000 (09:31 -0400)]
Add licensing to root.txt

12 years agoMerge branch 'master' of git.evergreen-ils.org:Evergreen-DocBook
rsoulliere [Thu, 17 May 2012 13:26:28 +0000 (09:26 -0400)]
Merge branch 'master' of git.evergreen-ils.org:Evergreen-DocBook

12 years agoAdd licensing appendix and pdf image.
rsoulliere [Thu, 17 May 2012 13:25:19 +0000 (09:25 -0400)]
Add licensing appendix and pdf image.

12 years agoDocument hold-driven recalls
Dan Scott [Thu, 17 May 2012 03:40:52 +0000 (23:40 -0400)]
Document hold-driven recalls

Mostly reformatting the original commit message from c403d6bb54 as
documentation. Includes index entries. Tested with current master,
supported since 2.1.0.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoAvoid collisions of normalized values going into metabib.browse_entry
Lebbeous Fogle-Weekley [Mon, 14 May 2012 16:46:44 +0000 (12:46 -0400)]
Avoid collisions of normalized values going into metabib.browse_entry

This fixes a bug that prevented successful reingestion of bib records
during the 2.1->2.2 upgrade in some cases.  Reported by George Duimovich.

Key part here:

> ERROR: duplicate key value violates unique constraint
> "browse_entry_value_key"
> DETAIL: Key (value)=(545575) already exists.
> CONTEXT: SQL statement "INSERT INTO metabib.browse_entry (value) VALUES
>                     (metabib.browse_normalize(ind_data.value,

George confirmed that the changes to the version upgrade script fixed
the problem for him.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoFix text line widths - lomit to 80 characters.
rsoulliere [Mon, 14 May 2012 17:04:06 +0000 (13:04 -0400)]
Fix text line widths - lomit to 80 characters.

12 years agoTest linking form release notes.
rsoulliere [Sat, 12 May 2012 20:02:36 +0000 (16:02 -0400)]
Test linking form release notes.

12 years agoremove some reference to 2.2 since we are in 2.2 docs.
rsoulliere [Sat, 12 May 2012 19:34:25 +0000 (15:34 -0400)]
remove some reference to 2.2 since we are in 2.2 docs.

12 years agoAdd some content for general staff client usage. Thanks Sally and ESI for providing...
rsoulliere [Sat, 12 May 2012 19:15:04 +0000 (15:15 -0400)]
Add some content for general staff client usage. Thanks Sally and ESI for providing the content.

12 years agoAdd customizing the staff client toolbars and add a section for using the staff clien...
rsoulliere [Sat, 12 May 2012 18:44:44 +0000 (14:44 -0400)]
Add customizing the staff client toolbars and add a section for using the staff client in general.

12 years agoAdd user Activity Types documentation from Sally/ESI. Thanks!
rsoulliere [Sat, 12 May 2012 17:56:34 +0000 (13:56 -0400)]
Add user Activity Types documentation from Sally/ESI. Thanks!

12 years agoUpdate authorities chapter.
rsoulliere [Sat, 12 May 2012 16:04:47 +0000 (12:04 -0400)]
Update authorities chapter.

12 years agoAdd vandelay acquisitions integration fom Sall/ESI. Thanks!
rsoulliere [Sat, 12 May 2012 15:27:52 +0000 (11:27 -0400)]
Add vandelay acquisitions integration fom Sall/ESI. Thanks!

12 years agoAdd SMS text Messaging from Sally/ESI. Thanks!
rsoulliere [Sat, 12 May 2012 15:08:58 +0000 (11:08 -0400)]
Add SMS text Messaging from Sally/ESI. Thanks!

12 years agoAdd library settings editor from Sally/ESI. Thanks Sally and ESI!
rsoulliere [Sat, 12 May 2012 14:41:48 +0000 (10:41 -0400)]
Add library settings editor from Sally/ESI. Thanks Sally and ESI!

12 years agoAdd auto suggest chapter to root.
rsoulliere [Sat, 12 May 2012 14:19:34 +0000 (10:19 -0400)]
Add auto suggest chapter to root.

12 years agoAdd auto suggest documentation from Sally/ESI. Thanks Sally and ESI.
rsoulliere [Sat, 12 May 2012 14:16:50 +0000 (10:16 -0400)]
Add auto suggest documentation from Sally/ESI. Thanks Sally and ESI.

May want to revisit location of documentation. Some of this is OPAC/ end user  and some is admin related.

12 years agoBe more prepared for malformed serial holding code data in upgrade scripts
Lebbeous Fogle-Weekley [Fri, 11 May 2012 19:59:37 +0000 (15:59 -0400)]
Be more prepared for malformed serial holding code data in upgrade scripts

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoMove PLPERL dropping outside of 2.1-2.2 upgrade transaction
Dan Scott [Fri, 11 May 2012 14:45:39 +0000 (10:45 -0400)]
Move PLPERL dropping outside of 2.1-2.2 upgrade transaction

Sites might have added custom PLPERL database functions for migrations,
data clean up, etc, so don't make the success of the 2.1-2.2 upgrade
hinge on a database schema that exactly matches vanilla Evergreen;
just move it outside of the upgrade transaction and output a reassuring
note.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoAdd missing weights fm_IDL entries
Thomas Berezansky [Wed, 18 Apr 2012 16:05:20 +0000 (12:05 -0400)]
Add missing weights fm_IDL entries

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoIn the 2.1-2.2 upgrade script, move 0691 into a failures-are-ok zone
Lebbeous Fogle-Weekley [Thu, 10 May 2012 20:19:26 +0000 (16:19 -0400)]
In the 2.1-2.2 upgrade script, move 0691 into a failures-are-ok zone

Mainly because it's already covered in the 2.1.1-2.1.2 upgrade script.
Thanks to George Duimovich for pointing this out in LP #997759.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoVersion Upgrade Cleanup
Thomas Berezansky [Thu, 10 May 2012 15:05:54 +0000 (11:05 -0400)]
Version Upgrade Cleanup

Merge tacked on transactions into the "primary" transaction.
Add in 0708 for tracking purposes.

Separate 0672 and 0679+0680 in the version-to-version upgrade script
They're all potentially slow.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoCheck if transaction needs closing after adding billings
Bill Erickson [Fri, 4 May 2012 13:18:10 +0000 (09:18 -0400)]
Check if transaction needs closing after adding billings

This addresses the issue where issuing refunds results in a negative
ballance and it is then impossible to close the transaction by creating
new billings.

https://bugs.launchpad.net/evergreen/+bug/758982

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoNearest Hold: Look at 100 instead of 10 holds
Thomas Berezansky [Mon, 7 May 2012 18:13:17 +0000 (14:13 -0400)]
Nearest Hold: Look at 100 instead of 10 holds

At the suggestion of Mike Rylander.

Because DB-wise the extra 90 IDs isn't a big deal, and this way we get more
chances to capture (or block renewal, etc).

Jeff Godin claims they have done this and it has produced no issues for them.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoHold Capture: Run permit tests on "old" holds
Thomas Berezansky [Mon, 7 May 2012 15:59:10 +0000 (11:59 -0400)]
Hold Capture: Run permit tests on "old" holds

Because we shouldn't be trusting that the copies are still valid.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoHold Editing: Retarget on some changes
Thomas Berezansky [Mon, 7 May 2012 15:40:41 +0000 (11:40 -0400)]
Hold Editing: Retarget on some changes

The main thing to cover is pickup library, but check a few other things too.

Note that most of what is being checked likely doesn't change in any normal
workflows or interfaces, but it looks like they could anyway later.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoHold Targeter: Ensure old best still valid
Thomas Berezansky [Mon, 7 May 2012 15:00:14 +0000 (11:00 -0400)]
Hold Targeter: Ensure old best still valid

Re-using a now invalid copy is a bad idea for various reasons.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoDefault email/phone hold pickup in TPac
Thomas Berezansky [Fri, 13 Apr 2012 17:26:59 +0000 (13:26 -0400)]
Default email/phone hold pickup in TPac

Like JSPac does, but currently without the check of having phone/email.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
12 years agoRetarget Local Holds: Use part ID properly
Thomas Berezansky [Wed, 9 May 2012 12:42:58 +0000 (08:42 -0400)]
Retarget Local Holds: Use part ID properly

Because the mapping ID is meaningless unless you only create one part at a
time, assign them only once in the order you created them, etc.

Which I think pretty much describes most of my original test cycle.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoTPAC: Keep site() and depth() out of basic search box when widgets suffice
Lebbeous Fogle-Weekley [Tue, 8 May 2012 15:25:23 +0000 (11:25 -0400)]
TPAC: Keep site() and depth() out of basic search box when widgets suffice

This is a short term but working solution to the problem described here:
https://bugs.launchpad.net/evergreen/+bug/986196

Now when you have a selection for site on the advanced search page, it
doesn't lead to redundant site() and depth() terms in your basic search
query box.

Item type selections and search class selections (keyword/author/etc)
can still lead to ugliness in the advanced search box, but that's
because in the advanced search page you get a multi-select widget for
item type and in a basic search page you only get a single-select
dropdown, so there's not a clean way to map your advanced page
selections to basic page selections.  Search classes are kind of the
same issue, since you have three dropdowns on the advanced search page
and one on the basic.

So the "bigger" problem is one that we will have to solve later, but for
the common case at least we don't get the extra site() and depth() for
now.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
12 years agoFix hold has copy at lookup
Thomas Berezansky [Mon, 7 May 2012 19:42:35 +0000 (15:42 -0400)]
Fix hold has copy at lookup

Filter on available or reshelving, and add more hold type support for lookup
purposes (parts and issuance holds).

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