From b2f87f3c69ad885bafcdcd8840311c9bbf3ce63a Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Tue, 19 Feb 2013 17:55:28 -0500 Subject: [PATCH] Z3950 Batch : xul dialog Signed-off-by: Bill Erickson --- .../staff_client/server/cat/bucketz39_dialog.js | 89 +++++++++++++++++----- .../server/cat/bucketz39_dialog_overlay.xul | 9 +++ .../xul/staff_client/server/cat/record_buckets.js | 1 + 3 files changed, 79 insertions(+), 20 deletions(-) diff --git a/Open-ILS/xul/staff_client/server/cat/bucketz39_dialog.js b/Open-ILS/xul/staff_client/server/cat/bucketz39_dialog.js index 5845811dc9..66e98d6039 100644 --- a/Open-ILS/xul/staff_client/server/cat/bucketz39_dialog.js +++ b/Open-ILS/xul/staff_client/server/cat/bucketz39_dialog.js @@ -2,6 +2,9 @@ var dialog; function Bucketz39Dialog() { + /** + * builds the Z39 sources and Z39 search indexes grid + */ this._build_options_grid = function(list, key, id_attr, label_attr) { // determine the number of columns per row dynamically @@ -26,6 +29,9 @@ function Bucketz39Dialog() { }); } + /** + * Fetches needed data + */ this.init = function() { var self = this; var pcrud = new OpenSRF.ClientSession('open-ils.pcrud'); @@ -35,7 +41,7 @@ function Bucketz39Dialog() { method : 'open-ils.pcrud.search.vbq.atomic', params : [ this.authtoken, - {owner : this.user_id}, + {owner : this.user_id, queue_type : 'bib'}, {order_by : {vbq : 'name'}} ], oncomplete : function(r) { @@ -79,6 +85,65 @@ function Bucketz39Dialog() { 'source_selector', 'name', 'label'); } }).send(); + + pcrud.request({ + method : 'open-ils.pcrud.search.vms.atomic', + params : [this.authtoken, { + owner : this._ws_ancestors(), + mtype : 'biblio' + }], + oncomplete : function(r) { + var sets = r.recv().content(); + dojo.forEach(sets, function(set) { + var attrs = {label : set.name(), value : set.id() }; + var item = dojo.create('menuitem', attrs); + dojo.byId('match_set_selector').appendChild(item); + }); + } + }).send(); + + } + + /* my workstation org unit plus ancestors as a flat list */ + this._ws_ancestors = function() { + JSAN.use('OpenILS.data'); + var data = new OpenILS.data(); + data.stash_retrieve(); + var org = data.hash.aou[ this.ws_ou ] + var org_list = []; + + while (org) { + org_list.push(org.id()); + org = data.hash.aou[org.parent_ou()]; + } + return org_list; + } + + /** + * extracts params from UI form elements + */ + this._collect_params = function() { + + // request params + var params = [this.authtoken, this.bucket_id]; + + // Z39 sources + params.push(dojo.query('[source_selector]').filter( + function(cbox) { return cbox.checked }).map( + function(cbox) { return cbox.getAttribute('value') })); + + // indexes + params.push(dojo.query('[index_selector]').filter( + function(cbox) { return cbox.checked }).map( + function(cbox) { return cbox.getAttribute('value') })); + + // queue name / match set + params.push({ + queue_name : dojo.byId('queue_selector').parentNode.value, + match_set : dojo.byId('match_set_selector').parentNode.value + }); + + return params; } this.submit = function() { @@ -98,24 +163,7 @@ function Bucketz39Dialog() { function(row) { dojo.removeClass(row, 'hideme') } ); - - // request params - var params = [this.authtoken, this.bucket_id]; - - // Z39 sources - params.push(dojo.query('[source_selector]').filter( - function(cbox) { return cbox.checked }).map( - function(cbox) { return cbox.getAttribute('value') })); - - // indexes - params.push(dojo.query('[index_selector]').filter( - function(cbox) { return cbox.checked }).map( - function(cbox) { return cbox.getAttribute('value') })); - - // queue name - params.push({queue_name : - dojo.byId('queue_selector').parentNode.value}); - + var params = this._collect_params(); dump('Submitting z39 search with: ' + js2JSON(params) + '\n'); var ses = new OpenSRF.ClientSession('open-ils.search'); @@ -149,6 +197,7 @@ function my_init() { dialog = new Bucketz39Dialog(); dialog.user_id = window.arguments[0]; dialog.authtoken = window.arguments[1]; - dialog.bucket_id = window.arguments[2]; + dialog.ws_ou = window.arguments[2]; + dialog.bucket_id = window.arguments[3]; dialog.init(); } diff --git a/Open-ILS/xul/staff_client/server/cat/bucketz39_dialog_overlay.xul b/Open-ILS/xul/staff_client/server/cat/bucketz39_dialog_overlay.xul index 734e39736f..aa16378515 100644 --- a/Open-ILS/xul/staff_client/server/cat/bucketz39_dialog_overlay.xul +++ b/Open-ILS/xul/staff_client/server/cat/bucketz39_dialog_overlay.xul @@ -48,6 +48,15 @@ + + +