[% USE KohaDates %]
[% USE Branches %]
+[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha › Tools › Inventory</title>
[% INCLUDE 'doc-head-close.inc' %]
-<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/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;
- });
- $("#inventory_form").on("submit",function(){
- return checkForm();
- });
-});
-//]]>
-</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' %]
<div class="yui-g">
<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>
<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) %]
<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>
- <li>
- <label for="dont_checkin">Do not check in items scanned during inventory: </label>
- <input type="checkbox" name="dont_checkin" id="dont_checkin" />
- </li>
</ol>
</fieldset>
<input type="hidden" name="op" value="do_it" />
[% 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 %]
+ [% 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>
<tbody>
[% FOREACH result IN loop %]
<tr>
- [% UNLESS compareinv2barcd %]
+ [% UNLESS uploadedbarcodesflag %]
<td>
<input type="checkbox" name="SEEN-[% result.itemnumber %]" value="1" />
</td>
<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 %]
[% 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>
</tbody>
</table>
<div class="spacer"></div>
- [% UNLESS compareinv2barcd %]
+ [% 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 >>" id="markseenandcontinuebutton" />
[% 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' %]