2a7233fc024092e11ea1f7cb8b243c81d7a4129c
[srvgit] / koha-tmpl / intranet-tmpl / prog / en / modules / common / patron_search.tt
1 [% USE Koha %]
2 [% INCLUDE 'doc-head-open.inc' %]
3 <title>Koha &rsaquo; Patron search</title>
4 [% INCLUDE 'doc-head-close.inc' %]
5 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
6 [% INCLUDE 'datatables.inc' %]
7
8 <script type="text/javascript">
9 //<![CDATA[
10
11 var search = 1;
12 $(document).ready(function(){
13     $("#info").hide();
14     $("#error").hide();
15
16     [% IF view != "show_results" %]
17         $("#searchresults").hide();
18         search = 0;
19     [% END %]
20
21     $("#searchmember_filter").on('keyup', function(){
22         filter();
23     });
24     // Apply DataTables on the results table
25     dtMemberResults = $("#memberresultst").dataTable($.extend(true, {}, dataTablesDefaults, {
26         'bServerSide': true,
27         'sAjaxSource': "/cgi-bin/koha/svc/members/search",
28         'fnServerData': function(sSource, aoData, fnCallback) {
29             if ( ! search ) {
30                 return;
31             }
32             aoData.push({
33                 'name': 'searchmember',
34                 'value': $("#searchmember_filter").val()
35             },
36             {
37                 'name': 'template_path',
38                 'value': 'acqui/tables/members_results.tt',
39             }
40             [% IF patrons_with_acq_perm_only %]
41             ,{
42                 'name': 'has_permission',
43                 'value': 'acquisition.order_manage',
44             }
45             [% END %]
46             );
47             $.ajax({
48                 'dataType': 'json',
49                 'type': 'POST',
50                 'url': sSource,
51                 'data': aoData,
52                 'success': function(json){
53                     fnCallback(json);
54                 }
55             });
56         },
57         'aoColumns':[
58             { 'mDataProp': 'dt_cardnumber' },
59             { 'mDataProp': 'dt_name' },
60             { 'mDataProp': 'dt_branch' },
61             { 'mDataProp': 'dt_category' },
62             { 'mDataProp': 'dt_action', 'bSortable': false }
63         ],
64         'bAutoWidth': false,
65         [% IF patrons_with_acq_perm_only %]
66             'bPaginate': false,
67         [% ELSE %]
68             'sPaginationType': 'full_numbers',
69             "iDisplayLength": [% Koha.Preference('PatronsPerPage') %],
70         [% END %]
71         'bFilter': false,
72         'bProcessing': true,
73     }));
74     dtMemberResults.fnAddFilters("filter", 750);
75 });
76
77 var delay = (function(){
78   var timer = 0;
79   return function(callback, ms){
80     clearTimeout (timer);
81     timer = setTimeout(callback, ms);
82   };
83 })();
84
85 function filter() {
86     search = 1;
87
88     $("#searchresults").show();
89
90     if ( $("#searchmember_filter").val().length > 0 ) {
91         delay(function(){
92             dtMemberResults.fnDraw();
93         }, 1000);
94     }
95
96     return false;
97 }
98
99     // modify parent window owner element
100     function add_user(borrowernumber, borrowername) {
101         var p = window.opener;
102         $("#info").hide();
103         $("#error").hide();
104         if ( p.add_user(borrowernumber, borrowername) < 0 ) {
105             $("#error").html(_("Borrower '%s' is already in the list.").format(borrowername));
106             $("#error").show();
107         } else {
108             $("#info").html(_("Borrower '%s' added.").format(borrowername));
109             $("#info").show();
110
111         }
112     }
113 //]]>
114 </script>
115
116 </head>
117 <body>
118 <div id="patron_search" class="yui-t7">
119   <div id="bd">
120     <div class="yui-g">
121
122         <h3>Search for patron</h3>
123
124           <label for="searchmember_filter">Search:</label>
125           <input type="text" id="searchmember_filter" value="[% searchmember %]"/>
126
127         [% IF patrons_with_acq_perm_only %]
128             <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>
129         [% END %]
130
131         <div id="info" class="dialog message"></div>
132         <div id="error" class="dialog alert"></div>
133
134         <div id="searchresults">
135             <table id="memberresultst">
136                 <thead>
137                     <tr>
138                         <th>Card</th>
139                         <th>Name</th>
140                         <th>Library</th>
141                         <th>Category</th>
142                         <th>&nbsp;</th>
143                     </tr>
144                   </thead>
145                 <tbody></tbody>
146             </table>
147         </div>
148
149 <div id="closewindow"><a href="#" class="close">Close</a></div>
150 </div>
151 </div>
152 [% INCLUDE 'intranet-bottom.inc' %]