working/Evergreen.git
7 years agoQueryParser: Add negate operator
Thomas Berezansky [Sun, 16 Sep 2012 19:21:07 +0000 (15:21 -0400)]
QueryParser: Add negate operator

To replace the previous -atom behavior add a negate op, by default !.

This acts identically to how - worked before it was changed to convert atoms
into unphrases.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoQueryParser: Treat Unphrases as negated phrases
Thomas Berezansky [Sun, 16 Sep 2012 19:08:06 +0000 (15:08 -0400)]
QueryParser: Treat Unphrases as negated phrases

This should allow drivers to better check for negated phrases by using
indexes on the contained atoms.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoQueryParser: Protect phrase parsing
Thomas Berezansky [Sun, 16 Sep 2012 17:53:16 +0000 (13:53 -0400)]
QueryParser: Protect phrase parsing

Ensure that phrases don't get parsed as containing anything other than
individual atoms. This ensures that you can phrase-escape things that would
otherwise be treated as QP syntax.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoConvert negated words to unphrases, like we do with +d words to phrases
Mike Rylander [Fri, 14 Sep 2012 18:28:20 +0000 (14:28 -0400)]
Convert negated words to unphrases, like we do with +d words to phrases

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoLots ...
Mike Rylander [Wed, 12 Sep 2012 17:12:12 +0000 (13:12 -0400)]
Lots ...

 * increase debugging amount and readability
 * floating sections (push-to-top)
 * force plan level setting
 * fix several forms of auto-pushdown breakage (explicit bool precedence support)

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoQueryParser unit test
Jared Camins-Esakov [Sat, 8 Sep 2012 02:44:50 +0000 (22:44 -0400)]
QueryParser unit test

Test that QueryParser can handle a variety of queries. This initial
unit test does the following:

1) Test the configuration of QueryParser.
2) Test that various queries have stable canonical representations.
3) Test that a number of equivalent queries are correctly parsed as
   equivalent.
4) Test that a number of non-equivalent queries are correctly parsed as
   NOT being equivalent.
5) Several other tests relating to query parsing.

This includes almost 100% subroutine coverage in the QueryParser class.
Other classes have somewhat lower test coverage.

As of 2012-09-09, several outstanding bugs affect these tests:
1) QueryParser->superpage cannot be unset.
2) Explicit groups are not handled correctly by the abstract query
   to string converter.
3) There is no defined precedence between explicit boolean connectors
   and implicit boolean connectors.
4) Modifiers are silently dropped when not at the top level of the query.

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoStart adding skeletal POD for subroutines
Jared Camins-Esakov [Sun, 9 Sep 2012 14:52:06 +0000 (10:52 -0400)]
Start adding skeletal POD for subroutines

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoMove allow_nested_modifiers to the driver level, provide a wrapper for it, and add...
Mike Rylander [Mon, 10 Sep 2012 19:31:05 +0000 (15:31 -0400)]
Move allow_nested_modifiers to the driver level, provide a wrapper for it, and add that to the Pg test setup as an example

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoAllow nested modifiers
Jared Camins-Esakov [Sat, 8 Sep 2012 03:36:36 +0000 (23:36 -0400)]
Allow nested modifiers

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoPretty-fy canonicalization
Mike Rylander [Mon, 10 Sep 2012 18:58:01 +0000 (14:58 -0400)]
Pretty-fy canonicalization

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoTeach QP about floating (force-to-top) subplans indicated by {{...}}
Mike Rylander [Mon, 10 Sep 2012 17:21:30 +0000 (13:21 -0400)]
Teach QP about floating (force-to-top) subplans indicated by {{...}}

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoQP: OO-ize canonicalizer; remove extra nesting from canonicalized query; repair neste...
Mike Rylander [Fri, 7 Sep 2012 19:51:43 +0000 (15:51 -0400)]
QP: OO-ize canonicalizer; remove extra nesting from canonicalized query; repair nested operator in bool nesting; updated (basis) test script

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoAutomatic push-down of explicitly-bool-connected conditions
Mike Rylander [Fri, 7 Sep 2012 18:15:21 +0000 (14:15 -0400)]
push-down of explicitly-bool-connected conditions

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoLP1071505 - Add 264 RDA tag to TPAC pubinfo display
Ben Shum [Wed, 10 Oct 2012 21:00:54 +0000 (17:00 -0400)]
LP1071505 - Add 264 RDA tag to TPAC pubinfo display

Prior to this, TPAC only retrieved the 260 tag for publication info. Allow for
the possibility that the 264 tag might exist and contain relevant information.
Special note: the 264 tag must have a second indicator value of 1 to be meant
for publication statement.

Also, this only picks out the first 260 or 264 tags in any given bib record.

Approach inspired by Dan Scott's approach taken for finding edition statements.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
7 years agoFix some issues that crept into the schema files
Thomas Berezansky [Fri, 15 Feb 2013 16:05:24 +0000 (11:05 -0500)]
Fix some issues that crept into the schema files

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
7 years agoStamping upgrade script for ACQ upload defaults
Ben Shum [Fri, 15 Feb 2013 05:52:36 +0000 (00:52 -0500)]
Stamping upgrade script for ACQ upload defaults

Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoLP1100482 - Add max checked out indicator to patron interface
Kyle Tomita [Thu, 14 Feb 2013 22:42:10 +0000 (14:42 -0800)]
LP1100482 - Add max checked out indicator to patron interface

Patron exceeds max checked out indicator is not being displayed on patron page.

Created the indicator on the xul pages and the css to style it.  The js code
to hide and show indicator was there.

Signed-off-by: Kyle Tomita <ktomita@catalystitservices.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoACQ upload does not persist provider
Bill Erickson [Thu, 14 Feb 2013 20:55:49 +0000 (15:55 -0500)]
ACQ upload does not persist provider

