Bug 21526: Use the 'url' filter when needed
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / course_reserves / course-details.tt
index 403de54..c34d14e 100644 (file)
@@ -1,80 +1,65 @@
+[% USE raw %]
+[% USE Asset %]
 [% USE AuthorisedValues %]
 [% USE ItemTypes %]
 [% USE Branches %]
+[% USE ColumnsSettings %]
+[% SET footerjs = 1 %]
 [% INCLUDE 'doc-head-open.inc' %]
-<title>Koha &rsaquo; Course reserves &rsaquo; Course details for [% course.course_name %]</title>
+<title>Koha &rsaquo; Course reserves &rsaquo; Course details for [% course.course_name | html %]</title>
 [% INCLUDE 'doc-head-close.inc' %]
 
-<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
-[% INCLUDE 'datatables.inc' %]
-<script type="text/javascript">
-//<![CDATA[
-    $(document).ready(function(){
-        $("#course_reserves_table").dataTable($.extend(true, {}, dataTablesDefaults, {
-            "sPaginationType": "four_button",
-            "aLengthMenu": [[10, 20, 50, 100, -1], [10, 20, 50, 100, "All"]],
-            "iDisplayLength": 20,
-            "aoColumnDefs": [
-                { 'bSortable': false, 'aTargets': [ 'NoSort' ] },
-                { 'sType': "anti-the", 'aTargets' : [ 'antithe'] }
-            ]
-        }));
-
-        $("a.delete_item").click(function(){
-            return confirm( _("Are you sure you want to remove this item from the course?"));
-        });
-
-        $("#delete_course").click(function(){
-            return confirm( _("Are you sure you want to delete this course?") );
-        });
-    });
-
-//]]>
-</script>
-
+[% Asset.css("css/datatables.css") | $raw %]
 </head>
 
-<body>
+<body id="courses_course_details" class="course">
 
 [% 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/course_reserves/course-reserves.pl">Course reserves</a> &rsaquo; Course details for <i>[% course.course_name %]</i></div>
+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/course_reserves/course-reserves.pl">Course reserves</a> &rsaquo; Course details for <i>[% course.course_name | html %]</i></div>
+
+    <div class="main container-fluid">
+        <div class="row">
+            <div class="col-md-10 col-md-offset-1">
 
-<div id="doc2" class="yui-t7">
-    <div id="bd">
-        <div id="yui-main">
             [% IF CAN_user_coursereserves_add_reserves OR CAN_user_coursereserves_manage_courses OR CAN_user_coursereserves_manage_courses %]
             <div id="toolbar">
-                <ul class="toolbar">
-                    [% IF CAN_user_coursereserves_add_reserves %]<li><a class="btn btn-small" id="add_items" href="/cgi-bin/koha/course_reserves/add_items.pl?course_id=[% course.course_id %]"><i class="icon-plus"></i> Add reserves</a></li>[% END %]
-                    [% IF ( CAN_user_coursereserves_manage_courses ) %]<li><a class="btn btn-small" id="edit_course" href="/cgi-bin/koha/course_reserves/course.pl?course_id=[% course.course_id %]"><i class="icon-pencil"></i> Edit course</a></li>[% END %]
-                    [% IF ( CAN_user_coursereserves_manage_courses ) %]<li><a class="btn btn-small" id="delete_course" href="/cgi-bin/koha/course_reserves/mod_course.pl?course_id=[% course.course_id %]&amp;action=del"><i class="icon-remove"></i> Delete course</a></li>[% END %]
-                </ul>
+                [% IF CAN_user_coursereserves_add_reserves %]
+                    <a class="btn btn-default btn-sm" id="add_items" href="/cgi-bin/koha/course_reserves/add_items.pl?course_id=[% course.course_id | html %]"><i class="fa fa-plus"></i> Add reserves</a>
+                    <a class="btn btn-default btn-sm" id="add_items" href="/cgi-bin/koha/course_reserves/batch_add_items.pl?course_id=[% course.course_id | html %]"><i class="fa fa-plus"></i> Batch add reserves</a>
+                [% END %]
+                [% IF ( CAN_user_coursereserves_manage_courses ) %]
+                    <a class="btn btn-default btn-sm" id="edit_course" href="/cgi-bin/koha/course_reserves/course.pl?course_id=[% course.course_id | html %]"><i class="fa fa-pencil"></i> Edit course</a>
+                [% END %]
+                [% IF ( CAN_user_coursereserves_manage_courses ) %]
+                    <a class="btn btn-default btn-sm" id="delete_course" href="/cgi-bin/koha/course_reserves/mod_course.pl?course_id=[% course.course_id | html %]&amp;action=del"><i class="fa fa-trash"></i> Delete course</a>
+                [% END %]
             </div><!-- /toolbar -->
             [% END %]
 
             <div class="rows">
               <ol>
-                <li><span class="label">Course name</span> [% course.course_name %]</li>
-                <li><span class="label">Term</span> [% AuthorisedValues.GetByCode( 'TERM', course.term ) %]</li>
-                <li><span class="label">Department</span> [% AuthorisedValues.GetByCode( 'DEPARTMENT', course.department ) %]</li>
-                <li><span class="label">Course number</span> [% course.course_number %]</li>
-                <li><span class="label">Section</span> [% course.section %]</li>
-                <li><span class="label">Instructors</span> [% FOREACH i IN course.instructors %]<div class="instructor"><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% i.borrowernumber %]">[% i.firstname %] [% i.surname %]</a></div>[% END %]</li>
-                <li><span class="label">Staff note</span> [% course.staff_note %]</li>
-                <li><span class="label">Public note</span> [% course.public_note %]</li>
-                <li><span class="label">Student count</span> [% course.students_count %]</li>
+                <li><span class="label">Course name</span> [% course.course_name | html %]</li>
+                <li><span class="label">Term</span> [% AuthorisedValues.GetByCode( 'TERM', course.term ) | html %]</li>
+                <li><span class="label">Department</span> [% AuthorisedValues.GetByCode( 'DEPARTMENT', course.department ) | html %]</li>
+                <li><span class="label">Course number</span> [% course.course_number | html %]</li>
+                <li><span class="label">Section</span> [% course.section | html %]</li>
+                <li><span class="label">Instructors</span> [% FOREACH i IN course.instructors %]<div class="instructor"><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% i.borrowernumber | uri %]">[% i.firstname | html %] [% i.surname | html %]</a></div>[% END %]</li>
+                <li><span class="label">Staff note</span> [% course.staff_note | html %]</li>
+                <li><span class="label">Public note</span> [% course.public_note | html %]</li>
+                <li><span class="label">Student count</span> [% course.students_count | html %]</li>
                 <li><span class="label">Status</span> [% IF course.enabled == 'yes' %]Active[% ELSE %]Inactive[% END %]</li>
               </ol>
             </div>
 
             [% IF course_reserves %]
