Z3950 Batch : xul dialog cont.
authorBill Erickson <berick@esilibrary.com>
Mon, 18 Feb 2013 22:00:33 +0000 (17:00 -0500)
committerBill Erickson <berick@esilibrary.com>
Mon, 4 Mar 2013 20:53:41 +0000 (15:53 -0500)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/xul/staff_client/server/cat/bucketz39_dialog.js
Open-ILS/xul/staff_client/server/cat/bucketz39_dialog_overlay.xul

index b540278..5845811 100644 (file)
@@ -82,8 +82,25 @@ function Bucketz39Dialog() {
     }
 
     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(
@@ -95,21 +112,42 @@ function Bucketz39Dialog() {
             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();
index c19648a..734e397 100644 (file)
@@ -14,7 +14,7 @@
                 <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 -->
@@ -26,7 +26,7 @@
                         </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 -->
@@ -38,6 +38,9 @@
                             </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>