]> git.evergreen-ils.org Git - working/Evergreen.git/log
working/Evergreen.git
12 years agoLP872862, delete user function and open xacts
Michael Peters [Wed, 12 Oct 2011 15:46:12 +0000 (11:46 -0400)]
LP872862, delete user function and open xacts

Prevent deletion of a user with open circulations or unpaid bills
Link up an error message on attempt to delete a patron with open xacts

Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoPrevent extra closing tag in TPAC results list
Dan Wells [Thu, 19 Jan 2012 19:05:15 +0000 (14:05 -0500)]
Prevent extra closing tag in TPAC results list

Trivial change to prevent an extra yet currently harmless </tr>
closing tag from appearing when ChiliFresh is enabled.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
12 years agoTPAC: Regular justification of columns in search result
Dan Scott [Mon, 9 Jan 2012 02:04:37 +0000 (21:04 -0500)]
TPAC: Regular justification of columns in search result

The search results page was constituted via a table, enclosing one table
per row for each result, enclosing one further table per result for the
attributes such as call number / publisher / edition that have been
chosen to be displayed in the simple and detailed views.

The column widths for each search result row were being calculated per
result, with the effect that title columns were starting at different
offsets - a rather unpolished effect.

By eliminating the middle table, we can let the widths be determined by
all of the search result rows together, providing a normalized result as
the HTML deities intended.

We also move some inline CSS into style.css.

Note that IE 7, at least, ignores the :nth-child() usage to deliver the
borders; because we no longer wrap the set of rows (including optional
Content Cafe and ChiliFresh rows) in an intermediate table, we had to
switch to a border-top attribute. We could have gone with a straight "tr
> td" approach, but that would have added a line at the top of the first
result, which looked weird. Still an option if one really wants to.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
12 years agoTPAC: Simply record summary navigation markup
Dan Scott [Sun, 8 Jan 2012 22:53:03 +0000 (17:53 -0500)]
TPAC: Simply record summary navigation markup

Currently we have the next / previous links on the far right side of the
record summary page, whereas the "Showing item # of #" is on the left
hand side of the page. On wide screens, this leads to a large gap
between the two informational elements. In addition, as the elements are
floated, the vertical alignment is thrown off if you attempt to bring
them together.

The solution is to group the elements inside a SPAN with inline-block
displays for the embedded DIVs. This enables the elements to reflow
appropriately on mobile sized screens while keeping the alignment clean.
In addition, some inline style gets moved to style.css and some
unnecessary elements are removed.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTPAC: Improve copy display in record summary
Dan Scott [Sun, 8 Jan 2012 21:14:29 +0000 (16:14 -0500)]
TPAC: Improve copy display in record summary

In the copy counts, offer a link to display the copies at parent
libraries that have available copies. For example, if you are browsing
at BR1 and there are no available copies, but you see that SYS1 has
available copies, clicking "(Show)" beside the SYS1 available copy count
will change the search scope to SYS1 and display the copies for BR1 and
BR2.

Also, avoid displaying the copy table header if there are no physical
copies to display (for example, if there are located URIs that make the
copy show up in search results).

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoPrevent expand and cnoffset params from propagating
Dan Scott [Mon, 9 Jan 2012 02:43:58 +0000 (21:43 -0500)]
Prevent expand and cnoffset params from propagating

The expand and cnoffset params in record summary might result in
unexpected behaviour if allowed to propagate by default, as mkurl()
enables, so stop them in their tracks.

Also, fix an overenthusiastic URI-encoding of subjects that led to a
space getting doubly-encoded (and thereby breaking searches).

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTPAC: Preserve loc, query, qtype, and sort params
Dan Scott [Fri, 6 Jan 2012 03:51:00 +0000 (22:51 -0500)]
TPAC: Preserve loc, query, qtype, and sort params

In some cases, mkurl() is not enough to preserve our desired CGI params
- such as when redirects are triggered from within a Perl module, or
forms are submitted. Accordingly, the following changes address these
cases where the chosen location / query / query type was being dropped:

* Switching between account preferences
* Creating / deleting / sharing / editing bookbags
* Moving items from temporary list to bookbags
* Adding notes to items in a bookbag
* Placing holds

The primary mechanism for forms is the "preserve_params.tt2" block that
can accept a "params" list of the CGI params that you want to preserve,
but which defaults to location/query/qtype/sort. Similarly, we add the
same preservation steps to the OpenILS::WWW::EGCatLoader::Account module
for most actions.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTPAC: Propagate CGI params via mkurl()
Dan Scott [Thu, 29 Dec 2011 05:11:25 +0000 (00:11 -0500)]
TPAC: Propagate CGI params via mkurl()

Fix many instances where params such as "loc" are dropped during a
normal workflow, resulting in unexpected changes to the user's chosen
search scope. mkurl() preserves the existing CGI params by default
and passes them on to the created URL; for now we err on the side of
caution (preserving all params) rather than filtering any out. Manual
testing suggests this does not introduce any problems, and resolves
many.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoDon't show estimated wait for negative estimates
Thomas Berezansky [Tue, 17 Jan 2012 16:13:15 +0000 (11:13 -0500)]
Don't show estimated wait for negative estimates

JSPac code was just checking for the truth of the estimated_wait return,
but the estimated_wait return can be -1 under some circumstances.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoRepaired JS syntax errors in nls/selfcheck.js
Bill Erickson [Tue, 17 Jan 2012 16:53:03 +0000 (11:53 -0500)]
Repaired JS syntax errors in nls/selfcheck.js

Fixed errors introduced by a727a91b26716a0df36c93c7962240bec231c180

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTPac: Easy access to item status
Thomas Berezansky [Sat, 14 Jan 2012 16:42:55 +0000 (11:42 -0500)]
TPac: Easy access to item status

Change item barcodes into item status links in TPac listings.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoAllow choice of placing hold despite age protect
Thomas Berezansky [Tue, 20 Sep 2011 14:27:51 +0000 (10:27 -0400)]
Allow choice of placing hold despite age protect

This alters the backend to watch when so much as one copy failed only due
to age protection. If so, a flag is set and returned back up the calling
tree for examination.

In JSPac when the flag is set an alternate confirm message is shown.

