working/Evergreen.git
9 years agoLP#1468422 Release notes documenting work factor collab/berick/lp1468422-passwd-storage-rebase1
Bill Erickson [Fri, 19 Feb 2016 16:28:25 +0000 (11:28 -0500)]
LP#1468422 Release notes documenting work factor

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Release notes example avoid re-migrate
Bill Erickson [Thu, 18 Feb 2016 15:42:11 +0000 (10:42 -0500)]
LP#1468422 Release notes example avoid re-migrate

Update the batch password migrate example code in the release notes to
avoid attempts at migrating already migrated passwords.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Manual password migrate does not re-migrate
Bill Erickson [Thu, 18 Feb 2016 15:28:46 +0000 (10:28 -0500)]
LP#1468422 Manual password migrate does not re-migrate

Avoid migrating already-migrated passwords when actor.migrate_passwd()
is called manually.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Release notes manual pw migration comments
Bill Erickson [Wed, 17 Feb 2016 22:33:39 +0000 (17:33 -0500)]
LP#1468422 Release notes manual pw migration comments

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Drop auth work factor from 14 to 10
Bill Erickson [Wed, 17 Feb 2016 22:23:34 +0000 (17:23 -0500)]
LP#1468422 Drop auth work factor from 14 to 10

Avoid what may be an unacceptible login delay caused by work factor 14
by dropping down to 10.  This reduces the CRYPT() time from ~1 second to
~.1 seconds.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Always default to root org unit
Bill Erickson [Mon, 1 Feb 2016 15:15:23 +0000 (10:15 -0500)]
LP#1468422 Always default to root org unit

If no org unit is passed by the caller, always default to the root org
unit.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Use auth_internal.validate to shore up AuthProxy
Dan Wells [Tue, 26 Jan 2016 19:22:21 +0000 (14:22 -0500)]
LP#1468422 Use auth_internal.validate to shore up AuthProxy

Even if a user has valid credentials in the external system, we should
block them from logging in if their Evergreen account is out of sorts.
Use the API designed for this.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
9 years agoLP#1468422 "Aut" to "Auth" typo fix
Dan Wells [Tue, 26 Jan 2016 18:36:14 +0000 (13:36 -0500)]
LP#1468422 "Aut" to "Auth" typo fix

Just cosmetic for now, but potentially for future sanity protection.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
9 years agoLP#1468422 Auth efficiency improvements
Bill Erickson [Wed, 27 Jan 2016 17:11:33 +0000 (12:11 -0500)]
LP#1468422 Auth efficiency improvements

1. Adds an oils_utils function for retrieving the ID of the root org
unit.

2. Avoid multiple cstore/db lookups for the root org unit by caching the
ID at the process level.

3. Move permission checks from open-ils.storage to open-ils.cstore.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Login permission checks are global
Bill Erickson [Wed, 27 Jan 2016 16:46:17 +0000 (11:46 -0500)]
LP#1468422 Login permission checks are global

For backwards compat, perform all login permission checks using the root
org unit as the context org unit.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Return vanilla login failure on nonexistent username/barcode
Bill Erickson [Tue, 26 Jan 2016 19:16:06 +0000 (14:16 -0500)]
LP#1468422 Return vanilla login failure on nonexistent username/barcode

For backwards compatibility (and security), return the same login
failure for nonexistent usernames/barcodes as for bad passwords, etc.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Report inactive card on password OK
Bill Erickson [Mon, 11 Jan 2016 16:02:23 +0000 (11:02 -0500)]
LP#1468422 Report inactive card on password OK

Prevent leaking information from authentication by only reporting that a
card is inactive if the caller provided the correct credentials.  This
is consistent with how the code handles inactive patrons.

To avoid a lot of code duplication and to reduce the potential for
leaking memory (C code, amiright?), this commit includes a number of
changes to avoid exiting the API function early and saving the memory
cleanup routines until the end of the API call.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 auth-internal validate API
Bill Erickson [Fri, 8 Jan 2016 20:06:14 +0000 (15:06 -0500)]
LP#1468422 auth-internal validate API

Adds a new open-ils.auth_internal API
open-ils.auth_internal.user.validate for checking whether a user should
be allowed to login.

It tests user existence, active=true, barred=false, deleted=false.

If a barcode is also provided, it confirms the barcode exists and is
active.

