Bug 26165: Fix duplication of large saved reports
[srvgit] / koha-tmpl / intranet-tmpl / prog / en / modules / reports / issues_avg_stats.tt
index 166e4b0..6a61633 100644 (file)
@@ -1,49 +1,50 @@
+[% USE Branches %]
+[% SET footerjs = 1 %]
 [% INCLUDE 'doc-head-open.inc' %]
-<title>Koha &rsaquo; Reports &rsaquo; Average checkout period</title>
+<title>Koha &rsaquo; Reports &rsaquo; Average loan time</title>
 [% INCLUDE 'doc-head-close.inc' %]
-[% INCLUDE 'calendar.inc' %]
 </head>
-<body>
+
+<body id="rep_issues_avg_stats" class="rep">
 [% INCLUDE 'header.inc' %]
 [% INCLUDE 'cat-search.inc' %]
 
-<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/issues_avg_stats.pl">Average Checkout Period</a> &rsaquo; Results [% ELSE %]&rsaquo; Average Checkout Period[% END %]</div>
+<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/issues_avg_stats.pl">Average loan time</a> &rsaquo; Results [% ELSE %]&rsaquo; Average loan time[% END %]</div>
 
-<div id="doc3" class="yui-t2">
-   
-   <div id="bd">
-       <div id="yui-main">
-       <div class="yui-b">
+<div class="main container-fluid">
+    <div class="row">
+        <div class="col-sm-10 col-sm-push-2">
+            <main>
 
 [% IF ( do_it ) %]
        [% FOREACH mainloo IN mainloop %]
-               <h1>Average Checkout Period</h1>
+        <h1>Average checkout period</h1>
                [% IF ( mainloo.loopfilter ) %]
-                       <p>Filtered on</p>
+            <p>Filtered on:</p>
                        [% FOREACH loopfilte IN mainloo.loopfilter %]
-                                       <p>[% IF ( loopfilte.err ) %]  [% END %] [% loopfilte.crit %] =[% loopfilte.filter %][% IF ( loopfilte.err ) %]  [% END %]</p>
+                                       <p>[% IF ( loopfilte.err ) %]  [% END %] [% loopfilte.crit | html %] =[% loopfilte.filter | html %][% IF ( loopfilte.err ) %]  [% END %]</p>
                        [% END %]
                [% END %]
                
                <table>
                        <tr>
-                               <th>[% mainloo.line %] / [% mainloo.column %]</th>
+                               <th>[% mainloo.line | html %] / [% mainloo.column | html %]</th>
                                [% FOREACH loopco IN mainloo.loopcol %]
-                                       <th>[% loopco.coltitle %]</th>
+                                       <th>[% loopco.coltitle | html %]</th>
                                [% END %]
                                <th>TOTAL</th>
                        </tr>
                                [% FOREACH loopro IN mainloo.looprow %]
                                        <tr>
                                                [% IF ( loopro.hilighted ) %]<td class="hilighted">[% ELSE %]<td>[% END %]
-                                               [% loopro.rowtitle %]</td>
+                                               [% loopro.rowtitle | html %]</td>
                                                [% FOREACH loopcel IN loopro.loopcell %]
                                                        [% IF ( loopcel.hilighted ) %]<td class="hilighted">[% ELSE %]<td>[% END %]
-                                                               [% IF ( loopcel.value ) %][% loopcel.value %][% END %]
+                                                               [% IF ( loopcel.value ) %][% loopcel.value | html %][% END %]
                                                        </td>
                                                [% END %]
                                                [% IF ( loopro.hilighted ) %]<td>[% ELSE %]<td>[% END %]
-                                                       [% loopro.totalrow %]
+                                                       [% loopro.totalrow | html %]
                                                </td>
                                        </tr>
                                [% END %]
                                        <th>TOTAL</th>
                                        [% FOREACH loopfoote IN mainloo.loopfooter %]
                                                <th>
-                                                       [% loopfoote.totalcol %]
+                                                       [% loopfoote.totalcol | html %]
                                                </th>
                                        [% END %]
-                                       <th>[% mainloo.total %]</th>
+                                       <th>[% mainloo.total | html %]</th>
                                </tr>
                </table>
        [% END %]
                        <tr class="hilighted">
                                <td>Checkout date</td>
                                <td><input type="radio" name="Line" value="timestamp" /></td>
-                               <td><input type="radio" name="Column" value="timestamp" /></td>
+                <td><input type="radio" checked="checked" name="Column" value="timestamp" /></td>
                                <td > <label for="from">From</label> <input type="text" size="10" id="from" name="Filter" />
