holdArgs.status = req.result();
_holdsUpdateEditHold();
}
+
}
} else {
if( type == 'T' ) {
_h_set_rec(args, doneCallback);
+ } else {
+ _h_set_rec_descriptors(args, doneCallback);
}
}
}
if(doneCallback) doneCallback(args);
}
+
function _h_set_rec_descriptors(args, doneCallback) {
/* grab the list of record desciptors attached to this records metarecord */
if( args.metarecord )
params = { metarecord : args.metarecord };
else
- params = { metarecord : args.metarecordObject.id() };
+ params = { metarecord : args.metarecordObject.doc_id() };
}
var req = new Request(FETCH_MR_DESCRIPTORS, params );
var data = r.getResultObject();
args.recordDescriptors = data.descriptors;
args.metarecord = data.metarecord;
+ if( args.type == 'M' && ! args.metarecordObject)
+ args.metarecordObject = findRecord(args.metarecord, 'M');
+
if(doneCallback) doneCallback(args);
}
);
} else {
if(doneCallback) doneCallback(args);
}
+
+ return args;
}
+
function holdsDrawWindow() {
swapCanvas($('holds_box'));
$('holds_cancel').onclick = function(){ runEvt('common', 'holdUpdateCanceled'), showCanvas() };
var rec = holdArgs.recordObject;
var vol = holdArgs.volumeObject;
var copy = holdArgs.copyObject;
+ var mr = holdArgs.metarecordObject;
+
+ rec = (rec) ? rec : mr;
if(!holdsOrgSelectorBuilt) {
holdsBuildOrgSelector(null,0);
}
removeChildren($('holds_format'));
- var formats = rec.types_of_resource();
+
+ var mods_formats = rec.types_of_resource();
+ var formats;
+
+ if(holdArgs.recordDescriptors)
+ formats = holdArgs.recordDescriptors[0].item_type();
+
+ if( holdArgs.type == 'T' ) {
+ var desc = grep( holdArgs.recordDescriptors,
+ function(i) {
+ return (i.record() == holdArgs.record);
+ }
+ );
+ formats = desc[0].item_type();
+ }
if( holdArgs.type == 'M' ) {
var data = holdsParseMRFormats(holdArgs.editHold.holdable_formats());
+ mods_formats = data.mods_formats;
formats = data.formats;
}
- for( var i in formats ) {
- var res = formats[i];
+ for( var i in mods_formats ) {
+ var res = mods_formats[i];
var img = elem("img");
setResourcePic(img, res);
- $('holds_format').appendChild(text(' '+res+' '));
$('holds_format').appendChild(img);
- $('holds_format').appendChild(text(' '));
+ if(formats)
+ $('holds_format').appendChild(text(' '+ MARCTypeToFriendly(formats[i]) +' '));
+ else
+ $('holds_format').appendChild(text(' '+ mods_formats[i] +' '));
+ $('holds_format').appendChild(elem('br'));
}
var data = str.split(/-/);
var formats = [];
- for( var i = 0; i < data[0].length; i++ )
- formats.push(MARCFormatToMods(data[0].charAt(i)));
+ var mods_formats = [];
+
+ for( var i = 0; i < data[0].length; i++ ) {
+ formats.push( data[0].charAt(i) );
+ mods_formats.push( MARCFormatToMods( formats[i] ) );
+ }
formats = uniquify(formats);
+ mods_formats = uniquify(mods_formats);
return {
- formats : formats,
- lang : data[2],
- largeprint : data[1],
+ formats : formats,
+ mods_formats : mods_formats,
+ lang : data[2],
+ largeprint : data[1],
}
}
function holdsSetFormatSelector() {
var type = holdArgs.type;
- if( type == 'C' || type == 'V' ) return;
+ if( type == 'C' || type == 'V' || holdArgs.editHold ) return;
var data = holdsGetFormats();
var avail_formats = data.avail_formats;
var sel_formats = data.sel_formats;
holdArgs.language = data.lang;
- if( avail_formats.length > 1 ) {
-
- unHideMe($('holds_alt_formats_row'));
- var selector = $('hold_alt_form_selector');
+ unHideMe($('holds_alt_formats_row_extras'));
+ var selector = $('hold_alt_form_selector');
- for( var i = 0; i < avail_formats.length; i++ ) {
- var form = avail_formats[i];
- if( contains(sel_formats, form) ) continue;
- unHideMe(findSelectorOptByValue(selector, form));
- }
+ for( var i = 0; i < avail_formats.length; i++ ) {
+ var form = avail_formats[i];
+ unHideMe(findSelectorOptByValue(selector, form));
}
}
if(vals.length == 0) return;
+ /*
if( holdArgs.type == 'T' )
vals.push(holdArgs.myFormat);
+ */
var fstring = "";
hold.target(holdArgs.metarecord);
}
+ //alert(fstring); return;
+
if(isXUL())
hold.selection_depth(getSelectorVal($('holds_depth_selector')));
var row = holdsTemplateRow.cloneNode(true);
row.id = "myopac_holds_row_" + h.id();
- var formats = (h.holdable_formats()) ? h.holdable_formats() : null;
var form = $n(row, "myopac_holds_formats");
- /*form.id = "myopac_holds_form_" + h.id() + '_' + h.target();*/
form.id = "myopac_holds_form_" + h.id();
- //if(formats) form.appendChild(text(formats));
var orglink = $n(row, "myopac_holds_location");
orglink.appendChild(text(findOrgUnit(h.pickup_lib()).name()));
var form = $("myopac_holds_form_" + hold.id());
if(form) {
- var formats = record.types_of_resource();
+ var mods_formats = record.types_of_resource();
if( hold.hold_type() == 'M' ) {
var data = holdsParseMRFormats(hold.holdable_formats());
- formats = data.formats;
+ mods_formats = data.mods_formats;
}
- for( var i = 0; i < formats.length; i++ ) {
+ for( var i = 0; i < mods_formats.length; i++ ) {
var img = elem("img");
- setResourcePic(img, formats[i]);
+ setResourcePic(img, mods_formats[i]);
form.appendChild(img);
}
}
<select id='holds_org_selector'> </select>
</td>
</tr>
+
+ <tr id='holds_alt_formats_row_extras' class='hide_me'>
+ <td colspan='2' align='center'>
+ <div style='padding: 8px;'>
+ <a class='classic_link' href='javascript:void(0);' style='padding: 5px;'
+ onclick='unHideMe($("holds_alt_formats_row"));'>Advanced Hold Options</a>
+ </div>
+ </td>
+ </tr>
+
<tr id='holds_alt_formats_row' class='hide_me'>
+
<td class='holds_cell'>
<div style='margin-bottom: 5px;'>
- <!--
- Any of the following formats are acceptible for this hold:
- -->
- I would be interested in receiving my hold in the following alternate formats:
+ <span>Acceptable Alternative Formats: </span>
+ <span> <a class='classic_link' style='color:red;' href='javascript:void(0);'
+ onclick='alert($("holds_explain_adv").innerHTML)'>(??)</a></span>
</div>
<div>(control-click to select multiple formats)</div>
</td>
+
<td class='holds_cell'>
<select id='hold_alt_form_selector' multiple='true' style='width: 14em;'>
<option value='at' class='hide_me'>&opac.search.books;</option>
</span>
</div>
+
+ <span class='hide_me' id='format_words'>
+ <span name='at'>&opac.search.books;</span>
+ <span name='at-d'>&opac.search.largePrint;</span>
+ <span name='i'>&opac.search.audioBooks;</span>
+ <span name='g'>&opac.search.videoRecordings;</span>
+ <span name='j'>&opac.search.music;</span>
+ <span name='m'>&opac.search.electronic;</span>
+ </span>
+
+ <span class='hide_me' id='holds_explain_adv'>&holds.advanced_options;</span>
+
</div>
+
+