Do not persist upload provider.  The org unit setting for defining a
default provide is still available.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoACQ upload persists fiscal year
Bill Erickson [Wed, 13 Feb 2013 20:20:37 +0000 (15:20 -0500)]
ACQ upload persists fiscal year

Persist the last used value for the fiscal year selector.  As noted in
the code, this is a stop-gap for using the current org unit fiscal year
as a default, which requires additional UI components.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoRepair ACQ upload defaults settings labels
Bill Erickson [Mon, 4 Feb 2013 21:01:19 +0000 (16:01 -0500)]
Repair ACQ upload defaults settings labels

LP 1109258

Replace "Upoad" with "Upload".  Remove preceeding "ACQ..." from labels,
since it's redundant with the org unit settings group.

Thanks to Ben Shum for finding these label errors.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoACQ upload form widget persistence release notes
Bill Erickson [Tue, 29 Jan 2013 20:10:08 +0000 (15:10 -0500)]
ACQ upload form widget persistence release notes

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoACQ upload form widget value persistence
Bill Erickson [Fri, 25 Jan 2013 20:50:48 +0000 (15:50 -0500)]
ACQ upload form widget value persistence

Provides a two-layer persistence mechanism for the ACQ MARC file upload
interface(s).  For most of the widgets in the upload form, there is now
a matching org unit setting for configuring values ahead of time.  When
such a value is configured, the value will be used.  When no org unit
setting value is configured for a field, the value selected by staff is
stored locally (at the workstation) and re-used for future loads of the
interface.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoACQ MARC upload UI default values SQL
Bill Erickson [Mon, 28 Jan 2013 17:02:26 +0000 (12:02 -0500)]
ACQ MARC upload UI default values SQL

Adds a series of org unit settings for configuring the default values to
use for the acquisistions MARC upload interface.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoXUL localStorage interface
Bill Erickson [Fri, 25 Jan 2013 20:46:39 +0000 (15:46 -0500)]
XUL localStorage interface

localStorage is so much better than cookies.  To use it inside of
XUL-embedded web pages, we have to use the XUL localStorage interface,
since window.localStorage is not available within the oils:// protocol.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoLP1097928 - Better caps lock message
James Fournie [Wed, 9 Jan 2013 20:24:27 +0000 (12:24 -0800)]
LP1097928 - Better caps lock message

The TPAC login failure message states "Ensure Caps-Lock is off" however
as was noted on IRC not long ago, passwords are case-sensitive.  So this
message may be misleading.

Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoAcq: EDI omnibus bugfix package
Lebbeous Fogle-Weekley [Wed, 23 Jan 2013 18:07:33 +0000 (13:07 -0500)]
Acq: EDI omnibus bugfix package

EDIReader bugfix - Process misc charges better
    MOA+304 seems to be an encoding peculiar to Ingram for processing fees.

Bubble up errors better from invoice processing
    Errors were getting logged, but weren't linked on the related
    acq.edi_message row in the database like they could have been to make
    debugging easier.

    This incidentally elevates one possible message from warning level to
    error, but even as a warning it was stopping the processing of the
    invoice in question there.  So there's no meaningful difference.

Try harder to associate incoming EDI messages with exact right account
    Sites use many very nearly identical EDI accounts (same host and
    credentials) with different values only for the label and the vendcode.
    This allows mapping of an order to a profile on the vendor side.

    The problem with this is that the edi_fetcher and the processes it
    kicks off did not know how to map incoming messages to the right
    account based on vendcode.  That code simply iterated through
    accounts, using host information and login credentials, and grabbing
    what it can find, as if
    there will be no other Evergreen-side EDI "accounts" with the same
    hostname and loging credentials.

    This should help with that.

Style and whitespace cleanups in O::A::Acq::EDI.pm
    All I could stand before I just couldn't take it anymore.

New PO template created malformed JSON in the INC_COPIES=0 case
    And now it no longer should.

Allow order responses and invoices to omit PO repetition in lineitem refs
    Usually vendor documents have bits of EDI that look like:
    RFF+LI:100/123
    where 100 is a PO number and 123 is a lineitem number.

    Sometimes, for some documents, B&T at least will omit the '100/' part.
    This is fine because we don't really need that number repeated for
    every lineitem.  We do need this change so that our EDI reader code
    can deal with the omission, though.

Be more liberal reading EDIFACT message reference number
    Spec, if I read it correctly, says that this is alphanumeric, not just
    numeric, and ULS is one vendor I've seen taking advantage of letters
    and numbers in that space.

    This commit makes the relevant regex in our EDIReader appropriately
    more tolerant.

Fixes to new vencode parsing for incoming EDI messages

Prevent problem in preventing EDI re-retrieves
    The query we were using before would needlessly transfer large objects,
    potentially hitting Jabber message size limits.

    We're just testing for the existence of such objects, so we need no
    more than a single ID in the result.

Fix EDI invoices for ULS, improve troubleshootability
    1) Taxes appear in different, but still valid way in ULS invoices than
    in invoices from other vendors observed to date.

    2) Invoices from ULS use MOA 203 to indicate unit price instead of the
    usual meaning of whole-lineitem price.

    3) Now abuse acq.invoice.note to leave better troubleshooting
    breadcrumbs.

Invoices from EDI had unsavable invoice_items attached
    Deal with this by letting us create fund_debits a little later than in
    the previous workflow. We have to, because the EDI-level stuff creating
    the invoice doesn't know what fund we want to target for taxes and misc
    charges.

    The problem we're fixing manifested by showing an alert() dialog about
    ACQ_FUND_DEBIT_NOT_FOUND.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
7 years agoStamping upgrades for Link Checker
Mike Rylander [Thu, 14 Feb 2013 19:24:00 +0000 (14:24 -0500)]
Stamping upgrades for Link Checker

Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: URL extraction bugfix and usability improvements
Lebbeous Fogle-Weekley [Tue, 8 Jan 2013 23:54:10 +0000 (18:54 -0500)]
Link checker: URL extraction bugfix and usability improvements