In TTPac when the flag is set the failure message is changed and override
is always allowed for the hold in question.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoP898427 Get holdings_xml.retrieve to flesh URIs properly user/dbs/located_uri_holdings_xml
James Fournie [Fri, 9 Dec 2011 01:00:14 +0000 (17:00 -0800)]
P898427 Get holdings_xml.retrieve to flesh URIs properly

Flesh URIs when requested with the -uris or -full feed type.
This was broken when commit f2b822f8 fixed authority browsing.

holdings_xml-full never appeared to retrieve URIs properly, so that has
been added.

This also makes holdings_xml-uris behave in the new manner of URIs as per
git commit ba47ecc61, retrieving URIs for ancestors rather than descendants.

Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoSupport auto-login in staff client
Thomas Berezansky [Wed, 11 Jan 2012 19:41:15 +0000 (14:41 -0500)]
Support auto-login in staff client

By adding three new command line parameters:

-ILSuser - Username to log in with
-ILSpassword - Password to use
-ILShost - hostname to use

If, and only if, all three are specified *and* we think we have an already
registered workstation for the hostname do we trigger an auto login.

Otherwise we just fill everything in and wait for the user.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoMove csp definitions from 002 to 950, so they can use i18n.
Lebbeous Fogle-Weekley [Wed, 11 Jan 2012 19:53:50 +0000 (14:53 -0500)]
Move csp definitions from 002 to 950, so they can use i18n.

I don't /think/ there's a point in having an upgrade script to go along
with this, but someone who understands oils_18n_gettext() better should
weigh in.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
12 years agoMerge remote branch 'working/collab/berick/invalidate_email_and_phone_revised'
Lebbeous Fogle-Weekley [Wed, 11 Jan 2012 15:37:29 +0000 (10:37 -0500)]
Merge remote branch 'working/collab/berick/invalidate_email_and_phone_revised'

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoUse org_depth for INVALID penalties collab/berick/invalidate_email_and_phone_revised
Bill Erickson [Wed, 11 Jan 2012 14:32:58 +0000 (09:32 -0500)]
Use org_depth for INVALID penalties

* Honor the org_depth setting on the penalties when applied
* Default to org_depth 0 (i.e. global) penalty application for invalid penalties
* Use the patrons' home_ou as the penalty org unit for patron reg invalidate actions.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoMark email addresses and phone numbers invalid
Lebbeous Fogle-Weekley [Tue, 27 Dec 2011 23:02:38 +0000 (18:02 -0500)]
Mark email addresses and phone numbers invalid

This comes from an idea from Jeff Godin.  For staff to indicate an
email address or phone number "invalid," for whatever definition of
"invalid" has meaning at the institution (as in invalid addresses
today), there is now a UI control in the patron editor.

This UI control invokes a middle layer method that will clear the email
(or phone) field from actor.usr, and create a corresponding standing penalty
against the user, for staff to notice next time they bring up said patron in
the staff client.  Such penalties will be archived whenever that patron's
email address or phone number is updated again.

The middle layer method is a wrapper around a method that may take
different parameters (like an email address instead of a patron ID) to
potentially support future uses such as invalidating email addresses
automatically in batch.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoReceipt Template Non-String Protection
Thomas Berezansky [Mon, 19 Dec 2011 20:55:52 +0000 (15:55 -0500)]
Receipt Template Non-String Protection

Don't try to replace on things that aren't strings.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoRelabel Force Context in receipt template editor
Jason Etheridge [Wed, 11 Jan 2012 04:48:58 +0000 (23:48 -0500)]
Relabel Force Context in receipt template editor

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoAdd Context to Receipt Templates
Thomas Berezansky [Tue, 20 Dec 2011 16:49:16 +0000 (11:49 -0500)]
Add Context to Receipt Templates

By default the print context is used, but this enabled each template to be
assigned a specific printer context that it is intended for.

This means that things that normally use "Default" can be forced to, say,
"Receipt" and such easily.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoMake Reprint Last printing context aware
Thomas Berezansky [Mon, 19 Dec 2011 22:08:09 +0000 (17:08 -0500)]
Make Reprint Last printing context aware

Allows for re-use of previous printer context and all settings thereof.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoRemove 'boo' alert in hold details interface
Jason Etheridge [Tue, 10 Jan 2012 16:55:20 +0000 (11:55 -0500)]
Remove 'boo' alert in hold details interface

Willing to let any surprises here be natural. :-)  We can re-bug if there are
issues.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agofix breakage from recent merges
Jason Etheridge [Tue, 10 Jan 2012 20:49:23 +0000 (15:49 -0500)]
fix breakage from recent merges

Also, a good argument for keeping all perm additions in the same INSERT in the
950 file, since git would have reported a merge conflict against master had I
done that instead of simply appending the upgrade script to the file.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoTerminology adjustment to reduce conflicts with the term "recall"
Mike Rylander [Tue, 10 Jan 2012 20:14:59 +0000 (15:14 -0500)]
Terminology adjustment to reduce conflicts with the term "recall"

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoStamping force and recall hold permission addition script
Mike Rylander [Tue, 10 Jan 2012 20:13:58 +0000 (15:13 -0500)]
Stamping force and recall hold permission addition script

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoCompleting Force/Recall Holds
Thomas Berezansky [Thu, 6 Oct 2011 13:13:38 +0000 (09:13 -0400)]
Completing Force/Recall Holds

Add support for the Force and Recall hold types to be something other than
just aliases of Copy holds.

Both holds are made to cut in line over *all* other holds and both ignore
all hold rules, including copy, location, and status holdable flags.

Recall holds, when they reach their destination, will be flagged to be sent
to cataloging.

In addition, to place either kind of hold you need a new permission at the
copy's circulation library:

COPY_HOLD_FORCE for force holds
COPY_HOLD_RECALL for recall holds

Also, some re-ordering of logic should result in a fix for issues with
capturing holds as transits and/or suppressing holds and the hold shelf
logic.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoMerge branch 'master' of git.evergreen-ils.org:Evergreen
Mike Rylander [Tue, 10 Jan 2012 20:11:07 +0000 (15:11 -0500)]
Merge branch 'master' of git.evergreen-ils.org:Evergreen