+            <h1>Reserves</h1>
             <table id="course_reserves_table">
-                <caption>Reserves</caption>
                 <thead>
                     <tr>
                         <th class="antithe">Title</th>
+                        <th>Author</th>
                         <th>Barcode</th>
                         <th>Call number</th>
                         [% IF item_level_itypes %]<th>Item type</th>[% END %]
                         <th>Library</th>
                         <th>Staff note</th>
                         <th>Public note</th>
-                        [% IF CAN_user_coursereserves_add_reserves %]<th class="NoSort">&nbsp;<!-- Edit --></th>[% END %]
-                        [% IF CAN_user_coursereserves_delete_reserves %]<th class="NoSort">&nbsp;<!-- Remove --></th>[% END %]
+                        <th>Link</th>
                         <th class="NoSort">Other course reserves</th>
+                        [% IF CAN_user_coursereserves_add_reserves || CAN_user_coursereserves_delete_reserves %]
+                            <th class="NoSort">Actions</th>
+                        [% END %]
                     </tr>
                 </thead>
 
                 <tbody>
                     [% FOREACH cr IN course_reserves %]
                         <tr>
-                            <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% cr.item.biblionumber %]">[% cr.item.title %]</a></td>
-                            <td><a href="/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=[% cr.item.itemnumber %]&amp;biblionumber=[% cr.item.biblionumber %]&amp;bi=[% cr.item.biblioitemnumber %]">[% cr.item.barcode %]</a></td>
-                            <td>[% cr.item.itemcallnumber %]</td>
+                            <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% cr.biblio.biblionumber | uri %]">[% cr.biblio.title | html %]</a></td>
+                            <td>[% cr.biblio.author | html %]</td>
+                            <td><a href="/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=[% cr.item.itemnumber | uri %]&amp;biblionumber=[% cr.biblio.biblionumber | uri %]&amp;bi=[% cr.biblioitem.biblioitemnumber | uri %]">[% cr.item.barcode | html %]</a></td>
+                            <td>[% cr.item.itemcallnumber | html %]</td>
                             [% IF item_level_itypes %]
                             <td>
-                                [% IF cr.course_item.itype %]
+                                [% IF cr.course_item.itype.defined %]
                                     [% IF cr.course_item.enabled == 'yes' %]
-                                        [% ItemTypes.GetDescription( cr.item.itype ) %]
+                                        [% ItemTypes.GetDescription( cr.item.itype ) | html %]
                                     [% ELSE %]
