Dan Scott [Thu, 30 Jun 2011 17:57:59 +0000 (13:57 -0400)]
Move templates out of a web-served directory
It has always been dicey to keep templates in the web-served
/openils/var/web directory; with the rise of config.tt2 it is past time
to get the templates out of there.
Dan Scott [Wed, 29 Jun 2011 21:05:46 +0000 (17:05 -0400)]
Don't include non-existent elements in search results
It does not make sense to clutter HTML output with table rows that are
destined to remain hidden and empty of any data; therefore, instead of
setting the class to "hide_me" when there is no value to display, just
do not display the row at all.
Dan Scott [Wed, 29 Jun 2011 17:20:05 +0000 (13:20 -0400)]
Merge in the TT Resolver plugin code
Add the plugin to the MANIFEST to ensure that it gets installed
appropriately, and pull in the appropriate changes to the record summary
and search results pages.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Art Rhyno <artrhyno@uwindsor.ca>
Dan Scott [Wed, 29 Jun 2011 17:05:43 +0000 (13:05 -0400)]
Add SFX integration into base TT OPAC, with config.tt2 entries
If openurl.enabled is true, then resolve ISBNs and ISSNs and display the
corresponding electronic resources that we have available. Note that if
there is a subfield 9 with SFX in either the ISBN or ISSN, then that is
the preferred ISSN to use; otherwise we fall back to resolving all of
the ISSNs in the record.
Dan Scott [Wed, 29 Jun 2011 04:01:10 +0000 (00:01 -0400)]
Don't display located URIs in record details copy table
The more correct approach would be to modify the JSON query to exclude
copies from volumes where label = '##URI##', or to cut over to the in-db
unapi-based xml_holdings + acp approach - but for now this is a quick
and dirty fix that can't possibly hurt.
Dan Scott [Wed, 29 Jun 2011 03:15:52 +0000 (23:15 -0400)]
Improve copy display in search results
Even though we were trying to root our findnodes() call at a specific
point in the DOM, the XPath was retrieving all volume elements in the
entire DOM and we were therefore getting duplicate items listed in the
search results. Accordingly, use the volume ID to root the search to the
specific volume.
Also, offer designers a bit more of an opportunity to style the holdings
by placing them in a table as well. Bonus points for using thead/th, eh?
Dan Scott [Tue, 28 Jun 2011 21:04:08 +0000 (17:04 -0400)]
Add RefWorks export support for a record details page
This marks the addition of a config.tt2 file in parts that can be a
consolidation point for skin-specific settings, such as enabling
particular behaviour, setting proxy information, specific URLs, etc.
RefWorks support is currently driven by the marctxt format in supercat;
TBD if we can easily point at an in-db unapi variation of this. Also,
yet to be done is addition of RefWorks export for lists and search
results.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Dan Scott <dan@coffeecode.net>
Dan Scott [Tue, 28 Jun 2011 18:19:13 +0000 (14:19 -0400)]
Take advantage of Wekbit speech input
The x-webkit-speech attribute enables speech input on current versions
of Chrome. It's a frill, and I'm not sure we really want entire
libraries of patrons mumbling to themselves more than we already have,
but it's a low-cost frill so let's take advantage of it.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Dan Scott <dan@coffeecode.net>
Dan Scott [Tue, 28 Jun 2011 18:09:26 +0000 (14:09 -0400)]
Display located URIs in record details page
We can reuse the work put into misc_util.tt2 to generate args.uris in
the display within the record details page. In the absence of good
design, we add a basic class and matching CSS to style.css in the hopes
that a design-oriented person can come along behind us and make the URIs
stand out appropriately.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Dan Scott <dan@coffeecode.net>
Dan Scott [Tue, 28 Jun 2011 17:24:37 +0000 (13:24 -0400)]
Display multiple copies and URIs per record in search results
By building up a list of hashes in args.holding instead of a single
result, we can display multiple copies in search results.
Similarly, adding args.uri to misc_util.tt2 gives us the list of located
URIs to display in search results. Note that the XPath for holdings_xml
in in-db unapi will change slightly.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Dan Scott <dan@coffeecode.net>
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>
Dan Scott [Mon, 27 Jun 2011 18:18:39 +0000 (14:18 -0400)]
Meaningful title elements for record details and search results
Rather than the generic "Record Details" and "Search Results", populate
the <title> element with the actual title of the record or the search
query, respectively.
We punt on advanced search results for now, until we can parse the array
into something usable.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Mon, 27 Jun 2011 18:18:39 +0000 (14:18 -0400)]
Meaningful title elements for record details and search results
Rather than the generic "Record Details" and "Search Results", populate
the <title> element with the actual title of the record or the search
query, respectively.
We punt on advanced search results for now, until we can parse the array
into something usable.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Dan Scott <dan@coffeecode.net>
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>
Dan Scott [Mon, 27 Jun 2011 16:32:11 +0000 (12:32 -0400)]
The TT OPAC proof of concept is dead code - remove it
Leading up to the TT OPAC dev fest, some people were confused by the
opac-poc directory. It hasn't been touched since February 14th and we
can always retrieve the old code from history if absolutely necessary.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Dan Scott <dan@coffeecode.net>
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>