acq invoice search; s/invoice/external search mode
authorBill Erickson <berick@esilibrary.com>
Wed, 11 Jul 2012 17:55:21 +0000 (13:55 -0400)
committerBill Erickson <berick@esilibrary.com>
Wed, 11 Jul 2012 17:55:21 +0000 (13:55 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/templates/acq/invoice/view.tt2
Open-ILS/web/js/ui/default/acq/search/unified.js

index f22941a..c1e6fd1 100644 (file)
         <div id="acq-unified-form">
             <div>
                 <label for="acq-unified-result-type">Search for</label>
-                <select id="acq-unified-result-type">
+                <select id="acq-unified-result-type" disabled='disabled'>
                     <option value="lineitem">line items</option>
+                    <!--
                     <option value="lineitem_and_bib">
                         line items &amp; catalog records
                     </option>
                     <option value="picklist">selection lists</option>
                     <option value="purchase_order">purchase orders</option>
                     <option value="invoice">invoices</option>
+                    -->
                 </select>
                 <label for="acq-unified-conjunction">matching</label>
                 <select id="acq-unified-conjunction">
 </div>
 <script type="text/javascript">
     var invoiceId = '[% ctx.page_args.0 %]';
-    var unifiedSearchMode = 'invoice';
+    window.unifiedSearchExternalMode = true;
 </script>
 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/search/unified.js"></script>
 <script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/invoice/common.js'> </script>
index f023dd4..76065f7 100644 (file)
@@ -11,10 +11,6 @@ if (!localeStrings) {   /* we can do this because javascript doesn't have block
     var localeStrings = dojo.i18n.getLocalization('openils.acq', 'acq');
 }
 
-if (typeof unifiedSearchMode == 'undefined') {
-    unifiedSearchMode = '';
-}
-
 var termSelectorFactory;
 var termManager;
 var resultManager;
@@ -625,90 +621,92 @@ function ResultManager(liPager, poGrid, plGrid, invGrid) {
     this.plCache = {};
     this.invCache = {};
 
-    if (unifiedSearchMode == 'invoice') {
+    if (window.unifiedSearchExternalMode) {
+
+        // external user will define result types and handlers
 
     } else {
 
-    this.result_types = {
-        "lineitem": {
-            "search_options": {
-                "flesh_attrs": true,
-                "flesh_cancel_reason": true,
-                "flesh_notes": true
+        this.result_types = {
+            "lineitem": {
+                "search_options": {
+                    "flesh_attrs": true,
+                    "flesh_cancel_reason": true,
+                    "flesh_notes": true
+                },
+                "revealer": function() {
+                    self.liPager.show();
+                    progressDialog.show(true);
+                },
+                "finisher": function() {
+                    self.liPager.batch_length = self.count_results;
+                    self.liPager.relabelControls();
+                    self.liPager.enableControls(true);
+                    progressDialog.hide();
+                },
+                "adder": function(li) {
+                    self.liPager.liTable.addLineitem(li);
+                },
+                "interface": self.liPager
             },
-            "revealer": function() {
-                self.liPager.show();
-                progressDialog.show(true);
+            "purchase_order": {
+                "search_options": {
+                    "no_flesh_cancel_reason": true
+                },
+                "revealer": function() {
+                    self.poGrid.resetStore();
+                    self.poGrid.showLoadProgressIndicator();
+                    self.poCache = {};
+                },
+                "finisher": function() {
+                    self.poGrid.hideLoadProgressIndicator();
+                },
+                "adder": function(po) {
+                    self.poCache[po.id()] = po;
+                    self.poGrid.store.newItem(acqpo.toStoreItem(po));
+                },
+                "interface": self.poGrid
             },
-            "finisher": function() {
-                self.liPager.batch_length = self.count_results;
-                self.liPager.relabelControls();
-                self.liPager.enableControls(true);
-                progressDialog.hide();
-            },
-            "adder": function(li) {
-                self.liPager.liTable.addLineitem(li);
-            },
-            "interface": self.liPager
-        },
-        "purchase_order": {
-            "search_options": {
-                "no_flesh_cancel_reason": true
-            },
-            "revealer": function() {
-                self.poGrid.resetStore();
-                self.poGrid.showLoadProgressIndicator();
-                self.poCache = {};
-            },
-            "finisher": function() {
-                self.poGrid.hideLoadProgressIndicator();
-            },
-            "adder": function(po) {
-                self.poCache[po.id()] = po;
-                self.poGrid.store.newItem(acqpo.toStoreItem(po));
-            },
-            "interface": self.poGrid
-        },
-        "picklist": {
-            "search_options": {
-                "flesh_lineitem_count": true,
-                "flesh_owner": true
+            "picklist": {
+                "search_options": {
+                    "flesh_lineitem_count": true,
+                    "flesh_owner": true
+                },
+                "revealer": function() {
+                    self.plGrid.resetStore();
+                    self.plGrid.showLoadProgressIndicator();
+                    self.plCache = {};
+                },
+                "finisher": function() {
+                    self.plGrid.hideLoadProgressIndicator();
+                },
+                "adder": function(pl) {
+                    self.plCache[pl.id()] = pl;
+                    self.plGrid.store.newItem(acqpl.toStoreItem(pl));
+                },
+                "interface": self.plGrid
             },
-            "revealer": function() {
-                self.plGrid.resetStore();
-                self.plGrid.showLoadProgressIndicator();
-                self.plCache = {};
+            "invoice": {
+                "search_options": {
+                    "no_flesh_misc": true
+                },
+                "finisher": function() {
+                    self.invGrid.hideLoadProgressIndicator();
+                },
+                "revealer": function() {
+                    self.invGrid.resetStore();
+                    self.invCache = {};
+                },
+                "adder": function(inv) {
+                    self.invCache[inv.id()] = inv;
+                    self.invGrid.store.newItem(acqinv.toStoreItem(inv));
+                },
+                "interface": self.invGrid
             },
-            "finisher": function() {
-                self.plGrid.hideLoadProgressIndicator();
-            },
-            "adder": function(pl) {
-                self.plCache[pl.id()] = pl;
-                self.plGrid.store.newItem(acqpl.toStoreItem(pl));
-            },
-            "interface": self.plGrid
-        },
-        "invoice": {
-            "search_options": {
-                "no_flesh_misc": true
-            },
-            "finisher": function() {
-                self.invGrid.hideLoadProgressIndicator();
-            },
-            "revealer": function() {
-                self.invGrid.resetStore();
-                self.invCache = {};
-            },
-            "adder": function(inv) {
-                self.invCache[inv.id()] = inv;
-                self.invGrid.store.newItem(acqinv.toStoreItem(inv));
-            },
-            "interface": self.invGrid
-        },
-        "no_results": {
-            "revealer": function() { alert(localeStrings.NO_RESULTS); }
+            "no_results": {
+                "revealer": function() { alert(localeStrings.NO_RESULTS); }
+            }
         }
-    }
     };
 
     this._dataLoader = function(opts) {
@@ -791,7 +789,9 @@ function ResultManager(liPager, poGrid, plGrid, invGrid) {
 
     this.go = function(search_object) {
 
-        if (unifiedSearchMode == 'invoice') { // TODO: s/invoice/inline/ or some such
+        if (window.unifiedSearchExternalMode) {
+            // assume for now that external mode implies inline results display
+            
             uriManager = new URIManager();
             uriManager.search_object = search_object;
             uriManager.result_type = dojo.byId("acq-unified-result-type").getValue();
@@ -933,8 +933,8 @@ function URIManager() {
 openils.Util.addOnLoad(
     function() {
 
-        // onload handled by invoice UI
-        if (unifiedSearchMode == 'invoice') return;
+        // onload handled by external user
+        if (window.unifiedSearchExternalMode) return;
 
         termManager = new TermManager();