12 years agoStamping upgrade script for in-db hold permit fixups
Mike Rylander [Tue, 10 Jan 2012 20:03:57 +0000 (15:03 -0500)]
Stamping upgrade script for in-db hold permit fixups

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoAdd customization to staff client serial and print CSS files
Dan Scott [Tue, 10 Jan 2012 19:53:06 +0000 (14:53 -0500)]
Add customization to staff client serial and print CSS files

The *_custom.css variants of these are created automatically at install
time, so give the parents the ability to actually use them.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoTPac messages for item/location/status not holdable
Thomas Berezansky [Thu, 6 Oct 2011 18:23:26 +0000 (14:23 -0400)]
TPac messages for item/location/status not holdable

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoFix INDB hold permit holdable checking
Thomas Berezansky [Thu, 6 Oct 2011 15:48:21 +0000 (11:48 -0400)]
Fix INDB hold permit holdable checking

Check Item/Status/Location holdable flags

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoAdd a "staff_alert" column to config.standing_penalty, and ...
Lebbeous Fogle-Weekley [Tue, 10 Jan 2012 17:59:57 +0000 (12:59 -0500)]
Add a "staff_alert" column to config.standing_penalty, and ...

... consult this when deciding whether to show the stop sign page in the
patron interface of the staff client, rather than explicitly checking
for the id of the ALERT_NOTE config.standing_penalty.

Now only show the standing penalty if the staff_alert value is true,
instead of unconditionally showing it for all penalties with a
block_list value.  This allows staff to configure blocking penalties
that do not alert.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoMerge remote-tracking branch 'eg-working/user/senator/tpac-bookbag-viewer'
Mike Rylander [Tue, 10 Jan 2012 19:26:50 +0000 (14:26 -0500)]
Merge remote-tracking branch 'eg-working/user/senator/tpac-bookbag-viewer'

12 years agoTpac: better "HTML view" for shared lists under "my lists" user/senator/tpac-bookbag-viewer
Lebbeous Fogle-Weekley [Tue, 15 Nov 2011 06:50:00 +0000 (01:50 -0500)]
Tpac: better "HTML view" for shared lists under "my lists"

From the "my lists" interface, you get a link labeled "HTML View" for
any shared lists, and this link, while meant to be shared, just
gives you a search results page where the only search term is simply "in
the given list."

This commit makes the search results page a little smarter in that case,
in order to
    a) show you the bookbag metadata, including name, description and
        item notes.
    b) allow you to keep searching *within* your list, until you don't
        want to anymore, at which point there's a checkbox you can uncheck.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoStamping upgrade script for SMS notification branch
Mike Rylander [Tue, 10 Jan 2012 19:14:38 +0000 (14:14 -0500)]
Stamping upgrade script for SMS notification branch

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agofix existing Notification Type typo collab/phasefx/sms_msgs2
Jason Etheridge [Mon, 31 Oct 2011 09:40:15 +0000 (05:40 -0400)]
fix existing Notification Type typo

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoPrevent unshared warnings in hold placement closure
Bill Erickson [Mon, 9 Jan 2012 15:46:52 +0000 (10:46 -0500)]
Prevent unshared warnings in hold placement closure

sub data_filler {} becomes $data_filler = sub {}

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoSMS texting
Jason Etheridge [Thu, 22 Sep 2011 13:17:50 +0000 (09:17 -0400)]
SMS texting

For SMS functionality we're basically converting a carrier and a phone number
into an email address and sending via SMTP like other email notifications.
There is administrative UI for configuring these mappings:

    Admin -> Server Settings -> SMS Carriers

The permission ADMIN_SMS_CARRIER is needed to use this interface. In a stock
Evergreen installation, this is given to the Global Administrator group.

In this interface, any occurance of "$number" in the Email Gateway field will
change into the pertinent SMS phone number when the mapping gets used. We're not
doing anything fancy here for verifying or munging phone numbers, but you could
do munging in the pertinent SMS Action/Trigger templates, or better, contribute
code for the OPAC templates and/or the utility method get_sms_gateway_email in
Trigger/Reactor.pm.

Our set of stock mappings comes from
http://en.wikipedia.org/wiki/List_of_SMS_gateways

There's no automated process for keeping this up-to-date, though some volunteer
with a Wikipedia account could add the page to their watchlist for changes and
let us know if something needs changing.

Set the org unit setting "SMS: Enable features that send SMS text messages."
(database name "sms.enable") to True to expose the following:

  * SMS notification widgets in the TT-OPAC hold placement interface (to notify
    when a hold is ready for pickup)

  * "(SMS)" links next to call numbers on the TT-OPAC record details page. The
    interface spawned by these links require user authentication by default, but
    this can be changed by setting the org unit setting "SMS: Disable auth
    requirement for texting call numbers." to True. The database name for that
    setting is "sms.disable_authentication_requirement.callnumbers".

  * New options in TT-OPAC My Account -> Account Preferences -> Notification
    Preferences (we also add in some missing prefs for holds outside of SMS)

There are two pertinent Action/Trigger templates under Admin -> Local
Administration -> Notifications / Action Triggers:

  * SMS Call Number
  * Hold Ready for Pickup SMS Notification

Don't disable these. We rely on the sms.enable YAOUS as the master on/off
switch.

Also, it's probably best to have just one sms.enable for the whole consortium.
If you mix and match on/off settings here, then user preferences for SMS can get
blown away if the user updates their settings in the TT-OPAC at an org where SMS
is disabled.  Hrmm, the same would probably happen if the user jumps between the
TT-OPAC and the original JS-PAC.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoflesh settings when retrieving patron by barcode
Jason Etheridge [Thu, 29 Sep 2011 13:26:49 +0000 (09:26 -0400)]
flesh settings when retrieving patron by barcode

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoFix shelf_expire_time closed date overlap test
Jason Etheridge [Sat, 7 Jan 2012 02:02:06 +0000 (18:02 -0800)]
Fix shelf_expire_time closed date overlap test

One-liner courtesy of berick.

* Steps to test

This is time and timezone sensitive, so on the server:

Change your timezone to America/Los Angeles: sudo dpkg-reconfigure tzdata
Stop your NTP server: sudo /etc/init.d/ntp stop
Set the time to 5pm: sudo date --set 17:00:00

Stop Evergreen, Restart Postgres, Start Evergreen

On the client:

Make sure the timezone is set to Pacific time.