The database procedure for URL extraction did not correctly handle
URLs in repeating subfields in the same tag.  Now fixed.

You now get a hint if you try to create a session with a name you have
used before.

Some UI elements on the create session interface have been reordered to
be more logical.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: Some UI tweaks suggested by George Duimovich
Lebbeous Fogle-Weekley [Wed, 21 Nov 2012 18:49:59 +0000 (13:49 -0500)]
Link checker: Some UI tweaks suggested by George Duimovich

  - Make the "Filter" link above FlattenerGrids a button and not a link.

  - Instead of IDs as links in some grid columns, have the ID show up in
    plain text and have links with a more descriptive name sit next to the
    ID.

  - Correct the settings for saving grid columns on the Select URLs and
    Review Attempt interfaces.

  - Tiny i18n fixes (page titles)

  - Fix lack of horizontal scrollbar on Select URLs interface, and also
    fix the way that if you clicked on said scrollbar in a case where
    your grid was taller than your browser window, the page would
    automatically scroll up to focus on your grid header row, and you
    couldn't actually manipulate the horizontal scrollbar.  We sadly
    pay for our horiz scrollbar with a doubled vertical scrollbar, but
    possibly someone can figure the Right way to fix such layout
    problems, which actually occur widely in similar interfaces in
    Evergreen.

  - Add buttons to download CSV on Select URLs and Review Attempt
    interfaces.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: make bib ID visible by default in attempt review view
Galen Charlton [Fri, 19 Oct 2012 19:23:55 +0000 (15:23 -0400)]
Link checker: make bib ID visible by default in attempt review view

Since a piece of workflow (opening the bib in the MARC editor) hangs
off of it, may as well not hide it.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: Links to MARC Editor in verification review interface
Lebbeous Fogle-Weekley [Fri, 19 Oct 2012 18:34:49 +0000 (14:34 -0400)]
Link checker: Links to MARC Editor in verification review interface

Now you can click on the number in the Record ID column on any row in
the verification review interface to launch the MARC Editor for that
record.

This is only supports the most basic of possible mediation workflows to
follow a link checker run, but more could be done with future
development.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: Allow configurable User Agent string
Lebbeous Fogle-Weekley [Wed, 26 Sep 2012 21:35:05 +0000 (17:35 -0400)]
Link checker: Allow configurable User Agent string

