Bug 13891: DataTables server-side processing - Fix regressions
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / common / patron_search.tt
index e182688..b65d3f8 100644 (file)
@@ -18,9 +18,6 @@ $(document).ready(function(){
         search = 0;
     [% END %]
 
-    $("#searchmember_filter").on('keyup', function(){
-        filter();
-    });
     // Apply DataTables on the results table
     dtMemberResults = $("#memberresultst").dataTable($.extend(true, {}, dataTablesDefaults, {
         'bServerSide': true,
@@ -32,6 +29,15 @@ $(document).ready(function(){
             aoData.push({
                 'name': 'searchmember',
                 'value': $("#searchmember_filter").val()
+            },{
+                'name': 'firstletter',
+                'value': $("#firstletter_filter").val()
+            },{
+                'name': 'categorycode',
+                'value': $("#categorycode_filter").val()
+            },{
+                'name': 'branchcode',
+                'value': $("#branchcode_filter").val()
             },{
                 'name': 'name_sorton',
                 'value': 'borrowers.surname borrowers.firstname'
@@ -87,31 +93,27 @@ $(document).ready(function(){
         'bFilter': false,
         'bProcessing': true,
     }));
-    dtMemberResults.fnAddFilters("filter", 750);
-});
 
-var delay = (function(){
-  var timer = 0;
-  return function(callback, ms){
-    clearTimeout (timer);
-    timer = setTimeout(callback, ms);
-  };
-})();
+    $("#searchform").on('submit', filter);
+});
 
 function filter() {
     search = 1;
-
+    $("#firstletter_filter").val('');
     $("#searchresults").show();
-
-    if ( $("#searchmember_filter").val().length > 0 ) {
-        delay(function(){
-            dtMemberResults.fnDraw();
-        }, 1000);
-    }
-
+    dtMemberResults.fnDraw();
     return false;
 }
 
+// User has clicked on a letter
+function filterByFirstLetterSurname(letter) {
+    $("#firstletter_filter").val(letter);
+    search = 1;
+    $("#searchresults").show();
+    dtMemberResults.fnDraw();
+}
+
+
     // modify parent window owner element
     [% IF selection_type == 'add' %]
         function add_user(borrowernumber, borrowername) {
@@ -152,18 +154,56 @@ function filter() {
   <div id="bd">
     <div class="yui-g">
 
-        <h3>Search for patron</h3>
-
-          <label for="searchmember_filter">Search:</label>
-          <input type="text" id="searchmember_filter" value="[% searchmember %]"/>
+        <form id="searchform">
+            <fieldset class="brief">
+                <h3>Search for patron</h3>
+                <ol>
+                    <li>
+                        <label for="searchmember_filter">Search:</label>
+                        <input type="text" id="searchmember_filter" value="[% searchmember %]"/>
+                    </li>
+                    <li>
+                        <label for="categorycode_filter">Category:</label>
+                        <select id="categorycode_filter">
+                            <option value="">Any</option>
+                            [% FOREACH category IN categories %]
+                                <option value="[% category.categorycode %]">[% category.description %]</option>
+                            [% END %]
+                        </select>
+                    </li>
+                    <li>
+                        <label for="branchcode_filter">Library:</label>
+                        <select id="branchcode_filter">
+                            [% IF branches.size != 1 %]
+                                <option value="">Any</option>
+                            [% END %]
+                            [% FOREACH branch IN branches %]
+                                <option value="[% branch.branchcode %]">[% branch.branchname %]</option>
+                            [% END %]
+                        </select>
+                    </li>
+                </ol>
+                <fieldset class="action">
+                    <input type="submit" value="Search" />
+                </fieldset>
+            </fieldset>
+        <form>
 
         [% IF patrons_with_acq_perm_only %]
             <div class="hint">Only staff with superlibrarian or acquisitions permissions (or order_manage permission if granular permissions are enabled) are returned in the search results</div>
         [% END %]
 
+        <div class="browse">
+            Browse by last name:
+            [% FOREACH letter IN alphabet.split(' ') %]
+                <a style="cursor:pointer" onclick="filterByFirstLetterSurname('[% letter %]');">[% letter %]</a>
+            [% END %]
+        </div>
+
         <div id="info" class="dialog message"></div>
         <div id="error" class="dialog alert"></div>
 
+        <input type="hidden" id="firstletter_filter" value="" />
         <div id="searchresults">
             <table id="memberresultst">
                 <thead>