1) Change the Library Setting "Default hold shelf expire interval" in the Holds group to have a value of "7 days" (without the quotes) for org BR1 (or if there is an existing value, you can keep it).

2) Create a bib with one item: htest1  (Status of Available)

3) Place a title level hold on the bib

4) Check in htest1 (it should get captured for the hold)

5) Browse the Hold Shelf and note the Shelf Expire Time for the hold that captured htest1 (it should be a week from now, unless you already have a conflicting closed date configured)

6) Cancel the hold and re-check-in htest1 (to remove the Hold Shelf status)

7) In the Closed Dates Editor, Add Single Day Closing for the date noticed previously in the Shelf Expire Time for BR1.

8) Place a title level hold on the bib

9) Check in htest1 (it should get captured for the hold)

10) Browse the Hold Shelf and note the Shelf Expire Time for the hold that captured htest1 (now the bug is illustrated if you get the same date for Shelf Expire Time as you did before, since that day is now a Closed Date and should be skipped over.  The patch should fix this.)

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoMajor enhancements to openils.widget.PCrudFilterDialog
Lebbeous Fogle-Weekley [Mon, 9 Jan 2012 19:45:04 +0000 (14:45 -0500)]
Major enhancements to openils.widget.PCrudFilterDialog

openils.widget.PCrudFilterDialog is (now) a dijit that allows users to define
inclusionary filters based on any number of rows that specify a field
from a given fieldmapper class, an operator, and a value (or range of
values, for the [not] between operator).  The resulting filter is
suitable for use as the where clause of a pcrud search call.

AutoGrid has an option, showLoadFilter, that allows you to easily
provide a filter dialog in any AutoGrid-based interface, with some minor
caveats (see the comments at the top of the source for
openils.widget.PCrudFilterDialog).  AutoGrid will also pass along the
suppressFilterFields option, which works analagously to the
suppressEditFields option.  You can also build your own interfaces to
use this dijit without AutoGrid, if desired.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoMore aggressive recalc of standing penalties
Jason Etheridge [Tue, 3 Jan 2012 20:46:25 +0000 (15:46 -0500)]
More aggressive recalc of standing penalties

In the staff client, the Refresh button in the patron display will explicitly
ask the server to recalculate standing penalties for the patron. Other automatic
refresh-like behavior meant to synchronize parts of the patron display will not
do this.

This change tweaks the logic to ask for a recalculation with all refresh-like
behavior in the patron display, and will catch such things as staff changing the
user's permisssion profile.

An example of how you might test this:

Admin -> Local Administration -> Group Penalty Thresholds

New Penalty Threshold

Group: Volunteers
Org Unit: CONS
Penalty: PATRON_EXCEEDS_FINES
Threshold: 1

Save

Register user with Profile of Patrons

Load patron, Bills, Bill Patron, Amount: 5, Submit this Bill

Edit

Main (Profile) Permission Group: Volunteers, Save

The interface should refresh and show a Maximum Bills penalty in the patron
summary.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoSETVAL the permission.grp_tree sequence after adding pinned IDs
Dan Scott [Thu, 29 Dec 2011 18:46:24 +0000 (13:46 -0500)]
SETVAL the permission.grp_tree sequence after adding pinned IDs

If we do not update the associated sequence after adding pinned IDs,
sites will be unable to add new permission groups until enough attempts
have failed. Let's bypass that little bit of pain.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoPrevent permission group conflicts in 2.1 upgrade script
Dan Scott [Thu, 29 Dec 2011 18:33:38 +0000 (13:33 -0500)]
Prevent permission group conflicts in 2.1 upgrade script

The 2.0-2.1 upgrade script relies on pinned IDs for permission.grp_tree
entries, which might conflict with custom permission groups that a site
might have added previously. A little manipulation can make life safe
for the pinned IDs.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoMaking the user profile selector disabled rather than readonly
James Fournie [Wed, 16 Nov 2011 00:56:16 +0000 (16:56 -0800)]
Making the user profile selector disabled rather than readonly
in the case of a user editing their own account.  This prevents
a nasty bug whereby Dojo widgets with the readOnly flag set
become labels and therefore do not correctly hold a 'value'
like a normal form widget.  See LP#806625 for details.

Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoPrevent null 852 $a in marc_export
Dan Scott [Wed, 30 Nov 2011 04:09:47 +0000 (23:09 -0500)]
Prevent null 852 $a in marc_export

852 $a is supposed to correspond to the institution holding the item
from which access is given, according to the MARC Format for Holdings
Data specification. As the org unit shortnames typically don't
correspond to one of the MARC Code List for Organization entries, we've
assumed that users will define the --location parameter; however, if
that parameter isn't defined, the empty string is used and an empty
subfield is generated. This, in turn, makes other MARC-parsing tools
unhappy. So, only generate an 852 $a if we have an actual value for the
--location parameter.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoPlaceholder upgrade script for late-backport of a fix for 2.0
Mike Rylander [Mon, 9 Jan 2012 20:53:28 +0000 (15:53 -0500)]
Placeholder upgrade script for late-backport of a fix for 2.0

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoA/T Event Revalidation shouldn't change event states from complete to found
Lebbeous Fogle-Weekley [Thu, 5 Jan 2012 23:39:07 +0000 (18:39 -0500)]
A/T Event Revalidation shouldn't change event states from complete to found

Ideally, revalidation should be guaranteed not to change anything about
the event itself at the database level, but I'm not sure we're there
yet.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoStamping upgrade script for current_shelf_lib
Mike Rylander [Mon, 9 Jan 2012 18:49:40 +0000 (13:49 -0500)]
Stamping upgrade script for current_shelf_lib

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoMerge remote-tracking branch 'eg-working/user/berick/hold-current-shelf-lib'
Mike Rylander [Mon, 9 Jan 2012 18:44:16 +0000 (13:44 -0500)]
Merge remote-tracking branch 'eg-working/user/berick/hold-current-shelf-lib'

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoLP#845763 remote added content breaks
Jason Etheridge [Mon, 26 Sep 2011 18:40:19 +0000 (14:40 -0400)]
LP#845763 remote added content breaks

