dump('entering cat.record_buckets.js\n');
+function $(id) { return document.getElementById(id); }
+
if (typeof cat == 'undefined') cat = {};
cat.record_buckets = function (params) {
- JSAN.use('util.error'); this.error = new util.error();
- JSAN.use('util.network'); this.network = new util.network();
- JSAN.use('util.date');
- JSAN.use('OpenILS.data'); this.data = new OpenILS.data(); this.data.init({'via':'stash'});
- this.first_pause = true;
-}
+ JSAN.use('util.error'); this.error = new util.error();
+ JSAN.use('util.network'); this.network = new util.network();
+ JSAN.use('util.date');
+ JSAN.use('OpenILS.data'); this.data = new OpenILS.data(); this.data.init({'via':'stash'});
+ var x = document.getElementById("record_buckets_tabbox");
+ if (x) {
+ x.addEventListener(
+ 'select',
+ function(ev) {
+ if (ev.target.tagName == 'tabpanels') {
+ for (var i = 0; i < ev.target.childNodes.length; i++) {
+ var p = ev.target.childNodes[i].firstChild;
+ p.hidden = x.selectedIndex != i;
+ }
+ }
+ },
+ false
+ );
+ x.selectedIndex = 2;
+ for (var i = 0; i < x.lastChild.childNodes.length; i++) {
+ var p = x.lastChild.childNodes[i].firstChild;
+ p.hidden = x.selectedIndex != i;
+ }
+ }
+};
+
+cat.record_buckets.pick_file = function (defaultFileName) {
+ var nsIFilePicker = Components.interfaces.nsIFilePicker;
+ var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance( nsIFilePicker );
+
+ fp.init( window, $("catStrings").getString('staff.cat.record_buckets.save_file_as'), nsIFilePicker.modeSave );
+ if (defaultFileName)
+ fp.defaultString = defaultFileName;
+
+ fp.appendFilters( nsIFilePicker.filterAll );
+
+ var result = fp.show();
+ if ( (result == nsIFilePicker.returnOK || result == nsIFilePicker.returnReplace) && fp.file ) {
+ return fp.file;
+ } else {
+ return null;
+ }
+};
+
+cat.record_buckets.export_records = function(obj, output_type) {
+ try {
+ obj.list2.select_all();
+ obj.data.stash_retrieve();
+ JSAN.use('util.functional');
+
+ var record_ids = util.functional.map_list(
+ obj.list2.dump_retrieve_ids(),
+ function (o) { return JSON2js(o).docid }
+ );
+
+ var persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"]
+ .createInstance(Components.interfaces.nsIWebBrowserPersist);
+
+ var proto_uri = 'https://' + window.location.hostname + '/exporter?format=' + output_type + '&ses=' + ses();
+
+ dump('Record Export URI is ' + proto_uri + '&id=' + record_ids.join('&id=') + '\n');
+
+ var uri = Components.classes["@mozilla.org/network/io-service;1"]
+ .getService(Components.interfaces.nsIIOService)
+ .newURI( proto_uri + '&id=' + record_ids.join('&id='), null, null );
+
+ var file = cat.record_buckets.pick_file('bucket.' + output_type);
+
+ if (file) {
+ persist.saveURI(uri,null,null,null,null,file);
+ } else {
+ alert( $("catStrings").getString('staff.cat.record_buckets.export_records.alert') );
+ }
+
+ } catch(E) {
+ obj.error.standard_unexpected_error_alert($("catStrings").getString('staff.cat.record_buckets.export_records.std_unexpected_error'), E);
+ }
+};
+
cat.record_buckets.prototype = {
- 'selection_list1' : [],
- 'selection_list2' : [],
- 'bucket_id_name_map' : {},
-
- 'render_pending_records' : function() {
- if (this.first_pause) {
- this.first_pause = false;
- } else {
- alert("Action completed.");
- }
- var obj = this;
- obj.list1.clear();
- for (var i = 0; i < obj.record_ids.length; i++) {
- var item = obj.flesh_item_for_list( obj.record_ids[i] );
- if (item) obj.list1.append( item );
- }
- },
-
- 'init' : function( params ) {
-
- var obj = this;
-
- obj.record_ids = params['record_ids'] || [];
-
- JSAN.use('circ.util');
- var columns = circ.util.columns(
- {
- 'title' : { 'hidden' : false },
- 'author' : { 'hidden' : false },
- 'edition' : { 'hidden' : false },
- 'publisher' : { 'hidden' : false },
- 'pubdate' : { 'hidden' : false },
- 'isbn' : { 'hidden' : false },
- 'tcn' : { 'hidden' : false },
- }
- );
-
- JSAN.use('util.list');
-
- obj.list1 = new util.list('pending_records_list');
- obj.list1.init(
- {
- 'columns' : columns,
- 'map_row_to_columns' : circ.util.std_map_row_to_columns(),
- 'on_select' : function(ev) {
- try {
- JSAN.use('util.functional');
- var sel = obj.list1.retrieve_selection();
- document.getElementById('clip_button1').disabled = sel.length < 1;
- obj.selection_list1 = util.functional.map_list(
- sel,
- function(o) { return JSON2js(o.getAttribute('retrieve_id')); }
- );
- obj.error.sdump('D_TRACE','circ/record_buckets: selection list 1 = ' + js2JSON(obj.selection_list1) );
- if (obj.selection_list1.length == 0) {
- obj.controller.view.record_buckets_sel_add.disabled = true;
- } else {
- obj.controller.view.record_buckets_sel_add.disabled = false;
- }
- } catch(E) {
- alert('FIXME: ' + E);
- }
- },
-
- }
- );
-
- obj.render_pending_records();
-
- obj.list2 = new util.list('records_in_bucket_list');
- obj.list2.init(
- {
- 'columns' : columns,
- 'map_row_to_columns' : circ.util.std_map_row_to_columns(),
- 'on_select' : function(ev) {
- try {
- JSAN.use('util.functional');
- var sel = obj.list2.retrieve_selection();
- document.getElementById('clip_button2').disabled = sel.length < 1;
- obj.selection_list2 = util.functional.map_list(
- sel,
- function(o) { return JSON2js(o.getAttribute('retrieve_id')); }
- );
- obj.error.sdump('D_TRACE','circ/record_buckets: selection list 2 = ' + js2JSON(obj.selection_list2) );
- if (obj.selection_list2.length == 0) {
- obj.controller.view.record_buckets_delete_item.disabled = true;
- obj.controller.view.record_buckets_delete_item.setAttribute('disabled','true');
- obj.controller.view.record_buckets_export.disabled = true;
- obj.controller.view.record_buckets_export.setAttribute('disabled','true');
- } else {
- obj.controller.view.record_buckets_delete_item.disabled = false;
- obj.controller.view.record_buckets_delete_item.setAttribute('disabled','false');
- obj.controller.view.record_buckets_export.disabled = false;
- obj.controller.view.record_buckets_export.setAttribute('disabled','false');
- }
- } catch(E) {
- alert('FIXME: ' + E);
- }
- },
- }
- );
-
- JSAN.use('util.controller'); obj.controller = new util.controller();
- obj.controller.init(
- {
- 'control_map' : {
- 'save_columns2' : [
- ['command'],
- function() { obj.list2.save_columns(); }
- ],
- 'save_columns1' : [
- ['command'],
- function() { obj.list1.save_columns(); }
- ],
- 'sel_clip2' : [
- ['command'],
- function() { obj.list2.clipboard(); }
- ],
- 'sel_clip1' : [
- ['command'],
- function() { obj.list1.clipboard(); }
- ],
- 'record_buckets_menulist_placeholder' : [
- ['render'],
- function(e) {
- return function() {
- JSAN.use('util.widgets'); JSAN.use('util.functional');
- var buckets = obj.network.simple_request(
- 'BUCKET_RETRIEVE_VIA_USER',
- [ ses(), obj.data.list.au[0].id() ]
- );
- if (typeof buckets.ilsevent != 'undefined') {
- obj.error.standard_unexpected_error_alert('Could not retrieve your buckets.',buckets);
- return;
- }
- var items = [ ['Choose a bucket...',''], ['Retrieve shared bucket...',-1] ].concat(
- util.functional.map_list(
- util.functional.filter_list(
- buckets.biblio,
- function(o) {
- return o.btype() == 'staff_client';
- }
- ),
- function(o) {
- obj.bucket_id_name_map[ o.id() ] = o.name();
- return [ o.name(), o.id() ];
- }
- ).sort(
- function( a, b ) {
- if (a[0] < b[0]) return -1;
- if (a[0] > b[0]) return 1;
- return 0;
- }
- )
- );
- obj.error.sdump('D_TRACE','items = ' + js2JSON(items));
- util.widgets.remove_children( e );
- var ml = util.widgets.make_menulist(
- items
- );
- e.appendChild( ml );
- ml.setAttribute('id','bucket_menulist');
- ml.setAttribute('accesskey','');
-
- function change_bucket(ev) {
- var bucket_id = ev.target.value;
- if (bucket_id < 0 ) {
- bucket_id = window.prompt('Enter bucket number:');
- ev.target.value = bucket_id;
- ev.target.setAttribute('value',bucket_id);
- }
- if (!bucket_id) return;
- var bucket = obj.network.simple_request(
- 'BUCKET_FLESH',
- [ ses(), 'biblio', bucket_id ]
- );
- if (typeof bucket.ilsevent != 'undefined') {
- if (bucket.ilsevent == 1506 /* CONTAINER_NOT_FOUND */) {
- alert('Could not find a bucket with ID = ' + bucket_id);
- } else {
- obj.error.standard_unexpected_error_alert('Error retrieving bucket. Did you use a valid bucket id?',bucket);
- }
- return;
- }
- try {
- var x = document.getElementById('info_box');
- x.setAttribute('hidden','false');
- x = document.getElementById('bucket_number');
- x.setAttribute('value',bucket.id());
- x = document.getElementById('bucket_name');
- x.setAttribute('value',bucket.name());
- x = document.getElementById('bucket_owner');
- var s = bucket.owner(); JSAN.use('patron.util');
- if (s && typeof s != "object") s = patron.util.retrieve_fleshed_au_via_id(ses(),s);
- x.setAttribute('value',s.card().barcode() + " @ " + obj.data.hash.aou[ s.home_ou() ].shortname());
- } catch(E) {
- alert(E);
- }
- var items = bucket.items() || [];
- obj.list2.clear();
- for (var i = 0; i < items.length; i++) {
- var item = obj.flesh_item_for_list(
- items[i].target_biblio_record_entry(),
- items[i].id()
- );
- if (item) obj.list2.append( item );
- }
- }
-
- ml.addEventListener( 'change_bucket', change_bucket , false);
- ml.addEventListener( 'command', function() {
- JSAN.use('util.widgets'); util.widgets.dispatch('change_bucket',ml);
- }, false);
- obj.controller.view.bucket_menulist = ml;
- JSAN.use('util.widgets'); util.widgets.dispatch('change_bucket',ml);
- document.getElementById('refresh').addEventListener( 'command', function() {
- JSAN.use('util.widgets'); util.widgets.dispatch('change_bucket',ml);
- }, false);
- };
- },
- ],
-
- 'record_buckets_add' : [
- ['command'],
- function() {
- var bucket_id = obj.controller.view.bucket_menulist.value;
- if (!bucket_id) return;
- for (var i = 0; i < obj.record_ids.length; i++) {
- var bucket_item = new cbrebi();
- bucket_item.isnew('1');
- bucket_item.bucket(bucket_id);
- bucket_item.target_biblio_record_entry( obj.record_ids[i] );
- try {
- var robj = obj.network.simple_request('BUCKET_ITEM_CREATE',
- [ ses(), 'biblio', bucket_item ]);
-
- if (typeof robj == 'object') throw robj;
-
- var item = obj.flesh_item_for_list( obj.record_ids[i], robj );
- if (!item) continue;
-
- obj.list2.append( item );
- } catch(E) {
- alert( js2JSON(E) );
- }
- }
- }
- ],
- 'record_buckets_sel_add' : [
- ['command'],
- function() {
- var bucket_id = obj.controller.view.bucket_menulist.value;
- if (!bucket_id) return;
- for (var i = 0; i < obj.selection_list1.length; i++) {
- var docid = obj.selection_list1[i].docid;
- var bucket_item = new cbrebi();
- bucket_item.isnew('1');
- bucket_item.bucket(bucket_id);
- bucket_item.target_biblio_record_entry( docid );
- try {
- var robj = obj.network.simple_request('BUCKET_ITEM_CREATE',
- [ ses(), 'biblio', bucket_item ]);
-
- if (typeof robj == 'object') throw robj;
-
- var item = obj.flesh_item_for_list( docid, robj );
- if (!item) continue;
-
- obj.list2.append( item );
- } catch(E) {
- alert( js2JSON(E) );
- }
- }
-
- }
- ],
- 'record_buckets_export' : [
- ['command'],
- function() {
- for (var i = 0; i < obj.selection_list2.length; i++) {
- var docid = obj.selection_list2[i].docid;
- var item = obj.flesh_item_for_list( docid );
- if (item) {
- obj.list1.append( item );
- obj.record_ids.push( docid );
- }
- }
- }
- ],
-
- 'record_buckets_delete_item' : [
- ['command'],
- function() {
- for (var i = 0; i < obj.selection_list2.length; i++) {
- try {
- var bucket_item_id = obj.selection_list2[i].bucket_item_id;
- var robj = obj.network.simple_request('BUCKET_ITEM_DELETE',
- [ ses(), 'biblio', bucket_item_id ]);
- if (typeof robj == 'object') throw robj;
- } catch(E) {
- alert(js2JSON(E));
- }
+ 'selection_list0' : [],
+ 'selection_list1' : [],
+ 'selection_list2' : [],
+ 'bucket_id_name_map' : {},
+
+ 'render_pending_records' : function() {
+ var obj = this;
+ obj.list1.clear();
+ for (var i = 0; i < obj.record_ids.length; i++) {
+ var item = obj.prep_record_for_list( obj.record_ids[i] );
+ if (item) obj.list1.append( item );
+ }
+ },
+
+ 'init' : function( params ) {
+
+ var obj = this;
+
+ obj.record_ids = params['record_ids'] || [];
+
+ JSAN.use('circ.util');
+ var columns = circ.util.columns(
+ {
+ 'title' : { 'hidden' : false },
+ 'author' : { 'hidden' : false },
+ 'edition' : { 'hidden' : false },
+ 'publisher' : { 'hidden' : false },
+ 'pubdate' : { 'hidden' : false },
+ 'isbn' : { 'hidden' : false },
+ 'tcn' : { 'hidden' : false }
+ }
+ );
+
+ JSAN.use('util.list');
+
+ function retrieve_row(params) {
+ var row = params.row;
+ try {
+ obj.network.simple_request( 'MODS_SLIM_RECORD_RETRIEVE.authoritative', [ row.my.docid ],
+ function(req) {
+ try {
+ var record = req.getResultObject();
+ if (typeof req.ilsevent != 'undefined') throw(req);
+ row.my.mvr = record;
+ if (typeof params.on_retrieve == 'function') { params.on_retrieve(row); }
+
+ } catch(E) {
+ obj.error.standard_unexpected_error_alert(
+ $("catStrings").getFormattedString('staff.cat.record_buckets.retrieve_row.std_unexpected_error', [row.my.docid]), E);
+ }
+ }
+ );
+ } catch(E) {
+ obj.error.sdump('D_ERROR','retrieve_row: ' + E );
+ }
+ return row;
+ }
+
+ obj.list0 = new util.list('record_query_list');
+ obj.list0.init(
+ {
+ 'columns' : columns,
+ 'retrieve_row' : retrieve_row,
+ 'on_select' : function(ev) {
+ try {
+ JSAN.use('util.functional');
+ var sel = obj.list0.retrieve_selection();
+ obj.controller.view.sel_clip1.setAttribute('disabled', sel.length < 1 ? "true" : "false");
+ obj.selection_list0 = util.functional.map_list(
+ sel,
+ function(o) { return JSON2js(o.getAttribute('retrieve_id')); }
+ );
+ obj.error.sdump('D_TRACE','circ/record_buckets: selection list 0 = ' + js2JSON(obj.selection_list1) );
+ if (obj.selection_list0.length == 0) {
+ obj.controller.view.cmd_add_sel_query_to_pending.setAttribute('disabled','true');
+ } else {
+ obj.controller.view.cmd_add_sel_query_to_pending.setAttribute('disabled','false');
+ }
+ } catch(E) {
+ alert('FIXME: ' + E);
+ }
+ }
+
+ }
+ );
+
+ obj.list1 = new util.list('pending_records_list');
+ obj.list1.init(
+ {
+ 'columns' : columns,
+ 'retrieve_row' : retrieve_row,
+ 'on_select' : function(ev) {
+ try {
+ JSAN.use('util.functional');
+ var sel = obj.list1.retrieve_selection();
+ obj.controller.view.sel_clip1.setAttribute('disabled', sel.length < 1 ? "true" : "false");
+ obj.selection_list1 = util.functional.map_list(
+ sel,
+ function(o) { return JSON2js(o.getAttribute('retrieve_id')); }
+ );
+ obj.error.sdump('D_TRACE','circ/record_buckets: selection list 1 = ' + js2JSON(obj.selection_list1) );
+ if (obj.selection_list1.length == 0) {
+ obj.controller.view.cmd_add_sel_pending_to_record_bucket.setAttribute('disabled','true');
+ } else {
+ obj.controller.view.cmd_add_sel_pending_to_record_bucket.setAttribute('disabled','false');
+ }
+ } catch(E) {
+ alert('FIXME: ' + E);
+ }
+ }
+
+ }
+ );
+
+ obj.render_pending_records();
+
+ obj.list2 = new util.list('records_in_bucket_list');
+ obj.list2.init(
+ {
+ 'columns' : columns,
+ 'retrieve_row' : retrieve_row,
+ 'on_select' : function(ev) {
+ try {
+ JSAN.use('util.functional');
+ var sel = obj.list2.retrieve_selection();
+ obj.controller.view.sel_clip2.setAttribute('disabled', sel.length < 1 ? "true" : "false");
+ obj.selection_list2 = util.functional.map_list(
+ sel,
+ function(o) { return JSON2js(o.getAttribute('retrieve_id')); }
+ );
+ obj.error.sdump('D_TRACE','circ/record_buckets: selection list 2 = ' + js2JSON(obj.selection_list2) );
+ if (obj.selection_list2.length == 0) {
+ obj.controller.view.cmd_record_buckets_delete_item.setAttribute('disabled','true');
+ obj.controller.view.cmd_record_buckets_to_pending_buckets.setAttribute('disabled','true');
+ } else {
+ obj.controller.view.cmd_record_buckets_delete_item.setAttribute('disabled','false');
+ obj.controller.view.cmd_record_buckets_to_pending_buckets.setAttribute('disabled','false');
+ }
+ } catch(E) {
+ alert('FIXME: ' + E);
+ }
+ }
+ }
+ );
+
+ JSAN.use('util.controller'); obj.controller = new util.controller();
+ obj.controller.init(
+ {
+ 'control_map' : {
+ 'save_columns2' : [
+ ['command'],
+ function() { obj.list2.save_columns(); }
+ ],
+ 'save_columns1' : [
+ ['command'],
+ function() { obj.list1.save_columns(); }
+ ],
+ 'save_columns0' : [
+ ['command'],
+ function() { obj.list0.save_columns(); }
+ ],
+ 'sel_clip2' : [
+ ['command'],
+ function() { obj.list2.clipboard(); }
+ ],
+ 'sel_clip1' : [
+ ['command'],
+ function() { obj.list1.clipboard(); }
+ ],
+ 'sel_clip0' : [
+ ['command'],
+ function() { obj.list0.clipboard(); }
+ ],
+ 'record_query_input' : [
+ ['render'],
+ function(ev) {
+ ev.addEventListener('keypress',function(ev){
+ if (ev.target.tagName != 'textbox') return;
+ if (ev.keyCode == 13 /* enter */ || ev.keyCode == 77 /* enter on a mac */) setTimeout( function() { obj.submit(); }, 0);
+ },false);
+ }
+ ],
+ 'cmd_submit_query' : [
+ ['command'],
+ function() { obj.submit(); }
+ ],
+ 'record_buckets_menulist_placeholder' : [
+ ['render'],
+ function(e) {
+ return function() {
+ JSAN.use('util.widgets'); JSAN.use('util.functional');
+ var buckets = obj.network.simple_request(
+ 'BUCKET_RETRIEVE_VIA_USER',
+ [ ses(), obj.data.list.au[0].id() ]
+ );
+ if (typeof buckets.ilsevent != 'undefined') {
+ obj.error.standard_unexpected_error_alert($("catStrings").getString('staff.cat.record_buckets.buckets.std_unexpected_error'), buckets);
+ return;
+ }
+ var items = [
+ [$("catStrings").getString('staff.cat.record_buckets.menulist_placeholder.item1'),''],
+ [$("catStrings").getString('staff.cat.record_buckets.menulist_placeholder.item2'),-1]
+ ].concat(
+ util.functional.map_list(
+ util.functional.filter_list(
+ buckets.biblio,
+ function(o) {
+ return (o.btype() == 'staff_client' || o.btype() == 'vandelay_queue');
+ }
+ ),
+ function(o) {
+ obj.bucket_id_name_map[ o.id() ] = o.name();
+ return [ o.name(), o.id() ];
+ }
+ ).sort(
+ function( a, b ) {
+ if (a[0] < b[0]) return -1;
+ if (a[0] > b[0]) return 1;
+ return 0;
+ }
+ )
+ );
+ obj.error.sdump('D_TRACE','items = ' + js2JSON(items));
+ util.widgets.remove_children( e );
+ var ml = util.widgets.make_menulist(
+ items
+ );
+ e.appendChild( ml );
+ ml.setAttribute('id','bucket_menulist');
+ ml.setAttribute('accesskey','');
+
+ function change_bucket(ev) {
+ var bucket_id = ev.target.value;
+ if (bucket_id < 0 ) {
+ bucket_id = window.prompt($("catStrings").getString('staff.cat.record_buckets.change_bucket.bucket_id'));
+ ev.target.value = bucket_id;
+ ev.target.setAttribute('value',bucket_id);
+ }
+ if (!bucket_id) return;
+ var x = document.getElementById('info_box');
+ if (x) x.setAttribute('hidden','true');
+ x = document.getElementById('bucket_item_count');
+ if (x) x.setAttribute('label','');
+ obj.controller.view.cmd_record_buckets_delete_bucket.setAttribute('disabled','true');
+ obj.controller.view.cmd_record_buckets_refresh.setAttribute('disabled','true');
+ obj.controller.view.record_buckets_export_records.disabled = true;
+ obj.controller.view.cmd_merge_records.setAttribute('disabled','true');
+ obj.controller.view.cmd_delete_records.setAttribute('disabled','true');
+ obj.controller.view.cmd_sel_opac.setAttribute('disabled','true');
+ obj.controller.view.cmd_transfer_title_holds.setAttribute('disabled','true');
+ obj.controller.view.cmd_marc_batch_edit.setAttribute('disabled','true');
+ obj.controller.view.record_buckets_list_actions.disabled = true;
+ var bucket = obj.network.simple_request(
+ 'BUCKET_FLESH',
+ [ ses(), 'biblio', bucket_id ]
+ );
+ if (typeof bucket.ilsevent != 'undefined') {
+ if (bucket.ilsevent == 1506 /* CONTAINER_NOT_FOUND */) {
+ alert(catStrings.getFormattedString('staff.cat.record_buckets.menulist.change_bucket.undefined',[bucket_id]));
+ } else {
+ obj.error.standard_unexpected_error_alert($("catStrings").getString('staff.cat.record_buckets.change_bucket.error'),bucket);
+ }
+ return;
+ }
+ try {
+ obj.controller.view.cmd_record_buckets_delete_bucket.setAttribute('disabled','false');
+ obj.controller.view.cmd_record_buckets_refresh.setAttribute('disabled','false');
+ obj.controller.view.record_buckets_export_records.disabled = false;
+ obj.controller.view.cmd_merge_records.setAttribute('disabled','false');
+ obj.controller.view.cmd_delete_records.setAttribute('disabled','false');
+ obj.controller.view.cmd_sel_opac.setAttribute('disabled','false');
+ obj.controller.view.cmd_transfer_title_holds.setAttribute('disabled','false');
+ obj.controller.view.cmd_marc_batch_edit.setAttribute('disabled','false');
+ obj.controller.view.record_buckets_list_actions.disabled = false;
+
+ var x = document.getElementById('info_box');
+ x.setAttribute('hidden','false');
+ x = document.getElementById('bucket_number');
+ x.setAttribute('value',bucket.id());
+ x = document.getElementById('bucket_name');
+ x.setAttribute('value',bucket.name());
+ x = document.getElementById('bucket_owner');
+ var s = bucket.owner(); JSAN.use('patron.util');
+ if (s && typeof s != "object") s = patron.util.retrieve_fleshed_au_via_id(ses(),s);
+ x.setAttribute('value',s.family_name() + ' (' + s.card().barcode() + ") @ " + obj.data.hash.aou[ s.home_ou() ].shortname());
+ } catch(E) {
+ alert(E);
+ }
+ var items = bucket.items() || [];
+ obj.list2.clear();
+ var x = document.getElementById('bucket_item_count');
+ if (x && catStrings) x.setAttribute('value',catStrings.getFormattedString('cat.total_bucket_items_in_bucket',[items.length]));
+ for (var i = 0; i < items.length; i++) {
+ var item = obj.prep_record_for_list(
+ items[i].target_biblio_record_entry(),
+ items[i].id()
+ );
+ if (item) obj.list2.append( item );
+ }
+ }
+
+ ml.addEventListener( 'change_bucket', change_bucket , false);
+ ml.addEventListener( 'command', function() {
+ JSAN.use('util.widgets'); util.widgets.dispatch('change_bucket',ml);
+ }, false);
+ obj.controller.view.bucket_menulist = ml;
+ JSAN.use('util.widgets'); util.widgets.dispatch('change_bucket',ml);
+ };
+ },
+ ],
+
+ 'cmd_record_buckets_refresh' : [
+ ['command'],
+ function() {
+ JSAN.use('util.widgets'); util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
+ }
+ ],
+
+ 'cmd_add_all_query_to_pending' : [
+ ['command'],
+ function() {
+ obj.list0.select_all();
+ for (var i = 0; i < obj.selection_list0.length; i++) {
+ var docid = obj.selection_list0[i].docid;
+ try {
+ var item = obj.prep_record_for_list( docid );
+ if (!item) continue;
+ obj.list1.append( item );
+ obj.record_ids.push( docid );
+ } catch(E) {
+ alert( js2JSON(E) );
+ }
+ }
+ }
+ ],
+
+ 'cmd_add_sel_query_to_pending' : [
+ ['command'],
+ function() {
+ for (var i = 0; i < obj.selection_list0.length; i++) {
+ var docid = obj.selection_list0[i].docid;
+ try {
+ var item = obj.prep_record_for_list( docid );
+ if (!item) continue;
+ obj.list1.append( item );
+ obj.record_ids.push( docid );
+ } catch(E) {
+ alert( js2JSON(E) );
+ }
+ }
+ }
+ ],
+
+
+ 'cmd_add_all_pending_to_record_bucket' : [
+ ['command'],
+ function() {
+ var bucket_id = obj.controller.view.bucket_menulist.value;
+ if (!bucket_id) return;
+ for (var i = 0; i < obj.record_ids.length; i++) {
+ var bucket_item = new cbrebi();
+ bucket_item.isnew('1');
+ bucket_item.bucket(bucket_id);
+ bucket_item.target_biblio_record_entry( obj.record_ids[i] );
+ try {
+ var robj = obj.network.simple_request('BUCKET_ITEM_CREATE',
+ [ ses(), 'biblio', bucket_item ]);
+
+ if (typeof robj == 'object') throw robj;
+
+ var item = obj.prep_record_for_list( obj.record_ids[i], robj );
+ if (!item) continue;
+
+ obj.list2.append( item );
+ } catch(E) {
+ alert( js2JSON(E) );
+ }
+ }
+ }
+ ],
+ 'cmd_add_sel_pending_to_record_bucket' : [
+ ['command'],
+ function() {
+ var bucket_id = obj.controller.view.bucket_menulist.value;
+ if (!bucket_id) return;
+ for (var i = 0; i < obj.selection_list1.length; i++) {
+ var docid = obj.selection_list1[i].docid;
+ var bucket_item = new cbrebi();
+ bucket_item.isnew('1');
+ bucket_item.bucket(bucket_id);
+ bucket_item.target_biblio_record_entry( docid );
+ try {
+ var robj = obj.network.simple_request('BUCKET_ITEM_CREATE',
+ [ ses(), 'biblio', bucket_item ]);
+
+ if (typeof robj == 'object') throw robj;
+
+ var item = obj.prep_record_for_list( docid, robj );
+ if (!item) continue;
+
+ obj.list2.append( item );
+ } catch(E) {
+ alert( js2JSON(E) );
+ }
+ }
+
+ }
+ ],
+ 'cmd_record_buckets_to_pending_buckets' : [
+ ['command'],
+ function() {
+ for (var i = 0; i < obj.selection_list2.length; i++) {
+ var docid = obj.selection_list2[i].docid;
+ var item = obj.prep_record_for_list( docid );
+ if (item) {
+ obj.list1.append( item );
+ obj.record_ids.push( docid );
+ }
+ }
+ }
+ ],
+
+ 'cmd_record_buckets_delete_item' : [
+ ['command'],
+ function() {
+ for (var i = 0; i < obj.selection_list2.length; i++) {
+ try {
+ var bucket_item_id = obj.selection_list2[i].bucket_item_id;
+ var robj = obj.network.simple_request('BUCKET_ITEM_DELETE',
+ [ ses(), 'biblio', bucket_item_id ]);
+ if (typeof robj == 'object') throw robj;
+ } catch(E) {
+ alert(js2JSON(E));
+ }
}
- alert("Action completed.");
- setTimeout(
- function() {
- JSAN.use('util.widgets');
- util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
- }, 0
- );
- }
- ],
- 'record_buckets_delete_bucket' : [
- ['command'],
- function() {
- try {
- var bucket = obj.controller.view.bucket_menulist.value;
- var name = obj.bucket_id_name_map[ bucket ];
- var conf = window.confirm('Delete the bucket named ' + name + '?');
- if (!conf) return;
- obj.list2.clear();
- var robj = obj.network.simple_request('BUCKET_DELETE',[ses(),'biblio',bucket]);
- if (typeof robj == 'object') throw robj;
- alert("Action completed.");
- obj.controller.render('record_buckets_menulist_placeholder');
- setTimeout(
- function() {
- JSAN.use('util.widgets');
- util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
- }, 0
- );
-
- } catch(E) {
- alert('FIXME -- ' + E);
- }
- }
- ],
- 'record_buckets_new_bucket' : [
- ['command'],
- function() {
- try {
- var name = prompt('What would you like to name the bucket?','','Bucket Creation');
-
- if (name) {
- var bucket = new cbreb();
- bucket.btype('staff_client');
- bucket.owner( obj.data.list.au[0].id() );
- bucket.name( name );
-
- var robj = obj.network.simple_request('BUCKET_CREATE',[ses(),'biblio',bucket]);
-
- if (typeof robj == 'object') {
- if (robj.ilsevent == 1710 /* CONTAINER_EXISTS */) {
- alert('You already have a bucket with that name.');
- return;
- }
- throw robj;
- }
-
-
- alert('Bucket "' + name + '" created.');
-
- obj.controller.render('record_buckets_menulist_placeholder');
- obj.controller.view.bucket_menulist.value = robj;
- setTimeout(
- function() {
- JSAN.use('util.widgets');
- util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
- }, 0
- );
- }
- } catch(E) {
- alert( js2JSON(E) );
- }
- }
- ],
-
- 'cmd_record_buckets_export' : [
- ['command'],
- function() {
- obj.list2.on_all_fleshed = function() {
- try {
- dump(obj.list2.dump_csv() + '\n');
- copy_to_clipboard(obj.list2.dump_csv());
- setTimeout(function(){obj.list2.on_all_fleshed = null;},0);
- } catch(E) {
- alert(E);
- }
- }
- obj.list2.full_retrieve();
- }
- ],
-
- 'cmd_export1' : [
- ['command'],
- function() {
- obj.list1.on_all_fleshed = function() {
- try {
- dump(obj.list1.dump_csv() + '\n');
- copy_to_clipboard(obj.list1.dump_csv());
- setTimeout(function(){obj.list1.on_all_fleshed = null;},0);
- } catch(E) {
- alert(E);
- }
- }
- obj.list1.full_retrieve();
- }
- ],
-
- 'cmd_print_export1' : [
+ setTimeout(
+ function() {
+ JSAN.use('util.widgets');
+ util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
+ }, 0
+ );
+ }
+ ],
+ 'cmd_record_buckets_delete_bucket' : [
['command'],
function() {
try {
- obj.list1.on_all_fleshed =
+ var bucket = obj.controller.view.bucket_menulist.value;
+ var name = obj.bucket_id_name_map[ bucket ];
+ var conf = window.confirm($("catStrings").getFormattedString('staff.cat.record_buckets.delete_bucket_named', [name]));
+ if (!conf) return;
+ obj.list2.clear();
+ var robj = obj.network.simple_request('BUCKET_DELETE',[ses(),'biblio',bucket]);
+ if (typeof robj == 'object') throw robj;
+ var x = document.getElementById('info_box');
+ x.setAttribute('hidden','true');
+ obj.controller.view.cmd_record_buckets_delete_bucket.setAttribute('disabled','true');
+ obj.controller.view.cmd_record_buckets_refresh.setAttribute('disabled','true');
+ obj.controller.view.record_buckets_export_records.disabled = true;
+ obj.controller.view.cmd_merge_records.setAttribute('disabled','true');
+ obj.controller.view.cmd_delete_records.setAttribute('disabled','true');
+ obj.controller.view.cmd_sel_opac.setAttribute('disabled','true');
+ obj.controller.view.cmd_transfer_title_holds.setAttribute('disabled','true');
+ obj.controller.view.cmd_marc_batch_edit.setAttribute('disabled','true');
+ obj.controller.view.record_buckets_list_actions.disabled = true;
+ obj.controller.render('record_buckets_menulist_placeholder');
+ setTimeout(
function() {
- try {
- dump( obj.list1.dump_csv() + '\n' );
- //copy_to_clipboard(obj.list.dump_csv());
- JSAN.use('util.print'); var print = new util.print();
- print.simple(obj.list1.dump_csv(),{'content_type':'text/plain'});
- setTimeout(function(){ obj.list1.on_all_fleshed = null; },0);
- } catch(E) {
- obj.error.standard_unexpected_error_alert('print export',E);
+ JSAN.use('util.widgets');
+ util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
+ }, 0
+ );
+
+ } catch(E) {
+ alert('FIXME: ' + E);
+ }
+ }
+ ],
+ 'cmd_record_buckets_new_bucket' : [
+ ['command'],
+ function() {
+ try {
+ var name = prompt(
+ $("catStrings").getString('staff.cat.record_buckets.new_bucket.bucket_prompt'),
+ '',
+ $("catStrings").getString('staff.cat.record_buckets.new_bucket.bucket_prompt_title')
+ );
+
+ if (name) {
+ var bucket = new cbreb();
+ bucket.btype('staff_client');
+ bucket.owner( obj.data.list.au[0].id() );
+ bucket.name( name );
+
+ var robj = obj.network.simple_request('BUCKET_CREATE',[ses(),'biblio',bucket]);
+
+ if (typeof robj == 'object') {
+ if (robj.ilsevent == 1710 /* CONTAINER_EXISTS */) {
+ alert($("catStrings").getString('staff.cat.record_buckets.new_bucket.same_name_alert'));
+ return;
}
+ throw robj;
}
- obj.list1.full_retrieve();
+
+ obj.controller.render('record_buckets_menulist_placeholder');
+ obj.controller.view.bucket_menulist.value = robj;
+ setTimeout(
+ function() {
+ JSAN.use('util.widgets');
+ util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
+ }, 0
+ );
+ }
} catch(E) {
- obj.error.standard_unexpected_error_alert('print export',E);
+ alert( js2JSON(E) );
}
}
],
+
+ 'cmd_record_query_csv_to_clipboard' : [ ['command'], function() { obj.list0.dump_csv_to_clipboard(); } ],
+ 'cmd_pending_buckets_csv_to_clipboard' : [ ['command'], function() { obj.list1.dump_csv_to_clipboard(); } ],
+ 'cmd_record_buckets_csv_to_clipboard' : [ ['command'], function() { obj.list2.dump_csv_to_clipboard(); } ],
+ 'cmd_record_query_csv_to_printer' : [ ['command'], function() { obj.list0.dump_csv_to_printer(); } ],
+ 'cmd_pending_buckets_csv_to_printer' : [ ['command'], function() { obj.list1.dump_csv_to_printer(); } ],
+ 'cmd_record_buckets_csv_to_printer' : [ ['command'], function() { obj.list2.dump_csv_to_printer(); } ],
+ 'cmd_record_query_csv_to_file' : [ ['command'], function() { obj.list0.dump_csv_to_file( { 'defaultFileName' : 'pending_records.txt' } ); } ],
+ 'cmd_pending_buckets_csv_to_file' : [ ['command'], function() { obj.list1.dump_csv_to_file( { 'defaultFileName' : 'pending_records.txt' } ); } ],
+ 'cmd_record_buckets_csv_to_file' : [ ['command'], function() { obj.list2.dump_csv_to_file( { 'defaultFileName' : 'bucket_records.txt' } ); } ],
+
+ 'cmd_export_records_usmarc' : [
+ ['command'],
+ function () { return cat.record_buckets.export_records(obj, 'usmarc') }
+ ],
+ 'cmd_export_records_unimarc' : [
+ ['command'],
+ function () { return cat.record_buckets.export_records(obj, 'unimarc') }
+ ],
- 'cmd_print_export2' : [
+ 'cmd_export_records_xml' : [
+ ['command'],
+ function () { return cat.record_buckets.export_records(obj, 'xml') }
+ ],
+
+ 'cmd_export_records_bre' : [
+ ['command'],
+ function () { return cat.record_buckets.export_records(obj, 'bre') }
+ ],
+
+ 'cmd_merge_records' : [
+ ['command'],
+ function() {
+ try {
+ obj.list2.select_all();
+ obj.data.stash_retrieve();
+ JSAN.use('util.functional');
+
+ var record_ids = util.functional.map_list(
+ obj.list2.dump_retrieve_ids(),
+ function (o) {
+ return JSON2js(o).docid; // docid
+ }
+ );
+
+ xulG.new_tab(
+ 'oils://remote/xul/server/cat/bibs_abreast.xul',{
+ 'tab_name' : $("catStrings").getString('staff.cat.record_buckets.merge_records.fancy_prompt_title')
+ },{
+ 'merge' : true,
+ 'on_merge' : function() {
+ obj.render_pending_records(); // FIXME -- need a generic refresh for lists
+ setTimeout(
+ function() {
+ JSAN.use('util.widgets');
+ util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
+ }, 0
+ );
+ },
+ 'record_ids':record_ids
+ }
+ );
+
+ } catch(E) {
+ obj.error.standard_unexpected_error_alert($("catStrings").getString('staff.cat.record_buckets.merge_records.catch.std_unex_error'),E);
+ }
+
+ }
+ ],
+
+ 'cmd_delete_records' : [
['command'],
function() {
try {
- obj.list2.on_all_fleshed =
+ obj.list2.select_all();
+ obj.data.stash_retrieve();
+ JSAN.use('util.functional');
+
+ var record_ids = util.functional.map_list(
+ obj.list2.dump_retrieve_ids(),
+ function (o) {
+ return JSON2js(o).docid; // docid
+ }
+ );
+
+ var top_xml = '<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" >';
+ top_xml += '<description>' + $("catStrings").getString('staff.cat.record_buckets.delete_records.xml1') + '</description>';
+ top_xml += '<hbox>';
+ top_xml += '<button id="lead" disabled="false" label="'
+ + $("catStrings").getString('staff.cat.record_buckets.delete_records.button.label')
+ + '" name="fancy_submit"/>';
+ top_xml += '<button label="'
+ + $("catStrings").getString('staff.cat.record_buckets.delete_records.cancel_button.label') +'" accesskey="'
+ + $("catStrings").getString('staff.cat.record_buckets.delete_records.cancel_button.accesskey') +'" name="fancy_cancel"/></hbox></vbox>';
+
+ var xml = '<form xmlns="http://www.w3.org/1999/xhtml">';
+ xml += '<table><tr valign="top">';
+ for (var i = 0; i < record_ids.length; i++) {
+ xml += '<td>' + $("catStrings").getFormattedString('staff.cat.record_buckets.delete_records.xml2', [record_ids[i]]) + '</td>';
+ }
+ xml += '</tr><tr valign="top">';
+ for (var i = 0; i < record_ids.length; i++) {
+ xml += '<td nowrap="nowrap"><iframe src="' + urls.XUL_BIB_BRIEF;
+ xml += '?docid=' + record_ids[i] + '" oils_force_external="true"/></td>';
+ }
+ xml += '</tr><tr valign="top">';
+ for (var i = 0; i < record_ids.length; i++) {
+ xml += '<td nowrap="nowrap"><iframe style="min-height: 1000px; min-width: 300px;" flex="1" src="' + urls.XUL_MARC_VIEW + '?docid=' + record_ids[i] + ' " oils_force_external="true"/></td>';
+ }
+ xml += '</tr></table></form>';
+ //obj.data.temp_merge_top = top_xml; obj.data.stash('temp_merge_top');
+ //obj.data.temp_merge_mid = xml; obj.data.stash('temp_merge_mid');
+ JSAN.use('util.window'); var win = new util.window();
+ var fancy_prompt_data = win.open(
+ urls.XUL_FANCY_PROMPT,
+ //+ '?xml_in_stash=temp_merge_mid'
+ //+ '&top_xml_in_stash=temp_merge_top'
+ //+ '&title=' + window.escape('Record Purging'),
+ 'fancy_prompt', 'chrome,resizable,modal,width=700,height=500',
+ {
+ 'top_xml' : top_xml, 'xml' : xml, 'title' : $("catStrings").getString('staff.cat.record_buckets.delete_records.fancy_prompt_title')
+ }
+ );
+ //obj.data.stash_retrieve();
+ if (typeof fancy_prompt_data.fancy_status == 'undefined' || fancy_prompt_data.fancy_status != 'complete') {
+ alert($("catStrings").getString('staff.cat.record_buckets.delete_records.fancy_prompt.alert'));
+ return;
+ }
+ var s = '';
+ for (var i = 0; i < record_ids.length; i++) {
+ var robj = obj.network.simple_request('FM_BRE_DELETE',[ses(),record_ids[i]]);
+ if (typeof robj.ilsevent != 'undefined') {
+ if (!s) s = $("catStrings").getString('staff.cat.record_buckets.delete_records.s1');
+ s += $("catStrings").getFormattedString('staff.cat.record_buckets.delete_records.s2', [record_ids[i], robj.textcode, robj.desc]);
+ }
+ }
+ if (s) { alert(s); }
+
+ obj.render_pending_records(); // FIXME -- need a generic refresh for lists
+ setTimeout(
function() {
- try {
- dump( obj.list2.dump_csv() + '\n' );
- //copy_to_clipboard(obj.list.dump_csv());
- JSAN.use('util.print'); var print = new util.print();
- print.simple(obj.list2.dump_csv(),{'content_type':'text/plain'});
- setTimeout(function(){ obj.list2.on_all_fleshed = null; },0);
- } catch(E) {
- obj.error.standard_unexpected_error_alert('print export',E);
- }
+ JSAN.use('util.widgets');
+ util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
+ }, 0
+ );
+ } catch(E) {
+ obj.error.standard_unexpected_error_alert($("catStrings").getString('staff.cat.record_buckets.delete_records.catch.std_unex_err',E));
+ }
+
+ }
+ ],
+
+ 'cmd_broken' : [
+ ['command'],
+ function() { alert($("catStrings").getString('staff.cat.record_buckets.cmd_broken.alert')); }
+ ],
+ 'cmd_sel_opac' : [
+ ['command'],
+ function() {
+ try {
+ obj.list2.select_all();
+ JSAN.use('util.functional');
+ var docids = util.functional.map_list(
+ obj.list2.dump_retrieve_ids(),
+ function (o) {
+ return JSON2js(o).docid; // docid
+ }
+ );
+ var seen = {};
+ for (var i = 0; i < docids.length; i++) {
+ var doc_id = docids[i];
+ if (seen[doc_id]) continue; seen[doc_id] = true;
+ var opac_url = xulG.url_prefix('opac_rdetail') + doc_id;
+ var content_params = {
+ 'session' : ses(),
+ 'authtime' : ses('authtime'),
+ 'opac_url' : opac_url
+ };
+ xulG.new_tab(
+ xulG.url_prefix('XUL_OPAC_WRAPPER'),
+ {'tab_name':$("catStrings").getString('staff.cat.record_buckets.cmd_sel_opac.tab_name')},
+ content_params
+ );
+ }
+ } catch(E) {
+ obj.error.standard_unexpected_error_alert($("catStrings").getString('staff.cat.record_buckets.cmd_sel_opac.catch.std_unex_err'),E);
+ }
+ }
+ ],
+ 'cmd_marc_batch_edit' : [
+ ['command'],
+ function() {
+ try {
+ var bucket_id = obj.controller.view.bucket_menulist.value;
+ if (!bucket_id) return;
+ obj.list2.select_all();
+ xulG.new_tab(
+ urls.MARC_BATCH_EDIT + '?containerid='+bucket_id+'&recordSource=b',
+ {
+ 'tab_name' : $('offlineStrings').getString('menu.cmd_marc_batch_edit.tab')
+ },
+ {}
+ );
+ } catch(E) {
+ alert('Error in record_buckets.js, cmd_marc_batch_edit: ' + E);
+ }
+ }
+ ],
+ 'cmd_transfer_title_holds' : [
+ ['command'],
+ function() {
+ try {
+ obj.list2.select_all();
+ JSAN.use('util.functional');
+ var docids = util.functional.map_list(
+ obj.list2.dump_retrieve_ids(),
+ function (o) {
+ return JSON2js(o).docid; // docid
}
- obj.list2.full_retrieve();
+ );
+ JSAN.use('cat.util');
+ cat.util.transfer_title_holds(docids);
} catch(E) {
- obj.error.standard_unexpected_error_alert('print export',E);
+ alert('Error in record_buckets.js, cmd_transfer_title_holds: ' + E);
}
}
],
- 'cmd_merge_records' : [
- ['command'],
- function() {
- try {
- obj.list2.select_all();
- obj.data.stash_retrieve();
- JSAN.use('util.functional');
-
- var record_ids = util.functional.map_list(
- obj.list2.dump_retrieve_ids(),
- function (o) {
- return JSON2js(o).docid; // docid
- }
- );
-
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserWrite');
- var top_xml = '<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" >';
- top_xml += '<description>Merge these records? (Select the "lead" record first)</description>';
- top_xml += '<hbox><button id="lead" disabled="true" label="Merge" name="fancy_submit"/><button label="Cancel" accesskey="C" name="fancy_cancel"/></hbox></vbox>';
-
- var xml = '<form xmlns="http://www.w3.org/1999/xhtml">';
- xml += '<table><tr valign="top">';
- for (var i = 0; i < record_ids.length; i++) {
- xml += '<td><input value="Lead" id="record_' + record_ids[i] + '" type="radio" name="lead"';
- xml += ' onclick="' + "try { var x = document.getElementById('lead'); x.setAttribute('value',";
- xml += record_ids[i] + '); x.disabled = false; } catch(E) { alert(E); }">';
- xml += '</input>Lead Record? #' + record_ids[i] + '</td>';
- }
- xml += '</tr><tr valign="top">';
- for (var i = 0; i < record_ids.length; i++) {
- xml += '<td nowrap="nowrap"><iframe src="' + urls.XUL_BIB_BRIEF;
- xml += '?docid=' + record_ids[i] + '"/></td>';
- }
- xml += '</tr><tr valign="top">';
- for (var i = 0; i < record_ids.length; i++) {
- html = obj.network.simple_request('MARC_HTML_RETRIEVE',[ record_ids[i] ]);
- xml += '<td nowrap="nowrap"><iframe style="min-height: 1000px; min-width: 300px;" flex="1" src="data:text/html,' + window.escape(html) + '"/></td>';
- }
- xml += '</tr></table></form>';
- //obj.data.temp_merge_top = top_xml; obj.data.stash('temp_merge_top');
- //obj.data.temp_merge_mid = xml; obj.data.stash('temp_merge_mid');
- window.open(
- urls.XUL_FANCY_PROMPT,
- //+ '?xml_in_stash=temp_merge_mid'
- //+ '&top_xml_in_stash=temp_merge_top'
- //+ '&title=' + window.escape('Record Merging'),
- 'fancy_prompt', 'chrome,resizable,modal,width=700,height=500',
- {
- 'top_xml' : top_xml, 'xml' : xml, 'title' : 'Record Merging'
- }
- );
- obj.data.stash_retrieve();
- if (obj.data.fancy_prompt_data == '') { alert('Merge Aborted'); return; }
- var robj = obj.network.simple_request('MERGE_RECORDS',
- [
- ses(),
- obj.data.fancy_prompt_data.lead,
- util.functional.filter_list( record_ids,
- function(o) {
- return o != obj.data.fancy_prompt_data.lead;
- }
- )
- ]
- );
- if (typeof robj.ilsevent != 'undefined') {
- throw(robj);
- } else {
- alert('Records were successfully merged.');
- }
-
- obj.render_pending_records(); // FIXME -- need a generic refresh for lists
- setTimeout(
- function() {
- JSAN.use('util.widgets');
- util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
- }, 0
- );
- } catch(E) {
- obj.error.standard_unexpected_error_alert('Records were not likely merged.',E);
- }
-
- }
- ],
-
- 'cmd_delete_records' : [
- ['command'],
- function() {
- try {
- obj.list2.select_all();
- obj.data.stash_retrieve();
- JSAN.use('util.functional');
-
- var record_ids = util.functional.map_list(
- obj.list2.dump_retrieve_ids(),
- function (o) {
- return JSON2js(o).docid; // docid
- }
- );
-
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserWrite');
- var top_xml = '<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" >';
- top_xml += '<description>Delete these records? (Select the "lead" record first)</description>';
- top_xml += '<hbox><button id="lead" disabled="true" label="Delete" name="fancy_submit"/><button label="Cancel" accesskey="C" name="fancy_cancel"/></hbox></vbox>';
-
- var xml = '<form xmlns="http://www.w3.org/1999/xhtml">';
- xml += '<table><tr valign="top">';
- for (var i = 0; i < record_ids.length; i++) {
- xml += '<td>Record #' + record_ids[i] + '</td>';
- }
- xml += '</tr><tr valign="top">';
- for (var i = 0; i < record_ids.length; i++) {
- xml += '<td nowrap="nowrap"><iframe src="' + urls.XUL_BIB_BRIEF;
- xml += '?docid=' + record_ids[i] + '"/></td>';
- }
- xml += '</tr><tr valign="top">';
- for (var i = 0; i < record_ids.length; i++) {
- html = obj.network.simple_request('MARC_HTML_RETRIEVE',[ record_ids[i] ]);
- xml += '<td nowrap="nowrap"><iframe style="min-height: 1000px; min-width: 300px;" flex="1" src="data:text/html,' + window.escape(html) + '"/></td>';
- }
- xml += '</tr></table></form>';
- //obj.data.temp_merge_top = top_xml; obj.data.stash('temp_merge_top');
- //obj.data.temp_merge_mid = xml; obj.data.stash('temp_merge_mid');
- window.open(
- urls.XUL_FANCY_PROMPT,
- //+ '?xml_in_stash=temp_merge_mid'
- //+ '&top_xml_in_stash=temp_merge_top'
- //+ '&title=' + window.escape('Record Purging'),
- 'fancy_prompt', 'chrome,resizable,modal,width=700,height=500',
- {
- 'top_xml' : top_xml, 'xml' : xml, 'title' : 'Record Purging'
- }
- );
- obj.data.stash_retrieve();
- if (obj.data.fancy_prompt_data == '') { alert('Delete Aborted'); return; }
- var s = '';
- for (var i = 0; i < record_ids.length; i++) {
- var robj = obj.network.simple_request('FM_BRE_DELETE',[ses(),record_ids[i]]);
- if (typeof robj.ilsevent != 'undefined') {
- if (!s) s = 'Error deleting these records:\n';
- s += 'Record #' + record_ids[i] + ' : ' + robj.textcode + ' : ' + robj.desc + '\n';
- }
- }
- if (s) { alert(s); } else { alert('Records deleted.'); }
-
- obj.render_pending_records(); // FIXME -- need a generic refresh for lists
- setTimeout(
- function() {
- JSAN.use('util.widgets');
- util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
- }, 0
- );
- } catch(E) {
- obj.error.standard_unexpected_error_alert('Records were not likely deleted.',E);
- }
-
- }
- ],
-
- 'cmd_broken' : [
- ['command'],
- function() { alert('Not Yet Implemented'); }
- ],
- 'cmd_record_buckets_done' : [
- ['command'],
- function() {
- window.close();
- }
- ],
- 'cmd_sel_opac' : [
- ['command'],
- function() {
- try {
- obj.list2.select_all();
- JSAN.use('util.functional');
- var docids = util.functional.map_list(
- obj.list2.dump_retrieve_ids(),
- function (o) {
- return JSON2js(o).docid; // docid
- }
- );
- for (var i = 0; i < docids.length; i++) {
- var doc_id = docids[i];
- var opac_url = xulG.url_prefix( urls.opac_rdetail ) + '?r=' + doc_id;
- var content_params = {
- 'session' : ses(),
- 'authtime' : ses('authtime'),
- 'opac_url' : opac_url,
- };
- xulG.new_tab(
- xulG.url_prefix(urls.XUL_OPAC_WRAPPER),
- {'tab_name':'Retrieving title...'},
- content_params
- );
- }
- } catch(E) {
- obj.error.standard_unexpected_error_alert('Showing in OPAC',E);
- }
- }
- ],
-
- }
- }
- );
- this.controller.render();
-
- if (typeof xulG == 'undefined') {
- obj.controller.view.cmd_sel_opac.disabled = true;
- obj.controller.view.cmd_sel_opac.setAttribute('disabled',true);
- } else {
- obj.controller.view.cmd_record_buckets_done.disabled = true;
- obj.controller.view.cmd_record_buckets_done.setAttribute('disabled',true);
- }
- },
-
- 'flesh_item_for_list' : function(docid,bucket_item_id) {
- var obj = this;
- try {
- var record = obj.network.simple_request( 'MODS_SLIM_RECORD_RETRIEVE', [ docid ]);
- if (record == null || typeof(record.ilsevent) != 'undefined') {
- throw(record);
- } else {
- var item = {
- 'retrieve_id' : js2JSON( { 'docid' : docid, 'bucket_item_id' : bucket_item_id } ),
- 'row' : {
- 'my' : {
- 'mvr' : record,
- }
- }
- };
- return item;
- }
- } catch(E) {
- obj.error.standard_unexpected_error_alert('Could not retrieve this record: ' + docid,E);
- return null;
- }
-
- },
-
-}
+ 'record_buckets_export_records' : [ ['render'], function(){} ],
+ 'record_buckets_list_actions' : [ ['render'], function(){} ]
+ }
+ }
+ );
+ this.controller.render();
+
+ if (typeof xulG == 'undefined') {
+ obj.controller.view.cmd_sel_opac.disabled = true;
+ obj.controller.view.cmd_sel_opac.setAttribute('disabled',true);
+ }
+ },
+
+ 'submit' : function() {
+ try {
+ var obj = this;
+ var x = document.getElementById('record_query_input');
+ if (x.value == '') {
+ setTimeout( function() { obj.controller.view.record_query_input.focus(); obj.controller.view.record_query_input.select(); }, 0 );
+ return;
+ }
+ obj.list0.clear();
+ var y = document.getElementById('query_status');
+ x.disabled = true;
+ if (y) y.value = $("catStrings").getString('staff.cat.record_buckets.submit.query_status');
+ obj.network.simple_request(
+ 'FM_BRE_ID_SEARCH_VIA_MULTICLASS_QUERY',
+ [ { 'limit' : 100 }, x.value, 1 ],
+ function(req) {
+ try {
+ var resp = req.getResultObject();
+ if (y) y.value = catStrings.getFormattedString('cat.results_returned',[resp.count]);
+ x.disabled = false;
+ if (resp.count > 0) {
+ JSAN.use('util.exec'); var exec = new util.exec();
+ var funcs = [];
+ for (var i = 0; i < resp.ids.length; i++) {
+ funcs.push(
+ function(b){
+ return function() {
+ obj.list0.append(obj.prep_record_for_list(b));
+ };
+ }(resp.ids[i][0])
+ );
+ }
+ funcs.push(
+ function() {
+ obj.controller.view.record_query_input.focus();
+ obj.controller.view.record_query_input.select();
+ }
+ );
+ exec.chain( funcs );
+ } else {
+ setTimeout( function() { obj.controller.view.record_query_input.focus(); obj.controller.view.record_query_input.select(); }, 0 );
+ }
+ } catch(E) {
+ obj.error.standard_unexpected_error_alert('submit_query_callback',E);
+ }
+ }
+ );
+ } catch(E) {
+ this.error.standard_unexpected_error_alert('submit_query',E);
+ }
+ },
+
+ 'prep_record_for_list' : function(docid,bucket_item_id) {
+ var obj = this;
+ try {
+ var item = {
+ 'retrieve_id' : js2JSON( { 'docid' : docid, 'bucket_item_id' : bucket_item_id } ),
+ 'row' : {
+ 'my' : {
+ 'docid' : docid,
+ 'bucket_item_id' : bucket_item_id
+ }
+ }
+ };
+ return item;
+ } catch(E) {
+ obj.error.standard_unexpected_error_alert($("catStrings").getFormattedString('staff.cat.record_buckets.prep_record_for_list.std_unex_err', [docid]),E);
+ return null;
+ }
+ }
+
+};
dump('exiting cat.record_buckets.js\n');