-                                                       <img src="[% themelang %]/lib/calendar/cal.gif" alt="Show Calendar" border="0" id="openCalendarFrom" style="cursor: pointer;" />
-                                                               <script language="JavaScript" type="text/javascript">
-                                                                       function validate1(date) {
-                                                                               var day = date.getDate();
-                                                                               var month = date.getMonth() + 1;
-                                                                               var year = date.getFullYear();
-                                                                               var weekDay = date.getDay();
-                                                                               var dayMonth = month + '-' + day;
-                                                                               var dateString = year + '-' + month + '-' + day;
-                                                                               var dateTo = document.getElementById('to').value.split("-");
-                                                                               var limitDate = new Date(dateTo[0], (dateTo[1] - 1), dateTo[2]);
-                                                                               if (date > limitDate) {
-                                                                                       return true;
-                                                                               } else {
-                                                                                       return false;
-                                                                               }
-                                                                       }
-                                       
-                                                                       Calendar.setup(
-                                                                               {
-                                                                                       inputField : "from",
-                                                                                       ifFormat : "[% DHTMLcalendar_dateformat %]",
-                                                                                       button : "openCalendarFrom",
-                                                                                       disableFunc : validate1,
-                                                                                       dateStatusFunc : validate1
-                                                                               }
-                                                                       );
-                                                               </script>
                                        <label for="to">To</label> <input size="10" id="to" name="Filter" value="" type="text" />
-                                               <img src="[% themelang %]/lib/calendar/cal.gif" alt="Show Calendar" id="openCalendarTo" style="cursor: pointer;" border="0" />
-                                                       <script type="text/javascript">
-                                                               function validate2(date) {
-                                                                       var day = date.getDate();
-                                                                       var month = date.getMonth() + 1;
-                                                                       var year = date.getFullYear();
-                                                                       var weekDay = date.getDay();
-                                                                       var dayMonth = month + '-' + day;
-                                                                       var dateString = year + '-' + month + '-' + day;
-                                                                       var dateFrom = document.getElementById('from').value.split("-");
-                                                                       var limitDate = new Date(dateFrom[0], (dateFrom[1] - 1), dateFrom[2]);
-                                                                       if (limitDate > date) {
-                                                                               return true;
-                                                                       } else {
-                                                                               return false;
-                                                                       }
-                                                               }
-               
-                                                               Calendar.setup(
-                                                                       {
-                                                                               inputField : "to",
-                                                                               ifFormat : "[% DHTMLcalendar_dateformat %]",
-                                                                               button : "openCalendarTo",
-                                                                               disableFunc : validate2,
-                                                                               dateStatusFunc : validate2
-                                                                       }
-                                                               );
-                                                       </script> <span class="hint">[% INCLUDE 'date-format.inc' %]</span>
+                    <span class="hint">[% INCLUDE 'date-format.inc' %]</span>
                                </td>
                        </tr>
                        <tr class="hilighted"> 
                                <td><input type="radio" name="Line" value="returndate" /></td>
                                <td><input type="radio" name="Column" value="returndate" /></td>
                                <td > <label for="fromRO">From</label> <input type="text" size="10" id="fromRO" name="Filter" />
-                                                       <img src="[% themelang %]/lib/calendar/cal.gif" alt="Show Calendar" border="0" id="openCalendarFromRO" style="cursor: pointer;" />
-                                                               <script language="JavaScript" type="text/javascript">
-                                                                       function validate1(date) {
-                                                                               var day = date.getDate();
-                                                                               var month = date.getMonth() + 1;
-                                                                               var year = date.getFullYear();
-                                                                               var weekDay = date.getDay();
-                                                                               var dayMonth = month + '-' + day;
-                                                                               var dateString = year + '-' + month + '-' + day;
-                                                                               var dateTo = document.getElementById('toRO').value.split("-");
-                                                                               var limitDate = new Date(dateTo[0], (dateTo[1] - 1), dateTo[2]);
-                                                                               if (date > limitDate) {
-                                                                                       return true;
-                                                                               } else {
-                                                                                       return false;
-                                                                               }
-                                                                       }
-                                       
-                                                                       Calendar.setup(
-                                                                               {
-                                                                                       inputField : "fromRO",
-                                                                                       ifFormat : "[% DHTMLcalendar_dateformat %]",
-                                                                                       button : "openCalendarFromRO",
-                                                                                       disableFunc : validate1,
-                                                                                       dateStatusFunc : validate1
-                                                                               }
-                                                                       );
-                                                               </script>
                                        <label for="toRO">To</label> <input type="text" size="10" id="toRO" name="Filter" value="" />
