Avoid JSPAC hold placement interface problems when no holdable copies not-holdable-phone-format-error
authorLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Fri, 24 Feb 2012 19:56:18 +0000 (14:56 -0500)
committerLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Fri, 24 Feb 2012 19:56:18 +0000 (14:56 -0500)
This addresses a bug brought to my attention by John Jones.

When you're trying to place certain holds (at least title level holds) on
records for which there are no holdable formats (no descriptors as returned by
open-ils.search.metabib.record_to_descriptors), then
holdArgs.recordDescriptors in holds.js can be an empty array.  There is
a line of code that assumes this will never happen.

The end user-visible result of the javascript failing here is an alert()
dialog about phone number format, but this is a red herring.  That only
happens because the problem code is in one big function that has too
many responsibilites.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Open-ILS/web/opac/skin/default/js/holds.js

index 55d9c2b..bae8032 100644 (file)
@@ -451,7 +451,7 @@ function __holdsDrawWindow() {
        var mods_formats = rec.types_of_resource();
        var formats;
 
-       if(holdArgs.recordDescriptors)
+       if (holdArgs.recordDescriptors && holdArgs.recordDescriptors.length)
                formats = holdArgs.recordDescriptors[0].item_type();
 
        if( holdArgs.type == 'T' ) {