]> git.evergreen-ils.org Git - contrib/Conifer.git/log
contrib/Conifer.git
11 years agoTPAC schema.org: Add Organization types for contributors user/dbs/rel_2_3_mergery_tpac
Dan Scott [Sun, 7 Apr 2013 22:14:58 +0000 (18:14 -0400)]
TPAC schema.org: Add Organization types for contributors

Given a 110 / 710 field, when generating the record details for authors
and contributors we can declare an http://schema.org/Organization
itemtype rather than just jamming the name under the "contributor"
property. This is more in accordance with schema.org directions.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: Fix schema.org name / dates for authors
Dan Scott [Fri, 5 Apr 2013 20:10:01 +0000 (16:10 -0400)]
TPAC: Fix schema.org name / dates for authors

Per http://schema.org/Person, the birth date and death date are not
supposed to be part of the name of a Person. We can separate these out
correctly based on subfield d for 100 fields.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: Address some search syntax leaks in links
Dan Scott [Thu, 11 Oct 2012 04:56:40 +0000 (00:56 -0400)]
TPAC: Address some search syntax leaks in links

Expand the list of filtered characters to cover all of the special
characters documented for the Evergreen search grammar
(http://evergreen-ils.org/dokuwiki/doku.php?id=documentation:technical:search_grammar)
when generating links in the TPAC so as to avoid inadvertently launching
filtered searches when a user clicks on something that should just be a
display value.

For example, if a title includes "Presenting a subject: tips for
consultants", it should _not_ launch a search for "subject" containing
"tips for consultants".

This commit addresses most of the link problems in the record
display, as well as the author links in the search results table.

Still problematic are the facets (which seem to rely on exact matching,
such that filtering out the problematic characters is itself
problematic) and autocomplete (which requires modifying the Autocomplete
Dojo widget).

In addition, this commit makes the series code actually display, as it
was using a non-standard method to attempt to return the results from
the BLOCK (and failing). Also, it makes the links for authors in the
record details match the MODS32 definition for personal name parts and
only use the "acdq" subfields. This enables a click on the link to
actually return results; previously, in the case where the author field
included (for example) a subfield "g" value, that value would be
included in the generated link and would likely lead to 0 hits.

For authors, we substitute with a space rather than just eliding the
substituted value. Authors are particularly likely to have dates like
1899-1978; "1899 1978" matches, but "18991978" will not.

Perhaps we should take the same approach with the others, or break down
the search/replace logic a little further (for example, we could remove
the "-" only if it is preceded by a space or is at the start of the
string and is followed immediately by a character, and preserve it if it
is surrounded by digits). But this seems to take us pretty far down the
road of less negatively surprising results.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Conflicts:
Open-ILS/src/templates/opac/parts/record/series.tt2

11 years agoFix schema.org mapping for MusicAlbum, add Map
Dan Scott [Fri, 5 Apr 2013 17:21:47 +0000 (13:21 -0400)]
Fix schema.org mapping for MusicAlbum, add Map

We had set LDR[06] = j to MusicRecording, but that is really meant for
individual songs. Use MusicAlbum instead, and per
http://schema.org/MusicAlbum, use a new MusicGroup itemtype with a
'byArtist' property for the primary artist rather than the generic
'accountablePerson'.

Also map LDR[06] = e to Map, because that seems like a safe bet.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoAdd Media Centre MARC template
Dan Scott [Tue, 26 Mar 2013 18:53:32 +0000 (14:53 -0400)]
Add Media Centre MARC template

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoCcreate the script runner env before renewal test
Dan Scott [Wed, 20 Mar 2013 17:53:12 +0000 (13:53 -0400)]
Ccreate the script runner env before renewal test

The circ_permit_renew.js script was failing with errors suggesting that
the environment was not properly initialized; for example, "log_vars not
defined". Calling mk_script_runner before running the renew test
resolves the problem.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoOWA CAS Aware Login Form
Art Rhyno [Tue, 19 Mar 2013 17:49:07 +0000 (13:49 -0400)]
OWA CAS Aware Login Form

This makes CAS an option directly on the login form, allowing
use of the "eg_CAS_URL" cookie that redirects a user to
a specific point in the catalogue.

Signed-off-by: Art Rhyno <art632000@yahoo.ca>
11 years agoFix CAS to handle dynamic auth links
Art Rhyno [Fri, 8 Mar 2013 12:55:06 +0000 (07:55 -0500)]
Fix CAS to handle dynamic auth links

CAS uses a "service" URL to redirect a user back to where an application wants
them to go if authentication is passed. This works well for simple URLs but
becomes problematic for complex URLs, which can get mangled or, worse,
truncated. This doesn't seem to be unique to Windsor's implmentation of CAS.

I tried a few tricks to encode the URLs in strange ways to get the same
URL back from CAS, but I think a better approach is to stuff the URL into
a cookie, and invoke when the request comes back from CAS. Any other approach
seems to result in horrid URLs and there is always the chance that some
character will break the scheme.

One flaw in my approach is that if a TPAC user selects "email" or "place hold"
and invokes the logon screen, the cookie gets set for the "redirect" URL. If,
for some reason, a user decides to do another search and chooses to log in to
their account from a different screen, the CAS URL can be invoked. This
would only happen for CAS, and the cookie itself is only set for 10
minutes, so I don't think this is a major concession. I also try to
invalidate the cookie wherever it is possible to know that the authentication
has not been invoked.

The assumption is that there is a CAS link added to the login form (login/form.tt2),
for example:

 <a href="[% ctx.cas.url %]"
    class="opac-button opac-button-header" id="home_myopac_link_uwin">
    [% l('Log in to Your Account (UWind ID)') %]
 </a>

I had become so used to testing CAS by logging in first, that I totally missed
the links that support authentication at the time of need, e.g. the "email"
or "place hold" links that are displayed prior to authentication. Hopefully,
this branch will address what is probably a common scenario.

Signed-off-by: Art Rhyno <art632000@yahoo.ca>
11 years agoBoreal: Remove "Tembec" from name, hide old OPAC link
Dan Scott [Mon, 11 Mar 2013 19:48:39 +0000 (15:48 -0400)]
Boreal: Remove "Tembec" from name, hide old OPAC link

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoShow OPAC-invisible copies in TPAC in staff context
Dan Scott [Sat, 9 Mar 2013 03:41:08 +0000 (22:41 -0500)]
Show OPAC-invisible copies in TPAC in staff context

We were not calling the staff variation of the copy count method; thus,
the record details template was skipping the copy table in the event
that all copies for a given record were marked as OPAC-invisible via
either copy visibility or shelving location visibility.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoAdd Laurentian LibQual beseeching
Dan Scott [Tue, 26 Feb 2013 17:03:13 +0000 (12:03 -0500)]
Add Laurentian LibQual beseeching

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoClean up TPAC Setup
Art Rhyno [Thu, 7 Feb 2013 02:23:11 +0000 (21:23 -0500)]
Clean up TPAC Setup

This adds the DATE_FORMAT to config.tt2 and removes the
summary.tt2 file to pick up the default.

Signed-off-by: Art Rhyno <art632000@yahoo.ca>
11 years agoForbid holds on items that are currently available
Rick Scott [Thu, 20 Sep 2012 16:57:08 +0000 (12:57 -0400)]
Forbid holds on items that are currently available

This brings Algoma in line with Windsor and Laurentian settings.

Signed-off-by: Rick Scott <rick@shadowspar.dyndns.org>
11 years agoCorrect styling of input.opac-button.
Rick Scott [Wed, 6 Feb 2013 19:20:42 +0000 (14:20 -0500)]
Correct styling of input.opac-button.

Omitting input.opac-button here was causing the 'search' and
'clear form' "buttons" to be of very different sizes.

Signed-off-by: Rick Scott <rick@shadowspar.dyndns.org>
11 years agoUse relative URLs for 'old catalogue' link.
Rick Scott [Wed, 6 Feb 2013 18:44:03 +0000 (13:44 -0500)]
Use relative URLs for 'old catalogue' link.

Change the 'old catalogue' links to use relative instead of absolute URLs.
This way, clicking them on a test site (eg algoma-test.concat.ca) keeps you
on that site instead of sending you to prod.

Signed-off-by: Rick Scott <rick@shadowspar.dyndns.org>
11 years agofix gold-links displacement in staff client
Rick Scott [Wed, 6 Feb 2013 18:37:48 +0000 (13:37 -0500)]
fix gold-links displacement in staff client

Signed-off-by: Rick Scott <rick@shadowspar.dyndns.org>
11 years agoTPAC footer translations for OSUL
Dan Scott [Wed, 30 Jan 2013 16:41:09 +0000 (11:41 -0500)]
TPAC footer translations for OSUL

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoImprove fr-CA translations for TPAC
Dan Scott [Wed, 30 Jan 2013 15:43:35 +0000 (10:43 -0500)]
Improve fr-CA translations for TPAC

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Conflicts:
build/i18n/po/tpac/fr-CA.po

11 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>
11 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>
11 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>
11 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>
Conflicts:
Open-ILS/src/templates/opac/parts/record/series.tt2

11 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>
11 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>
11 years agoTest data copies get "checked out" copy status when circ'd
Bill Erickson [Fri, 21 Dec 2012 16:14:10 +0000 (11:14 -0500)]
Test data copies get "checked out" copy status when circ'd

Set the status to 1 (checked out) for items that are circulated as part
of the test data transactions load.  Otherwise, the data is busted and
renewals are not possible.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoTest data: avoid crazy transactions for expired patrons
Dan Scott [Wed, 21 Nov 2012 16:37:06 +0000 (11:37 -0500)]
Test data: avoid crazy transactions for expired patrons

Rather than creating brand new circ transactions for patrons who expired
in 1999, make things a little more realistic by filtering out the
patrons to those whose account expired in the past month or later, and
creating xact_start / due_date values based on their account expiry
date if expired, or NOW() if still active.

Oh, and add some patrons who expired over the past month. :)

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
11 years agoConcerto test data: realistic call numbers
Dan Scott [Sun, 11 Nov 2012 15:48:55 +0000 (10:48 -0500)]
Concerto test data: realistic call numbers