-                                               <img src="[% themelang %]/lib/calendar/cal.gif" alt="Show Calendar" id="openCalendarToRO" style="cursor: pointer;" border="0" />
-                                                       <script type="text/javascript">
-                                                               function validate2(date) {
-                                                                       var day = date.getDate();
-                                                                       var month = date.getMonth() + 1;
-                                                                       var year = date.getFullYear();
-                                                                       var weekDay = date.getDay();
-                                                                       var dayMonth = month + '-' + day;
-                                                                       var dateString = year + '-' + month + '-' + day;
-                                                                       var dateFrom = document.getElementById('fromRO').value.split("-");
-                                                                       var limitDate = new Date(dateFrom[0], (dateFrom[1] - 1), dateFrom[2]);
-                                                                       if (limitDate > date) {
-                                                                               return true;
-                                                                       } else {
-                                                                               return false;
-                                                                       }
-                                                               }
-               
-                                                               Calendar.setup(
-                                                                       {
-                                                                               inputField : "toRO",
-                                                                               ifFormat : "[% DHTMLcalendar_dateformat %]",
-                                                                               button : "openCalendarToRO",
-                                                                               disableFunc : validate2,
-                                                                               dateStatusFunc : validate2
-                                                                       }
-                                                               );
-                                                       </script> <span class="hint">[% INCLUDE 'date-format.inc' %]</span>
+                    <span class="hint">[% INCLUDE 'date-format.inc' %]</span>
                                </td>
                        </tr>
                        <tr> 
                        </tr>
                        <tr class="hilighted">
                                <td>Patron category</td>
-                               <td><input type="radio" name="Line" value="borrowers.categorycode" /></td>
+                <td><input type="radio" checked="checked" name="Line" value="borrowers.categorycode" /></td>
                                <td><input type="radio" name="Column" value="borrowers.categorycode" /></td>
-                               <td>[% CGIBorCat %]</td>
+                <td>
+                    <select name="Filter" size="1" id="borcat">
+                        <option value=""></option>
+                        [% FOREACH patron_category IN patron_categories %]
+                            <option value="[%- patron_category.categorycode | html -%]">[%- patron_category.description | html -%]</option>
+                        [% END %]
+                    </select>
+                </td>
                        </tr>
                        <tr>
                                <td>Item type</td>
                                <td><input type="radio" name="Line" value="itemtype" /></td>
                                <td><input type="radio" name="Column" value="itemtype" /></td>
-                               <td >[% CGIItemType %]</td>
+                <td>
+                    <select name="Filter" size="1" id="itemtypes">
+                        <option value=""></option>
+                        [% FOREACH itemtype IN itemtypes %]
+                        <option value="[%- itemtype.itemtype | html -%]">[%- itemtype.translated_description | html -%]</option>
+                        [% END %]
+                    </select>
+                </td>
                        </tr>
                        <tr class="hilighted">
                                <td>Library</td>
                                <td><input type="radio" name="Line" value="branchcode" /></td>
                                <td><input type="radio" name="Column" value="branchcode" /></td>
-                               <td>[% CGIBranch %]</td>
+                <td>
+                    <select name="Filter" size="1" id="branch">
+                        <option value=""></option>
+                        [% PROCESS options_for_libraries libraries => Branches.all() %]
+                    </select>
+                </td>
                        </tr>
-<!-- Modified according to statistics table
-                       <tr>
-                               <td>Issuing Library</td>
-                               <td><input type="radio" name="Line" value="issuingbranch"></td>
-                               <td><input type="radio" name="Column" value="issuingbranch"></td>
-                               <td >[% CGIBranch %]</td>
-                       </tr> -->
-<!--End Modified -->
                        [% IF ( hassort1 ) %]
                                <tr class="hilighted"> 
                                        <td>Sort1</td>
                                        <td><input type="radio" name="Line" value="borrowers.sort1" /></td>
                                        <td><input type="radio" name="Column" value="borrowers.sort1" /></td>
-                                       <td>[% CGISort1 %] </td>
+                    <td>
+                        <select name="Filter" size="1" id="sort1">
+                            <option value=""></option>
+                            [%- FOREACH value IN Sort1.values %]
+                            <option value="[%- value | html -%]">[%- value | html -%]</option>
+                            [%- END %]
+                        </select>
+                    </td>
                                </tr>
                        [% END %]
                        [% IF ( hassort2 ) %]
                                        <td>Sort2</td>
                                        <td><input type="radio" name="Line" value="borrowers.sort2" /></td>
                                        <td><input type="radio" name="Column" value="borrowers.sort2" /></td>