Modifies open-ils.auth.authenticate.complete to use the new API instead
of implementing the logic directly.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Make AuthProxy.pm work with new auth
Dan Wells [Tue, 5 Jan 2016 19:24:21 +0000 (14:24 -0500)]
LP#1468422 Make AuthProxy.pm work with new auth

Previously, AuthProxy.pm would simply lookup and use the hashed password
when the external authentication had passed.  This simple method no
longer works, since even cstore doesn't have access to the hashed
password.

Instead, take advantage of the new 'auth_internal' service to create the
user session after the user has been externally authenticated.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
9 years agoLP#1468422 Tighten AuthProxy argument requirements
Dan Wells [Tue, 5 Jan 2016 19:21:11 +0000 (14:21 -0500)]
LP#1468422 Tighten AuthProxy argument requirements

Basically, if we aren't given a username, and we can't find a username
by barcode, give up immediately.  This helps simplify the rest of the
code a bit.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
9 years agoLP#1468422 Remove deprecated open-ils.storage remote_update
Bill Erickson [Tue, 24 Nov 2015 17:18:16 +0000 (12:18 -0500)]
LP#1468422 Remove deprecated open-ils.storage remote_update

User update in Actor.pm was the only remaining code that leveraged
the open-ils.storage remote_update API.  With that code moving to
open-ils.cstore, save some RAM by no longer auto-loading/publishing
remote_update methods.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 SIP password verification
Bill Erickson [Tue, 24 Nov 2015 16:46:32 +0000 (11:46 -0500)]
LP#1468422 SIP password verification

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Implement password reset updates
Bill Erickson [Tue, 24 Nov 2015 16:31:06 +0000 (11:31 -0500)]
LP#1468422 Implement password reset updates

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Port user update to cstore
Bill Erickson [Tue, 24 Nov 2015 16:15:06 +0000 (11:15 -0500)]
LP#1468422 Port user update to cstore

Migrate the user update code from open-ils.storage to open-ils.cstore.
This has several benefits:

1. We can re-use the patron password update code
2. Several actions (bad contacts, invalid address) which previously
   resulted in data modifications outside the main transaction now
   take place with the main patron update transaction.
3. Bigger, better, faster, stronger.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Password verify and password update
Bill Erickson [Mon, 23 Nov 2015 22:13:48 +0000 (17:13 -0500)]
LP#1468422 Password verify and password update

These API's now support new-style passwords:

open-ils.actor.verify_user_password
open-ils.actor.user.password.update

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Admin seed data sets new-style passwd
Bill Erickson [Mon, 23 Nov 2015 18:56:36 +0000 (13:56 -0500)]
LP#1468422 Admin seed data sets new-style passwd

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Password storage release notes
Bill Erickson [Mon, 23 Nov 2015 18:22:37 +0000 (13:22 -0500)]
LP#1468422 Password storage release notes

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Admin seed data sets new-style passwd
Bill Erickson [Mon, 23 Nov 2015 17:51:31 +0000 (12:51 -0500)]
LP#1468422 Admin seed data sets new-style passwd

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 New open-ils.auth_internal service
Bill Erickson [Thu, 19 Nov 2015 20:00:20 +0000 (15:00 -0500)]
LP#1468422 New open-ils.auth_internal service

Service is responsible for adding user data to the authentication cache.
Cache times are determined from opensrf.xml/AOUS settings.  No
authentication checks are performed.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Add libpcre to build for open-ils.auth
Bill Erickson [Fri, 24 Jul 2015 15:20:06 +0000 (11:20 -0400)]
LP#1468422 Add libpcre to build for open-ils.auth

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 open-ils.auth API salted pw changes
Bill Erickson [Wed, 22 Jul 2015 22:02:19 +0000 (18:02 -0400)]
LP#1468422 open-ils.auth API salted pw changes

Added .init.barcode and .init.username methods.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoLP#1468422 Password storage/migration SQL getting started
Bill Erickson [Fri, 17 Jul 2015 20:00:17 +0000 (16:00 -0400)]
LP#1468422 Password storage/migration SQL getting started

* Backwards compatible salted password storage using pgcrypt
* Adds actor.passwd and actor.passwd_type tables
* Includes pgtap tests
* Includes installation of pgcrypto

Current flow:

1. Application requests a salt to use as the CHAP-style seed
2. If new-style password exists, salt is returned.
3. Else, old password is migrated and the new salt is returned.
4. App finalizes login by checking verify_passwd.

== continued...

Store the iter_count and start using the crypt_algo column.

Make it possible to change the salt, and potentially strengthen
the salt, when changing passwords.

Make is possible to start salt-less passwords, for pw's that are managed
outside of the DB.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoForgot an acknowledgement in the 2.9.2 point release notes
Kathy Lussier [Wed, 17 Feb 2016 19:43:24 +0000 (14:43 -0500)]
Forgot an acknowledgement in the 2.9.2 point release notes

Sorry Ben!

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoAdding 2.9.2 bug fixes and acknowledgements to the 2.9 release notes
Kathy Lussier [Wed, 17 Feb 2016 19:34:18 +0000 (14:34 -0500)]
Adding 2.9.2 bug fixes and acknowledgements to the 2.9 release notes

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoAdding 2.8.6 bug fixes to the 2.8 Release Notes
Kathy Lussier [Wed, 17 Feb 2016 18:03:40 +0000 (13:03 -0500)]
Adding 2.8.6 bug fixes to the 2.8 Release Notes

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1544606: Copy the new directories we make for locales
Ben Shum [Wed, 17 Feb 2016 18:39:22 +0000 (13:39 -0500)]
LP#1544606: Copy the new directories we make for locales