Add a parameter to the populate call number function so that we can define the
call number class. As a result, create a new 3-parm version of the function
that simply calls the 4-parm version with a NULL value for the 3rd parm.

Use some realistic LC and Dewey call numbers for the "concerto" bibs so
that we can have more useful tests of the call number browse functionality.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
11 years agoExpand and modularize concerto data set
Bill Erickson [Sat, 13 Oct 2012 16:28:29 +0000 (12:28 -0400)]
Expand and modularize concerto data set

* Break function creation and deletion out to their own files.
* Translates lul_fre_100 bibs into SQL
* adds a load_all.sql file for loading all test data
* moves all test data sql to its own dir
* creates a backward-compat concerto.sql loader
* ensure that most users are not already expired
* Adds a 'tag' column to marcxml_import, which populates last_xact_id on
  import.  This 'tag' is useful for differentiating which records to link
  callnumbers to.
* Adds an 'id' column to marcxml_import to ensure insert-order inserts
  into biblio.record_entry
* Adds a handful of copies for french records
* Adds supporting functions for creating circ/hold test data.
* creates a pile of sample circ and hold data
* Give most users NULL dobs and suffixes.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: Add search torture tests to concerto record
Dan Scott [Thu, 11 Oct 2012 03:35:13 +0000 (23:35 -0400)]
TPAC: Add search torture tests to concerto record

