Bug 12904: Force browser to load new javascript files after upgrade
[koha_ffzg] / koha-tmpl / intranet-tmpl / prog / en / modules / tools / inventory.tt
index 6ec6c2e..ed55ceb 100644 (file)
@@ -1,95 +1,12 @@
 [% USE KohaDates %]
 [% USE Branches %]
+[% SET footerjs = 1 %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; Tools &rsaquo; Inventory</title>
 [% INCLUDE 'doc-head-close.inc' %]
-<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
-[% INCLUDE 'datatables.inc' %]
-[% INCLUDE 'calendar.inc' %]
-<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
-<script type="text/javascript">
-//<![CDATA[
-function checkForm() {
-    if ( $('#uploadbarcodes').val() ) {
-        if ( !(
-            $('#branchloop').val()   ||
-            $('#locationloop').val() ||
-            $('#minlocation').val()  ||
-            $('#maxlocation').val()  ||
-            $('#statuses input:checked').length
-        ) ) {
-            return confirm(
-                _("You have not selected any catalog filters and are about to compare a file of barcodes to your entire catalog.") + "\n\n" +
-                _("For large catalogs this can result in unexpected behavior") + "\n\n" +
-                _("Are you sure you want to do this?")
-            );
-        }
-    }
-
-    return true;
-}
-
-$(document).ready(function(){
-        inventorydt = $('#inventoryt').dataTable($.extend(true, {}, dataTablesDefaults, {
-            'sPaginationType': 'full_numbers',
-            [% IF compareinv2barcd %]
-                "aoColumnDefs": [ { "bSortable": false, "aTargets": [ 1 ] } ],
-            [% ELSE %]
-                "aoColumnDefs": [ { "bSortable": false, "aTargets": [ 0 ] } ],
-            [% END %]
-            'fnDrawCallback': function() {
-                //bind the click handler script to the newly created elements held in the table
-                $('.openWin').bind('click',function(e){
-                    e.preventDefault();
-                    openWindow(this.href,'marcview',800,600);
-                });
-            }
-        } ));
-
-
-        $("#continuewithoutmarkingbutton").click(function(){
-            inventorydt.fnPageChange( 'next' );
-            return false;
-        });
-
-        $("#markseenandcontinuebutton").click(function(){
-            var param = '';
-            $("input:checked").each(function() {
-                param += "|" + $(this).attr('name');
-            });
-            $.post('/cgi-bin/koha/tools/ajax-inventory.pl', { seen: param });
-            inventorydt.fnPageChange( 'next' );
-            return false;
-        });
-
-        $("#markseenandquit").click(function(){
-            var param = '';
-            $("input:checked").each(function() {
-                param += "|" + $(this).attr('name');
-            });
-            $.ajax({
-              type: 'POST',
-              url: '/cgi-bin/koha/tools/ajax-inventory.pl',
-              data: { seen: param},
-              async: false
-            });
-            document.location.href = '/cgi-bin/koha/tools/inventory.pl';
-            return false;
-        });
-
-
-    $(".checkall").click(function(){
-            $(".checkboxed").checkCheckboxes();
-            return false;
-        });
-    $(".clearall").click(function(){
-            $(".checkboxed").unCheckCheckboxes();
-            return false;
-        });
-});
-//]]>
-</script>
+<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables_[% KOHA_VERSION %].css" />
 </head>
+
 <body id="tools_inventory" class="tools">
 [% INCLUDE 'header.inc' %]
 [% INCLUDE 'cat-search.inc' %]
@@ -101,7 +18,7 @@ $(document).ready(function(){
    <div id="bd">
     <div id="yui-main">
     <div class="yui-b">
-    <h1>Inventory/Stocktaking</h1>
+    <h1>Inventory</h1>
     [% IF (moddatecount) %]<div class="dialog message">[% moddatecount %] items modified : datelastseen set to [% date | $KohaDates %]</div>
     <div class="dialog alert">Number of potential barcodes read: [% LinesRead %]</div>[% END %]
     [% IF (errorfile) %]<div class="dialog alert">[% errorfile %] can't be opened</div>[% END %]
@@ -120,18 +37,19 @@ $(document).ready(function(){
     [% END %]
        [% UNLESS op %]
     <div class="yui-g">
-    <form method="post" action="/cgi-bin/koha/tools/inventory.pl" enctype="multipart/form-data" onsubmit="return checkForm()">
+    <form method="post" id="inventory_form" action="/cgi-bin/koha/tools/inventory.pl" enctype="multipart/form-data">
         <fieldset class="rows">
-            <legend>Use a barcode file</legend>
-     <ol>
+          <legend>Use a barcode file</legend>
+          <ol>
             <li><label for="uploadbarcodes">Barcode file: </label> <input type="file" id="uploadbarcodes" name="uploadbarcodes" /></li>
-            <li><label for="setdate">Set inventory date to:</label> <input type="text" id="setdate" name="setdate" value="[% today | $KohaDates %]" class="datepickerfrom" />
-            </li>
+            <li><label for="setdate">Set inventory date to:</label> <input type="text" id="setdate" name="setdate" value="[% today | $KohaDates %]" class="datepicker" disabled /></li>
+            <li><label for="compareinv2barcd">Compare barcodes list to results: </label><input type="checkbox" name="compareinv2barcd" id="compareinv2barcd" disabled /></li>
+            <li><label for="dont_checkin">Do not check in items scanned during inventory: </label><input type="checkbox" name="dont_checkin" id="dont_checkin" disabled /></li>
           </ol>
         </fieldset>
 
         <fieldset class="rows">
-        <legend>Select items you want to check</legend>
+        <legend>Item location filters</legend>
         <ol><li>
         <label for="branch">Library: </label>
             <input type="radio" name="branch" value="homebranch"> Home library</input>
@@ -139,13 +57,7 @@ $(document).ready(function(){
         </li><li>
         <label for="branchloop">Library: </label><select id="branchloop" name="branchcode" style="width:12em;">
             <option value="">All libraries</option>
-        [% FOREACH branchloo IN branchloop %]
-            [% IF ( branchloo.selected ) %]
-                <option value="[% branchloo.value %]" selected="selected">[% branchloo.branchname %]</option>
-            [% ELSE %]
-                <option value="[% branchloo.value %]">[% branchloo.branchname %]</option>
-            [% END %]
-        [% END %]
+            [% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode, unfiltered => 1, ) %]
         </select>
         </li>
         [% IF (authorised_values) %]
@@ -168,11 +80,12 @@ $(document).ready(function(){
            <li><label for="maxlocation">...and: </label>
                 <input type="text" name="maxlocation" id="maxlocation" value="[% maxlocation %]" />
         </li>
-        [% IF (statuses) %]
     </ol>
     </fieldset>
-            <fieldset class="rows">
-            <legend>Item statuses</legend>
+
+    <fieldset class="rows" id="optionalfilters">
+            <legend>Optional filters for inventory list or comparing barcodes</legend>
+            <br/>
             <div id="statuses" style="display: block;">
                   [% FOREACH status IN statuses %]
                       [% IF (status.values) %]
@@ -180,40 +93,50 @@ $(document).ready(function(){
                               <legend>[% status.fieldname %]</legend>
                               <ul id="statuses-[% fieldname %]" style="display: inline;">
                               [% FOREACH value IN status.values %]
-                                  [% IF (value.lib) %]<li>
+                                  [% IF (value.lib) %]
+                                    <li>
                                     <label for="[% value.id %]">
-                                      [% value.lib %]
+                                        [% IF value.authorised_value==0 %]
+                                            For loan
+                                        [% ELSE %]
+                                            [% value.lib %]
+                                        [% END %]
                                     </label>
                                     <input type="checkbox" name="status-[% status.fieldname %]-[% value.authorised_value %]" id="[% value.authorised_value %]" />
-                                  </li>[% END %]
+                                    </li>
+                                  [% END %]
                               [% END %]
                               </ul>
                           </fieldset>
                       [% END %]
                   [% END %]
                 </div>
-            </fieldset>
-        <fieldset class="rows">
-          <ol>
-        [% END %]
-
-        <li><label for="datelastseen">Inventory date:</label>
-            <input type="text" id="datelastseen" name="datelastseen" value="[% datelastseen | $KohaDates %]" class="datepickerfrom" />
+        <ol>
+        <li>
+            <br/>
+            <label for="datelastseen">Last inventory date:</label>
+            <input type="text" id="datelastseen" name="datelastseen" value="[% datelastseen | $KohaDates %]" class="datepicker" />
+            (Skip records marked as seen on or after this date.)
         </li>
-        <li><label for="ignoreissued">Skip items on loan: </label>
+        <li>
+            <label for="ignoreissued">Skip items on loan: </label>
             [% IF (ignoreissued) %]
-            <input type="checkbox" id="ignoreissued" name="ignoreissued" checked="checked" /></li>
+                <input type="checkbox" id="ignoreissued" name="ignoreissued" checked="checked" />
             [% ELSE %]
-            <input type="checkbox" id="ignoreissued" name="ignoreissued" /></li>
+                <input type="checkbox" id="ignoreissued" name="ignoreissued" />
             [% END %]
+        </li>
+        </ol>
+    </fieldset>
+
+        <fieldset class="rows">
+          <legend>Additional options</legend>
+          <ol>
+
         <li>
            <label for="CSVexport">Export to CSV file: </label>
            <input type="checkbox" name="CSVexport" id="CSVexport" />
         </li>
-        <li>
-            <label for="compareinv2barcd">Compare barcodes list to results: </label>
-            <input type="checkbox" name="compareinv2barcd" id="compareinv2barcd" />
-        </li>
         </ol>
   </fieldset>
             <input type="hidden" name="op" value="do_it" />
@@ -225,35 +148,36 @@ $(document).ready(function(){
     [% END %]
     [% IF (op) %]
     <form method="post" action="/cgi-bin/koha/tools/inventory.pl" class="checkboxed">
-    <input type="hidden" name="markseen" value="1" />
     <input type="hidden" name="minlocation" value="[% minlocation %]" />
     <input type="hidden" name="maxlocation" value="[% maxlocation %]" />
     <input type="hidden" name="location" value="[% location %]" />
     <input type="hidden" name="branchcode" value="[% branchcode %]" />
     <input type="hidden" name="datelastseen" value="[% datelastseen %]" />
 
-    [% UNLESS compareinv2barcd %]
-      <div><a href="#" class="checkall">[Select all]</a> <a href="#" class="clearall">[Clear all]</a></div>
+    [% UNLESS uploadedbarcodesflag %]
+      <div><a href="#" class="checkall"><i class="fa fa-check"></i> Select all</a> <a href="#" class="clearall"><i class="fa fa-remove"></i> Clear all</a></div>
     [% END %]
 
     <table id="inventoryt">
     <thead>
         <tr>
-            [% UNLESS compareinv2barcd %]<th>Seen</th>[% END %]
+            [% UNLESS uploadedbarcodesflag %]<th>Seen</th>[% END %]
             <th>Barcode</th>
+            <th>Call number</th>
             <th>Library</th>
             <th>Title</th>
             <th>Status</th>
             <th>Lost</th>
             <th>Damaged</th>
-            <th>Unseen since</th>
+            <th>Withdrawn</th>
+            <th>Last seen</th>
             <th>Problems</th>
         </tr>
     </thead>
     <tbody>
     [% FOREACH result IN loop %]
         <tr>
-            [% UNLESS compareinv2barcd %]
+            [% UNLESS uploadedbarcodesflag %]
               <td>
                 <input type="checkbox" name="SEEN-[% result.itemnumber %]" value="1" />
               </td>
@@ -261,12 +185,16 @@ $(document).ready(function(){
             <td>
             [% result.barcode | html %]
             </td>
+            <td>[% result.itemcallnumber | html %]</td>
             <td>
                 [% Branches.GetName( result.homebranch ) %]
-                [% result.location | html %] [% IF ( result.itemcallnumber ) %][[% result.itemcallnumber | html %]][% ELSE %][% END %]
+                <span class="shelvingloc">[% result.location | html %]</span>
             </td>
             <td>
-            <p><a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% result.biblionumber %]" class="openWin">[% result.title | html %]</a></p><p>[% result.author | html %]</p>
+                <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% result.biblionumber %]" class="openWin">[% result.title | html %]</a>
+                [% IF ( result.author ) %]
+                    by <span class="author">[% result.author | html %]</span>
+                [% END %]
             </td>
             <td>
             [% result.notforloan | html %]
@@ -278,17 +206,24 @@ $(document).ready(function(){
             [% result.damaged | html %]
             </td>
             <td>
+            [% result.withdrawn | html %]
+            </td>
+            <td>
             [% result.datelastseen | $KohaDates | html %]
             </td>
             <td>
-            [% IF result.problem == 'wrongplace' %]
-                <p>Item should not have been scanned</p>
-            [% ELSIF result.problem == 'missingitem' %]
-                <p>Item missing</p>
-            [% ELSIF result.problem == 'changestatus' %]
-                <p>Change item status</p>
-            [% ELSIF result.problem == 'not_scanned' %]
-                <p>Item should have been scanned</p>
+            [% FOREACH problem IN result.problems %]
+                [% IF problem.key == 'wrongplace' %]
+                    Found in wrong place<br/>
+                [% ELSIF problem.key == 'changestatus' %]
+                    Unknown not-for-loan status<br/>
+                [% ELSIF problem.key == 'not_scanned' %]
+                    Missing (not scanned)<br/>
+                [% ELSIF problem.key == 'checkedout' %]
+                    Still checked out<br/>
+                [% ELSIF problem.key == 'no_barcode' %]
+                    No barcode<br/>
+                [% END %]
             [% END %]
             </td>
         </tr>
@@ -296,8 +231,8 @@ $(document).ready(function(){
     </tbody>
     </table>
     <div class="spacer"></div>
-    [% UNLESS compareinv2barcd %]
-      <div style="padding : .3em 0"><a href="#" class="checkall">[Select all]</a> <a href="#" class="clearall">[Clear all]</a></div>
+    [% UNLESS uploadedbarcodesflag %]
+      <div style="padding : .3em 0"><a href="#" class="checkall"><i class="fa fa-check"></i> Select all</a> <a href="#" class="clearall"><i class="fa fa-remove"></i> Clear all</a></div>
       <input type="submit" id="markseenandquit" value="Mark seen and quit" />
       <input type="submit" value="Mark seen and continue &gt;&gt;" id="markseenandcontinuebutton" />
       <input type="submit" value="Continue without marking &gt;&gt;" id="continuewithoutmarkingbutton" class="submit" />
@@ -312,4 +247,130 @@ $(document).ready(function(){
 [% INCLUDE 'tools-menu.inc' %]
 </div>
 </div>
+
+[% MACRO jsinclude BLOCK %]
+    <script type="text/javascript" src="[% interface %]/[% theme %]/js/tools-menu_[% KOHA_VERSION %].js"></script>
+    [% INCLUDE 'datatables.inc' %]
+    [% INCLUDE 'calendar.inc' %]
+    <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.checkboxes.min_[% KOHA_VERSION %].js"></script>
+    <script type="text/javascript">
+        function checkForm() {
+            if ( $('#uploadbarcodes').val() ) {
+                if ( !(
+                    $('#branchloop').val()   ||
+                    $('#locationloop').val() ||
+                    $('#minlocation').val()  ||
+                    $('#maxlocation').val()  ||
+                    $('#statuses input:checked').length
+                ) ) {
+                    return confirm(
+                        _("You have not selected any catalog filters and are about to compare a file of barcodes to your entire catalog.") + "\n\n" +
+                        _("For large catalogs this can result in unexpected behavior") + "\n\n" +
+                        _("Are you sure you want to do this?")
+                    );
+                }
+            }
+
+            return true;
+        }
+
+        $(document).ready(function(){
+            inventorydt = $('#inventoryt').dataTable($.extend(true, {}, dataTablesDefaults, {
+                'sPaginationType': 'full_numbers',
+                [% IF compareinv2barcd %]
+                    // sort on callnumber
+                    "aaSorting": [[ 1, "asc" ]],
+                [% ELSE %]
+                    // first column contains checkboxes
+                    "aoColumnDefs": [
+                        { "bSortable": false, "bSearchable": false, "aTargets": [ 0 ] },
+                    ],
+                    // 3rd column is callnumber
+                    "aaSorting": [[ 2, "asc" ]],
+                [% END %]
+                'fnDrawCallback': function() {
+                    //bind the click handler script to the newly created elements held in the table
+                    $('.openWin').bind('click',function(e){
+                        e.preventDefault();
+                        openWindow(this.href,'marcview',800,600);
+                    });
+                }
+            } ));
+
+
+            $("#continuewithoutmarkingbutton").click(function(){
+                inventorydt.fnPageChange( 'next' );
+                return false;
+            });
+
+            $("#markseenandcontinuebutton").click(function(){
+                var param = '';
+                $("input:checked").each(function() {
+                    param += "|" + $(this).attr('name');
+                });
+                $.post('/cgi-bin/koha/tools/ajax-inventory.pl', { seen: param });
+                inventorydt.fnPageChange( 'next' );
+                return false;
+            });
+
+            $("#markseenandquit").click(function(){
+                var param = '';
+                $("input:checked").each(function() {
+                    param += "|" + $(this).attr('name');
+                });
+                $.ajax({
+                  type: 'POST',
+                  url: '/cgi-bin/koha/tools/ajax-inventory.pl',
+                  data: { seen: param},
+                  async: false
+                });
+                document.location.href = '/cgi-bin/koha/tools/inventory.pl';
+                return false;
+            });
+
+
+            $(".checkall").click(function(){
+                    $(".checkboxed").checkCheckboxes();
+                    return false;
+                });
+            $(".clearall").click(function(){
+                    $(".checkboxed").unCheckCheckboxes();
+                    return false;
+                });
+            $("#inventory_form").on("submit",function(){
+                return checkForm();
+            });
+
+            // #uploadbarcodes and #compareinv2barcd determine the behavior of
+            // the controls within the barcode fieldset and the optional filters
+            $("#uploadbarcodes").change(function() {
+                if( $("#uploadbarcodes").val() ) {
+                    $("#setdate").prop('disabled',false);
+                    $("#compareinv2barcd").prop('disabled',false);
+                    $("#dont_checkin").prop('disabled',false);
+                    if( $("#compareinv2barcd").attr('checked') ) {
+                        $("fieldset#optionalfilters").show();
+                    } else {
+                        $("fieldset#optionalfilters").hide();
+                    }
+                } else {
+                    $("#setdate").prop('disabled',true);
+                    $("#compareinv2barcd").prop('disabled',true);
+                    $("#compareinv2barcd").attr('checked',false);
+                    $("#dont_checkin").prop('disabled',true);
+                    $("#dont_checkin").attr('checked',false);
+                    $("fieldset#optionalfilters").show();
+                }
+            });
+            $("#compareinv2barcd").click(function() {
+                if( $("#compareinv2barcd").attr('checked') ) {
+                    $("fieldset#optionalfilters").show();
+                } else {
+                    $("fieldset#optionalfilters").hide();
+                }
+            });
+        });
+    </script>
+[% END %]
+
 [% INCLUDE 'intranet-bottom.inc' %]