Bug 9788: QA followup
[koha_fer] / koha-tmpl / intranet-tmpl / prog / en / modules / catalogue / detail.tt
index 495d7e3..1a81ef7 100644 (file)
@@ -1,3 +1,20 @@
+[% USE KohaDates %]
+[% USE AuthorisedValues %]
+[% USE KohaDates %]
+
+[% ShowCourseReserves = 0 %]
+[% IF UseCourseReserves %]
+    [% FOREACH item IN itemloop %]
+       [% IF item.course_reserves %]
+           [% FOREACH r IN item.course_reserves %]
+               [% IF r.course.enabled == 'yes' %]
+                   [% ShowCourseReserves = 1 %]
+               [% END %]
+           [% END %]
+        [% END %]
+    [% END %]
+[% END %]
+
 [% INCLUDE 'doc-head-open.inc' %]
 [% INCLUDE 'greybox.inc' %]
 <title>Koha &rsaquo; Catalog &rsaquo;
@@ -7,7 +24,7 @@
     Details for [% title |html %] [% FOREACH subtitl IN subtitle %] [% subtitl.subfield %][% END %]
   [% END %]
 </title>
-[% INCLUDE 'doc-head-close.inc' %]<script type="text/JavaScript" language="JavaScript">
+[% INCLUDE 'doc-head-close.inc' %]<script type="text/JavaScript">
 //<![CDATA[
 // http://www.oreillynet.com/pub/a/javascript/2003/10/21/amazonhacks.html
 function verify_images() {
@@ -36,29 +53,146 @@ function verify_images() {
         }
         });
 }
+
+    function removeLocalImage(imagenumber) {
+
+        $.ajax({
+            url: "/cgi-bin/koha/svc/cover_images?action=delete&biblionumber=" + [% biblionumber %] + "&imagenumber=" + imagenumber,
+            success: function(data) {
+                $(data).each( function(i) {
+                    if ( this.deleted == 1 ) {
+                        $('#imagenumber-' + this.imagenumber).remove();
+                    }
+                });
+            },
+            error: function(data) {
+                alert(_("An error occurred on deleting this image"));
+            }
+        });
+
+    }
+
+    [% IF StaffDetailItemSelection %]
+        function selectAllItems(div) {
+            $("input[name='itemnumber'][type='checkbox']", div).attr('checked', 'checked');
+            itemSelectionBuildActionLinks(div);
+        }
+
+        function clearAllItems(div) {
+            $("input[name='itemnumber'][type='checkbox']", div).removeAttr('checked');
+            itemSelectionBuildActionLinks(div);
+        }
+
+        function itemSelectionBuildDeleteLink(div) {
+            var itemnumbers = new Array();
+            $("input[name='itemnumber'][type='checkbox']:checked", div).each(function() {
+                itemnumbers.push($(this).val());
+            });
+            if (itemnumbers.length > 0) {
+                  var url = '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1';
+                  url += '&itemnumber=' + itemnumbers.join('&itemnumber=');
+                  url += '&src=' + '[% "/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber" |uri %]';
+                  $('a.itemselection_action_delete').attr('href', url);
+                  $('a.itemselection_action_delete').show();
+            } else {
+                $('a.itemselection_action_delete').hide();
+                return false;
+            }
+            return true
+        }
+
+        function itemSelectionBuildModifyLink(div) {
+            var itemnumbers = new Array();
+            $("input[name='itemnumber'][type='checkbox']:checked", div).each(function() {
+                itemnumbers.push($(this).val());
+            });
+            if (itemnumbers.length > 0) {
+                  var url = '/cgi-bin/koha/tools/batchMod.pl?op=show';
+                  url += '&itemnumber=' + itemnumbers.join('&itemnumber=');
+                  url += '&src=' + '[% "/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber" |uri %]';
+                  $('a.itemselection_action_modify').attr('href', url);
+                  $('a.itemselection_action_modify').show();
+            } else {
+                $('a.itemselection_action_modify').hide();
+                return false;
+            }
+            return true;
+        }
+
+        function itemSelectionBuildActionLinks(div) {
+          var delete_link_ok = itemSelectionBuildDeleteLink(div);
+          var modify_link_ok = itemSelectionBuildModifyLink(div);
+          if (modify_link_ok || delete_link_ok) {
+            $('.itemselection_actions', div).show();
+          } else {
+            $('.itemselection_actions', div).hide();
+          }
+        }
+
+        $(document).ready(function() {
+          $('table.items_table').each(function() {
+            var div = $(this).parent().parent();
+            itemSelectionBuildActionLinks(div);
+          });
+          $("input[name='itemnumber'][type='checkbox']").change(function() {
+            var div = $(this).parents('table').parent().parent();
+            itemSelectionBuildActionLinks(div);
+          });
+        });
+    [% END %]
+
      $(document).ready(function() {
         $('#bibliodetails').tabs();
         $('#search-form').focus();
-     });
+        $('.thumbnails > li > a > span.remove').click(function() {
+            var result = confirm(_("Are you sure you want to delete this cover image?"));
+
+            if ( result == true ) {
+                var imagenumber = $(this).parent().parent().attr('id').split('-')[1];
+                removeLocalImage(imagenumber);
+            }
+
+            return false;
+        });
+    });
+
      [% IF ( AmazonCoverImages ) %]$(window).load(function() {
         verify_images();
      });[% END %]
 //]]>
 </script>
 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.columnFilter.js"></script>