In addition to # signs causing problems in facets, we found that search
syntax in general is surfaced directly in most links that are exposed to
users in the TPAC. This commit adds several examples to the record with
the title "Trombone concerto (1991)":

In the title, there is an embedded "subject:" search which will be
triggered by autocomplete.

In the author (100 field), there is an embedded "author:" search which
will be triggered from the record details page. This also includes
another usage of the # sign.

In the subject fields, there are:
  * an embedded "subject:" search which will be triggered from the
    facets, autocomplete, and record details page
  * an embedded negation operator which will be triggered from the
    facets, autocomplete, and record details page

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
11 years agoMunge concerto to include # signs in series facets
Dan Scott [Wed, 10 Oct 2012 19:50:49 +0000 (15:50 -0400)]
Munge concerto to include # signs in series facets

Search for "Piano concerto in C major, op. 39" or "Beethoven: concertos
and overtures" and you'll get facets with # signs to assist with fixing
LP # 856811.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 years agoCheck for a selection_depth returned from title_hold.is_possible.
James Fournie [Tue, 18 Dec 2012 20:45:51 +0000 (12:45 -0800)]
Check for a selection_depth returned from title_hold.is_possible.
See Launchpad 1064651 for details.  This is a quick fix which solves a
fairly serious issue whereby copies outside of a hard boundary could fill
holds when they are placed within the TPAC in the staff client.

Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
11 years agoFix backdate near DST changes
Thomas Berezansky [Fri, 2 Nov 2012 13:53:30 +0000 (09:53 -0400)]
Fix backdate near DST changes