-                                        [% ItemTypes.GetDescription( cr.course_item.itype ) %]
+                                        [% ItemTypes.GetDescription( cr.course_item.itype ) | html %]
                                     [% END %]
                                 [% ELSE %]
                                      <i>Unchanged</i>
                                      [% IF cr.item.itype %]
-                                         ([% ItemTypes.GetDescription( cr.item.itype ) %])
+                                         ([% ItemTypes.GetDescription( cr.item.itype ) | html %])
                                      [% END %]
                                 [% END %]
                             </td>
                             [% END %]
                             <td>
-                                 [% IF cr.course_item.ccode %]
+                                 [% IF cr.course_item.ccode.defined %]
                                      [% IF cr.course_item.enabled == 'yes' %]
-                                          [% AuthorisedValues.GetByCode( 'CCODE', cr.item.ccode ) %]
+                                          [% AuthorisedValues.GetByCode( 'CCODE', cr.item.ccode ) | html %]
                                      [% ELSE %]
-                                         [% AuthorisedValues.GetByCode( 'CCODE', cr.course_item.ccode ) %]
+                                         [% AuthorisedValues.GetByCode( 'CCODE', cr.course_item.ccode ) | html %]
                                      [% END %]
                                  [% ELSE %]
                                      <i>Unchanged</i>
                                      [% IF cr.item.ccode %]
-                                         ([% AuthorisedValues.GetByCode( 'CCODE', cr.item.ccode ) %])
+                                         ([% AuthorisedValues.GetByCode( 'CCODE', cr.item.ccode ) | html %])
                                      [% END %]
                                  [% END %]
                             </td>
                             <td>
-                                [% IF cr.course_item.location %]
+                                [% IF cr.course_item.location.defined %]
                                      [% IF cr.course_item.enabled == 'yes' %]
-                                         [% AuthorisedValues.GetByCode( 'LOC', cr.item.location ) %]
+                                         [% AuthorisedValues.GetByCode( 'LOC', cr.item.location ) | html %]
                                     [% ELSE %]
-                                        [% AuthorisedValues.GetByCode( 'LOC', cr.course_item.location ) %]
+                                        [% AuthorisedValues.GetByCode( 'LOC', cr.course_item.location ) | html %]
                                     [% END %]
                                 [% ELSE %]
                                     <i>Unchanged</i>
                                     [% IF cr.item.location %]
-                                        ([% AuthorisedValues.GetByCode( 'LOC', cr.item.location ) %])
+                                        ([% AuthorisedValues.GetByCode( 'LOC', cr.item.location ) | html %])
                                     [% END %]
                                 [% END %]
                             </td>
                             <td>
-                                [% IF cr.course_item.holdingbranch %]
+                                [% IF cr.course_item.holdingbranch.defined %]
                                     [% IF cr.course_item.enabled == 'yes' %]
-                                        [% Branches.GetName( cr.item.holdingbranch ) %]
+                                        [% Branches.GetName( cr.item.holdingbranch ) | html %]
                                     [% ELSE %]
-                                        [% Branches.GetName( cr.course_item.holdingbranch ) %]
+                                        [% Branches.GetName( cr.course_item.holdingbranch ) | html %]
                                     [% END %]
                                 [% ELSE %]
                                     <i>Unchanged</i>
                                     [% IF cr.item.holdingbranch %]
-                                        ([% Branches.GetName( cr.item.holdingbranch ) %])
+                                        ([% Branches.GetName( cr.item.holdingbranch ) | html %])
                                     [% END %]
                                 [% END %]
                             </td>
-                            <td>[% cr.staff_note %]</td>
-                            <td>[% cr.public_note %]</td>
-
-                            [% IF CAN_user_coursereserves_add_reserves %]
-                                <td><a href="add_items.pl?course_id=[% course.course_id %]&amp;barcode=[% cr.item.barcode %]&amp;action=lookup">Edit</a></td>
-                            [% END %]
-
-                            [% IF CAN_user_coursereserves_delete_reserves %]
-                                <td>
-                                    [% IF cr.item.onloan %]
-                                        On Loan
-                                    [% ELSIF cr.item.itemlost %]
-                                        Item Lost
-                                    [% ELSE %]
-                                        <a href="course-details.pl?course_id=[% course.course_id %]&amp;action=del_reserve&amp;cr_id=[% cr.cr_id %]" class="delete_item" >Remove</a>
-                                    [% END %]
+                            <td>[% IF (cr.staff_note) %]
+                                    [% cr.staff_note | html %]
+                                [% ELSIF (cr.item.itemnotes_nonpublic) %]
+                                    [% cr.item.itemnotes_nonpublic | html %]
+                                [% END %]
+                            </td>
+                            <td>[% IF (cr.public_note) %]
+                                    [% cr.public_note | html %]
+                                [% ELSIF (cr.item.itemnotes) %]
+                                    [% cr.item.itemnotes | html %]
+                                [% END %]
+                            </td>
 