remote added content breaks when using locally served content

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoWrap upgrade script for archivable stat cats
Dan Scott [Thu, 5 Jan 2012 22:37:55 +0000 (17:37 -0500)]
Wrap upgrade script for archivable stat cats

Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoCirc Statistical Archiving
Thomas Berezansky [Sat, 17 Sep 2011 18:49:16 +0000 (14:49 -0400)]
Circ Statistical Archiving

Copy Location

Instead of only archiving the copy location with aged circs, do so with all
circs, using the copy location at time of circ. This allows for running of
reports on the copy location even after the item is no longer in it.

Statistical Categories

Add a flag to statistical categories to allow them to be archived with all
circulations (at checkout). Reports can then be run on regular and aged
circulations based on the contents of the statistical categories.

This patch was inspired by Tim Spindler's submission to
https://bugs.launchpad.net/evergreen/+bug/798255 - thanks Tim!

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoFix summary.tt2 openurl block
Thomas Berezansky [Thu, 5 Jan 2012 19:24:16 +0000 (14:24 -0500)]
Fix summary.tt2 openurl block

The extra if was likely added to fix a problem with a missing ;

The missing ; was put back, but the extra if then became a problem.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoMerge remote-tracking branch 'working/user/artunit/resolver_resolver_timeout_2012_01_...
Dan Scott [Thu, 5 Jan 2012 17:01:27 +0000 (12:01 -0500)]
Merge remote-tracking branch 'working/user/artunit/resolver_resolver_timeout_2012_01_05' into dbs/resolver_resolver_timeout_2012_01_05

12 years agoTeach .gitignore about more built locale fileso
Dan Scott [Thu, 5 Jan 2012 05:45:19 +0000 (00:45 -0500)]
Teach .gitignore about more built locale fileso

Running a complete build of locales resulted in a lot of new, unwanted
files in "git status". Hide them.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoRemove vandelay.dtd from i18n Makefile and dirs
Dan Scott [Thu, 5 Jan 2012 05:49:10 +0000 (00:49 -0500)]
Remove vandelay.dtd from i18n Makefile and dirs

Back in 46e233722f9d1ccec1bd97816bb055caa12f8096, vandelay.dtd was
removed in favour of the inline Template Toolkit localizations - so pull
vandelay.dtd references out of the i18n Makfile to avoid corresponding
errors.

Remove vandelay POT and PO files as well.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoAdd language update script for Launchpad -> Evergreen
Dan Scott [Thu, 5 Jan 2012 04:57:00 +0000 (23:57 -0500)]
Add language update script for Launchpad -> Evergreen

Launchpad uses different names for locales than we do in Evergreen, and
we want to only update translations that are actually new or have
changed in Launchpad, so dump some intelligence into a script that can
help us with that work.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoUpdate translations from Launchpad
Dan Scott [Thu, 5 Jan 2012 04:18:08 +0000 (23:18 -0500)]
Update translations from Launchpad

Created using the fancy new update_pofiles script. Huzzah!

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoResolver: Fix method signature for deleting cache entries user/artunit/resolver_resolver_timeout_2012_01_05
Dan Scott [Thu, 22 Dec 2011 22:42:03 +0000 (17:42 -0500)]
Resolver: Fix method signature for deleting cache entries

The order of arguments was incorrect and also contained an unnecessary
entry for the open-ils.resolver.delete_cached_holdings method signature.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Art <artrhyno@uwindsor.ca>
12 years agoOpenURL resolution in TPAC - further cleanup
Dan Scott [Thu, 22 Dec 2011 22:13:29 +0000 (17:13 -0500)]
OpenURL resolution in TPAC - further cleanup

We appear to be getting one null or empty value in the args.issns array,
which was causing spurious lookups of null ISSNs, so skip the entry if
it is an empty string.

Also, switch from the product-specific "sfx" variable name to the
product-neutral "openurls" as we have CUFTS in the mix these days.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Art <artrhyno@uwindsor.ca>
12 years agoMake resolver HTTP timeout setting implementation neutral
Dan Scott [Thu, 22 Dec 2011 21:08:07 +0000 (16:08 -0500)]
Make resolver HTTP timeout setting implementation neutral

Rather than exposing the underlying mechanism (LWP) for the HTTP
request via the "lwp_timeout" setting, use "request_timeout" so that if
we switch to a different HTTP library the setting name doesn't
contradict it.

Also, add an example setting to opensrf.xml.example.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Art <artrhyno@uwindsor.ca>
12 years agoTimeout for resolver interactions
Art Rhyno [Thu, 15 Dec 2011 01:13:30 +0000 (20:13 -0500)]
Timeout for resolver interactions

These changes add some timeout options for using the resolver
setup. For example:

request open-ils.resolver open-ils.resolver.resolve_holdings "issn", \
    "0013-0618", "http://sfx.scholarsportal.info/windsor", 10

where "10" is the number of seconds for a timeout. A default timeout can be
specified in the opensrf.xml file in the ResolverResolver section as well:

<lwp_timeout>30</lwp_timeout>

from TPAC, a request can be also include a timeout option:

[% IF openurl.enabled == 'true';
    FOR issn IN args.resolver_issns;
      resolver = ResolverResolver.resolve_issn(issn, openurl.baseurl,20);
          FOR res IN resolver;
%]

where "20" is the number of seconds for a timeout.

In working through this, I found some bugs in my resolver collection
code in misc_util.tt2 for isbns which I have addressed.

Signed-off-by: Art Rhyno <artrhyno@uwindsor.ca>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Art <artrhyno@uwindsor.ca>
12 years agoUse hold current shelf lib to determine availability : opac sorting user/berick/hold-current-shelf-lib
Bill Erickson [Wed, 28 Dec 2011 20:44:36 +0000 (15:44 -0500)]
Use hold current shelf lib to determine availability : opac sorting

The availability of a hold can now be determined by
hold.current_shelf_lib == hold.pickup_lib.

This change uses the new hold availability test to sort available
holds to front/top of a patron's holds list (for the OPAC).

Affects open-ils.circ.holds[.canceled|id_list].retrieve

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTeach cstore et al about predicate-style truth tests in ORDER BY clauses
Mike Rylander [Wed, 4 Jan 2012 18:32:33 +0000 (13:32 -0500)]
Teach cstore et al about predicate-style truth tests in ORDER BY clauses

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoUse hold current shelf lib to determine availability : hold shelf browse
Bill Erickson [Wed, 28 Dec 2011 18:58:45 +0000 (13:58 -0500)]
Use hold current shelf lib to determine availability : hold shelf browse