When the due date and the backdate date are on opposite sides of a DST
boundary we were getting an hour off on the checkin time (using the
original due date's time).

This commit changes it so that instead we just set the hour and minute
values on the backdate date to the due date's versions, leaving the time
zone alone.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoLP#1098669: improve handling of Content Cafe external content in staff client
Galen Charlton [Fri, 11 Jan 2013 18:11:48 +0000 (13:11 -0500)]
LP#1098669: improve handling of Content Cafe external content in staff client

This patch introduces a new TPac content variable, ctx.ext_proto, to
specify whether external content should be retrieved via HTTP or HTTPS.
ctx.proto can't be used for that purpose since it's set to 'oils' when
TPac is running inside the staff client.

This fixes a bug where Content Cafe reviews wouldn't display in the staff
client bib record page and where clicking on the reviews link from search
results would open an empty window.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
11 years agoACQ invoice search persistence repaired
Bill Erickson [Mon, 1 Oct 2012 15:54:00 +0000 (11:54 -0400)]
ACQ invoice search persistence repaired

Use XUL cookieService / cookieManager for managing cookies in embedded
web pages, since dojo.cookie cannot manage cookies within xulrunner.

Persist cookies for 30 days.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
11 years agoEDI order template improvements (no SQL upgrade script!)
Bill Erickson [Tue, 11 Sep 2012 16:41:08 +0000 (12:41 -0400)]
EDI order template improvements (no SQL upgrade script!)

Improved template for EDI purchase orders.  This theoretically just
works better where the old template worked.  Corrections made for
interactions with ULS, Midwest Tape, Baker & Taylor, and Recorded Books
especially.  GIR segments in the right place.

And also the template is just more maintainable now.

**THERE IS NO UPGRADE SCRIPT INCLUDED**.  Sites using EDI may not
necessarily want to mess with what they already have working.

If you want the changes, and maybe you do, especially if you're doing
enriched ordering and/or ordering from the vendors listed above, you can
extract the template changes easily enough yourself from the
950.data.seed-values.sql file.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoUpgrade script numbering for edireader branch
Lebbeous Fogle-Weekley [Mon, 14 Jan 2013 21:59:12 +0000 (16:59 -0500)]
Upgrade script numbering for edireader branch

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoEDIReader release notes
Bill Erickson [Wed, 26 Dec 2012 21:27:38 +0000 (16:27 -0500)]
EDIReader release notes

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoHandle cancelled (back-order) lineitems in EDI invoice
Bill Erickson [Thu, 13 Dec 2012 14:44:55 +0000 (09:44 -0500)]
Handle cancelled (back-order) lineitems in EDI invoice

Receiving an invoice for a cancelled lineitem mean the lineitem is no
longer cancelled.  Identify such lineitems and uncancel them along with
the requested number of not-yet-invoiced copies.

This work flow is common for back-order items.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoEDIReader: improve monetary regexes
Bill Erickson [Wed, 12 Dec 2012 17:50:47 +0000 (12:50 -0500)]
EDIReader: improve monetary regexes

Make no attempt to enforce/decipher monetary amounts in the regexes,
simply capture the values.  If they are invalid, Postgres will let us
know.

This change allows us to capture non-numeric (\d) characters (e.g. "."),
which are of course common in monetary amounts.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoEDI invoice date; invoice paid quantity/amount
Bill Erickson [Wed, 5 Dec 2012 14:34:00 +0000 (09:34 -0500)]
EDI invoice date; invoice paid quantity/amount

* capture the invoice date in EDIReader
* apply the invoice date to inbound invoices when available instead of
  defaulting to 'now'
* apply the quantity/amount billed to the quantity/amount paid to reduce
  staff data entry needs

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoEDI: ensure lineitem 'state' matches cancel state
Bill Erickson [Tue, 4 Dec 2012 15:00:26 +0000 (10:00 -0500)]
EDI: ensure lineitem 'state' matches cancel state

When cancelling a lineitem becuase all linked copies are cancelled,
ensure that the lineitem state is set to "cancelled".

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoEDI response honor lineitem-level status; debit cleanup
Bill Erickson [Mon, 3 Dec 2012 19:51:41 +0000 (14:51 -0500)]
EDI response honor lineitem-level status; debit cleanup

* Honor lineitem-level order status info (FTX+LIN) which indicates, in
  some cases, that all ordered copies should be cancelled because the LI
  as a whole is cancelled

* Delete fund debits for cancelled lineitem details when appropriate

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoEDI: protect against invalid order response
Bill Erickson [Mon, 3 Dec 2012 14:20:29 +0000 (09:20 -0500)]
EDI: protect against invalid order response

Do not attempt to createI EDI messages for order responses which
reference nonexistent purchase orders, since it results in
transaction commit errors on invalid foreign keys, preventing
subsequent EDI files from getting processed.  Instead, log it
and skip it.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoEDIReader : detect SAN vs. account number in buyer/seller
Bill Erickson [Mon, 12 Nov 2012 14:35:53 +0000 (09:35 -0500)]
EDIReader : detect SAN vs. account number in buyer/seller

NAD+BY+XXXXXXX::31B' -- SAN
NAD+BY+YYYYYYY::91' -- Account number

For invoices, try the SAN first followed by the account number to
determine the receiving org unit.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoCustom/local EDI reader module for ORDRSP and INVOIC (etc)
Bill Erickson [Fri, 28 Sep 2012 14:34:28 +0000 (10:34 -0400)]
Custom/local EDI reader module for ORDRSP and INVOIC (etc)

Provides a new perl module (OpenILS::Utils::EDIReader) for reading
inbound EDI messages and producing data structures more easily
understood by the ACQ code.  Through this, extraction of EDI data is
focused in one module instead of spread through various layers.

EDIReader is a small, purpose built module focusing solely on extracting
the needed EDI data and is not meant to be a general purpose EDI library.

* Updates edi_fetcher and the ORDRSP and INVOIC handling code to use the
  new libs.

* Removes Business::EDI Evergreen dependency, since it's no longer used (and
  is quite large).

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
11 years agoFix a data destruction bug when authorities are updated.
Jason Stephenson [Fri, 11 Jan 2013 13:49:11 +0000 (08:49 -0500)]
Fix a data destruction bug when authorities are updated.

Modify the two-argument form of vandelay.merge_record_xml to return
the target_marc when the add_rule, preserve_rule, replace_rule and
strip_rule are all empty.

This method is used by authority.propagate_changes and would replace
the bibliographic record's marc with the overlay template when the
above would happen. By returning the biblographic record entry's own
marc in that case, we prevent data destruction.

Additionally, protect bib and authority template overlay functions
in the same manner.

Commit includes an upgrade script for this change as well as
for the previous commit's authority.generate_overlay_template fix.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Conflicts:
Open-ILS/src/sql/Pg/002.schema.config.sql

11 years agoOnly consider main entry headings for bib overlay
Mike Rylander [Thu, 10 Jan 2013 21:35:44 +0000 (16:35 -0500)]
Only consider main entry headings for bib overlay