Make it cp -r to copy the directories and not just the files (of which
there won't be any by default).

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoLP#1544606: Change i18n Makefile so that there are different dirs for opac vs webstaff
Ben Shum [Thu, 11 Feb 2016 20:40:05 +0000 (15:40 -0500)]
LP#1544606: Change i18n Makefile so that there are different dirs for opac vs webstaff

In i18n Makefile, we only have a single directory variable TT2_DATA_DIR.

Remove that variable, and add distinct variables for TT2_OPAC_DATA_DIR and
TT2_WEBSTAFF_DATA_DIR that point to more distinct defined areas.

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoLP#1544606: Change docs to more specific locale/opac location
Ben Shum [Thu, 11 Feb 2016 19:54:49 +0000 (14:54 -0500)]
LP#1544606: Change docs to more specific locale/opac location

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoLP#1544606: Change apache examples for TPAC to more specific locale/opac location
Ben Shum [Thu, 11 Feb 2016 19:30:57 +0000 (14:30 -0500)]
LP#1544606: Change apache examples for TPAC to more specific locale/opac location

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoLP#1544606: Change static entry to variable in config example for locale/staff
Ben Shum [Thu, 11 Feb 2016 19:36:35 +0000 (14:36 -0500)]
LP#1544606: Change static entry to variable in config example for locale/staff

We were using a hardcoded entry for /openils/var here, but this should be a
variable that is altered based on how users configure/build Evergreen.

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoLP#1544606: Remove trailing whitespace from sample configs for locale/staff
Ben Shum [Thu, 11 Feb 2016 19:27:20 +0000 (14:27 -0500)]
LP#1544606: Remove trailing whitespace from sample configs for locale/staff

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoLP#1067823: stamp upgrade script
Galen Charlton [Wed, 17 Feb 2016 16:11:01 +0000 (11:11 -0500)]
LP#1067823: stamp upgrade script

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1067823 Add genre facet by default and remove tag 659 from definition
Kathy Lussier [Wed, 17 Feb 2016 13:01:54 +0000 (08:01 -0500)]
LP#1067823 Add genre facet by default and remove tag 659 from definition

Since genre will work well as a facet, add it to the facets in config.tt2 so
that it displays by default. Also removes the 659 MARC field from the genre
definition since it is currently an unassigned tag.

Release notes have been updated to reflect these changes.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1067823: add release notes
Galen Charlton [Mon, 2 Nov 2015 19:59:20 +0000 (19:59 +0000)]
LP#1067823: add release notes

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Andrea Neiman <aneiman@kent.lib.md.us>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1067823: follow-up: add back a space
Galen Charlton [Mon, 2 Nov 2015 19:53:53 +0000 (19:53 +0000)]
LP#1067823: follow-up: add back a space

Ensure that there's a space displayed between
each component of a heading coming from a subfield
boundary; this prevents

600 $aHarry Potter$c(Fictional character)

from getting displayed as

Harry Potter(Fictional character)

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Andrea Neiman <aneiman@kent.lib.md.us>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1067823: tweak new identifier|genre index
Galen Charlton [Mon, 2 Nov 2015 19:35:12 +0000 (19:35 +0000)]
LP#1067823: tweak new identifier|genre index

[1] Adjust facet XPath to work for more Pg versions.
[2] Ensure that upgrade script adds stock search
    normalizers.
[3] Make update script provide instructions for
    running a partial reingest.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Andrea Neiman <aneiman@kent.lib.md.us>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1067823: Genre links launch subject search
Mike Rylander [Thu, 15 Oct 2015 21:20:07 +0000 (17:20 -0400)]
LP#1067823: Genre links launch subject search

And genres are not subjects.  So now we will index genres in the identifier
class and teach the tpac to build links appropriately.  Genre is herein
defined as data in tags 655 or 659 (as the tpac currently thinks), restricted
to subfields [abvxyz], per LoC documentation.

To test:

[1] Apply the update and run the partial reingest as suggested
    by the upgrade script.
[2] In the public catalog, navigate to a record that has one
    or more 655 fields.  Click on one of the genre links and
    verify that it retrieves records sharing that genre heading.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Andrea Neiman <aneiman@kent.lib.md.us>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1486592 - Generate prices for concerto dataset.
Chris Sharp [Wed, 16 Dec 2015 12:10:37 +0000 (07:10 -0500)]
LP#1486592 - Generate prices for concerto dataset.

The "concerto" test data needs prices on copies to test
various features. This adds a function to generate a price
when a copy is populated.

To test:

[1] Create a fresh Evergreen database and load the Concerto
    dataset; verify that that vast majority of copies now
    have a price set.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP 1499123: Stamping upgrade script for standing-penalty-ignore-proximity
Kathy Lussier [Tue, 16 Feb 2016 19:57:07 +0000 (14:57 -0500)]
LP 1499123: Stamping upgrade script for standing-penalty-ignore-proximity

Nearly forgot to stamp the upgrade script for lp1499123. While I'm at it,
correcting a small typo found in the release notes.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP 1499123: Add release notes.
Jason Stephenson [Sun, 11 Oct 2015 18:30:11 +0000 (14:30 -0400)]
LP 1499123: Add release notes.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP 1499123: Modify Perl code for csp.ignore_proximity field.
Jason Stephenson [Sat, 26 Sep 2015 15:42:35 +0000 (11:42 -0400)]
LP 1499123: Modify Perl code for csp.ignore_proximity field.

* Add get_org_unit_proximity function to AppUtils.

First, we add a helper function to OpenILS::Application::AppUtils that
returns the proximity value between a "from" org_unit and a "to"
org_unit.  It takes a CStoreEditor and the ids of the two org_units as
arguments.

* Use csp.ignore_proximity in O::A::Circ::Circulate::Circulator.

Modify the check_hold_fulfill_blocks method of the Circulator object
to take the csp.ignore_proximity into account.

The new code first calculates the proximity of the circ_lib and the
copy's circ_lib with the patron's home_ou.  It then modifies the main
query in the function to check if the csp object's ignore_proximity
is null or greater than either of the two calculated proximity values.

* Teach SIP::Patron about csp.ignore_proximity.

We modify SIP::Patron::flesh_user_penalties to not report penalties
within csp.ignore_proximity of the user's home_ou.

In order to have a notion of "here" for the proximity check, we modify
SIP::Patron->new to assign its authtoken argument, if any, to the
CStoreEditor.  We then use this authtoken to retrieve the authsession
user so that we may use the authsession user's ws_ou or home_ou as a
context ou for penalty lookup and filtering based on the
csp.ignore_proximity in flesh_user_penalties. If we're not given the
authtoken, we fall back to using the patron's home_ou and the
penalty's context ou for the proximity lookup.

This assumes, of course, that the authsession user's ws_ou or home_ou
have a logical relationship with the desired transaction ou.  For most
self-checks this will likely be true.  For other uses of the SIP
protocol, this is less likely to be true.

* Add Perl live tests.

Add tests for basic checkout and hold functionality as well as for
the OpenILS::SIP::Patron->flesh_user_penalties() changes.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP 1499123: Add ignore_proximity to config.standing_penalty.
Jason Stephenson [Fri, 25 Sep 2015 00:35:50 +0000 (20:35 -0400)]
LP 1499123: Add ignore_proximity to config.standing_penalty.

This commit adds the integer column ignore_proximity to the
config.standing_penalty table.  It also adds the column to the
csp class entry in the IDL.

It also modifies the action.hold_permit_test() function from
110.hold_matrix.sql to use the ignore_proximity field from
config.standing_penalty when checking the user's penalties to see if
they block the hold.

We also modify the action.item_user_circ_test() function from
100.circ_matrix.sql to use the ignore_proximity field from the
config.standing_penalty table when checking to see if the user's
penalties block the circulation.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1429268 credit card payment address fall-thru
Bill Erickson [Fri, 6 Mar 2015 22:18:21 +0000 (17:18 -0500)]
LP#1429268 credit card payment address fall-thru

When a patron has no mailing address linked, attempt to read address
data from the patron's billing address.  Similarly, if all address
fields are properly set by the API caller, except the country, and the
patron has no addresses, attempt to determine the country from org unit
settings.

If insufficient address data is provided or divined, return an invalid
params Event (similar to other CC failures).

To test:

[1] Create a patron record that has no mailing address but does
    have a billing address.  Perform or simulate a credit card
    payment; it shoudl fail with an internal error.
[2] Apply the patch and repeat step 1; this time, the payment
    attempt should succeed and use the billing address.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1522604: Remove red alert style for non-cataloged checkouts
Kathy Lussier [Tue, 15 Dec 2015 13:39:27 +0000 (08:39 -0500)]
LP#1522604: Remove red alert style for non-cataloged checkouts

The non-cataloged checkouts in the patron summary had a red alert style
applied when there was a lost item count on the patron record. This branch
removes any alert styling since we don't need to highlight non-cataloged
checkouts.

Test plan:
Pre-patch, retrieve a patron record with lost transactions in the web client.
The non-cataloged count in the patron summary will be red. Apply the patch.
The count will no longer be red.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1240657 - Creating and Deleting Closed Dates permissions wrong.
Josh Stompro [Mon, 9 Nov 2015 02:51:04 +0000 (20:51 -0600)]
LP#1240657 - Creating and Deleting Closed Dates permissions wrong.

The code referenced two permissions that didn't exist
CREATE_CLOSEING and DELETE_CLOSEING.  Should be CREATE_ORG_UNIT_CLOSING,
and DELETE_ORG_UNIT_CLOSING.

[RM note: the affected methods don't appear to be in use, however]

Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agolp1422802 Release notes entry
Kathy Lussier [Tue, 9 Feb 2016 04:05:03 +0000 (23:05 -0500)]
lp1422802 Release notes entry

Release notes entry for more visible parts feature.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <ben@evergreener.net>
9 years agolp1422802: Improve visibility of parts on Place Holds screen
Kathy Lussier [Sat, 14 Feb 2015 19:10:54 +0000 (14:10 -0500)]
lp1422802: Improve visibility of parts on Place Holds screen

Users often miss the list of parts on the Place Holds screen, leading to
many title-level holds on records where only one or two libraries have
'unparted' copies. This branch adds some styling to add padding around the
parts selector and to bold the Select a Part text. Many thanks to Christine
Morgan whose custom work at NOBLE served as an inspiration for this styling.

The branch also adds a new config.tt2 option to display parts with
radio buttons instead of a select menu so that all of the parts will display on
the screen. With this option, no parts are pre-selected, forcing the users to
actively choose a part.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <ben@evergreener.net>
9 years agoLP#1526547 Re-broaden backdate note setting
Dan Wells [Tue, 9 Feb 2016 15:22:46 +0000 (10:22 -0500)]
LP#1526547 Re-broaden backdate note setting

The previous commit missed a case where we still want the backdate
message to appear.  Let's recentralize it, but at a different level.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1526547 Improve note setting for backdates
Dan Wells [Thu, 28 Jan 2016 19:49:42 +0000 (14:49 -0500)]
LP#1526547 Improve note setting for backdates

The backdate note was the default note for voiding and adjusting, but
this proved to be an unexpected default.

Let's set the note only where we need it, and also genericize the
wording to cover both voiding and adjusting.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1526547 Prevent bogus notes when adjusting lost/lod overdues
Dan Wells [Fri, 14 Dec 2012 18:39:21 +0000 (13:39 -0500)]
LP#1526547 Prevent bogus notes when adjusting lost/lod overdues

If you void/adjust an overdue, but don't supply a reason, the code
automatically adds "VOIDED FOR BACKDATE" to the billing note. This is
obviously wrong for overdues adjusted or voided due to lost (or long
overdue) processing.

This commit simply adds a more appropriate note.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1516867: set limit on when HTML report output sorting
Galen Charlton [Fri, 20 Nov 2015 21:26:05 +0000 (21:26 +0000)]
LP#1516867: set limit on when HTML report output sorting

To avoid taking an excessive amount of time to render an
HTML report or sort its values, dynamic sorting is enabled
only when there are at most 10,000 rows of output.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
9 years agoLP#1516867 Make HTML report tables sortable
Dan Scott [Tue, 17 Nov 2015 03:20:28 +0000 (22:20 -0500)]
LP#1516867 Make HTML report tables sortable

Using the sortable JavaScript library from https://github.com/hubspot/sortable
(MIT license), we can make HTML reports much more usable by making them
sortable by clicking on the column headers. This should save some downloading
of CSV or Excel versions of the reports.

To test:

[1] Create or use a report template and generate an HTML report; ensure
    that the report has at most 10,000 rows of output.
[2] View the report output and click on one of the column headings;
    verify that the table sorts itself by that column's values.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
9 years agowebstaff: add angular-file-saver to test manifest
Galen Charlton [Wed, 3 Feb 2016 17:17:30 +0000 (12:17 -0500)]
webstaff: add angular-file-saver to test manifest

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoDocs: small leveloffset fix for root.txt
Yamil Suarez [Wed, 3 Feb 2016 04:35:53 +0000 (23:35 -0500)]
Docs: small leveloffset fix for root.txt

Signed-off-by: Yamil Suarez <yamil@yamil.com>
9 years agoDocs: web client copy buckets documentation
Jennifer Pringle [Fri, 29 Jan 2016 03:24:59 +0000 (22:24 -0500)]
Docs: web client copy buckets documentation

Signed-off-by: Yamil Suarez <yamil@yamil.com>
9 years agowebstaff: fix more cases where new copies weren't being saved
Galen Charlton [Tue, 2 Feb 2016 00:53:43 +0000 (19:53 -0500)]
webstaff: fix more cases where new copies weren't being saved

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: work around race condition in vol/copy editor
Galen Charlton [Tue, 2 Feb 2016 00:19:46 +0000 (19:19 -0500)]
webstaff: work around race condition in vol/copy editor

Fix (or workaround) issue whereby the volume/copy editor
could fail to select a copy's current stat cats.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: clean up console noise
Galen Charlton [Mon, 1 Feb 2016 16:43:09 +0000 (11:43 -0500)]
webstaff: clean up console noise

Ensure that if a default stat cat OU filter is not set,
that errors aren't logged when creating a new volume/copy.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: fix issue that prevent new copies from being added
Galen Charlton [Fri, 29 Jan 2016 23:38:53 +0000 (18:38 -0500)]
webstaff: fix issue that prevent new copies from being added

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: add copy ID column to holdings table and volcopy editor
Galen Charlton [Thu, 28 Jan 2016 23:33:34 +0000 (18:33 -0500)]
webstaff: add copy ID column to holdings table and volcopy editor

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: add circulate as MARC type column to holdings table
Galen Charlton [Thu, 28 Jan 2016 23:21:57 +0000 (18:21 -0500)]
webstaff: add circulate as MARC type column to holdings table

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: add prefix, suffix, and parts columns to holdings table
Galen Charlton [Thu, 28 Jan 2016 23:06:19 +0000 (18:06 -0500)]
webstaff: add prefix, suffix, and parts columns to holdings table

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: ensure that volcopy editor saves copy part maps
Galen Charlton [Thu, 28 Jan 2016 22:46:36 +0000 (17:46 -0500)]
webstaff: ensure that volcopy editor saves copy part maps

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: add circulating library as optional column in holdings view
Galen Charlton [Thu, 28 Jan 2016 19:46:15 +0000 (14:46 -0500)]
webstaff: add circulating library as optional column in holdings view

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: copy template fix
Galen Charlton [Thu, 28 Jan 2016 19:32:56 +0000 (14:32 -0500)]
webstaff: copy template fix

This patches fixes applying the volume portion of a
template when in the copy template tab of the volume/copy
editor.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: fix updating stat cats in the volume/copy editor
Galen Charlton [Thu, 28 Jan 2016 19:13:27 +0000 (14:13 -0500)]
webstaff: fix updating stat cats in the volume/copy editor

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: expose ascecm to open-ils.pcrud
Galen Charlton [Thu, 28 Jan 2016 19:11:08 +0000 (14:11 -0500)]
webstaff: expose ascecm to open-ils.pcrud

Doing this allows the volume/copy editor to use
pcrud to retrieve copies with stat_cat_entries fleshed.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: fix selection of stat cats in copy editor and templates
Galen Charlton [Thu, 28 Jan 2016 17:44:37 +0000 (12:44 -0500)]
webstaff: fix selection of stat cats in copy editor and templates

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: fix setting default copy status for new items
Galen Charlton [Wed, 27 Jan 2016 22:36:37 +0000 (17:36 -0500)]
webstaff: fix setting default copy status for new items

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: consolidate code for generate new copies
Galen Charlton [Wed, 27 Jan 2016 21:38:33 +0000 (16:38 -0500)]
webstaff: consolidate code for generate new copies

This patch does a bit of refactoring to get rid of
some copy-and-paste code that creates new copies
in the volume/copy editor.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: fix console noise spawned by OU selector
Galen Charlton [Tue, 26 Jan 2016 22:44:32 +0000 (17:44 -0500)]
webstaff: fix console noise spawned by OU selector

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: tweak setting default classification scheme in volcopy editor
Galen Charlton [Tue, 26 Jan 2016 22:34:03 +0000 (17:34 -0500)]
webstaff: tweak setting default classification scheme in volcopy editor

With this patch, the volume/copy editor creation default for
classification scheme now can have a value of "Use Library Setting".
If this is in effect, the default classification scheme for new
volumes is taken from the library setting.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: add more volume transfer options
Galen Charlton [Tue, 26 Jan 2016 22:01:21 +0000 (17:01 -0500)]
webstaff: add more volume transfer options

The volume/copy editor now has the following new actions:

  * (Transfer) Volumes to Previously Marked Record
  * (Transfer) Volumes to Previously Marked Record and Library

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: add a Transfer Copies to Previously Marked Library action
Galen Charlton [Tue, 26 Jan 2016 21:13:27 +0000 (16:13 -0500)]
webstaff: add a Transfer Copies to Previously Marked Library action

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: grab default call number from bib when creating volume
Galen Charlton [Tue, 26 Jan 2016 19:06:57 +0000 (14:06 -0500)]
webstaff: grab default call number from bib when creating volume

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: save copy templates now unconditional
Galen Charlton [Tue, 26 Jan 2016 18:06:14 +0000 (13:06 -0500)]
webstaff: save copy templates now unconditional

The save copy templates button in the volume/copy editor
no longer requires that a working template be active; this
way, users can save the set of templates after an import
without having to select one of them first.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: implement import/export of copy templates
Galen Charlton [Mon, 25 Jan 2016 23:34:54 +0000 (18:34 -0500)]
webstaff: implement import/export of copy templates

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: add egJsonExporter directive
Galen Charlton [Mon, 25 Jan 2016 23:30:48 +0000 (18:30 -0500)]
webstaff: add egJsonExporter directive

This directive is used to allow a piece of JSON
to be saved to the user's filesystem.  For example:

<span eg-json-exporter container="foo" default-file-name="example.json">Export</span>

specifies a button that, when click, allows the user to save
the contents of the scope variable foo.  The dialog that
appears will use "example.json" as the default filename.

This also adds a new dependency, the MIT-licensed
 angular-file-saver service written by Philipp Alferov:

https://alferov.github.io/angular-file-saver/

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: style file input buttons more nicely
Galen Charlton [Mon, 25 Jan 2016 20:41:52 +0000 (15:41 -0500)]
webstaff: style file input buttons more nicely

Using technique devised by Cory LaViska per
http://www.abeautifulsite.net/whipping-file-inputs-into-shape-with-bootstrap-3/

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: fixed client-side sorting of names in add-to-bucket dialog
Galen Charlton [Thu, 21 Jan 2016 22:42:47 +0000 (17:42 -0500)]
webstaff: fixed client-side sorting of names in add-to-bucket dialog

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: alphabetize status and location dropdowns in copy-editor
Galen Charlton [Thu, 21 Jan 2016 22:31:46 +0000 (17:31 -0500)]
webstaff: alphabetize status and location dropdowns in copy-editor

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: display floating group correctly in item status
Galen Charlton [Thu, 21 Jan 2016 22:20:43 +0000 (17:20 -0500)]
webstaff: display floating group correctly in item status

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: add copy editor support for floating field
Galen Charlton [Thu, 21 Jan 2016 22:15:53 +0000 (17:15 -0500)]
webstaff: add copy editor support for floating field

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: rework Local Administration
Jason Etheridge [Mon, 4 Jan 2016 20:51:14 +0000 (15:51 -0500)]
webstaff: rework Local Administration

maintain links and labels as a data structure

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: tweak how element IDs in MARC editor are generated
Galen Charlton [Thu, 29 Oct 2015 23:24:35 +0000 (23:24 +0000)]
webstaff: tweak how element IDs in MARC editor are generated

For new records (or records that for whatever reason lack
a 901 field), use '0' as a dummy value for the record
ID when constructing element IDs (e.g., r0f5, r0f10sf0value,
etc.).  This fixes a problem where setCaret() couldn't
successfully change focus after adding a field or subfield
to a new record.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: users with negative balance
Bill Erickson [Mon, 5 Oct 2015 02:05:58 +0000 (22:05 -0400)]
webstaff: users with negative balance

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: Wire up statcat filtering in item attribute editor
Mike Rylander [Mon, 26 Oct 2015 16:13:45 +0000 (12:13 -0400)]
webstaff: Wire up statcat filtering in item attribute editor

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: open title from item status in a new tab
Mike Rylander [Fri, 23 Oct 2015 20:34:16 +0000 (16:34 -0400)]
webstaff: open title from item status in a new tab

Also, iindicate that will happen with an icon by the title link

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: Move new Vol Transfer UI menu option to "misc" section to avoid confusion
Mike Rylander [Fri, 23 Oct 2015 20:25:19 +0000 (16:25 -0400)]
webstaff: Move new Vol Transfer UI menu option to "misc" section to avoid confusion

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: Use the record id to fetch the summary record data in item status
Mike Rylander [Thu, 22 Oct 2015 20:03:26 +0000 (16:03 -0400)]
webstaff: Use the record id to fetch the summary record data in item status

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: for selected grids, allow display of 10000 items
Mike Rylander [Thu, 22 Oct 2015 15:42:15 +0000 (11:42 -0400)]
webstaff: for selected grids, allow display of 10000 items

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: enable copy edit link from opac view
Mike Rylander [Wed, 21 Oct 2015 21:53:21 +0000 (17:53 -0400)]
webstaff: enable copy edit link from opac view

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1508477: bump up minimum version of angular-hotkeys
Galen Charlton [Wed, 21 Oct 2015 17:39:08 +0000 (17:39 +0000)]
LP#1508477: bump up minimum version of angular-hotkeys

Version 1.3.0 of angular-hotkeys is now required, as this
is the version that introduces the ability the specify
that hotkeys can be used even when inputs, selects,
and textareas have focus.

After applying the patch (and doing a bower update,
grunt uglify, and install), one can test hotkeys in
the web staff client by (for example):

- starting from the home page and hitting F1 to
  get to patron search by barcode
- hitting F5 to get the item status page

Note that if the page embeds the OPAC or a Dojo
interface using an egEmbedFrame, if any element
of the iframe's content has focus, the hotkeys won't
work -- that will be the subject of another patch.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: add another option for choosing volume transfer library
Galen Charlton [Tue, 20 Oct 2015 20:08:44 +0000 (20:08 +0000)]
webstaff: add another option for choosing volume transfer library

The actions menu on the holdings view now has two ways of
specifying a library to transfer volumes to:

 * Library as Volume Transfer Destination

   Pops up a modal with a library selector.

 * Library from Selection as Volume Transfer Destination

   Uses the currently selected volume's owning
   library to specify the target library.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agowebstaff: keep $scope.{pre,suf}fix as acnp/acns objects
Galen Charlton [Tue, 20 Oct 2015 19:39:10 +0000 (19:39 +0000)]
webstaff: keep $scope.{pre,suf}fix as acnp/acns objects

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>