-                                       <td>[% CGISort2 %] </td>
+                    <td>
+                        <select name="Filter" size="1" id="sort2">
+                            <option value=""></option>
+                            [%- FOREACH value IN Sort2.values %]
+                            <option value="[%- value | html -%]">[%- value | html -%]</option>
+                            [%- END %]
+                        </select>
+                    </td>
                                </tr>
                        [% END %]
                </tbody>
        
        <fieldset class="rows">
        <legend>Output</legend>
-<ol><li><label for="outputscreen">To screen into the browser: </label><input type="radio" checked="checked" name="output" id="outputscreen" value="screen" /> </li>
-<li><label for="outputfile">To a file:</label>                 <input type="radio" name="output" value="file" id="outputfile" /> <label class="inline" for="basename">Named: </label><input type="text" name="basename" id="basename" value="Export" /> <label class="inline" for="MIME">Into an application:  
-               </label>[% CGIextChoice %]
-               [% CGIsepChoice %]</li></ol>
+    <ol>
+        <li>
+            <label for="outputscreen">To screen into the browser: </label><input type="radio" checked="checked" name="output" id="outputscreen" value="screen" />
+        </li>
+        <li>
+            <label for="outputfile">To a file:</label> <input type="radio" name="output" value="file" id="outputfile" />
+            <label class="inline" for="basename">Named: </label><input type="text" name="basename" id="basename" value="Export" />
+            <label class="inline" for="MIME">Into an application: </label>
+            <select name="MIME"  size="1" id="MIME">
+                <option value="CSV">CSV</option>
+            </select>
+            <select name="sep" id="sep" size="1">
+            [% FOREACH value IN CGIsepChoice.values.sort() %]
+              [% IF ( value == CGIsepChoice.default ) %]
+                <option value="[% value | html %]" selected="selected">[% value | html %]</option>
+              [% ELSE %]
+                <option value="[% value | html %]">[% value | html %]</option>
+              [% END %]
+            [% END %]
+            </select>
+        </li>
+    </ol>
        </fieldset>
 
        <fieldset class="action">
        <input type="hidden" name="Filter" value="" />
-       <input type="hidden" name="report_name" value="[% report_name %]" />
+       <input type="hidden" name="report_name" value="[% report_name | html %]" />
        <input type="hidden" name="do_it" value="1" />
        <input type="submit" value="Submit" />
        </fieldset>
        </form>
 [% END %]
 
-</div>
-</div>
-<div class="yui-b">
-[% INCLUDE 'reports-menu.inc' %]
-</div>
-</div>
+            </main>
+        </div> <!-- /.col-sm-10.col-sm-push-2 -->
+
+        <div class="col-sm-2 col-sm-pull-10">
+            <aside>
+                [% INCLUDE 'reports-menu.inc' %]
+            </aside>
+        </div> <!-- /.col-sm-2.col-sm-pull-10 -->
+     </div> <!-- /.row -->
+
+
+[% MACRO jsinclude BLOCK %]
+    [% INCLUDE 'calendar.inc' %]
+    <script>
+        $(document).ready(function() {
+            // http://jqueryui.com/demos/datepicker/#date-range
+            var dates = $( "#from, #to" ).datepicker({
+                changeMonth: true,
+                numberOfMonths: 1,
+                onSelect: function( selectedDate ) {
+                    var option = this.id == "from" ? "minDate" : "maxDate",
+                        instance = $( this ).data( "datepicker" );
+                        date = $.datepicker.parseDate(
+                            instance.settings.dateFormat ||
+                            $.datepicker._defaults.dateFormat,
+                            selectedDate, instance.settings );
+                    dates.not( this ).datepicker( "option", option, date );
+                }
+            });
+            var datesRO = $( "#fromRO, #toRO" ).datepicker({
+                changeMonth: true,
+                numberOfMonths: 1,
+                onSelect: function( selectedDate ) {
+                    var option = this.id == "fromRO" ? "minDate" : "maxDate",
+                        instance = $( this ).data( "datepicker" );
+                        date = $.datepicker.parseDate(
+                            instance.settings.dateFormat ||
+                            $.datepicker._defaults.dateFormat,
+                            selectedDate, instance.settings );
+                    datesRO.not( this ).datepicker( "option", option, date );
+                }
+            });
+        });
+    </script>
+[% END %]
+
 [% INCLUDE 'intranet-bottom.inc' %]