Restrict the authority fields we will pull overlay data from to those
that do not subordinate themselves to other authority fields.  That
is, skip see-from/see-also/etc for bib overlay.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
11 years agoAcq: When invoice-building with embedded search, allow control of results list
Lebbeous Fogle-Weekley [Fri, 5 Oct 2012 22:42:11 +0000 (18:42 -0400)]
Acq: When invoice-building with embedded search, allow control of results list

Previously, a results list could accumulate under inconsistent
conditions.  You'd get an accumulating results list if you were pressing
enter after successful searches, but your results lists would clear if
you actually clicked the Search button.  Worse, searches yielding empty
result sets would *appear* to clear your result list, but subsequent
sucessful searches would restore what was there before.

This is the "missing commit" that makes the behavior consistent and
togglable.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
11 years agofix user session management for MARC Batch Edit
Galen Charlton [Fri, 4 Jan 2013 19:33:28 +0000 (14:33 -0500)]
fix user session management for MARC Batch Edit

The Javascript in the hardcoded page templates was
not checking the XUL stash for the session key when
run from the staff client; this is now needed as
a result of the XULRunner updates introdued by
commit adee850f.

As a consequence, the list of the user's record buckets
was not retrieved, and attempts to run a batch edit
would spin without updating any records.

This fixes LP#1048707 and LP#1054277.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
11 years agoCAS Support for Evergreen
Art Rhyno [Wed, 23 Jan 2013 04:35:40 +0000 (23:35 -0500)]
CAS Support for Evergreen

This branch contains one approach to supporting CAS within Evergreen, I
had originally thought of CAS as an "all or nothing" option but I have
tried to make it possible to support standard authentication at the same
time since we will have a transition period where some accounts won't be
CAS-enabled and I suspect this is typical. As well, it is possible that
a library will need to have the ability to add accounts outside of the
campus directory.

In /openils/conf/opensrf.xml, you would add CAS-specific values,for
example

 <app_settings>
    <!-- 'enabled' is the master switch; set to 'true' to enable proxied logins -->
    <enabled>true</enabled>
    <authenticators>
        <authenticator>
           <name>cas</name>
           <module>OpenILS::Application::AuthProxy::CAS_Auth_Conifer</module>
           <cas_validate_url>https://uwinid.uwindsor.ca/cas/proxyValidate</cas_validate_url>
           <cas_service>https://localhost/eg/opac/login</cas_service>
           <cas_suffix>@uwindsor.ca</cas_suffix>
        </authenticator>
        <!-- 'native' is a proxied version of Evergreen's standard authentication -->

        <authenticator>
            <name>native</name>
            <!-- you can add 'login_types' and 'org_units' limits to this authenticator as well, if needed -->
        </authenticator>
    </authenticators>
 </app_settings>

The entry point for CAS is in topnav.tt2, I have added a "cas_intro"
option in order to give an introduction screen before passing a user to
the CAS service:

 <div id="your-acct-login-uwin">
    <a href="[% mkurl(ctx.opac_root _ '/cas_intro') %]"
       class="opac-button opac-button-header" id="home_myopac_link_uwin">
       [% l('Log in to Your Account (UWind ID)') %]
    </a>
 </div>

but you could just go directly to cas at this point:

 <div id="your-acct-login-uwin">
    <a href="[% ctx.cas.url %]"
       class="opac-button opac-button-header" id="home_myopac_link_uwin">
       [% l('Log in to Your Account (UWind ID)') %]
    </a>
 </div>

where ctx.cas.url is set in the config.tt2 file, for example:

 ctx.cas.url = 'https://uwinid.uwindsor.ca/cas/login?service=https://localhost/eg/opac/login';

I use a cookie to indicate that CAS has been used to authenticate, since
it requires a slightly different logout sequence. This also gets
reflected in topnav.tt2 if you are using both CAS and standard
authentication:

[% IF CGI.cookie('eg_CAS') %]
   <a href="[% mkurl(ctx.opac_root _ '/logout?redirect_to=' _ ctx.cas.logout, {}, 1) %]"
      class="opac-button" id="logout_link">[% l('Logout') %]</a>
[% ELSE %]
   <a href="[% mkurl(ctx.opac_root _ '/logout', {}, 1) %]"
      class="opac-button" id="logout_link">[% l('Logout') %]</a>
[% END %]

Note the "redirect_to", you will want to clear the session for logging
out of tpac so that another user on a public station won't stumble into
someone else's account. Again, if authentication is strictly CAS, then
you can just use the CAS form of the logout.

Signed-off-by: Art Rhyno <art632000@yahoo.ca>
11 years agoAdd a simple, long-overdue theme for Huntington
Dan Scott [Tue, 22 Jan 2013 17:51:51 +0000 (12:51 -0500)]
Add a simple, long-overdue theme for Huntington

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 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>
11 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>
11 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>
11 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>
11 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>
11 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>
11 years agoGeneric patron barcode generation (OpenSRF and DB)
Dan Scott [Thu, 10 Jan 2013 19:17:33 +0000 (14:17 -0500)]
Generic patron barcode generation (OpenSRF and DB)

