invoice search : store search in cookie
authorBill Erickson <berick@esilibrary.com>
Thu, 19 Jul 2012 16:09:39 +0000 (12:09 -0400)
committerBill Erickson <berick@esilibrary.com>
Thu, 19 Jul 2012 16:09:39 +0000 (12:09 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/templates/acq/invoice/view.tt2
Open-ILS/web/js/ui/default/acq/invoice/view.js

index 8ee5237..ba4fbb9 100644 (file)
 
                     <div id="acq-unified-form">
                         <div>
-                            <label for="acq-unified-result-type">Search for</label>
+                            <label for="acq-unified-result-type">[% l('Search for') %]</label>
                             <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">
                             <button onclick="termManager.addRow()">Add Search Term</button>
                         </div>
                         <div>
-                            <button
-                                onclick="clearSearchResTable(); resultManager.go(termManager.buildSearchObject())">
-                                [% l('Search') %]
-                            </button>
-                            <button 
-                                onclick='addSelectedToInvoice()'>
+                            <button onclick="performSearch()">[% l('Search') %]</button>
+                            <button onclick='addSelectedToInvoice()'>
                                 [% l('Add Selected Items to Invoice') %]
                             </button>
                         </div>
     var invoiceId = '[% ctx.page_args.0 %]';
     window.unifiedSearchExternalMode = true;
 </script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/base64.js"></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>
 <script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/invoice/view.js'> </script>
index fb11ab0..11a214d 100644 (file)
@@ -1,5 +1,6 @@
 dojo.require('dojo.date.locale');
 dojo.require('dojo.date.stamp');
+dojo.require('dojo.cookie');
 dojo.require('dijit.form.CheckBox');
 dojo.require('dijit.form.Button');
 dojo.require('dijit.form.CurrencyTextBox');
@@ -223,13 +224,25 @@ function doAttachPo() {
     );
 }
 
+function performSearch() {
+    clearSearchResTable(); 
+    var searchObject = termManager.buildSearchObject();
+    dojo.cookie('invs', base64Encode(searchObject));
+    dojo.cookie('invc', dojo.byId("acq-unified-conjunction").getValue());
+    resultManager.go(searchObject)
+}
+
+
 function renderUnifiedSearch() {
 
-    if (!searchInitDone) {
+    if (searchInitDone) {
+        termManager.reflect(termManager._prevSearch);
+
+    } else {
+
         searchInitDone = true;
         termManager = new TermManager();
         resultManager = new ResultManager();
-        termManager.addRow();
         resultsLoader = new searchResultsLoader();
 
         // define custom lineitem result handler
@@ -246,6 +259,16 @@ function renderUnifiedSearch() {
                 "interface": resultsLoader
             }
         };
+
+
+        var searchObject = dojo.cookie('invs');
+        if (searchObject) {
+            // if there is a search object cookie, populate the search form
+            termManager.reflect(base64Decode(searchObject));
+            dojo.byId("acq-unified-conjunction").setValue(dojo.cookie('invc'));
+        } else {
+            termManager.addRow();
+        }
     }
 
     dojo.addClass(dojo.byId('oils-acq-invoice-table'), 'hidden');