The availability of a hold can now be determined by
hold.current_shelf_lib == hold.pickup_lib.

This change updates the staff client code to only display the "available
on" value (i.e. shelf_time) in the holds list when the current_shelf_lib
== pickup_lib and not just that it's captured and on a shelf.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoUse hold current shelf lib to determine availability : SIP
Bill Erickson [Wed, 28 Dec 2011 14:54:32 +0000 (09:54 -0500)]
Use hold current shelf lib to determine availability : SIP

The availability of a hold can now be determined by
hold.current_shelf_lib == hold.pickup_lib.

This change updates the unavailable holds count function for the patron
information SIP call(s).

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoUse hold current shelf lib to determine availability : A/T validator
Bill Erickson [Tue, 27 Dec 2011 21:34:46 +0000 (16:34 -0500)]
Use hold current shelf lib to determine availability : A/T validator

The availability of a hold can now be determined by
hold.current_shelf_lib == hold.pickup_lib.

This change updates the HoldIsAvailable action/trigger validator to use
the new test.  I've left the original belt-and-suspenders checks in
place and marked them as redundant within the code for reference.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoUse hold current shelf lib to determine availability : opac hold count
Bill Erickson [Tue, 27 Dec 2011 21:20:08 +0000 (16:20 -0500)]
Use hold current shelf lib to determine availability : opac hold count

The availability of a hold can now be determined by
hold.current_shelf_lib == hold.pickup_lib.

This change updates the API call for open hold counts for a patron.

open-ils.actor.user.hold_requests.count

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoAlter hold pickup lib from shelf avoids transit
Bill Erickson [Tue, 27 Dec 2011 20:47:00 +0000 (15:47 -0500)]
Alter hold pickup lib from shelf avoids transit

When the pickup library for a hold is changed while the hold is on the
shelf, we no longer put the copy into transit to the new location.
Instead, we clear the shelf_expire_time (to prevent premature
expiration) and leave the hold and copy otherwise untouched.

This makes it possible for staff to identify items that are sitting on
the holds shelf that need to be put into transit to a new pickup
library.  The transit will be created when the item is checked in at the
originating library.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoNew hold status for "Wrong Shelf"
Bill Erickson [Wed, 28 Dec 2011 16:17:37 +0000 (11:17 -0500)]
New hold status for "Wrong Shelf"

Adds a new hold status code (8) to indicate when a hold is sitting on
the wrong holds shelf.

In the OPAC, a hold status of 8 is displayed as in-transit.  Neither
waiting-for-copy or in-transit are entirely accurate.  In-transit makes
slightly more sense, since the copy is captured and (slowly) making its
way to the correct shelf.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoHold current_shelf_lib for shelf browse API
Bill Erickson [Tue, 27 Dec 2011 20:55:33 +0000 (15:55 -0500)]
Hold current_shelf_lib for shelf browse API

Use the new current_shelf_lib column on hold requests to determine which
copies are on a given shelf.  This also removes the shelf_time filter
since shelf_time is guaranteed to be set if current_shelf_lib is set.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoHold current_shelf_lib API for setting/clearing.
Bill Erickson [Tue, 27 Dec 2011 18:18:08 +0000 (13:18 -0500)]
Hold current_shelf_lib API for setting/clearing.

Sets and clears the hold.current_shelf_lib value as appropriate during
hold capture, transit checkin, hold resetting, etc.

Also, we now create hold transits (instead of regular transits) when a
captured copy is (unexpectedly) found at the wrong branch and needs to
transit to the pickup lib.  This can happen if the captured copy simply
transits to the wrong place (existing behavior) or the pickup lib for
the hold was changed while the copy was on the shelf (new behavior).

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoHold current_shelf_lib DB and IDL
Bill Erickson [Tue, 27 Dec 2011 17:19:05 +0000 (12:19 -0500)]
Hold current_shelf_lib DB and IDL

Schema, upgrade, and IDL pieces for a new
action.hold_request.current_shelf_lib column.  The goal of the column is
to track the location where a hold is currently sitting on a hold shelf.
Typically, this will be the pickup library, however, if the pickup
library has changed while the hold was on the shelf, the current shelf
lib will be different.

The upgrade script sets current_shelf_lib to match the pickup_lib for
all holds that are currently active and on the shelf.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoAvoid updating deleted call numbers for 2.0 -> 2.1 upgrade
Dan Scott [Tue, 22 Nov 2011 16:55:45 +0000 (11:55 -0500)]
Avoid updating deleted call numbers for 2.0 -> 2.1 upgrade

25% of the call numbers on our production system are deleted, so
filtering out the deleted call numbers from the update in the 2.0 -> 2.1
upgrade saves a significant amount of time.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoAdd OpenILS::WWW::Proxy::Authen Module
Thomas Berezansky [Tue, 3 Jan 2012 17:00:47 +0000 (12:00 -0500)]
Add OpenILS::WWW::Proxy::Authen Module

Enables HTTP Basic Authentication access control.

Uses the OILSProxyPermissions and OILSProxyLoginType settings, but prompts
are controlled by the Apache AuthName directive.

This module allows things like Directory Indexing and non-perl or otherwise
incompatible with the normal proxy module Response (or similar) handlers to
be password-protected.

It also supports the OpenILS::WWW::Proxy user/passwd CGI params to allow
an easier transition between the two.

For example:

<Location /authen_login/>
    Options +Indexes
    PerlOptions +GlobalRequest
    PerlSetVar OILSProxyPermissions "VIEW_REPORT_OUTPUT"
    PerlSendHeader On
    AuthType Basic
    AuthName "Notices Login"
    PerlAuthenHandler OpenILS::WWW::Proxy::Authen
    require valid-user
    allow from all
</Location>

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoChange default proxy configs to Authen variant
Thomas Berezansky [Tue, 3 Jan 2012 18:48:18 +0000 (13:48 -0500)]
Change default proxy configs to Authen variant