-[% INCLUDE 'datatables-strings.inc' %]
-<script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
+[% INCLUDE 'datatables.inc' %]
+<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.dataTables.columnFilter.js"></script>
+[% INCLUDE 'browser-strings.inc' %]
+<!--[if lt IE 9]>
+<script type="text/javascript" src="[% interface %]/lib/shims/json2.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="[% interface %]/js/browser.js"></script>
 <script type="text/javascript">
 //<![CDATA[
+    var browser = KOHA.browser('[% searchid %]', parseInt('[% biblionumber %]', 10));
+    browser.show();
+
     function activate_filters(id) {
         table = $("#" + id + " table");
         if (table.length == 1) {
             filters_row = table.find('thead tr.filters_row');
+
+            [% IF StaffDetailItemSelection %]
+                var aoColumns = [];
+                filters_row.find('th').each(function() {
+                    aoColumns.push('text');
+                });
+                aoColumns[0] = null;
+            [% END %]
+
             if (table.find('thead tr.columnFilter').length == 0) {
                 table.dataTable().columnFilter({
                     'sPlaceHolder': 'head:after'
+                    [% IF StaffDetailItemSelection %]
+                    ,   'aoColumns': aoColumns
+                    [% END %]
                 });
                 filters_row.addClass('columnFilter');
             }
@@ -108,6 +242,11 @@ function verify_images() {
                 'sDom': 't',
                 'bPaginate': false,
                 'bAutoWidth': false
+                [% IF StaffDetailItemSelection %]
+                ,   "aoColumnDefs": [
+                        { "aTargets": [ 0 ], "bSortable": false, "bSearchable": false }
+                    ]
+                [% END %]
             }));
 
             // Show a link to activate filtering
@@ -117,6 +256,18 @@ function verify_images() {
             table.before(link);
             deactivate_filters(id);
         }
+        [% IF AcquisitionDetails %]
+            $("#orders").dataTable($.extend(true, {}, dataTablesDefaults, {
+                'sDom': 't',
+                'bPaginate': false,
+                'bAutoWidth': false,
+                "aaSorting": [[ 2, "desc" ]],
+                "aoColumnDefs": [
+                    { "aTargets": [ 2, 3 ], "sType": "title-string" }
+                ]
+            }));
+
+        [% END %]
     });
 //]]>
 </script>
