now we can retrieve a tree from the server and use it as the basis of
our dijit.Tree widget. Still work to be done. Can't save anything yet.
Note to self: borrow dojo dnd's "copy" operation (as opposed to move) to
mean replacing a node in the tree, rather than adding to the tree.
Re the permissions I changed, actual users of Evergreen hate having as
much granularity as there was before, and it just confuses people trying
to figure out what perms to give to whom.
Note to self 2: add ADMIN_IMPORT_MATCH_SET to ppl
Usability
1) the tree editor will only let bool_op nodes have children
2) you can't put the unset "dummy" node from the leftside onto the tree
incidentally, gave fm objects a toString method that identifies their
classname hint, as an aid to debugging in general
Dan Scott [Tue, 5 Jul 2011 15:08:31 +0000 (11:08 -0400)]
LP805971: Specify UTF8 encoding in password reset templates
As reported by Liam Whalen in Launchpad bug 805971: "The file
/openils/var/template/password-reset/reset-form.tt2 does not display
utf-8 characters. I modified it to include '<meta
http-equiv="Content-Type" content="text/html; charset=UTF-8" />' inside
the <head> tag, and the fr-CA version of the page now displays
correctly."
I duplicated the problem in Firefox 5 and confirmed that the addition of
the META tag corrects the problem.
Mike Rylander [Fri, 1 Jul 2011 15:50:25 +0000 (11:50 -0400)]
Normalize facet values
Spotted by Lebbeous Fogle-Weekley, facet values were not being normalized. This is due to changes in how facets are stored in 2.1+. This alternate implementation mirrors the way search_field index definitions work, which is a bit cleaner than inserting normalization into the field extraction process.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Etheridge [Mon, 13 Jun 2011 19:51:18 +0000 (15:51 -0400)]
add Print button and associated template for Holdings Maintenance
wire up List Actions for Holdings Maintenance
* give List Actions support for nested rows in trees
* give util.list.print support for nested rows in trees
* we can leverage bib_brief_overlay to populate params.data for printing instead of fleshing out DOM
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Jason Etheridge [Thu, 9 Jun 2011 21:27:21 +0000 (17:27 -0400)]
Hold Notes column
New column in holds list UIs that allows staff to see at a glance the
(initial) text content of attached hold notes. In some cases, this
helps avoid the need to open the dedicated notes UI.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Jason Etheridge [Wed, 29 Jun 2011 16:12:31 +0000 (12:12 -0400)]
Staff UI for batch holds on items.
"Request Item" action in Holdings Maintenance, Item Status, and Copy
Buckets is the entry-point. Works on selected items in the first two
interfaces and all items in the bucket for the latter. UI allows you
to place Copy type, Recall type, or Force type holds. It reports the #
of successes and breaks down the failures by failure event. You can
retry failures (optionally changing some of the request parameters
like Pickup Library) or "override" them. Clicking the hyperlink for
a set of failures will show the items involved in a new Item Status tab.
More technical blurbs from squashed commits:
* "open-ils.circ.holds.test_and_create.batch" Takes an argument hash and a list of targets. All the holds created will be identical except for the targets.
* retrieve and display Recall and Force holds like Copy holds
* give the Item Status UI an inefficient way to handle being passed copy id's (via xulG) in addition to barcodes
* wire-up item hold request ui
* place hold UI
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Michael Peters provided a patch to add some missing labels...
... to a key acquisitions interface. It works. Also fixed
some unclosed tags while I was at it.
Wasn't sure whether to copy and paste Michael's sign-off or what, but
here's the link to his original patch for purists:
https://launchpadlibrarian.net/74191964/0001-LP802578-Acquisitions-Batch-copy-update-missing-head.patch
Dan Scott [Fri, 24 Jun 2011 14:44:43 +0000 (10:44 -0400)]
Fix broken images for items without ISBNs in search results
The search results code happily sets the src attribute of the cover
image to an empty string (as returned by cleanISBN()) if currentISBN has
not been defined (which is generally the case if an item doesn't have an
ISBN, such as a DVD or a thesis or an old book).
Protect against the empty string and set the src attribute to
'/opac/images/blank.png' to avoid broken image indicators in search
results.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Etheridge [Mon, 27 Jun 2011 18:41:52 +0000 (14:41 -0400)]
Saner behavior for Actions for Selected Holds -> Transfer to Marked Title
* Transfer the actual selected title holds, rather than all title holds for
the bibs referenced by those selected.
* middle layer method for changing the target and resetting specified holds
* label change for clarity, Transfer All Title Holds
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Bill Erickson [Fri, 24 Jun 2011 15:27:26 +0000 (11:27 -0400)]
Option to generate lacking overdues on lost checkin
New org unit setting "circ.lost.generate_overdue_on_checkin".
This org unit setting enables retroactive overdue fine generation for
lost item checkin. When enabled, the system will generate overdue fines
starting from the date of the last created overdue fine for the
circulation and working its way up to the checkin time or stopping at
the max fine amount (consistent with regular overdue fine generation).
This differs from the existing org unit setting
"circ.restore_overdue_on_lost_return", which only un-voids existing
overdue fines.
Consider an item whose due date is the 1st, that gets marked lost on the
7th, then checked in on the 14th. If set,
"circ.restore_overdue_on_lost_return" would un-void the fines created up
to the 7th and "circ.lost.generate_overdue_on_checkin" would create new
overdue fines from the 7th up to the 14th (or up to the max fine
amount).
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Etheridge [Fri, 24 Jun 2011 19:40:32 +0000 (15:40 -0400)]
with scan missing pieces, retarget affected holds prior to recirculating to previous patron, lest the checkout reset the holds for us without retargeting
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Fri, 24 Jun 2011 23:29:30 +0000 (19:29 -0400)]
Show human label for Internet Access Level in Patron Search
Looks like fm_columns uses a prefix of "au_" for the column name defined
in util.js. Therefore, au_net_access_level lets us define the label to
display in place of the integer value.
Jason Etheridge [Tue, 31 May 2011 19:46:50 +0000 (15:46 -0400)]
Specify the display field for linked objects with fm_columns
If a display field isn't specified, it defaults to the key field,
which is essentially the same as not fleshing the object in the first
place. Let me know if fieldmapper has or gains a way of specifying
such "display" fields, and we can augment fm_columns to use it as well.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Dan Scott <dan@coffeecode.net>
Dan Scott [Fri, 24 Jun 2011 15:35:10 +0000 (11:35 -0400)]
Support Fedora 15 as a target in Makefile.install
Add Fedora 15 to the Makefile.install as a simple clone of the Fedora 14
target for now. Correct Makefile.install target names in README, and
point out that nothing special is required for Fedora 15 for PostgreSQL
9 support.
While we're in the README, rip out the Dojo toolkit install info as
packaged releases include Dojo now (we retain the developer instructions
for installing Dojo manually for git users, of course).
Jason Stephenson [Mon, 20 Jun 2011 18:07:54 +0000 (14:07 -0400)]
Add checkout override to SIP2 checkout & renew.
OpenILS::SIP::Transaction::Checkout was modified to allow for
the override of certain, configurable events much in the same
way that checkin currently does overrides.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Ben Webb [Mon, 13 Jun 2011 12:31:53 +0000 (13:31 +0100)]
Respect DESTDIR during the build process
Add $(DESTDIR) to paths it is currently missing from
Manually specify the apxs2 install location so that DESTDIR can be prepended
Attempt to create the apache directory if it does not exist
Signed-off-by: Ben Webb <bjwebb67@googlemail.com> Signed-off-by: Dan Scott <dan@coffeecode.net>
Bill Erickson [Thu, 2 Jun 2011 18:44:28 +0000 (14:44 -0400)]
Option to force-delete copies during volume delete
Added a "force_delete_copies" option to
open-ils.cat.asset.volume.fleshed.batch.update* which forces deletion of
all copies attached to a volume if the volume is being deleted. There
are still scenarios that will result in copies not being deleted
(e.g. copy is checked out), in which case the override option will
behave here the same way it behaves in
open-ils.cat.asset.copy.fleshed.batch.update*
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Bill Erickson [Fri, 3 Jun 2011 13:27:26 +0000 (09:27 -0400)]
Permission to control patron-collections-exempt
Adds a new permission 'UPDATE_PATRON_COLLECTIONS_EXEMPT' which controls
who can toggle the circ.collections.exempt user setting in the patron
registration interface.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Wed, 22 Jun 2011 14:48:58 +0000 (10:48 -0400)]
Check if hold is really available in Trigger::Validator.
Add checks for shelf time and no fulfillment time in
HoldIsAvailable in OpenILS::Application::Trigger::Validator.
We've had some issues with poorly migrated data and people
messing with holds that causes the original logic to trigger
for unfilled holds. Plus, the extra precaution of checking
more precise conditions of an actually filled hold can't hurt,
can it?
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Tue, 21 Jun 2011 21:09:58 +0000 (17:09 -0400)]
Further clean-up of Serials interfaces
When trying to come up with good tests, found a few bugs (imagine!).
Some have been nagging for a while now.
1) For 'MFHDDrawn' event, make sure it runs if deleting the last
serials data of any kind for that record (to unpopulate the menus
properly)
2) Make sure global mfhd member (g.mfhd) is cleared in the same case
(i.e. deleting the last serials data for that record)
3) Add a string to better indicate when no MFHD records are available
for 'Legacy Record Entry' drop-down
4) Convert submitted empty drop-down values to 'null' as needed in
distribution editor
5) Mark subscription 'start date' as a required field
6) Make serial virtual records better handle deleted 'legacy record
entries' attached to distributions, and also expose non-deleted
record entries even if in 'use_sdist_only' summary mode
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Dan Wells [Fri, 17 Jun 2011 19:26:39 +0000 (15:26 -0400)]
Better coordination of MFHD/SRE adding/deleting
Adding or deleting MFHD records from the XUL menus requires
coordinating the OPAC display, the XUL menus, and the Serial
Control distribution editors. The previous code frequently
required some non-obvious manual refreshing to make it work.
This commit keeps them in sync using custom events instead.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Dan Scott [Wed, 22 Jun 2011 03:31:01 +0000 (23:31 -0400)]
Add unit tests for LP 800269 - holdings for captions only
Running "prove -l lib" in Open-ILS/src/perlmods shows that the two new
unit tests pass, whereas they fail using the previously installed
version of MFHD.pm. Good evidence that the fix from dbwells does indeed
solve the reported bug.
Dan Wells [Tue, 21 Jun 2011 15:44:10 +0000 (11:44 -0400)]
MFHD compressed holdings short-circuit logic
If you attempt to get compressed (or uncompressed) holdings from
a MFHD record with only a caption, the code should short-circuit
and return an empty list.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Dan Scott <dan@coffeecode.net>
Record the date a copy first became "active" after creation in active_date.
Offer Org Unit setting for using the active date for age hold protection.
Any copy without an active_date, with age hold protect using it, will be
protected until it has an active date. Regardless of create_date.
Circ/Hold matrix can match on item age based on active_date.
Active is defined as entering a status with copy_active set to true. By default:
Available
Checked out
Reshelving
On holds shelf
ILL
Reserves
On reservation shelf
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Mon, 13 Jun 2011 01:24:01 +0000 (21:24 -0400)]
Refactor cover image fetching in OpenLibrary added content
We were only trying to retrieve images from the items array in the
OpenLibrary response, but there are only items if the OpenLibrary has
online editions available - whereas there may be covers attached to the
metadata for the work. So now we make the metadata work harder.
Also, cut down on broken images in search results by short-circuiting if
OpenLibrary doesn't have a matching record for a given ISBN.
Thanks to Bill Erickson for pointing out that there were a lot of blank
images getting returned due to the items reliance.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Thu, 2 Jun 2011 18:40:57 +0000 (14:40 -0400)]
Teach result_common.js to OpenLibrary requests
Now that the proxied OpenLibrary requests are working, teach
result_common.js to use them and get an advantage from being an
access-rights-authenticated IP address (if applicable).
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Thu, 2 Jun 2011 17:03:22 +0000 (13:03 -0400)]
Support proxying bulk Read API requests for access rights
Using IP-based access right determination runs into problems with a pure
JavaScript API, as users may be accessing the API from any location in
the world. Proxying the requests via the library system server ensures
that the access rights for users of those libraries are properly
displayed.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Thu, 2 Jun 2011 16:25:33 +0000 (12:25 -0400)]
Return transparent images if no cover art is found
For now the URL is hardcoded; later on we'll refactor AddedContent.pm to
give us access to more information about our Apache environment to
default to something much, much smarter.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Thu, 2 Jun 2011 13:56:05 +0000 (09:56 -0400)]
Get OpenLibrary covers from any related items
Cover requests for exact matches sometimes fail to produce results, but
covers from similar items (other editions of the same work) are often
available. Take that!
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Thu, 2 Jun 2011 05:42:49 +0000 (01:42 -0400)]
Don't make OpenLibrary requests without an ID
It is rather silly to make requests if you have not pulled any IDs out
of the records to pass along to OpenLibrary, so do not do that. Also
refactor and add a bit more defensiveness.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Wed, 1 Jun 2011 05:58:27 +0000 (01:58 -0400)]
Implement OpenLibrary ebook availability via Ajax
George Oates provided an OpenLibrary GIF to use for the
links, and we can drop the links right into the block of
white space between copy counts and bibliographic info.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Fri, 17 Jun 2011 16:30:12 +0000 (12:30 -0400)]
Set AC timeout value to 3 seconds and describe tradeoffs
As discussed on the Evergreen Development mailing list, the higher the
AC timeout value, the greater the risk of a denial of service. 30 is
therefore too high to be comfortable as a default setting, so we're
dropping it down to 3 as a compromise between the original value of 1
(which resulted in a number of request timing out where added content
was actually available) and the much-less-safe 30.
In addition, we document inline the risk/reward of different values and
provide some justification for the default value that we chose, so that
Evergreen system administrators will have guidance when tweaking this
setting.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Mon, 20 Jun 2011 15:16:21 +0000 (11:16 -0400)]
DROP biblio.reingest_uris() after use
We will hopefully only need to reingest URIs in bulk once, and can
therefore DROP the biblio.reingest_uris() function after it has been
successfully invoked.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Dan Scott [Mon, 20 Jun 2011 14:56:44 +0000 (10:56 -0400)]
Protect URI reingest from failure due to malformed XML
In an ideal world, there would be no malformed XML. But our world is the
real world of libraries, and while the well_formed_xml() protects
against malformed XML in Evergreen 2.0 systems, in some cases bad XML
has been able to find its way into Evergreen systems in the past.
A single biblio.record_entry row containing malformed XML in the marc
column will prevent the call to reingest URIs from succeeding. By
limiting the set of records to those with well-formed XML, we can
increase the chance of the URI reingest succeeding at the cost of more
processing time.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Galen Charlton <gmc@esilibrary.com>