Credit to Bill Erickson for noticing that tests were resulting in an
inordinate number of 403 Forbidden responses, which turned out to be
due to discrimination by sites against a libwww/* user agent string.

We now use "Evergreen <version> Link Checker" by default, and it's
configurable in opensrf.xml (grep for user_agent).

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: technical overview (documentation)
Lebbeous Fogle-Weekley [Wed, 26 Sep 2012 18:34:17 +0000 (14:34 -0400)]
Link checker: technical overview (documentation)

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: user interface and supporting fixes (part 2)
Lebbeous Fogle-Weekley [Fri, 31 Aug 2012 21:31:43 +0000 (17:31 -0400)]
Link checker: user interface and supporting fixes (part 2)

Started verification review UI, also SCHEMA CHANGES
    It just doesn't work for me to not have url_verify.url directly related
    to url_verify.session.  When dealing with the "root" URL in a redirect
    chain, you can get the related session through url_selector, but not when
    you have any later URL in the chain.  The only way for IDL perms to work
    would be to have a link to a view using a CTE to find the "root" URL.
    That's too complex, so instead of that I've just added a session fkey on
    url_verify.url.
Corrections to the preceding commit
Vertical scrolling UI glitches fixed
Fix broken display of verification attempt in progress
Implement the "process immediately" switch, hitherto unhooked up
Verify-all now means all-matching-my-search-terms, not necessarily all-in-uvs
let's do filter sets a little more generalized-like
Permission fixing
Filter set loading works.
Filter loading: gracefully skip unknown fields, remove inital empty row
Saving filter sets
Fix filter dialog for pkey fields, scrolliness issue, saved filters issue
Pretty start page for staff client menu to land on
Staff client menu entry
User settings for saved columns
Session cloning, working and rather tested
show name of session on url select page ...
    ... and link back to that on review attempt page
IN / NOT IN for filter somewhat working, but doesn't save/load yet
Saving/loading filter rows for IN, NOT IN operators
Printing

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: URLVerify.pm; response throttling repairs
Bill Erickson [Fri, 31 Aug 2012 13:59:58 +0000 (09:59 -0400)]
Link checker: URLVerify.pm; response throttling repairs

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: user interface and supporting fixes (part 1)
Lebbeous Fogle-Weekley [Fri, 17 Aug 2012 16:17:00 +0000 (12:17 -0400)]
Link checker: user interface and supporting fixes (part 1)

Add open-ils.url_verify service to example OpenSRF configs
ML methods to create sessions and do the searching/bucketing
    We can't use PCRUD to create url_verify.session objects because a) you
    couldn't trust the creator field if we allowed that, and b) the
    container foreign key has a not-null constraint, so you have to create
    that first, and you can't do that with PCRUD.
    I've removed the C, U and D perms for PCRUD for url_verify.session, but
    I left the R in case we wind up using that.
Beginnings for the big session kick-off UI.  Not yet functional.
Get all search results, not just first 10
Check for session ownership and for previous searchitude
Deal with moved publish_fieldmapper() method
    This is a companion commit to
    fac45ab9b1cb8924 / Move Fieldmapper API call to Application.pm
    Without it, Flattener and Action/Trigger stop working with errors like
    this:
    [Mon Aug 20 13:50:18 2012] [error] [client XXX.XXX.XXX.XXX] Exception:
    OpenSRF::EX::ERROR 2012-08-20T13:50:18 main -e:0 System ERROR:
    Exception: OpenSRF::DomainObject::oilsMethodException
    2012-08-20T13:50:18 OpenSRF::AppRequest
    /usr/local/share/perl/5.10.1/OpenSRF/AppSession.pm:1064 <500>   *** Call
    to [open-ils.fielder.flattened_search.execute.atomic] failed for session
    [1345485018.767884163.96534353976], thread trace [1]:\nNo field by the
    name publish_fieldmapper in Fieldmapper! at
    /usr/local/share/perl/5.10.1/OpenILS/Utils/Fieldmapper.pm line
    270.\n\n\n\n, referer:
    http://XXXXXXX/eg/conify/global/actor/search_filter_group
Use a perm that actually exists
More UI work. Saved search selector & search scope OU selector & cosmetics
Fix subtle Perl issue
    Not a syntax error that the compiler will catch, but see
    "perldoc -f do" which will lead you do "perldoc perlsyn"
Buckets and their items aren't designed to be PCRUD accessible,
    so we need a handy view to link URL Verify Sessions to the bib
    contained.  We can leverage this in flattener queries.
Pretty much finished session create UI but for cloning
Permisison fixing
whitespace
Fix previously nonfunctional stored procedure url_verify.extract_urls(INT,INT)
Call URL extraction phase from UI
Fix xpath generation to match what works
Various fixes, largely UI
Refactor create_session as dojo module.
Fix IDL permissions that require jumps
Essentials for URL selecting interface
Verification sorta works
A note about open-ils.url_verify.verify_url for future reference

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: DB layer fixes
Mike Rylander [Mon, 13 Aug 2012 20:10:38 +0000 (16:10 -0400)]
Link checker: DB layer fixes

Function for ingesting URLs from container item + session
New container type for url verification sessions

Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: middle layer work, actual parallelized machinery to check links
Bill Erickson [Tue, 7 Aug 2012 20:28:33 +0000 (16:28 -0400)]
Link checker: middle layer work, actual parallelized machinery to check links

Added is_event check to AppUtils
URLVerify.pm getting started
URLVerify.pm; firing batch url verify calls
URLVerify.pm; docs / cleanup
Constraints need unique names
Liberalize res_code constraint
URLVerify.pm; resume options; docs
URLVerify.pm; initial testing tweaks
Move Fieldmapper API call to Application.pm
Move export of opensrf.open-ils.system.fieldmapper API call from
    Fieldmapper.pm into Application.pm with the rest of the shared API
    calls.  This allows us to remove the OpenSRF::Application base from
    Fieldmapper, which was causing some method name collisions.  For
    example, if a Fieldmapper object had a field called "session", which,
    incidentally, is also a method of OpenSRF::Application, the version
    from OpenSRF::Application would get called instead of the Fieldmapper
    version, since Fieldmapper methods are defined during AUTOLOAD.
    Hilarity was guaranteed to ensue.
URLVerify.pm; more testing tweaks
URLVerify.pm; redirects / error handling
url_verify perm/org setting seed data
url_verify perm/org setting seed data
url_verify perm/org setting seed data
url_verify seed data (trigger)
url verify seed data / null constraint repairs
URLVerify.pm; settings, tmp caching, cleanup / misc
url verify seed data repairs
url_verify seed data / sql manifest
url_verify schema repair / res-code constraint
Do the same thing I did to fix constrain names in upgr scripts to baseline
URLVerify.pm; move to lwp to support ftp and simplify
URLVerify.pm; apply timeout to lwp useragent; comments
URLVerify.pm; avoid re-processing same url within the same attempt
URLVerify.pm; avoid re-processing same url within the same attempt (thinko)
URLVerify.pm; avoid re-processing same url repairs; honor delay=0
URLVerify.pm; docs; url shuffling
URLVerify.pm; docs; url shuffling
URLVerify.pm; docs; url domain looping; cleanup
URLVerify.pm; docs; tested redirect max/loops and repairs

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoLink checker: DB layer and similar changes for URL Verification
Mike Rylander [Mon, 6 Aug 2012 19:51:04 +0000 (15:51 -0400)]
Link checker: DB layer and similar changes for URL Verification

Schema and IDL changes for URL Verification functionality
Start building URL-Validation related funcitons
Add Rose::URI to the CPAN_MODULES list
Add ON INSERT trigger to parse the URL as it is added

Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoRepair tpac OU hiding test for copy counts display
Bill Erickson [Thu, 6 Dec 2012 15:19:00 +0000 (10:19 -0500)]
Repair tpac OU hiding test for copy counts display

Ensure calls to ctx.org_hiding_disabled() are made against the context
(ctx) object, instead of the old-style in-template invocation without
the context.

Thanks to Dale Rigney for spotting this.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoTPAC Org unit hiding
Bill Erickson [Fri, 21 Sep 2012 17:58:46 +0000 (13:58 -0400)]
TPAC Org unit hiding

Adds support for the opac.org_unit_hiding.depth org unit setting to
TPAC, which makes out-of-scope org units disappear (except when
explicitly requested).

Ui changes:

All search org unit selectors
Holds pickup lib selector
Copy summary in search results page
Copy list in search results page
Copy summary in record detail page (which controls the copy grid).
Hold summary in record detail

Org unit hiding is based on the physical_loc (Physical Location) param /
cookie, which is the closest analog to 'ol' (original location), from
which it was based in the JSPAC.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoDon't sort filter group entries in the template
Mike Rylander [Thu, 14 Feb 2013 16:00:42 +0000 (11:00 -0500)]
Don't sort filter group entries in the template

They are now delivered sorted by 'pos', and the template sorting was
ascii-betical anyway, which is incorrect.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
7 years agoSort search filter group entries by 'pos'
Mike Rylander [Thu, 14 Feb 2013 15:51:37 +0000 (10:51 -0500)]
Sort search filter group entries by 'pos'

We use a fleshed cstore call to grab search filter groups and their entries,
but we don't currently sort them by their 'pos' field, which is it's purpose.
cstore will apply order_by expressions to the applicable tables in a fleshed
search/retrieve. This does that.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
7 years agoMore receipt macros
Thomas Berezansky [Wed, 26 Sep 2012 14:42:41 +0000 (10:42 -0400)]
More receipt macros

Patron/Staff Middle Name and patron expiration date.

Including a YMD format variant of the latter.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
7 years agoAdd release notes for hold patron name display
Thomas Berezansky [Wed, 13 Feb 2013 15:55:05 +0000 (10:55 -0500)]
Add release notes for hold patron name display

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoStyle barcode not found message, hide on empty
Thomas Berezansky [Wed, 13 Feb 2013 16:15:22 +0000 (11:15 -0500)]
Style barcode not found message, hide on empty

The barcode not found message should stand out more, so make it a text alert.

In addition, empty barcode isn't really "not found" but still invalid. Hide the
"barcode not found" message and disable submit on empty barcode.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoTPAC - add "patron barcode not found" message to hold placement page
Ben Shum [Wed, 13 Feb 2013 15:30:47 +0000 (10:30 -0500)]
TPAC - add "patron barcode not found" message to hold placement page

Add "Patron barcode not found" as an error text next to the barcode entry
when the lookup fails. This message helps warn staff that the barcode they
are attempting to use is not valid.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
7 years agoTPAC - gray out hold submit button
Ben Shum [Wed, 13 Feb 2013 15:27:09 +0000 (10:27 -0500)]
TPAC - gray out hold submit button

When disabled, recolor to gray to indicate that it is disabled.

This will turn back to normal once a valid user is found.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
7 years agoTPac: Disable staff hold place submit button by default
Thomas Berezansky [Wed, 13 Feb 2013 14:49:49 +0000 (09:49 -0500)]
TPac: Disable staff hold place submit button by default

Because if we don't have a barcode in the box we shouldn't be submitting.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
7 years agoTPac: Invalidate 'current' barcode on invalid
Thomas Berezansky [Wed, 13 Feb 2013 14:06:07 +0000 (09:06 -0500)]
TPac: Invalidate 'current' barcode on invalid

Hold placement should allow you to go back to the previous valid barcode.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
7 years agoTPac: Load name from patron place hold interface
Thomas Berezansky [Tue, 12 Feb 2013 14:47:30 +0000 (09:47 -0500)]
TPac: Load name from patron place hold interface

only_settings is applied from there, so check if a barcode was entered.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
7 years agoTPac: Load patron name when placing holds
Thomas Berezansky [Tue, 12 Feb 2013 14:10:29 +0000 (09:10 -0500)]
TPac: Load patron name when placing holds

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
7 years agoForceExternal: Compare hostnames case insensitive
Thomas Berezansky [Wed, 6 Feb 2013 21:01:49 +0000 (16:01 -0500)]
ForceExternal: Compare hostnames case insensitive

Lowercase both sides to avoid "right host, wrong case" issues.

Resolves LP1081699 where the external browser would be used due to
hostname case sensitivity.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoAdd release note for clickable patron indicators
Ben Shum [Fri, 8 Feb 2013 22:30:52 +0000 (17:30 -0500)]
Add release note for clickable patron indicators

Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoRemove See Messages from the invalid email and phone labels
Kathy Lussier [Fri, 8 Feb 2013 21:41:43 +0000 (16:41 -0500)]
Remove See Messages from the invalid email and phone labels

The "See Messages" part of the label might be misleading since clicking these
indicators opens the patron edit screen. Since replacing the email or
phone number automatically removes these messages, there is no need to
direct the user to the messages screen.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoStop highlighting indicators
Thomas Berezansky [Thu, 11 Oct 2012 17:34:32 +0000 (13:34 -0400)]
Stop highlighting indicators

The way that commands were highlighted when selected, highlighted
both the indicators and the buttons. Change to only hightlight
the tabbed buttons.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoMake patron indicators clickable
Thomas Berezansky [Wed, 3 Oct 2012 19:27:54 +0000 (15:27 -0400)]
Make patron indicators clickable

For example, make "(See Notes)" bring you to notes, provided the patron is
already loaded (aka, not from search).

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoTPAC: Make locale picker match default locale
Dan Scott [Mon, 21 Jan 2013 22:02:42 +0000 (17:02 -0500)]
TPAC: Make locale picker match default locale

As noted by Pasi Kallinen, the language picker would not reflect the
chosen locale unless your cookie had been set or there was an explicit
CGI parameter with the locale name.

Accordingly, get the default locale from the context vars and use that
to set the selected value for the language picker in the absence of
anything else, to prevent the picker from possibly confusingly showing
the first language alphabetically rather than the currently displayed
language in the rest of the UI.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoLP #1092921: Display of/sorting by CN affixes in Simplified Hold Pull List
Lebbeous Fogle-Weekley [Wed, 2 Jan 2013 17:33:36 +0000 (12:33 -0500)]
LP #1092921: Display of/sorting by CN affixes in Simplified Hold Pull List

In the Simplified Hold Pull List interface, the "Call Number Label" column
displays the call number of the copy targeted by the hold in each row,
and it does so by combining affixes with the actual label field.
Sorting of this column actually uses the call number sortkey generated
in-database for this purpose.

Sometimes this means that sorting order doesn't match what you'd
expect to see with this column.  Opinions differ on desired behavior, so
now you can explicity add columns to the table for call number prefix
and suffix, and sort on either of those (potentially in combination with
other columns).

Amended from an earlier version of this commit that still didn't sort
CN prefix and suffix columns quite right.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoLP#1067361: vandelay: batch queue deletion no longer works
Mark Cooper [Tue, 16 Oct 2012 18:02:23 +0000 (11:02 -0700)]
LP#1067361: vandelay: batch queue deletion no longer works

Because window.location.reload can trigger before the deletions
have occurred. Simple fix (band aid?) is to make the delete
calls in sync.

Signed-off-by: Mark Cooper <markchristophercooper@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoLP1054053 - Remove white padding around login inputs
Ben Shum [Tue, 29 Jan 2013 05:27:55 +0000 (00:27 -0500)]
LP1054053 - Remove white padding around login inputs

Forget efforts to make the boxes bigger and smoother as it was in the past.
Instead, opting for a cleaner look by removing the extra white background
that was part of the padding surrounding the actual login input area. This
removes the feeling that the box area should have been bigger than it really
is.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
7 years agoReplace "Mirror Mirror" default non-AC jacket cover
Michael Peters [Tue, 27 Nov 2012 14:05:35 +0000 (09:05 -0500)]
Replace "Mirror Mirror" default non-AC jacket cover

Every item in KPAC that doesn't have a jacket cover uses
the cover for "Mirror Mirror".  This is inappropriate, so
lets replace it with a small blank image.

Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoLP1053526 - Don't inadvertently modify the in-memory org tree when printing
Jason Etheridge [Thu, 20 Sep 2012 17:10:15 +0000 (13:10 -0400)]
LP1053526 - Don't inadvertently modify the in-memory org tree when printing

To see an example of this causing a problem, load Holdings Maintenance for
an arbitrary bib record with items. Make sure the Hide Empty Libs checkbox
is checked. Hit the Print button at the bottom of the UI (it's okay to then
Cancel the print). Then hit Refresh. It should result in an org.children()
is null error.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoLP1075586 - Remove top bar in staff client
Thomas Berezansky [Mon, 5 Nov 2012 13:48:46 +0000 (08:48 -0500)]
LP1075586 - Remove top bar in staff client

Chances are it is rigged for patron, not staff, use.

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>
7 years agoLP #1100914: Input focus for staff client portal should be the text box.
Dan Pearl [Thu, 17 Jan 2013 19:56:18 +0000 (14:56 -0500)]
LP #1100914: Input focus for staff client portal should be the text box.

Suggested by a librarian:
Save a click by putting the initial focus of the Portal page in the search box.
Previously, entering the text box would eliminate the decorative background image;
now, pressing on any key while focus in the box will eliminate the text.

Signed-off-by: Dan Pearl <dpearl@cwmars.org>
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoCopy_offset and copy_limit shouldn't persist in URL
Kathy Lussier [Thu, 31 Jan 2013 15:51:40 +0000 (10:51 -0500)]
Copy_offset and copy_limit shouldn't persist in URL

Added copy_offset and copy_limit to stop_parms definition so that they
don't persist in URL when returning to search results or launching
subject/series searches.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoTPAC - Add parse_datetime to expire_date
Ben Shum [Fri, 25 Jan 2013 14:37:29 +0000 (09:37 -0500)]
TPAC - Add parse_datetime to expire_date

As reported by paxed in IRC, sometimes the function for expire_date has
troubles and you get an apache internal server error page and log errors
like:

egweb: template error: date error - bad time/date string:
expects 'h:m:s d:m:y'  got: '2015-01-31T00:00:00+0200'

Adding the ctx.parse_datetime() function to wrap the ctx.user.expire_date
resolves this problem.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
7 years agoSerials: Caption/pattern wizard use enum fields for chronology when no enum
Lebbeous Fogle-Weekley [Mon, 21 Jan 2013 19:54:55 +0000 (14:54 -0500)]
Serials: Caption/pattern wizard use enum fields for chronology when no enum

MFHD spec says that when there are no ‡a - ‡f enumeration captions, any
chronology captions should move back from their usual ‡i - ‡m places
back into enumeration space.

The predictions engine we already have deals with this better than with
the wrong patterns we were creating before, e.g.:

853 20 ‡81 ‡i(year) ‡j(month) ‡wm

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
7 years agoDeal with opt-in boundaries defensively
Dan Scott [Fri, 17 Aug 2012 20:07:19 +0000 (16:07 -0400)]
Deal with opt-in boundaries defensively

If a site had not set an 'org.patron_opt_default' OU setting, then it
seemed that a DEFAULT value was getting dumped into the "create opt-in"
INSERT statement for the org_unit argument, and that (as there is a
non-NULL constraint on the column and no default value for the column)
resulted in the patron not getting opted in.

One way for sites to deal with this is to set an opt-in boundary at the
consortial level, along the lines of:

INSERT INTO actor.org_unit_setting (org_unit, name, value)
  VALUES (1, 'org.patron_opt_default', 2);

Alternatively, in the absense of any such setting, opt-in should
continue to work as it had before the new feature was added; this change
keeps the old behaviour active in that case.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoLP1051112 - Display lineitem commands menu on empty picklists
Bill Erickson [Mon, 5 Nov 2012 14:22:55 +0000 (09:22 -0500)]
LP1051112 - Display lineitem commands menu on empty picklists

Ensure that the lineitem commands drop-down menu appears even when the
picklist is empty.  Previously, the commands were not displayed until
the first lineitem was retrieved.  For empty picklists, of course, there
will be no first lineitem.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoLP1066158 - Add associated permissions to admin menu commands
Ben Shum [Thu, 11 Oct 2012 04:10:54 +0000 (00:10 -0400)]
LP1066158 - Add associated permissions to admin menu commands

For the admin menu, we had already begun to check for specific permissions
to allow staff to access the menu options.  However, it is not complete.

This is a first attempt to add additional permissions to various local
and server admin options.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Mark Cooper <markchristophercooper@gmail.com>
7 years agoLP#1102472: add about:about to staff client developer menu
Galen Charlton [Mon, 21 Jan 2013 16:38:49 +0000 (11:38 -0500)]
LP#1102472: add about:about to staff client developer menu

The about:about page contains many XULRunner diagnostic tools.

Some useful ones include:

about:buildconfig - Get information about how the staff client is built.
about:config - Tweak XULRunner settings.
about:memory - Get detailed information about staff client memory usage.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoMerge remote-tracking branch 'origin/master' into acq-invoice-doc
Kathy Lussier [Sat, 26 Jan 2013 03:36:53 +0000 (22:36 -0500)]
Merge remote-tracking branch 'origin/master' into acq-invoice-doc

7 years agoDocumentation: acquisitions updates user/kmlussier/acq-invoice-doc
Kathy Lussier [Sat, 26 Jan 2013 02:35:13 +0000 (21:35 -0500)]
Documentation: acquisitions updates

Update Search for Line Items from an Invoice section to reflect minor
changes that came with lp1050008. Also, moved received Items from an
Invoice section to fall within the rest of the Invoices section.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
7 years agoDocumentation: Update staff client installation for 2.3.3 version.
Robert Soulliere [Tue, 22 Jan 2013 14:36:08 +0000 (09:36 -0500)]
Documentation: Update staff client installation for 2.3.3 version.

Signed-off-by: Robert Soulliere <robert.soulliere@mohawkcollege.ca>
7 years agoDocumentation: Update upgrading the server instructions to point to 2.3.3.
Robert Soulliere [Tue, 22 Jan 2013 14:17:26 +0000 (09:17 -0500)]
Documentation: Update upgrading the server instructions to point to 2.3.3.

Signed-off-by: Robert Soulliere <robert.soulliere@mohawkcollege.ca>
7 years agoTPAC - new CSS for login help elements
Ben Shum [Sun, 20 Jan 2013 06:16:13 +0000 (01:16 -0500)]
TPAC - new CSS for login help elements

Instead of having everything hard coded into the page, move important
pieces into the style.css.tt2.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Dan Scott <dan@coffeecode.net>
7 years agoTPAC - Remove images from login help page
Thomas Berezansky [Fri, 21 Dec 2012 21:10:09 +0000 (16:10 -0500)]
TPAC - Remove images from login help page

Because images are hard to translate.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Dan Scott <dan@coffeecode.net>
7 years agoLP1054053 - make default input font darker
Ben Shum [Fri, 21 Dec 2012 20:47:40 +0000 (15:47 -0500)]
LP1054053 - make default input font darker

The original light grey made it difficult to see what was being input.
Change to use text font color variable (black by default).

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Dan Scott <dan@coffeecode.net>
7 years agoTPAC: Fix series display for multiple series fields
Dan Scott [Sat, 19 Jan 2013 19:28:06 +0000 (14:28 -0500)]
TPAC: Fix series display for multiple series fields

This commit adds one test record, "Harry Potter and the Goblet of Fire",
which contains multiple series fields. TPAC would display the series
fields in a purely additive fashion as the variable was not reset after
each field. Now we initialize the series var for each new series field
we retrieve, fixing the display problem.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoUnbold graphic 880 title display
Ben Shum [Thu, 10 Jan 2013 22:01:05 +0000 (17:01 -0500)]
Unbold graphic 880 title display

To maintain consistency with the main title being unbolded and have
a little less bolding distraction in the record.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years agoAdded 880 series display to Release Notes.
Kathy Lussier [Thu, 10 Jan 2013 21:55:01 +0000 (16:55 -0500)]
Added 880 series display to Release Notes.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years agoMake series in record details behave
Dan Scott [Mon, 7 Jan 2013 23:16:57 +0000 (18:16 -0500)]
Make series in record details behave

Add graphic 880 field support, as well as relying on mkurl() macro to
generate the desired URL and show the complete series on a single line
instead of having subfields appear on separate rows.

Add a sample record that contains a 440 series field linked to an 880
field.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoAdd test records for graphic 880 field display
Dan Scott [Sun, 6 Jan 2013 01:49:27 +0000 (20:49 -0500)]
Add test records for graphic 880 field display

"--load-all" in eg_db_config.pl will load these records with call
numbers of "G880 ", so you can shelf-browse, or search by title:

* Tu shuo Zhongguo jie
* Matsumoto Shigeharu
* Schrödinger operators
* Breathing, feeding, and neuroprotection
* Data warehousing and knowledge discovery

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoRelease notes for alternate graphic 880 fields
Dan Scott [Sat, 5 Jan 2013 04:55:13 +0000 (23:55 -0500)]
Release notes for alternate graphic 880 fields

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoTPAC: Alternate graphic fields (880) display
Dan Scott [Fri, 4 Jan 2013 21:26:30 +0000 (16:26 -0500)]
TPAC: Alternate graphic fields (880) display

In the search results and record details displays, display the
corresponding 880 field(s) whenever possible.

The contents of the 880 field are generally displayed directly
underneath the corresponding primary field, with the exception of the
contributor credits on the record details page, in which the 880
contents appear between the name of the contributor and the
contributor's credit.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
7 years agoUpdate staff client's about page to include newest core committers
Ben Shum [Mon, 3 Dec 2012 15:37:43 +0000 (10:37 -0500)]
Update staff client's about page to include newest core committers

The newest core committers were elected during the Evergreen Hack-A-Way on
October 10, 2012:

Jeff Godin, Traverse Area District Library
Benjamin Shum, Bibliomation, Inc.
Jason Stephenson, Merrimack Valley Library Consortium

Also update language of page to reflect that these contributors are now core
"committers" rather than "developers".  And move past core committers into
their own section.

Signed-off-by: Ben Shum <bshum@biblio.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years agoAdd 2.2.4 -> 2.2.5 upgrade script
Lebbeous Fogle-Weekley [Wed, 16 Jan 2013 20:18:56 +0000 (15:18 -0500)]
Add 2.2.4 -> 2.2.5 upgrade script

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
7 years agoForward-porting 2.3.2 -> 2.3.3 DB upgrade
Bill Erickson [Wed, 16 Jan 2013 20:18:57 +0000 (15:18 -0500)]
Forward-porting 2.3.2 -> 2.3.3 DB upgrade

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoLP#1098377: protect against even more cstore segfaults
Galen Charlton [Tue, 15 Jan 2013 16:30:41 +0000 (11:30 -0500)]
LP#1098377: protect against even more cstore segfaults

Following up on the preceding patch, passing null
as the savepoint name to savepoint.release and
savepoint.rollback would also segfault cstore.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
7 years agoVerify savepoint name is non-null
Bill Erickson [Tue, 15 Jan 2013 15:58:16 +0000 (10:58 -0500)]
Verify savepoint name is non-null

Before we attempt to mangle the name, let's ensure that it's non-null.
Otherwise, segfaults ensue.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
7 years agoProtect against overly long savepoint names
Dan Scott [Fri, 11 Jan 2013 06:32:13 +0000 (01:32 -0500)]
Protect against overly long savepoint names

Per http://postgresql.org/docs/9.1/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS,
the maximum identifier length works out to being 63 bytes (+1 for the
null terminator), so to avoid potential memory pressure by a 10GB string
somehow being passed in as the savepoint name, malloc no more than 64
bytes and copy no more than 63 bytes from the incoming name to the
escaped name.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
7 years agoLP#1098377: sanitize savepoint names
Galen Charlton [Fri, 11 Jan 2013 07:30:50 +0000 (02:30 -0500)]
LP#1098377: sanitize savepoint names

When invoking open-ils.{cstore,pcrud,rstore}.savepoint.*, the
caller supplies a name for the savepoint.  However, the savepoint
names could be constructed so that the caller could execute
arbitrary SQL.  This patch sanitizes the name so that it contains
only alphanumeric and underscore characters.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years ago2.3.3 translations : repair Finnish translator email
Bill Erickson [Wed, 16 Jan 2013 16:04:23 +0000 (11:04 -0500)]
2.3.3 translations : repair Finnish translator email

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years ago2.3.3 translations : newpot
Bill Erickson [Wed, 16 Jan 2013 15:39:31 +0000 (10:39 -0500)]
2.3.3 translations : newpot

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years ago2.3.3 translations : update profiles
Bill Erickson [Wed, 16 Jan 2013 15:35:33 +0000 (10:35 -0500)]
2.3.3 translations : update profiles

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
7 years agoMinor fix in Open-ILS/src/templates/opac/parts/place_hold_result.tt2
Jason Stephenson [Mon, 10 Dec 2012 20:27:40 +0000 (15:27 -0500)]
Minor fix in Open-ILS/src/templates/opac/parts/place_hold_result.tt2

The hidden override field had two type attrs: "hidden" and "name."
I deleted the one with the value of "name."

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
7 years agoLP1076062: Hold overrides not working properly.
Jason Stephenson [Mon, 10 Dec 2012 15:29:21 +0000 (10:29 -0500)]
LP1076062: Hold overrides not working properly.

Edit the verify_copy_for_hold helper function to actually work.  There
were cases where it would permit a copy when it shouldn't and also
disallow a copy when it should have allowed it.  It now makes better
use of the oargs override argument.

If oargs has an events member, the method now removes the matching from
the list of failure events returned by the permit_copy_hold check.  It
was previously bugged, stopping on the first matching event, clearing
the list of failed and events, and returning a value to indicate that
the copy is permitted for the hold, even when it may not be.

If oargs has the "all" member and there are failure events remaining,
the function loops through those events checking if the requestor has
the override permission for the event.  If the requestor does have the
override permission, then the event is added to oargs->{events} to be
saved for future checks on future copies.  It the requestor does not
have the override permission, then the event is pushed onto a new array
of failed events and also onto oargs->{failed}.  The latter is kept
to avoid looking up events repeatedly on future copy checks.

The oargs->{failed} member is added as a shortcut to avoid repeatedly
looking up override permissions when the requestor does not have them.
It is actually checked, when present, before the user permission is
checked with a costly database lookup.

Since verify_copy_for_hold has no other way to determine that an override
was requested, it checks for the events and/or all members of oargs being
set and having a value that would evaluate to true.  If oargs is undefined,
a hashref with no members, or lacks a "true" events or all member, then
verify_copy_for_hold functions as though no overrides are requested.

Additionally, all functions that call verify_copy_for_hold, either directly
or indirectly, have had their intro logic modified to only set oargs when
an override is requested and oargs is not already set.  We make the assump-
tion that if oargs is set, it contains the events member.  (Perhaps that is
a poor assumption, but all of the code so far looks like it will work.)

Fix test_and_create_hold_batch so that it passes the oargs parameter into
open-ils.circ.title_hold.is_possible in the way that check_title_hold (the
implementation function) actually expects it to be passed.  This also means
that we need to delete oargs from the params hashref before creating the
hold objects, as that would blow up if it were present.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
7 years agoWhitespace cleanup on aisle 9!
Jason Stephenson [Wed, 5 Dec 2012 15:20:45 +0000 (10:20 -0500)]
Whitespace cleanup on aisle 9!

Fix whitespace (spaces, not tabs) in OpenILS/Application/Circ/Holds.pm.

Also, remove trailing whitespace at the end of lines.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
7 years agoAvoid CStoreEditor failures on missing log-protect
Bill Erickson [Wed, 16 Jan 2013 14:39:56 +0000 (09:39 -0500)]
Avoid CStoreEditor failures on missing log-protect

When the log_protect configuration chunk is not present in
opensrf_core.xml, gracefully move on without it.  This prevents errors
like:

Can't call method \"shared\" on an undefined value at
/usr/local/share/perl/5.10.1/OpenILS/Utils/CStoreEditor.pm line 646.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>