Laurentian University needed the ability to generate barcodes as part of
its LDAP integration work, and the first generation (so to speak) of the
was specific to LU - including hard-coded prefixes and database
functions that include the "lu" name.

This commit makes the functionality much more generic and thus more
likely to be able to be adopted by other institutions. The principle
components are:

Database functions:

evergreen.actor_generate_barcode([prefix TEXT]) - returns a 14-digit
  barcode from the evergreen.actor_barcode_seq sequence with a prefix of
  'AUTOBC' or the specific prefix of up to 6 characters. If the
  resulting barcode is all digits, then the 14th character will be a
  mod10 check digit; otherwise the 14th digit will be '0'.

evergreen.actor_update_barcode(usr_id INTEGER[, prefix TEXT]) -
  generates a new barcode for the specified user, with the optional
  barcode prefix.

evergreen.mod10(barcode TEXT) - given a barcode, generates a mod10
  check digit and returns the barcode with the appended check digit

OpenSRF method:

open-ils.actor.generate_patron_barcode([usr_id INT[, prefix TEXT]]) -
  generates a new barcode for the patron

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoAdd search filters for formats and clean up front page
Art Rhyno [Tue, 4 Dec 2012 02:15:33 +0000 (21:15 -0500)]
Add search filters for formats and clean up front page

This uses evergreen's filter group functionality to add
"Videos", "Maps", and "Music" for limiting searches from the
basic search screen. The link to the jspac is also finally
retired and a "Start Over" link is added.

The filter group uses the following SQL:

INSERT INTO actor.search_filter_group (owner, code, label)
    VALUES (106, 'tpac_windsor', 'Windsor''s OPAC Search Filter');

INSERT INTO actor.search_query (label, query_text)
    VALUES ('Maps', 'item_type(e,f)');

INSERT INTO actor.search_query (label, query_text)
    VALUES ('Music', 'item_type(c,d,j)');

INSERT INTO actor.search_query (label, query_text)
    VALUES ('Videos', 'item_type(g)');

INSERT INTO actor.search_filter_group_entry (grp, query, pos)
    VALUES (
        (SELECT id FROM actor.search_filter_group WHERE code = 'tpac_windsor'),
        (SELECT id FROM actor.search_query WHERE label = 'Maps'),
        1
    );
INSERT INTO actor.search_filter_group_entry (grp, query, pos)
    VALUES (
        (SELECT id FROM actor.search_filter_group WHERE code = 'tpac_windsor'),
        (SELECT id FROM actor.search_query WHERE label = 'Music'),
        2
    );

INSERT INTO actor.search_filter_group_entry (grp, query, pos)
    VALUES (
        (SELECT id FROM actor.search_filter_group WHERE code = 'tpac_windsor'),
        (SELECT id FROM actor.search_query WHERE label = 'Videos'),
        3
    );

Signed-off-by: Art Rhyno <art632000@yahoo.ca>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoFix LU link breakage, 2012-12-10 edition
Dan Scott [Mon, 10 Dec 2012 18:24:30 +0000 (13:24 -0500)]
Fix LU link breakage, 2012-12-10 edition

Also make links translatable

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoRemove a schema.org-wrecking div tag from record summary
Dan Scott [Wed, 28 Nov 2012 18:31:16 +0000 (13:31 -0500)]
Remove a schema.org-wrecking div tag from record summary

This was cutting off ISBN ids, subject keywords, etc...

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoAlign authority fixed fields to marcedit.xul
Art Rhyno [Thu, 1 Nov 2012 23:38:50 +0000 (19:38 -0400)]
Align authority fixed fields to marcedit.xul

Our staff have identified 11 fixed fields that are not mapped
from marcedit.xul to FixedFields.js for authority records:

* Geodiv
* Kind
* SerType
* HeadMain
* HeadSer
* TypeGov
* RefEval
* RecUpd
* NameDiff
* Level
* CatSrc

I have modified FixedFields.js to match the values in marcedit.xul
rather than the other way around so that the display remains
consistent.

Signed-off-by: Art Rhyno <art632000@yahoo.ca>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoRevert "Bug #1044721: QP handles explicit group+joiner badly"
Lebbeous Fogle-Weekley [Fri, 7 Sep 2012 15:42:12 +0000 (11:42 -0400)]
Revert "Bug #1044721: QP handles explicit group+joiner badly"

This reverts commit b77bb9943009b81042b4ef1a6ac33ec9e3e96dd7.

Unfortunately this had side effects that escaped our manual testing
processes.  Especially with facets as reported by Ben Shum.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoMake the "user account expired" warning i18n-friendly
Dan Scott [Fri, 16 Nov 2012 21:01:10 +0000 (16:01 -0500)]
Make the "user account expired" warning i18n-friendly

The warning message is now capable of being translated, and we're
formatting of the date consistently with other uses throughout the TPAC.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoAdd card expired message to the myopac account summary
Justin Hopkins [Mon, 30 Jul 2012 22:25:20 +0000 (17:25 -0500)]
Add card expired message to the myopac account summary

