Dan Scott [Fri, 27 May 2011 17:51:59 +0000 (13:51 -0400)]
Fix rendering of MFHD records when ownership is out of scope
Dojo would die with a null reference error when an MFHD record
was retrieved that was outside of the current OU search scope.
For example, if a given bib record had one linked MFHD record
for BR1, and one linked MFHD record for BR4, the details page
would choke trying to draw the MFHD holdings in a scope that
only included BR1 and end up drawing nothing. Ungood.
Moving the ownership check and invoking _holdingsDrawMFHD()
only after ensuring that the record is within our scope resolves
the problem.
Mike Rylander [Thu, 26 May 2011 20:03:39 +0000 (16:03 -0400)]
Patch suggested by Jason Boyer for LP#788601
The <script> tag for the chrome frame message has a misplaced semicolon,
which causes an odd looking display issue in Internet Explorer. I
realize that ideally very few people will be using IE, but even if
they're not interested in a quality browsing experience we should
probably put our best face forward.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Etheridge [Thu, 26 May 2011 07:55:26 +0000 (03:55 -0400)]
Don't rely on call number column being rendered before prefix/suffix/class columns. Also, remove prefix/suffix/class from the check-in interface, since those column definitions can make extra network calls and we want that interface to be as fast as possible.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Dan Wells [Tue, 24 May 2011 14:53:09 +0000 (10:53 -0400)]
Make label_class on any new call numbers default to org_unit setting
Evergreen 2.0 added a label_class column to the call number table with
one major purpose being the generation of correct sort keys. You can
also specify a default label class as an org unit setting. However:
1) There are no interface elements for setting the label class of an
individual call number.
2) The default setting from the actor.org_unit_setting
'cat.default_classification_scheme' value, if set, is not consulted
(that is, not set in the call number table) when new call numbers are
created.
These two facts together greatly reduce the utility of this very
valuable feature, as all new call numbers end up in the 'Generic' class.
While #1 has been addressed in 2.1+, there is still work to be done in
setting this class on import. Also, which interface parts (if any) make
it back to 2.0 is subject to debate.
This commit addresses #2.
See lp #787150.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Dan Scott <dan@coffeecode.net>
Jason Etheridge [Tue, 24 May 2011 18:55:57 +0000 (14:55 -0400)]
remove restriction on resetting pw to random number when Use Phone Password setting is active. uEditMakeRandomPw will still get called for new users, but should get overwritten once a phone number is entered
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Dan Wells [Mon, 23 May 2011 13:30:43 +0000 (09:30 -0400)]
Apply Apache file expiration to the current official Javascript content type
At least on Ubuntu 10.04, Javascript files are generally delivered with a
Content-Type header of 'application/javascript', not
'application/x-javascript'. This change applies the much shorter 18 hour
expiration to the affected files, rather than allowing them to default to
1 month.
The action_trigger event def template for printing acq invoices was
syntatically broken. The collapse filter isn't important per se, but
it balances the extra [% END %] at the bottom of the template, and it
was there originally, and I see no reason not to put it back.
Incidentally, maybe the database upgrade script in the commit will be
the first in master to successfully use the new
evergreen.upgrade_deps_block_check() function ?
Jason Etheridge [Fri, 20 May 2011 16:45:08 +0000 (12:45 -0400)]
Restore the Replace Barcode option in Holdings Maintenance, as the Edit Item menu will only serve the same duty if the unified volume/copy editor is activated via org setting (otherwise, it's just the Item Attribute Editor). klussier++ for the catch
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Jason Etheridge [Fri, 20 May 2011 09:30:55 +0000 (05:30 -0400)]
align the batch edit menus in the vol creator. mostly aesthetic, but can save horizontal real estate, so usability as well for horizontal vol/copy editor.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Jason Etheridge [Fri, 20 May 2011 09:04:17 +0000 (05:04 -0400)]
usability tweak for controlling screen real estate, in unified vol/copy editor don't embed the the Record Summary in the vol editor, but in the main wrapping UI. Also move CN batch edit bar into groupbox
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Jason Etheridge [Fri, 20 May 2011 07:55:37 +0000 (03:55 -0400)]
usability tweak, pull the Create button out of the embedded interfaces and into the wrapping UI for the horizontal variant of the unified vol/copy editor
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Fix a problem with open-ils.circ.holds.retrieve_all_from_title
Anoop Atre spotted this bug that's triggered by selecting "View Holds"
from "Actions for Selected Record" in the catalog seen through the staff
client.
Said method would error out like this:
[2011-05-20 10:04:03] open-ils.circ [ERR
:31866:CStoreEditor.pm:109:13058333633194115] editor[0|1] request error
open-ils.cstore.direct.serial.issuance.id_list.atomic :
{"subscription":[]} : Exception:
OpenSRF::DomainObject::oilsMethodException 2011-05-20T10:04:03
OpenILS::Utils::CStoreEditor
/openils/lib/perl5/OpenILS/Utils/CStoreEditor.pm:412 <500> Severe query
error -- see error log for more details
because when trying to gather issuance-type holds, it didn't properly test
whether there actually were any subscriptions and issuances related to
the bib record in question.
We must not force P-type holds as not all copies may not use parts. Imagine a situation where
only one library breaks up a season of Seinfeld by using a part per DVD, and all others leave
them bound and therefore need no part designations.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Add permission checking for updating and deleting volumes.
This addresses LP #784062 reported by Ben Shum, and I think others?
Creating volumes was already covered. The ability to delete volumes
without permission would be less often an issue in practice since you
would need permission to delete the volume's copies before you could
delete the volume itself.
Dan Scott [Wed, 18 May 2011 17:18:14 +0000 (13:18 -0400)]
Make Perl 'make check' work without 'make all'
Factor the build of Build from Build.PL into its own
make target and then make that target a prereq for the
other make targets so that we make Build from Build.PL
when we build Makefile from Makefile.am and run 'make check'
Jason Etheridge [Wed, 18 May 2011 05:05:17 +0000 (01:05 -0400)]
Include call number prefix/suffix in display and sorting of holds for Print Full Pull List (Alternate strategy). Also fix things so that we're sorting on the label_sortkey for call number, and not the label. So, for this interface, the hard-wired sort order is Copy Location Order (as defined by Admin -> Local Administration -> Copy Location Order), Call Number Prefix, Call Number Label, Call Number Suffix, and Hold Request time.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Jason Etheridge [Wed, 18 May 2011 02:27:07 +0000 (22:27 -0400)]
have the call number checkbox for pocket labels include prefix/suffix. A %call_number% macro is still available for the bare call number label without affixes
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Jason Etheridge [Wed, 18 May 2011 02:24:21 +0000 (22:24 -0400)]
Can't use encodeURI and decodeURI for everything with persist_helper (in particular, something like "%macro1% %macro2%" as a custom entry in the label interface), so try/catch them and fall back to the original behavior.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Database tables/access functions for prefix/suffix info
Table: config.barcode_completion
Function: evergreen.get_barcodes
Takes org unit, context, and input barcode
Context is a string and can contain:
asset - asset.copy barcodes
serial - serial.unit barcodes
actor - actor.usr (via actor.card) barcodes
booking - booking.resource barcodes
Special case: asset and serial both in context
Returns non-serial asset entries as asset
Returns serial entries as serial
Type for function return: evergreen.barcode_set
With editing interface: Admin->Local Admin->Barcode Completion
OpenSRF Call: open-ils.actor.get_barcodes
Basically a passthrough to the database function
Checks for permissions:
STAFF_LOGIN - To do anything
VIEW_USER - At home_ou of the user owning the returned
barcode when in actor context
Add get_barcode to menu.js and to xulG in a number of places
Takes a window handle, a context, and an input barcode
Passes the current OU, the context, and the input barcode to the db
If multiple results come back it pops up a dialog
Returns boolean false on no results
Returns "user_false" on dialog cancel
Returns an object with type, id, barcode on success
If dialog was brought up, returns data used to populate button
Add option for looking up actors at checkout
Org unit setting: Load patron from Checkout. Default: Don't.
Call sites for get_barcode:
Lookup Patron By Barcode (actor only)
OPAC's Staff Client Place Hold (actor only)
Checkout (asset only by default, with actor if above option set)
Checkin (asset only)
Item Status (asset only)
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Tue, 17 May 2011 04:29:47 +0000 (00:29 -0400)]
LP#783486: Improve authority lookup performance
Testing showed that the two indexes added herein improve
authority lookup performance radically; on a 16 GB RAM
database server with 1.1M records, lookup times decreased
from 5500 ms to 0.223 ms. Recommended, would EXPLAIN ANALYZE
again.
Jason Etheridge [Mon, 16 May 2011 16:12:40 +0000 (12:12 -0400)]
persist partial changes to new copies in vol/copy editor has new copies are gathered.
In other words, you can do something like enter 5 in the "# of Copies" field, enter the first barcode (say b1), edit an attribute (say, set Circulate = No), and then enter a second barcode (b2). Previously, the changes made to b1 would be lost as b2 was entered (or as other movement around the barcode entry textboxes happened) and both copies would get a Circulate = Yes, but now in this scenario, you would see 1 copy set to No and 1 copy set to Yes for the Circulate attribute.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
miker [Fri, 13 May 2011 17:30:47 +0000 (17:30 +0000)]
Patch from Ben Ostrowsky (LP#782268) to simplify seed/example permission setup and move one step towards being able to rid ourselves of permission.perm_list.id
dbwells [Fri, 13 May 2011 16:01:04 +0000 (16:01 +0000)]
A bevy of MFHD bug fixes (and test cases)
1) Remove hard-coded 'gap' text from format_part()
2) Honor $ypm## for chron_to_date() for annuals
3) Removed overly simple check on $w as digit
4) Allow for combined chronologies other than 2nd level
5) Make calendar changes trump $u counts
6) Honor issue restarts at calendar changes
7) Rudimentary support of $u counts for non-restarting issue numbering
8) Special interpretation of $yps for early winters (i.e. winter is the first season of the calendar year)
9) Teach chron_to_date() about early winters
The last two points deserve some special attention. A large number of journals consider 'Winter' to be the first season of the year, so Winter 2011 means (roughly) January 2011, not December 2011. However, there is no explicit way to indicate this in the standard, and also the code relies in many ways on the fact that 24 (chronology code for winter) is greater than 21 (code for spring). To work around this, we are interpreting a certain ambiguous pattern in a particular way. Specifically, if you set $w to a digit, then set $y to 'ps24,21,22,23' (or some variation with '24' as the first value), you will get this winter-first behavior. Also, the season is treated internally as '20' then converted to '24' when processing is completed.
erickson [Mon, 9 May 2011 18:27:42 +0000 (18:27 +0000)]
Invoice from LI seeds invoice data
* When creating a new invoice from a lineitem, seed the invoice with
provider data from the lineitem.
* Make money textbox's a little larger to accommodate larger sums
without scrolling
* Truncate long titles in lineitem summary view
Author: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Jason Etheridge <jason@esilibrary.com>
git-svn-id: svn://svn.open-ils.org/ILS/trunk@20446 dcc99617-32d9-48b4-a31d-7c20da2025e4
dbs [Thu, 5 May 2011 18:38:36 +0000 (18:38 +0000)]
Use valid JSON in Dojo i18n for Searcher.js
Dojo i18n processing scripts require valid JSON (quoted keys in hashes),
even though Dojo itself is more relaxed and accepts unquoted keys. So,
do the i18n dance here.
Signed-off-by: Dan Scott <dscott@laurentian.ca>
git-svn-id: svn://svn.open-ils.org/ILS/trunk@20437 dcc99617-32d9-48b4-a31d-7c20da2025e4