}
this.submit = function() {
+ var self = this;
+
+ // progress labels
+ this.search_bib_count = dojo.byId('search-bib-count');
+ this.search_queue_count = dojo.byId('search-queue-count');
+ this.search_progress = dojo.byId('search-progress');
+
+ // hide submit row
+ dojo.addClass(dojo.byId('search-submit-row'), 'hideme');
+
+ // show progress rows
+ dojo.forEach(
+ dojo.query('.search_result_row'),
+ function(row) { dojo.removeClass(row, 'hideme') }
+ );
+
- var params = [this.authtoken, this.user_id];
+ // 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') }));
- params.push({queue_name : dojo.byId('queue_selector').parentNode.value});
+ // queue name
+ params.push({queue_name :
+ dojo.byId('queue_selector').parentNode.value});
+
+ dump('Submitting z39 search with: ' + js2JSON(params) + '\n');
- dump('submitting z39 search with: ' + js2JSON(params) + '\n');
+ var ses = new OpenSRF.ClientSession('open-ils.search');
+ ses.request({
+ method : 'open-ils.search.z3950.bucket_search_queue',
+ params : params,
+ onresponse : function(r) {
+ var resp = r.recv();
+ if (!resp) return;
- /*
- open-ils.search
- open-ils.search.z3950.bucket_search_queue
- "fcb49802e337036baf7225c7044f04e4", 1, ["biblios", "loc"], [3], {"queue_name":"zq1"}
- */
+ var stat = resp.content();
+ dump('Z39 Batch Response: ' + js2JSON(stat) + '\n');
+
+ dojo.attr(self.search_bib_count, 'value', ''+stat.bre_count);
+ dojo.attr(self.search_queue_count, 'value', ''+stat.queue_count);
+
+ var scount = Number(stat.search_count);
+ if (scount) {
+ dojo.attr(self.search_progress, 'value', ''+Math.floor(
+ (Number(stat.search_complete) / scount) * 100
+ ));
+ }
+ },
+ oncomplete : function() {
+ }
+ }).send();
}
}
function my_init() {
dialog = new Bucketz39Dialog();
- dialog.user_id = window.arguments[0];
+ dialog.user_id = window.arguments[0];
dialog.authtoken = window.arguments[1];
dialog.bucket_id = window.arguments[2];
dialog.init();
<columns><column /><column /></columns>
<rows>
<row style='border-bottom:1px solid black; padding:5px;'>
- <label class='header' value="Search These Z39.50 Servers:"/>
+ <label class='header' value="Z39.50 Servers:"/>
<grid>
<columns>
<!-- display 2 Z-sources per row -->
</grid>
</row>
<row style='border-bottom:1px solid black; padding:5px;'>
- <label class='header' value="Use These Z39.50 Search Indexes:"/>
+ <label class='header' value="Z39.50 Search Indexes:"/>
<grid>
<columns>
<!-- display 3 Z-index options per row -->
</rows>
</grid>
</row>
+
+ <!-- TODO css -->
+
<row style='border-bottom:1px solid black; padding:5px;'>
<label class='header' value="Add Results to Queue:"/>
<menulist editable='true'>
</menupopup>
</menulist>
</row>
- <row style='padding:5px;'>
+ <row style='padding:5px;' id='search-submit-row'>
<button oncommand="window.close();"
icon="remove" accesskey="C" label="Cancel" />
<button oncommand="dialog.submit();"
icon="accept" accesskey="P" label="Perform Search" />
</row>
+ <row class='hideme search_result_row'
+ style='border-bottom:1px solid black; padding:5px;'>
+ <label class='header' value='Bib Records to Search:'/>
+ <label id='search-bib-count' value='0'/>
+ </row>
+ <row class='hideme search_result_row'
+ style='border-bottom:1px solid black; padding:5px;'>
+ <label class='header' value='Matches Found:'/>
+ <label id='search-queue-count' value='0'/>
+ </row>
+ <row class='hideme search_result_row' style='padding:5px;'>
+ <label class='header' value='Search Progress:'/>
+ <progressmeter id='search-progress' mode='determined'/>
+ </row>
+
+ <!-- TODO cancel / show queue -->
+
</rows>
</grid>
</vbox>