The JSPAC included a message to users who had an expired card alerting them to this fact.
This message is useful and was not writted into the TPAC.

Signed-off-by: Justin Hopkins <hopkinsju@gmail.com>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoStamping upgrade script for lost xact_finish opt.
Dan Wells [Tue, 13 Nov 2012 20:51:38 +0000 (15:51 -0500)]
Stamping upgrade script for lost xact_finish opt.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Conflicts:
Open-ILS/src/sql/Pg/002.schema.config.sql

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoAddress Launchpad Bug 793550.
Jason Stephenson [Sat, 3 Nov 2012 16:04:34 +0000 (12:04 -0400)]
Address Launchpad Bug 793550.

Check for stop fines reason of CHECKIN or RENEW before closing a circulation
transaction when the balance reaches zero.

Also, if the stop fines reason is LOST, then check a new ou setting,
circ.lost.xact_open_on_zero, to determine if the transaction is closed or
kept open.  The setting is checked for the circulation copy's circ_lib.

Add CircCommon->can_close_circ.

Following up on Dan Wells' comments on Launchpad Bug 793550, I have moved
the logic to check if the circ transaction can be closed to its own utility
function in OpenILS::Application::Circ::CircCommon.  This potentially
consolidates the logic in one place in case we need to use it elsewhere.

Instead of checking for stop fines reasons of CHECKIN and RENEW and
checking for checkin time on the circ, we just check for checkin time.
Both CHECKIN and RENEW should set the checkin time.

Also, use the constant for stop fines reason of LOST, rather than the
literal string "LOST".

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
11 years agoDon't break TPAC with email address usernames
Dan Scott [Sun, 11 Nov 2012 21:41:23 +0000 (16:41 -0500)]
Don't break TPAC with email address usernames

"next if..." is not valid if you're not inside a loop. Sheesh.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoMerge branch 'rel_2_3_mergery' into rel_2_3_mergery_tpac
Dan Scott [Sun, 11 Nov 2012 11:52:15 +0000 (06:52 -0500)]
Merge branch 'rel_2_3_mergery' into rel_2_3_mergery_tpac

11 years agoAdmin -> Local Admin -> Item Attribute Editor
Jason Etheridge [Tue, 24 Apr 2012 20:54:20 +0000 (16:54 -0400)]
Admin -> Local Admin -> Item Attribute Editor

Main purpose is to allow you to spawn the Item Attribute Editor for the purpose
of configuring templates and using the Hide Fields feature without actually
finding an item to work and putting it at risk of accidental modification.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
11 years agoRollback cstore transaction before bbag record load
Bill Erickson [Thu, 18 Oct 2012 18:54:08 +0000 (14:54 -0400)]
Rollback cstore transaction before bbag record load

To avoid timeouts, which results in transaction rollbacks, preemptively
roll back the bookbag fetching cstore transaction before we retrieve
what could be a very large list of bookbag records data.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
11 years agoMake it possible to suppress IDL fields
Mike Rylander [Wed, 10 Oct 2012 21:36:52 +0000 (17:36 -0400)]
Make it possible to suppress IDL fields

Some clients of external services, particularly pcrud and reporter-store,
need to be able to access tables that contain columns we'd rather restrict.
For instance, the passwd field on actor.usr.

To effect this feature we provide a blacklist attribute for fields, called
suppress_controller, which works in the same way as the class controller
attribute but names controllers not allowed to use the field.  When the field
is explicitly named in a query (fieldmapper select block or json_query) an
error is thrown, and suppressed fields are ingored in general fieldmapper
search/retreive requests.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
11 years agoCStoreEditor auto-activity log redaction
Bill Erickson [Fri, 2 Nov 2012 19:28:27 +0000 (15:28 -0400)]
CStoreEditor auto-activity log redaction

CStoreEditor logs all update calls to the activity log as key/value
pairs on the updated object.  Avoid loging key/value pairs for objects
when the API call being relayed by CStoreEditor is on the list of
log-protect API calls.  Instead, log "**DETAILS REDACTED**".

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoDocument log redaction XML chunk for opensrf_core.xml
Dan Scott [Tue, 6 Nov 2012 03:14:34 +0000 (22:14 -0500)]
Document log redaction XML chunk for opensrf_core.xml

Based on Bill Erickson's original version.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
11 years agoAdd sample log redaction config to EG opensrf_core
Bill Erickson [Wed, 31 Oct 2012 13:00:19 +0000 (09:00 -0400)]
Add sample log redaction config to EG opensrf_core

Redact parameter logging for the following API calls:

Login:
open-ils.auth.authenticate.verify
open-ils.auth.authenticate.complete
open-ils.auth_proxy.login

User updates:
open-ils.actor.user.password
open-ils.actor.user.username
open-ils.actor.user.email
open-ils.actor.patron.update
open-ils.cstore.direct.actor.user.create
open-ils.cstore.direct.actor.user.update
open-ils.cstore.direct.actor.user.delete

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoSet a date/time format that includes the actual time
Dan Scott [Thu, 8 Nov 2012 17:06:31 +0000 (12:06 -0500)]
Set a date/time format that includes the actual time