@@ -343,20 +494,37 @@ function verify_images() {
     [% ELSE %]
         <li><a href="#holdings">Holdings</a></li>
     [% END %]
-<li><a href="#description">Descriptions</a></li>
+[% IF ( MARCNOTES || notes ) %]<li><a href="#description">Descriptions</a></li>[% END %]
 [% IF ( subscriptionsnumber ) %]<li><a href="#subscriptions">Subscriptions</a></li>[% END %]
+[% IF AcquisitionDetails %]<li><a href="#acq_details">Acquisition details</a></li>[% END %]
 [% IF ( FRBRizeEditions ) %][% IF ( XISBNS ) %]<li><a href="#editions">Editions</a></li>[% END %][% END %]
 [% IF ( LocalCoverImages ) %][% IF ( localimages || CAN_user_tools_upload_local_cover_images ) %]<li><a href="#images">Images</a></li>[% END %][% END %]
 [% IF ( HTML5MediaEnabled ) %][% IF ( HTML5MediaSets ) %]<li><a href="#html5media">Play media</a></li>[% END %][% END %]
 </ul>
 
+[% items_table_block_iter = 0 %]
 [% BLOCK items_table %]
-    <table>
+    [% items_table_block_iter = items_table_block_iter + 1 %]
+    [% IF (StaffDetailItemSelection) %]
+        <a href="#" onclick="selectAllItems($(this).parent()); return false;">Select all</a> |
+        <a href="#" onclick="clearAllItems($(this).parent()); return false;">Clear all</a>
+        <span class="itemselection_actions">
+          | Actions:
+          [% IF CAN_user_tools_items_batchdel %]
+            <a class="itemselection_action_delete">Delete selected items</a>
+          [% END %]
+          [% IF CAN_user_tools_items_batchmod %]
+            <a class="itemselection_action_modify">Modify selected items</a>
+          [% END %]
+        </span>
+    [% END %]
+    <table class="items_table">
         <thead>
             <tr>
+                [% IF (StaffDetailItemSelection) %]<th></th>[% END %]
                 [% IF ( item_level_itypes ) %]<th>Item type</th>[% END %]
                 <th>Current location</th>
-                <th>Home Library</th>
+                <th>Home library</th>
                 [% IF ( itemdata_ccode ) %]<th>Collection</th>[% END %]
                 <th>Call number</th>
                 <th>Status</th>
@@ -370,11 +538,17 @@ function verify_images() {
                 [% IF ( SpineLabelShowPrintOnBibDetails ) %]<th>Spine label</th>[% END %]
                 [% IF ( hostrecords ) %]<th>Host records</th>[% END %]
                 [% IF ( analyze ) %]<th>Used in</th><th></th>[% END %]
+                [% IF ( ShowCourseReserves ) %]<th>Course Reserves</th>[% END %]
             </tr>
         </thead>
         <tbody>
             [% FOREACH item IN items %]
                 <tr>
+                [% IF (StaffDetailItemSelection) %]
+                    <td style="text-align:center;vertical-align:middle">
+                        <input type="checkbox" value="[% item.itemnumber %]" name="itemnumber" />
+                    </td>
+                [% END %]
                     [% IF ( item_level_itypes ) %]
                         <td class="itype">
                             [% IF !noItemTypeImages && item.imageurl %]
@@ -403,7 +577,7 @@ function verify_images() {
                                 : due [% item.datedue %]
                             </span>
                         [% ELSIF ( item.transfertwhen ) %]
-                            <span class="intransit">In transit from [% itemloo.transfertfrom %] to [% itemloo.transfertto %] since [% itemloo.transfertwhen %]</span>
+                            <span class="intransit">In transit from [% item.transfertfrom %] to [% item.transfertto %] since [% item.transfertwhen %]</span>
                         [% END %]
 
                         [% IF ( item.itemlost ) %]
@@ -418,7 +592,7 @@ function verify_images() {
                             [% END %]
                         [% END %]
 
-                        [% IF ( item.wthdrawn ) %]
+                        [% IF ( item.withdrawn ) %]
                             <span class="wdn">Withdrawn</span>
                         [% END %]
 
@@ -461,14 +635,14 @@ function verify_images() {
                             [% END %]
                             [% item.ExpectedAtLibrary %]
                             [% IF ( item.waitingdate ) %]
-                                since [% item.waitingdate %]
+                                since [% item.waitingdate | $KohaDates %]
                             [% ELSE %]
                                 [% IF ( item.reservedate ) %]
                                     (placed [% item.reservedate %])
                                 [% END %]
                             [% END %]
                         [% END %]
-                        [% UNLESS ( item.itemnotforloan or item.onloan or item.itemlost or item.wthdrawn or item.damaged or item.transfertwhen or item.reservedate ) %]
+                        [% UNLESS ( item.itemnotforloan or item.onloan or item.itemlost or item.withdrawn or item.damaged or item.transfertwhen or item.reservedate ) %]
                             Available
                         [% END %]
 
@@ -520,6 +694,24 @@ function verify_images() {
                         <td><a href="/cgi-bin/koha/cataloguing/addbiblio.pl?hostbiblionumber=[% item.biblionumber %]&amp;hostitemnumber=[% item.itemnumber %]">Create analytics</a></td>
                     [% END %]
 
+                [% IF ShowCourseReserves %]
+                    <td>
+                        [% IF item.course_reserves %]
+                            [% FOREACH r IN item.course_reserves %]
+                                [% IF r.course.enabled == 'yes' %]
+                                    <p>
+                                      <a href="/cgi-bin/koha/course_reserves/course-details.pl?course_id=[% r.course.course_id %]">
+                                         [% r.course.course_name %]
+                                         <!--[% IF r.course.course_number %] [% r.course.course_number %] [% END %]-->
+                                         [% IF r.course.section %] [% r.course.section %] [% END %]
+                                         [% IF r.course.term %] [% AuthorisedValues.GetByCode( 'TERM', r.course.term ) %] [% END %]
+                                      </a>
+                                   </p>
+                               [% END %]
+                           [% END %]
+                       [% END %]
+                    </td>
+                [% END %]
                 </tr>
             [% END %]
         </tbody>
@@ -562,7 +754,9 @@ function verify_images() {
         [% END %]
     </div>
 [% END %]
-    
+
+[% IF ( MARCNOTES || notes ) %]
+
 <div id="description">
 <div class="content_set">
 
@@ -578,6 +772,8 @@ function verify_images() {
 </div>
 </div>
 
+[% END %]
+
 [% IF ( subscriptionsnumber ) %]
 <div id="subscriptions">
 <div class="yui-g">
@@ -597,7 +793,8 @@ function verify_images() {
             <table>
                 <tr>
                     <th>Issue #</th>
-                    <th>Date</th>
+                    <th>Date arrived</th>
+                    <th>Date published</th>
                     <th>Status</th>
                     <th>Note</th>
                 </tr>
@@ -605,6 +802,7 @@ function verify_images() {
                 <tr>
                     <td>[% latestserial.serialseq %]</td>
                     <td>[% latestserial.planneddate %]</td>
+                    <td>[% latestserial.publisheddate%]</td>
                     <td>
                       [% IF ( latestserial.status1 ) %]Expected[% END %]
                       [% IF ( latestserial.status2 ) %]Arrived[% END %]
@@ -627,6 +825,61 @@ function verify_images() {
 </div>
 [% END %]
 
+[% IF AcquisitionDetails %]
+<div id="acq_details">
+  [% IF orders %]
+    <table id="orders">
+      <thead>
+        <tr>
+          <th>Basket</th>
+          <th>Order number</th>
+          <th>Creation date</th>
+          <th>Receive date</th>
+          <th>Status</th>
+          <th>Quantity / items</th>
+        </tr>
+      </thead>
+      <tbody>
+      [% FOR order IN orders %]
+          <tr>
+            <td>[% IF CAN_user_acquisition_order_manage %]
+                <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% order.basketno %]">[% order.basketname %]</a>
+            [% ELSE %]
+                [% order.basketname %]
+            [% END %]</td>
+            <td>[% order.ordernumber %]</td>
+            <td><span title="[% order.creationdate %]">[% order.creationdate | $KohaDates%]</span></td>
+            <td><span title="[% order.datereceived %]">[% order.datereceived | $KohaDates%]</span></td>
+            <td>
+              [% SWITCH order.orderstatus %]
+                [% CASE 'new' %]New
+                [% CASE 'ordered' %]Ordered
+                [% CASE 'partial' %]Partial
+                [% CASE 'complete' %]Complete
+                [% CASE 'cancelled' %]Cancelled
+              [% END %]
+            </td>
+            <td>
+              [% order.quantity %]
+              [% IF order.itemnumbers.size > 0 && order.orderstatus != 'cancelled' %]
+                (
+                  [% FOR itemnumber IN order.itemnumbers %]
+                    <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% biblionumber %]#item[% itemnumber %]">[% itemnumber %]</a>
+                    [%- UNLESS loop.last %],[% END %]
+                  [% END %]
+                )
+              [% END %]
+            </th>
+          </tr>
+      [% END %]
+      </tbody>
+    </table>
+  [% ELSE %]
+    There is no order for this biblio.
+  [% END %]
+</div>
+[% END %]
+
 [% IF ( FRBRizeEditions ) %][% IF ( XISBNS ) %]
 <div id="editions"><h4>Editions</h4>
 <table>
@@ -647,15 +900,24 @@ function verify_images() {
 [% IF ( LocalCoverImages ) %]
 <div id="images">
 [% IF ( localimages.0 ) %]
-<p>Click on an image to view it in the image viewer</p>
+    <p>Click on an image to view it in the image viewer</p>
+    <ul class="thumbnails">
 [% FOREACH image IN localimages %]
-[% IF image %]
-<a class="localimage" href="/cgi-bin/koha/catalogue/imageviewer.pl?biblionumber=[% biblionumber %]&amp;imagenumber=[% image %]"><img alt="" src="/cgi-bin/koha/catalogue/image.pl?thumbnail=1&amp;imagenumber=[% image %]" /></a>
-[% END %]
+    [% IF image %]
+        <li id="imagenumber-[% image %]">
+            <a class="thumbnail" href="/cgi-bin/koha/catalogue/imageviewer.pl?biblionumber=[% biblionumber %]&amp;imagenumber=[% image %]">
+                <img alt="remove this image" src="/cgi-bin/koha/catalogue/image.pl?thumbnail=1&amp;imagenumber=[% image %]" />
+                [% IF CAN_user_tools_upload_local_cover_images %]
+                  <span class="remove" title="remove this image">Delete image</span>
+                [% END %]
+            </a>
+        </li>
+    [% END %]
 [% END %]
+    </ul>
 [% ELSE %]
 [% IF ( CAN_user_tools_upload_local_cover_images ) %]
-<p>No images have been uploaded for this bibliographic record yet. Please <a href='/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=[% biblionumber %]&amp;filetype=image'>upload</a> one.</p>
+    <p>No images have been uploaded for this bibliographic record yet. Please <a href='/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=[% biblionumber %]&amp;filetype=image'>upload</a> one.</p>
 [% END %]
 [% END %]
 </div>