From ceae0c54105c562f29fe5796690e5e43f611dbd0 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 18 Feb 2013 15:49:32 -0500 Subject: [PATCH] Z3950 Batch : initial xul dialog for finding matches Signed-off-by: Bill Erickson --- .../staff_client/server/cat/bucketz39_dialog.js | 93 +++++++++++++--------- .../server/cat/bucketz39_dialog_overlay.xul | 48 +++++++---- 2 files changed, 87 insertions(+), 54 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 df2968716a..b540278f0e 100644 --- a/Open-ILS/xul/staff_client/server/cat/bucketz39_dialog.js +++ b/Open-ILS/xul/staff_client/server/cat/bucketz39_dialog.js @@ -1,17 +1,32 @@ var dialog; function Bucketz39Dialog() { - dump('here....'); - // number of data sets to fetch on page load - this.loadCount = 3; + this._build_options_grid = function(list, key, id_attr, label_attr) { - this.item_loaded = function() { - if (--this.loadCount > 0) return; - // anything to do? + // determine the number of columns per row dynamically + var grid = dojo.byId(key).parentNode; + var colcount = grid.getElementsByTagName('column').length; + + var row; + dojo.forEach(list, function(obj, idx) { + + if (idx % colcount == 0) { + row = dojo.create('row'); + dojo.byId(key).appendChild(row); + } + + var attrs = { + value : obj[id_attr](), + label : obj[label_attr]() + }; + attrs[key] = 1; + + row.appendChild(dojo.create('checkbox', attrs)); + }); } - this.load = function() { + this.init = function() { var self = this; var pcrud = new OpenSRF.ClientSession('open-ils.pcrud'); @@ -27,16 +42,15 @@ function Bucketz39Dialog() { if (resp = r.recv()) { var qlist = resp.content(); dojo.forEach(qlist, function(q) { - var attrs = {value : q.id(), label : q.name()}; + var attrs = {label : q.name()}; var item = dojo.create('menuitem', attrs); dojo.byId('queue_selector').appendChild(item); }); - self.item_loaded(); } } }).send(); - // z39 index maps + // z39 index field maps pcrud.request({ method : 'open-ils.pcrud.search.czifm.atomic', params : [ @@ -45,19 +59,9 @@ function Bucketz39Dialog() { {order_by : {czifm : 'label'}} ], oncomplete : function(r) { - if (resp = r.recv()) { - var maps = resp.content(); - dojo.forEach(maps, function(map) { - var attrs = { - value : map.id(), - label : map.label(), - index_selector : '1', - }; - var cbox = dojo.create('checkbox', attrs); - dojo.byId('index_selector').appendChild(cbox); - }); - self.item_loaded(); - } + self._build_options_grid( + r.recv().content(), + 'index_selector', 'id', 'label'); } }).send(); @@ -70,22 +74,37 @@ function Bucketz39Dialog() { {order_by : {czs : 'name'}} ], oncomplete : function(r) { - if (resp = r.recv()) { - var sources = resp.content(); - dojo.forEach(sources, function(src) { - var attrs = { - value : src.name(), - label : src.label(), - source_selector : '1', - }; - var item = dojo.create('checkbox', attrs); - dojo.byId('source_selector').appendChild(item); - }); - self.item_loaded(); - } + self._build_options_grid( + r.recv().content(), + 'source_selector', 'name', 'label'); } }).send(); } + + this.submit = function() { + + var params = [this.authtoken, this.user_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') })); + + params.push({queue_name : dojo.byId('queue_selector').parentNode.value}); + + dump('submitting z39 search with: ' + js2JSON(params) + '\n'); + + /* + open-ils.search + open-ils.search.z3950.bucket_search_queue + "fcb49802e337036baf7225c7044f04e4", 1, ["biblios", "loc"], [3], {"queue_name":"zq1"} + */ + } } function my_init() { @@ -93,5 +112,5 @@ function my_init() { dialog.user_id = window.arguments[0]; dialog.authtoken = window.arguments[1]; dialog.bucket_id = window.arguments[2]; - dialog.load(); + 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 d70d326118..c19648a1ed 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 @@ -13,32 +13,46 @@ - -