Sites can override this at their individual skin level if preferred, but
as we have a number of rules at the hourly level, showing the time
generally makes sense.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: The 659 field is full of garbage in Conifer
Dan Scott [Wed, 7 Nov 2012 20:15:12 +0000 (15:15 -0500)]
TPAC: The 659 field is full of garbage in Conifer

Thus, prevent it from displaying. (Not sure why Evergreen treats it as a
Genre field by default, as it is reserved for local use per normal MARC
definitions...)

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: don't repeat subfields in record content notes
Dan Scott [Fri, 26 Oct 2012 04:52:11 +0000 (00:52 -0400)]
TPAC: don't repeat subfields in record content notes

Given a MARC field like "500 $a 1 $b 2 $c 3", the content note would
display as "1 1 2 1 2 3" as each subfield was appended to the total
set of notes.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Conflicts:
Open-ILS/src/templates/opac/parts/record/contents.tt2

11 years agoTPAC: don't repeat subfields in record content notes
Dan Scott [Fri, 26 Oct 2012 04:52:11 +0000 (00:52 -0400)]
TPAC: don't repeat subfields in record content notes

Given a MARC field like "500 $a 1 $b 2 $c 3", the content note would
display as "1 1 2 1 2 3" as each subfield was appended to the total
set of notes.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Conflicts:
Open-ILS/src/templates/opac/parts/record/contents.tt2

11 years agoTPAC: Display alternate and abbreviated titles
Dan Scott [Thu, 25 Oct 2012 18:36:33 +0000 (14:36 -0400)]
TPAC: Display alternate and abbreviated titles

In many cases, alternate titles (defined by the MARC 246 field) and
abbreviated titles (defined by the 210 field) are valuable data points
to display to users. So, display them. Turning this off is a matter of
overriding summary.tt2 to remove the titles.tt2 include.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: Display alternate and abbreviated titles
Dan Scott [Thu, 25 Oct 2012 18:36:33 +0000 (14:36 -0400)]
TPAC: Display alternate and abbreviated titles

In many cases, alternate titles (defined by the MARC 246 field) and
abbreviated titles (defined by the 210 field) are valuable data points
to display to users. So, display them. Turning this off is a matter of
overriding summary.tt2 to remove the titles.tt2 include.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoAdd missing ? to url_prefix regex check
Thomas Berezansky [Tue, 23 Oct 2012 20:27:00 +0000 (16:27 -0400)]
Add missing ? to url_prefix regex check

Fixes Barcode Completion and who knows what else.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
11 years agoAdd missing ? to url_prefix regex check
Thomas Berezansky [Tue, 23 Oct 2012 20:27:00 +0000 (16:27 -0400)]
Add missing ? to url_prefix regex check

Fixes Barcode Completion and who knows what else.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
11 years agoPrevent colons from breaking lines in fr-CA
Dan Scott [Tue, 23 Oct 2012 16:09:11 +0000 (12:09 -0400)]
Prevent colons from breaking lines in fr-CA

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: Use a single table for all content notes
Dan Scott [Tue, 23 Oct 2012 15:57:46 +0000 (11:57 -0400)]
TPAC: Use a single table for all content notes

Rather than having one table per kind of content note, keep them all in
a single table. Thanks to Ben Shum for the prod.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: Show contents notes directly in record summary
Dan Scott [Tue, 23 Oct 2012 15:47:48 +0000 (11:47 -0400)]
TPAC: Show contents notes directly in record summary

By popular demand in IRC, move the contents notes directly into the body
of the record summary rather than hiding the content under a twisty.
This improves external indexing of the page and makes the contents notes
more immediately evident to users.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: Use a single table for all content notes
Dan Scott [Tue, 23 Oct 2012 15:57:46 +0000 (11:57 -0400)]
TPAC: Use a single table for all content notes

Rather than having one table per kind of content note, keep them all in
a single table. Thanks to Ben Shum for the prod.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: Show contents notes directly in record summary
Dan Scott [Tue, 23 Oct 2012 15:47:48 +0000 (11:47 -0400)]
TPAC: Show contents notes directly in record summary

By popular demand in IRC, move the contents notes directly into the body
of the record summary rather than hiding the content under a twisty.
This improves external indexing of the page and makes the contents notes
more immediately evident to users.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoMore LU string customizations
Dan Scott [Tue, 23 Oct 2012 15:33:49 +0000 (11:33 -0400)]
More LU string customizations

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoTPAC: Updated PO files
Dan Scott [Tue, 23 Oct 2012 15:24:58 +0000 (11:24 -0400)]
TPAC: Updated PO files

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoAlways hide content tab in Conifer
Dan Scott [Tue, 23 Oct 2012 14:40:04 +0000 (10:40 -0400)]
Always hide content tab in Conifer

Signed-off-by: Dan Scott <dscott@laurentian.ca>
11 years agoAlways hide content tab in Conifer
Dan Scott [Tue, 23 Oct 2012 14:40:04 +0000 (10:40 -0400)]
Always hide content tab in Conifer

Signed-off-by: Dan Scott <dscott@laurentian.ca>