Bug 8612: [QA Follow-up] Remove two newlines from template output
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / reports / reserves_stats.tt
1 [% USE Branches %]
2 [% INCLUDE 'doc-head-open.inc' %]
3 <title>Koha &rsaquo; Reports &rsaquo; Holds statistics [% IF ( do_it ) %]&rsaquo; Results[% END %]</title>
4 [% INCLUDE 'doc-head-close.inc' %]
5 [% INCLUDE 'calendar.inc' %]
6 <script type="text/javascript">
7 //<![CDATA[
8         $(document).ready(function() {
9             // http://jqueryui.com/demos/datepicker/#date-range
10             var dates = $( "#filter_reservedate_begin, #filter_reservedate_end" ).datepicker({
11                 changeMonth: true,
12                 numberOfMonths: 1,
13                 onSelect: function( selectedDate ) {
14                     var option = this.id == "filter_reservedate_begin" ? "minDate" : "maxDate",
15                         instance = $( this ).data( "datepicker" );
16                         date = $.datepicker.parseDate(
17                             instance.settings.dateFormat ||
18                             $.datepicker._defaults.dateFormat,
19                             selectedDate, instance.settings );
20                     dates.not( this ).datepicker( "option", option, date );
21                 }
22             });
23             var datesND = $( "#filter_notificationdate_begin, #filter_notificationdate_end" ).datepicker({
24                 changeMonth: true,
25                 numberOfMonths: 1,
26                 onSelect: function( selectedDate ) {
27                     var option = this.id == "filter_notificationdate_begin" ? "minDate" : "maxDate",
28                         instance = $( this ).data( "datepicker" );
29                         date = $.datepicker.parseDate(
30                             instance.settings.dateFormat ||
31                             $.datepicker._defaults.dateFormat,
32                             selectedDate, instance.settings );
33                     datesND.not( this ).datepicker( "option", option, date );
34                 }
35             });
36             var datesRD = $( "#filter_reminderdate_begin, #filter_reminderdate_end" ).datepicker({
37                 changeMonth: true,
38                 numberOfMonths: 1,
39                 onSelect: function( selectedDate ) {
40                     var option = this.id == "filter_reminderdate_begin" ? "minDate" : "maxDate",
41                         instance = $( this ).data( "datepicker" );
42                         date = $.datepicker.parseDate(
43                             instance.settings.dateFormat ||
44                             $.datepicker._defaults.dateFormat,
45                             selectedDate, instance.settings );
46                     datesRD.not( this ).datepicker( "option", option, date );
47                 }
48             });
49             var datesWD = $( "#filter_waitingdate_begin, #filter_waitingdate_end" ).datepicker({
50                 changeMonth: true,
51                 numberOfMonths: 1,
52                 onSelect: function( selectedDate ) {
53                     var option = this.id == "filter_waitingdate_begin" ? "minDate" : "maxDate",
54                         instance = $( this ).data( "datepicker" );
55                         date = $.datepicker.parseDate(
56                             instance.settings.dateFormat ||
57                             $.datepicker._defaults.dateFormat,
58                             selectedDate, instance.settings );
59                     datesWD.not( this ).datepicker( "option", option, date );
60                 }
61             });
62             var datesCD = $( "#filter_cancellationdate_begin, #filter_cancellationdate_end" ).datepicker({
63                 changeMonth: true,
64                 numberOfMonths: 1,
65                 onSelect: function( selectedDate ) {
66                     var option = this.id == "filter_cancellationdate_begin" ? "minDate" : "maxDate",
67                         instance = $( this ).data( "datepicker" );
68                         date = $.datepicker.parseDate(
69                             instance.settings.dateFormat ||
70                             $.datepicker._defaults.dateFormat,
71                             selectedDate, instance.settings );
72                     datesCD.not( this ).datepicker( "option", option, date );
73                 }
74             });
75         });
76 //]]>
77 </script>
78 <style type="text/css">
79         .sql {display:none;}
80 </style>
81 </head>
82 <body id="rep_reserve_stats" class="rep">
83 [% INCLUDE 'header.inc' %]
84 [% INCLUDE 'cat-search.inc' %]
85
86 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/reports/reports-home.pl">Reports</a> [% IF ( do_it ) %]&rsaquo; <a href="/cgi-bin/koha/reports/reserves_stats.pl">Holds statistics</a> &rsaquo; Results [% ELSE %]&rsaquo; Holds statistics[% END %]</div>
87
88 <div id="doc3" class="yui-t2">
89
90    <div id="bd">
91         <div id="yui-main">
92         <div class="yui-b">
93
94 [% IF ( do_it ) %]
95     [% IF ( mainloop ) %]
96         <h1>Holds statistics</h1>
97         [% IF ( loopfilter ) %]
98             <p>Filtered on:</p>
99             <ul>
100             [% FOREACH loopfilte IN loopfilter %]
101                 [% IF ( loopfilte.err ) %]<li class="error">Error:
102                                 [% ELSIF ( loopfilte.sql ) %]<li class="sql">
103                                 [% ELSE %]<li>
104                                 [% END %]
105                                         [% loopfilte.crit %] [% loopfilte.filter %]
106                                 </li>
107             [% END %]
108             </ul>
109         [% END %]
110                 
111     [% FOREACH mainloo IN mainloop %]
112         
113         <table> 
114             <tr>
115                 <th>[% mainloo.line %] / [% mainloo.column %]</th>
116                 [% FOREACH loopco IN mainloo.loopcol %]
117                     <th>[% loopco.coltitle_display |html %]</th>
118                 [% END %]
119                 <th>TOTAL</th>
120                 </tr>
121                 [% FOREACH loopro IN mainloo.looprow %]
122                     <tr>
123                         <td>[% loopro.rowtitle_display or "UNKNOWN VALUE" |html %]</td>
124                     [% FOREACH loopcel IN loopro.loopcell %]
125                                                 <td align="center">
126                                                 [% IF ( loopcel.url_complement ) %]<a href="reserves_stats.pl?output=[% loopcel.output %]&amp;[% loopcel.url_complement %]">[% loopcel.value %]</a>[% ELSE %][% loopcel.value %][% END %]
127                                                 </td>
128                     [% END %]
129                                                 <td align="center">[% loopro.totalrow %]</td>
130                     </tr>
131                 [% END %]
132             <tr>
133                 <th>TOTAL</th>
134                 [% FOREACH loopfoote IN mainloo.loopfooter %]
135                 <th>[% loopfoote.totalcol %]</th>
136                 [% END %]
137                 <th>[% mainloo.total %]</th>
138             </tr>
139         </table>
140     [% END %]
141     [% END %]
142 [% ELSE %]
143
144     <form method="post" action="/cgi-bin/koha/reports/reserves_stats.pl">
145     <fieldset class="rows">
146         <legend>Holds statistics</legend><table>
147         <thead>
148             <tr>
149                 <th>Title</th>
150                 <th>Row</th>
151                 <th>Column</th>
152                 <th>Filter</th>
153             </tr>
154         </thead>
155         <tbody>
156                 <tr >
157                 <td>Hold status </td>
158                 <td><input type="radio" name="Line" value="reservestatus" /></td>
159                 <td><input type="radio" name="Column" value="reservestatus" checked="checked" /></td>
160                 <td>
161                                 <input type="checkbox" name="filter_reservestatus_or_1" value="1" /> Asked
162                                 <input type="checkbox" name="filter_reservestatus_or_2" value="2" /> Processing
163                                 <input type="checkbox" name="filter_reservestatus_or_3" value="3" /> Waiting
164                                 <input type="checkbox" name="filter_reservestatus_or_4" value="4" /> Satisfied
165                                 <input type="checkbox" name="filter_reservestatus_or_5" value="5" /> Cancelled
166                                 </td>
167              </tr>
168              <tr>
169                 <td>Hold Date</td>
170                 <td><input type="radio" name="Line" value="reservedate" /></td>
171                 <td><input type="radio" name="Column" value="reservedate" /></td>
172                 <td><label for="filter_reservedate_begin">From</label> <input type="text"  size="10" id="filter_reservedate_begin" name="filter_reservedate_begin" />
173                     <label for="filter_reservedate_end">To</label> <input size="10" id="filter_reservedate_end" name="filter_reservedate_end" value="" type="text" />
174                     </td>
175                 </tr>
176             <tr>
177                 <td>Notification Date</td>
178                 <td><input type="radio" name="Line" value="notificationdate" /></td>
179                 <td><input type="radio" name="Column" value="notificationdate" /></td>
180                 <td><label for="filter_notificationdate_begin">From</label> <input type="text"  size="10" id="filter_notificationdate_begin" name="filter_notificationdate_begin" />
181                     <label for="filter_notificationdate_end">To</label> <input  size="10" id="filter_notificationdate_end" name="filter_notificationdate_end" value="" type="text" />
182                     </td>
183              </tr>
184             <tr>
185                 <td>Reminder Date</td>
186                 <td><input type="radio" name="Line" value="reminderdate" /></td>
187                 <td><input type="radio" name="Column" value="reminderdate" /></td>
188                 <td><label for="filter_reminderdate_begin">From</label> <input type="text"  size="10" id="filter_reminderdate_begin" name="Filter" />
189                     <label for="filter_reminderdate_end">To</label> <input size="10" id="filter_reminderdate_end" name="filter_reminderdate_end" value="" type="text" />
190                     </td>
191              </tr>
192             <tr>
193                 <td>Waiting Date</td>
194                 <td><input type="radio" name="Line" value="waitingdate" /></td>
195                 <td><input type="radio" name="Column" value="waitingdate" /></td>
196                 <td><label for="filter_waitingdate_begin">From</label> <input type="text"  size="10" id="filter_waitingdate_begin" name="filter_waitingdate_begin" />
197                     <label for="filter_waitingdate_end">To</label> <input  size="10" id="filter_waitingdate_end" name="filter_waitingdate_end" value="" type="text" />
198                     </td>
199              </tr>
200                          <tr>
201                 <td>Cancellation Date</td>
202                 <td><input type="radio" name="Line" value="cancellationdate" /></td>
203                 <td><input type="radio" name="Column" value="cancellationdate" /></td>
204                 <td><label for="filter_cancellationdate_begin">From</label> <input type="text"  size="10" id="filter_cancellationdate_begin" name="filter_cancellationdate_begin" />
205                     <label for="filter_cancellationdate_end">To</label> <input  size="10" id="filter_cancellationdate_end" name="filter_cancellationdate_end" value="" type="text" />
206                     </td>
207              </tr>
208         <tr>
209             <td>Patron category</td>
210             <td><input type="radio" name="Line" value="borrowers.categorycode" /></td>
211             <td><input type="radio" name="Column" value="borrowers.categorycode" /></td>
212            <td><select name="filter_categorycode" id="borcat">
213                <option value=""> </option>
214                [% FOREACH categoryloo IN categoryloop %]
215                  <option value="[% categoryloo.categorycode %]">[% categoryloo.description %]</option>
216                [% END %]
217                </select>
218              </td> 
219         </tr>
220         <tr>
221             <td>Item type</td>
222             <td><input type="radio" name="Line" value="items.itype" /></td>
223             <td><input type="radio" name="Column" value="items.itype" /></td>
224            <td><select name="filter_items.itype" id="itype">
225                <option value=""> </option>
226                [% FOREACH itemtype IN itemtypes %]
227                  <option value="[% itemtype.itemtype %]">[% itemtype.translated_description %]</option>
228                [% END %]
229                </select>
230              </td> 
231         </tr>
232         <tr>
233             <td>Pickup library</td>
234             <td><input type="radio" name="Line" value="reserves.branchcode" checked="checked" /></td>
235             <td><input type="radio" name="Column" value="reserves.branchcode" /></td>
236             <td><select name="filter_reserves.branchcode" id="resbranchcode">
237                <option value=""> </option>
238                 [% PROCESS options_for_libraries libraries => Branches.all() %]
239                </select>
240              </td> 
241         </tr>
242         <tr>
243             <td>Holding library</td>
244             <td><input type="radio" name="Line" value="items.holdingbranch" /></td>
245             <td><input type="radio" name="Column" value="items.holdingbranch" /></td>
246             <td><select name="filter_items.holdingbranch" id="holdingbranch">
247                <option value=""> </option>
248                 [% PROCESS options_for_libraries libraries => Branches.all() %]
249                </select>
250              </td> 
251         </tr>
252         <tr>
253             <td>Home library</td>
254             <td><input type="radio" name="Line" value="items.homebranch" /></td>
255             <td><input type="radio" name="Column" value="items.homebranch" /></td>
256             <td><select name="filter_items.homebranch" id="homebranch">
257                 <option value=""> </option>
258                 [% PROCESS options_for_libraries libraries => Branches.all() %]
259                </select>
260              </td> 
261         </tr>
262         <tr>
263             <td>Collection</td>
264             <td><input type="radio" name="Line"   value="items.ccode" /></td>
265             <td><input type="radio" name="Column" value="items.ccode" /></td>
266             <td><select name="filter_items.ccode" id="ccode">
267                 <option value=""> </option>
268                 [% FOREACH ccodeloo IN ccodeloop %]
269                                         [% IF ( ccodeloo.selected ) %] <option value="[% ccodeloo.code %]" selected="selected">[% ccodeloo.description %]</option>[% ELSE %]<option value="[% ccodeloo.code %]">[% ccodeloo.description %]</option>[% END %]
270                 [% END %]
271                 </select>
272             </td>
273         </tr>
274         <tr>
275             <td>Shelving location</td>
276             <td><input type="radio" name="Line" value="items.location" /></td>
277             <td><input type="radio" name="Column" value="items.location" /></td>
278             <td><select name="filter_items.location" id="location">
279                 <option value=""> </option>
280                 [% FOREACH locationloo IN locationloop %]
281                                         [% IF ( locationloo.selected ) %]<option value="[% locationloo.code %]" selected="selected">[% locationloo.description %]</option>[% ELSE %]<option value="[% locationloo.code %]">[% locationloo.description %]</option>[% END %]
282                                 [% END %]
283                </select>
284             </td> 
285         </tr>
286         <tr>
287             <td>Item call number</td>
288             <td></td>
289             <td></td>
290             <td>From <input type="text" name="filter_items.itemcallnumber_begin" size="10" /> (inclusive) to <input type="text" name="filter_items.itemcallnumber_endex" size="10" /> (exclusive) </td>
291         </tr>
292         [% IF ( hassort1 ) %]
293         <tr><td>Patron sort 1</td>
294                         <td><input type="radio" name="Line" value="borrowers.sort1" /></td>
295                         <td><input type="radio" name="Column" value="borrowers.sort1" /></td>
296                         <td><select name="filter_borrowers.sort1" id="sort1">
297                <option value=""> </option>
298                [% FOREACH Bsort IN Bsort1 %]
299                            [% IF ( Bsort.selected ) %]<option value="[% Bsort.authorised_value %]" selected="selected">[% Bsort.lib %]</option>[% ELSE %]<option value="[% Bsort.authorised_value %]" >[% Bsort.lib %]</option>[% END %]
300                [% END %]
301                </select>
302             </td> 
303         </tr>
304         [% END %]
305         [% IF ( hassort2 ) %]
306         <tr><td>Patron sort 2</td>
307             <td><input type="radio" name="Line" value="borrowers.sort2" /></td>
308             <td><input type="radio" name="Column" value="borrowers.sort2" /></td>
309                 <td><select name="filter_borrowers.sort2" id="sort2">
310                <option value=""> </option>
311                [% FOREACH Bsort IN Bsort2 %]
312                            [% IF ( Bsort.selected ) %]<option value="[% Bsort.authorised_value %]" selected="selected">[% Bsort.lib %]</option>[% ELSE %]<option value="[% Bsort.authorised_value %]" >[% Bsort.lib %]</option>[% END %]
313                [% END %]
314                </select>
315             </td> 
316         </tr>
317         [% END %]
318         </tbody>
319     </table><br /></fieldset>
320
321 <fieldset class="rows"><legend>Cell value </legend><ol><li><label for="cellvalue1">Count holds:</label> <input type="radio" name="Cellvalue" value="1" id="cellvalue1" checked="checked" /> </li>
322             <li><label for="cellvalue2">Count unique borrowers:</label> <input type="radio" name="Cellvalue" value="2" id="cellvalue2" /> </li><li><label for="cellvalue3">Count unique items:</label> <input type="radio" name="Cellvalue" id="cellvalue3" value="3" /> </li><li><label for="cellvalue4">Count unique biblios:</label> <input type="radio" name="Cellvalue" id="cellvalue4" value="4" /> </li></ol></fieldset>
323                         
324         <fieldset class="rows">
325         <legend>Output</legend>
326     <ol>
327         <li>
328             <label for="outputscreen">To screen into the browser: </label><input type="radio" checked="checked" name="output" id="outputscreen" value="screen" />
329         </li>
330         <li>
331             <label for="outputfile">To a file:</label> <input type="radio" name="output" value="file" id="outputfile" />
332             <label class="inline" for="basename">Named: </label><input type="text" name="basename" id="basename" value="Export" />
333             <label class="inline" for="MIME">Into an application:</label>
334             <select name="MIME" id="MIME" size="1">
335             [% FOREACH value IN CGIextChoice %]
336                 <option value="[% value %]">[% value %]</option>
337             [% END %]
338             </select>
339             <select name="sep" id="sep" size="1">
340             [% FOREACH value IN CGIsepChoice.values.sort() %]
341               [% IF ( value == CGIsepChoice.default ) %]
342                 <option value="[% value %]" selected="selected">[% value %]</option>
343               [% ELSE %]
344                 <option value="[% value %]">[% value %]</option>
345               [% END %]
346             [% END %]
347             </select>
348         </li>
349     </ol>
350         </fieldset>
351
352         <fieldset class="action">
353         <input type="submit" value="Submit" />
354         <input type="hidden" name="report_name" value="[% report_name %]" />
355         <input type="hidden" name="do_it" value="1" />
356         </fieldset>
357         </form>
358 [% END %]
359
360 </div>
361 </div>
362 <div class="yui-b">
363 [% INCLUDE 'reports-menu.inc' %]
364 </div>
365 </div>
366 [% INCLUDE 'intranet-bottom.inc' %]