Also, because Authen causes Indexes to function, turn them off by default.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoStamping upgrade script for coded value map index normalizer
Mike Rylander [Wed, 4 Jan 2012 15:36:08 +0000 (10:36 -0500)]
Stamping upgrade script for coded value map index normalizer

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoCoded value map index normalizer
Bill Erickson [Tue, 3 Jan 2012 21:41:42 +0000 (16:41 -0500)]
Coded value map index normalizer

New index normalizer which maps a coded value from the record to the
display value configured in config.coded_value_map.  The normalizer is
applied with one parameter, the ctype of the coded_value_map to use for
the mapping.

E.g config.metabib_field_index_norm_map:

id | field | norm |    params     | pos
---+-------+------+---------------+-----
57 |    31 |   17 | ["item_lang"] |  -1

* pos = -1 causes this normalizer to be applied to facet_entry's

This is primarily useful for facets.  For example, you could create a
metabib_field for language and mark it as a facet_field.  Applying this
index would allow the mapped language names (e.g. "French" instead of
"fre") to display as facets.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoRevert "TPAC: Uniform search lib / depth settings"
Bill Erickson [Tue, 3 Jan 2012 22:30:43 +0000 (17:30 -0500)]
Revert "TPAC: Uniform search lib / depth settings"

Reverting partial commit that accidentally crept in, causing TPAC
breakage.

This reverts commit ea71899306e026bd0c9c91180a0af76a55fbec08.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoFix typo causing Javascript Shell to not enable
Thomas Berezansky [Fri, 30 Dec 2011 16:54:00 +0000 (11:54 -0500)]
Fix typo causing Javascript Shell to not enable

DEBUG_CIENT != DEBUG_CLIENT

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoUse the FTP site for Xulrunner downloads
Thomas Berezansky [Fri, 30 Dec 2011 15:39:01 +0000 (10:39 -0500)]
Use the FTP site for Xulrunner downloads

releases.mozilla.org was causing trouble for us; the FTP site appears to
be more stable.

Oh, and bump the Xulrunner version slightly while we are at it.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoMerge remote-tracking branch 'eg-working/user/dbs/lp894052-version-upgrade'
Mike Rylander [Thu, 29 Dec 2011 17:15:25 +0000 (12:15 -0500)]
Merge remote-tracking branch 'eg-working/user/dbs/lp894052-version-upgrade'

One merge conflict in 2.0-2.1-upgrade-db.sql silenced with -X theirs.  See
LP#894052 for details.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoTPAC: Uniform search lib / depth settings collab/dyrcona/tpac_user_ou_pref
Dan Scott [Tue, 27 Dec 2011 17:31:03 +0000 (12:31 -0500)]
TPAC: Uniform search lib / depth settings

The current TPAC code uses logic embedded within the templates to
determine which org unit and depth to apply to searches.

This commit attempts to standardize the logic within the new
OpenILS::WWWW::EGCatLoader::Util::_get_search_lib() function and sets
the result as a new context variable, "search_ou". The org unit is
determined as follows (first matching condition wins):

* specific CGI "loc" value
* logged-in user's preferred search library
* logged-in user's home org unit
* specific CGI "physical_loc" value

The depth is set as follows (first matching condition wins):

* specific CGI "depth" value
* depth of the chosen org_unit

As of this commit, a library that wishes to set the a default search
org unit for any given user should set the "physical_loc" CGI param;
after the user performs their first search, the "loc" CGI param will
propagate through most interfaces. When a user clicks "Your account log
in", the user's preferred search library or home org unit will be set as
the new search lib.

At any time after that, the user can select a different org unit from
the org unit selector to explicitly set the "loc" CGI param.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
12 years agoTPAC: Add "preferred search location" preference setting
Dan Scott [Wed, 28 Dec 2011 23:42:18 +0000 (18:42 -0500)]
TPAC: Add "preferred search location" preference setting

Working towards parity with the JSPAC, give the user the ability to set
their preferred search library in account preferences via the org
selector. The value defaults to the user's home OU.

Also set a sane default of 10 search results per page in the absence of
any preference, as the default had been set to 5.

While we're in there, remove some of the inline styles and weird markup
in the user preference page, and refactor the O:W:EGCatLoader:Account
module to accept an easily-appended list of preferences to be set.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
12 years agoTPAC: Set search_ou context in common loader
Dan Scott [Wed, 28 Dec 2011 02:17:02 +0000 (21:17 -0500)]
TPAC: Set search_ou context in common loader

By setting the search_ou context in load_common() after checking for a
valid user session, we can catch the remaining pages in TPAC in which
the default search library was not being set properly.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
12 years agoTPAC: Resolve conflict with master
Dan Scott [Tue, 27 Dec 2011 23:36:32 +0000 (18:36 -0500)]
TPAC: Resolve conflict with master

The changes for LP909111 ended up causing a conflict with this branch.
Resolve!

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
12 years agoTPAC: Uniform search lib / depth settings
Dan Scott [Tue, 27 Dec 2011 17:31:03 +0000 (12:31 -0500)]
TPAC: Uniform search lib / depth settings

The current TPAC code uses logic embedded within the templates to
determine which org unit and depth to apply to searches.

This commit attempts to standardize the logic within the new
OpenILS::WWWW::EGCatLoader::Util::_get_search_lib() function and sets
the result as a new context variable, "search_ou". The org unit is
determined as follows (first matching condition wins):

* specific CGI "loc" value
* logged-in user's preferred search library
* logged-in user's home org unit
* specific CGI "physical_loc" value

The depth is set as follows (first matching condition wins):

* specific CGI "depth" value
* depth of the chosen org_unit

As of this commit, a library that wishes to set the a default search
org unit for any given user should set the "physical_loc" CGI param;
after the user performs their first search, the "loc" CGI param will
propagate through most interfaces. When a user clicks "Your account log
in", the user's preferred search library or home org unit will be set as
the new search lib.

At any time after that, the user can select a different org unit from
the org unit selector to explicitly set the "loc" CGI param.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
12 years agoTPac: improve search depth extraction
Bill Erickson [Tue, 27 Dec 2011 18:45:02 +0000 (13:45 -0500)]
TPac: improve search depth extraction

Improves how we determine the depth of a search.  The Order of
operations:

1. Depth encoded within the search query, e.g. depth(2)
2. CGI depth param
3. Default is to match the depth of the searched org unit

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoReverse Copy Location picker labels via WS Setting
Thomas Berezansky [Thu, 29 Sep 2011 23:26:17 +0000 (19:26 -0400)]
Reverse Copy Location picker labels via WS Setting

