circ.util.show_last_few_circs = function(selection_list,count) {
var obj = {};
JSAN.use('util.error'); obj.error = new util.error();
+ JSAN.use('util.window'); obj.win = new util.window();
JSAN.use('util.network'); obj.network = new util.network();
JSAN.use('OpenILS.data'); obj.data = new OpenILS.data(); obj.data.init({'via':'stash'});
+ if (!count) count = 4;
+
for (var i = 0; i < selection_list.length; i++) {
try {
- var circs = obj.network.simple_request('FM_CIRC_RETRIEVE_VIA_COPY',
- [ ses(), selection_list[i].copy_id, count ]);
- if (circs == null || typeof circs.ilsevent != 'undefined') throw(circs);
- if (circs.length == 0) { alert('There are no circs for item with barcode ' + selection_list[i].barcode); continue; }
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserWrite');
- var top_xml = '<description xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" style="overflow: auto">';
- top_xml += 'These are the last ' + circs.length + ' circulations for item ';
- top_xml += selection_list[i].barcode + '</description>';
-
- var xml = '<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" style="overflow: vertical">';
- for (var j = 0; j < circs.length; j++) {
- xml += '<iframe style="min-height: 100px" flex="1" src="' + xulG.url_prefix( urls.XUL_CIRC_BRIEF );
- xml += '?circ_id=' + circs[j].id() + '"/>';
- }
- xml += '</vbox>';
-
- var bot_xml = '<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" style="overflow: auto"><hbox>';
- bot_xml += '<button id="retrieve_last" value="last" label="Retrieve Last Patron" accesskey="L" name="fancy_submit"/>';
- bot_xml += '<button id="retrieve_all" value="all" label="Retrieve All Patrons" accesskey="A" name="fancy_submit"/>';
- bot_xml += '<button label="Done" accesskey="D" name="fancy_cancel"/></hbox></vbox>';
-
- obj.data.temp_top = top_xml; obj.data.stash('temp_top');
- obj.data.temp_mid = xml; obj.data.stash('temp_mid');
- obj.data.temp_bot = bot_xml; obj.data.stash('temp_bot');
- window.open(
- urls.XUL_FANCY_PROMPT
- + '?xml_in_stash=temp_mid'
- + '&top_xml_in_stash=temp_top'
- + '&bottom_xml_in_stash=temp_bot'
- + '&title=' + window.escape('Brief Circulation History'),
- 'fancy_prompt', 'chrome,resizable,modal,width=700,height=500'
- );
- JSAN.use('OpenILS.data');
- var data = new OpenILS.data(); data.init({'via':'stash'});
- if (data.fancy_prompt_data == '') { continue; }
- var patron_hash = {};
- for (var j = 0; j < (data.fancy_prompt_data.fancy_submit == 'all' ? circs.length : 1); j++) {
- if (typeof patron_hash[circs[j].usr()] != 'undefined') {
- continue;
- } else {
- patron_hash[circs[j].usr()] = true;
- }
+ obj.data.fancy_prompt_data = null; obj.data.stash('fancy_prompt_data');
+ var url = xulG.url_prefix( urls.XUL_CIRC_SUMMARY ) + '?copy_id=' + selection_list[i].copy_id + '&count=' + count;
+ obj.win.open( url, 'show_last_few_circs', 'chrome,resizable,modal' );
+ obj.data.stash_retrieve();
+
+ if (! obj.data.fancy_prompt_data) continue;
+ var patrons = JSON2js( obj.data.fancy_prompt_data );
+ for (var j = 0; j < patrons.length; j++) {
if (typeof window.xulG == 'object' && typeof window.xulG.new_tab == 'function') {
try {
- var url = urls.XUL_PATRON_DISPLAY
- + '?id=' + window.escape( circs[j].usr() );
+ var url = urls.XUL_PATRON_DISPLAY + '?id=' + window.escape( patrons[j] );
window.xulG.new_tab( url );
} catch(E) {
obj.error.standard_unexpected_error_alert('Problem retrieving patron.',E);
}
}
-
}
} catch(E) {
obj.error.standard_unexpected_error_alert('Problem retrieving circulations.',E);
}
}
- //FM_CIRC_RETRIEVE_VIA_COPY
}
circ.util.offline_checkout_columns = function(modify,params) {