-                                </td>
-                            [% END %]
+                            <td>
+                                [% IF (cr.item.uri) %]
+                                    <a href="[% cr.item.uri | url %]">Item URI</a>
+                                [% ELSIF (cr.biblioitem.url) %]
+                                    <a href="[% cr.biblioitem.url | url %]">Record URL</a>
+                                [% END %]
+                            </td>
 
                             <td>
-                                [% FOREACH course IN cr.courses %]
-                                    [% UNLESS cr.course_id == course.course_id %]
+                                [% FOREACH c IN cr.courses %]
+                                    [% UNLESS cr.course_id == c.course_id %]
                                         <p>
-                                            <a href="course-details.pl?course_id=[% course.course_id %]">
-                                                [% course.course_name %]
-                                                [% IF course.section %] [% course.section %] [% END %]
-                                                [% IF course.term %] [% AuthorisedValues.GetByCode( 'TERM', course.term ) %] [% END %]
+                                            <a href="course-details.pl?course_id=[% c.course_id | uri %]">
+                                                [% c.course_name | html %]
+                                                [% IF c.section %] [% c.section | html %] [% END %]
+                                                [% IF c.term %] [% AuthorisedValues.GetByCode( 'TERM', c.term ) | html %] [% END %]
                                             </a>
                                         </p>
                                     [% END %]
                                 [% END %]
                             </td>
+
+                            [% IF CAN_user_coursereserves_add_reserves || CAN_user_coursereserves_delete_reserves %]
+                                <td class="actions">
+                                    [% IF CAN_user_coursereserves_add_reserves %]
+                                        <a class="btn btn-default btn-xs" href="add_items.pl?course_id=[% course.course_id | html %]&amp;itemnumber=[% cr.item.itemnumber | html %]&amp;action=lookup&amp;return=[% course.course_id | html %]"><i class="fa fa-pencil"></i> Edit</a>
+                                    [% END %]
+
+                                    [% IF CAN_user_coursereserves_delete_reserves %]
+                                        [% IF cr.item.onloan %]
+                                            <a class="btn btn-default btn-xs disabled checkedout delete_item" href="#" data-toggle="tooltip" data-placement="left" title="This item is checked out">
+                                        [% ELSE %]
+                                            <a class="btn btn-default btn-xs delete_item" href="course-details.pl?course_id=[% course.course_id | html %]&amp;action=del_reserve&amp;cr_id=[% cr.cr_id | html %]">
+                                        [% END %]
+                                        <i class="fa fa-trash"></i> Remove</a>
+                                    [% END %]
+                                </td>
+                            [% END %]
+
                         </tr>
                     [% END %]
                 </tbody>
         </div>
     </div>
 
+[% MACRO jsinclude BLOCK %]
+    [% INCLUDE 'datatables.inc' %]
+    [% INCLUDE 'columns_settings.inc' %]
+    <script>
+        var columns_settings = [% ColumnsSettings.GetColumns( 'coursereserves', 'reserves', 'course_reserves_table', 'json' ) | $raw %];
+        $(document).ready(function(){
+            var rtable = KohaTable("course_reserves_table", {
+                "sPaginationType": "four_button",
+                "bAutoWidth": false,
+                "aoColumnDefs": [
+                    { 'bSortable': false, 'aTargets': [ 'NoSort' ] },
+                    { 'sType': "anti-the", 'aTargets' : [ 'antithe'] }
+                ]
+            }, columns_settings );
+
+            $(".delete_item").click(function(){
+                return confirmDelete(_("Are you sure you want to remove this item from the course?"));
+            });
+
+            $("#delete_course").click(function(){
+                [% SET count = course_reserves.size || 0 %]
+                [% IF count == 1 %]
+                    return confirmDelete(_("Are you sure you want to delete this course? There is %s attached item.").format([% count | html %]) );
+                [% ELSIF count > 1 %]
+                    return confirmDelete(_("Are you sure you want to delete this course? There are %s attached items.").format([% count | html %]) );
+                [% ELSE %]
+                    return confirmDelete(_("Are you sure you want to delete this course?"));
+                [% END %]
+            });
+            $(".disabled").tooltip().on("click", function(e){
+                e.preventDefault();
+                if( $(this).hasClass("checkedout") ){
+                    alert(_("This item cannot be removed. It is checked out"));
+                }
+            });
+        });
+    </script>
+[% END %]
+
 [% INCLUDE 'intranet-bottom.inc' %]