If the setting is set then place the name before the org unit. This allows
for typing of the start of the name without having to deal with the org
unit shortname "eating" the start of the label (and thus type-in), but
preserves the information the org unit provides.

As an example, instead of having to type:
CONS : St
To get close to the default "Stacks" in a long list you could just type
St
And likely get to, or close to, Stacks.

The option can be toggled from the Workstation Administration menu.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Conflicts:

Open-ILS/xul/staff_client/chrome/content/main/menu.js
Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul

Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoTPAC: Display monograph parts
Dan Scott [Fri, 23 Dec 2011 06:56:02 +0000 (01:56 -0500)]
TPAC: Display monograph parts

In search results and record details, display monograph parts if
associated with a copy. Uses unapi for search results and json_query for
record details. Only generates the "Part" column in the copy table if
that record actually has a monograph part; otherwise the column is not
generated.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
12 years agoSIP2: Fix transit home on checkin user/sal/fix_sip2_checkin_transit_signoff
Thomas Berezansky [Wed, 21 Dec 2011 21:51:48 +0000 (16:51 -0500)]
SIP2: Fix transit home on checkin

The Checkin doesn't need a destination_loc, but the item needs it set.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Sarah E. Chodrow <sarah.chodrow@bibliotheca-itg.com>
12 years agoSVF in bib record summary: extract attrs on the server
Bill Erickson [Thu, 22 Dec 2011 15:13:03 +0000 (10:13 -0500)]
SVF in bib record summary: extract attrs on the server

This repairs a FIXME within the custom bib overlay code related to
parsing metabib.record_attr stores within the JS.  Instead, now we use
an attr parsing utility function which compiles a regular hash so the
client no longer needs to parse it.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agosupport SVF in staff client bib record summary
Jason Etheridge [Thu, 8 Dec 2011 22:48:42 +0000 (17:48 -0500)]
support SVF in staff client bib record summary

This is in support of https://bugs.launchpad.net/evergreen/+bug/822928, re: Cat Date

So for example, let's suppose you want to store a "Cat Date" in MARC tag 915, subfield a.

You could do this in the database:

INSERT INTO config.record_attr_definition (name,label,filter,sorter,tag,sf_list)
    VALUES ( 'cat_date', 'Cat Date', 'f', 't', '915', 'd' );

Add this to server/locale/en-US/cat_custom.properties (optional but recommended):

staff.cat.bib_brief.cat_date.label=Cat Date:
staff.cat.bib_brief.cat_date.accesskey=

And then add something like this to server/skin/custom.js:

    try {

        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces['nsIPrefBranch']);

        prefs.setCharPref(
            'oils.bib_brief.horizontal.dynamic_grid_replacement.data',
            js2JSON([
                ["title",           "edition",  "editor",       "cat_date"],
                ["author",          "pubdate",  "edit_date",    "holds"],
                ["bib_call_number", "tcn",      "create_date",  "items"]
            ])
        );

        prefs.setCharPref(
            'oils.bib_brief.alternate_copy_summary.dynamic_grid_replacement.data',
            js2JSON([
                ["title",       "edition",  "editor",       "cat_date"],
                ["author",      "pubdate",  "edit_date",    "holds"],
                ["call_number", "tcn",      "create_date",  "items"]
            ])
        );

    } catch(E) {
        dump('Error in custom.js trying to set oils.bib_brief.*.dynamic_grid_replacement.data: ' + E + '\n');
    }

Finally, re-ingest any records with tag 915d (you can simply edit the MARC via
the MARC Editor for a specific record, or if the ingest.reingest.force_on_same_marc
row in config.internal_flag is enabled and you're not doing this during library
hours, you can re-ingest all records with UPDATE biblio.record_entry SET marc = marc;)

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoWrap upgrade for "Tag previously circulated items" YAOUS
Dan Scott [Wed, 21 Dec 2011 22:13:49 +0000 (17:13 -0500)]
Wrap upgrade for "Tag previously circulated items" YAOUS

Also fix a typo ("currenlty") and use the full "circulation" for easier
translation.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoTPac; indicate search results previously checked out
Bill Erickson [Tue, 29 Nov 2011 21:54:52 +0000 (16:54 -0500)]
TPac; indicate search results previously checked out

When a user is logged in to the tpac and performs a search, indicate in
the results set when any of the result items were ever checked out by
the logged in user.

Items will only be tagged when the related org setting is enabled and
the user has opted-in to circ history tracking.

New org unit setting is "opac.search.tag_circulated_items" /
"Tag Circulated Items in Results"

In the search results, just below title/author/callnumber/copy-count, a
new line is displayed that says "I have checked out this item before"
with a purdy little checkmark.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoTPac: Don't show part selector on hold result page
Thomas Berezansky [Wed, 21 Dec 2011 21:19:47 +0000 (16:19 -0500)]
TPac: Don't show part selector on hold result page

Instead, duplicate the hold list's "part name in parens" display, when a
part was selected.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTPAC: Change title tooltip in results table to useful message
Bill Erickson [Mon, 19 Dec 2011 17:57:08 +0000 (12:57 -0500)]
TPAC: Change title tooltip in results table to useful message

From dbs's original commit:

The tooltip that would display when hovering over the title of a result
in the results table was simply the URI-escaped version of the title
text - not particularly helpful. Change this to say "Display record
details" as an actual hint about what action will occur when the user
clicks on a title in the results list.

This modified commit changes the title to 'Display record details for
"<title>"'

This commit also introduces the HTML plugin as a new
loaded-by-default template plugin.  Among other things, it's useful for
ensuring HTML attributes are safely encoded, moresoe than |html, which
does not escape quotes.

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

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoTPAC: Split result copy counts into a separate template
Dan Scott [Wed, 21 Dec 2011 17:58:46 +0000 (12:58 -0500)]
TPAC: Split result copy counts into a separate template

As Thomas Berezansky suggests, sites are likely to want to customize the
display of copy counts depending on whether they're consortial sharers,
how deep they want to display, whether they want to just show the
matching search scope... make it easy to customize by moving the
copy counts portion of the results table into a separate template.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>