Koha/koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course-details.tt
Owen Leonard 2517147c30 Bug 21838: Wrong alignment of instructors in course reserves
This patch adds CSS to course reserve pages so that multiple instructors
on a course are displayed well.

To test, apply the patch and:

 - Add or edit a course.
   - Test adding and removing instructors, saving, and adding and removing
     again.
 - View a course with multiple instructors and confirm that they are
   displayed well.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Awesome, Owen :-D

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
2018-11-16 12:53:02 +00:00

260 lines
14 KiB
Text

[% 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 | html %]</title>
[% INCLUDE 'doc-head-close.inc' %]
[% Asset.css("css/datatables.css") | $raw %]
<style>
#instructors {
float: left;
}
.instructor_line {
padding: 0 .1em;
}
</style>
</head>
<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 | html %]</i></div>
<div class="main container-fluid">
<div class="row">
<div class="col-md-10 col-md-offset-1">
[% IF CAN_user_coursereserves_add_reserves OR CAN_user_coursereserves_manage_courses OR CAN_user_coursereserves_manage_courses %]
<div id="toolbar">
[% 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 | 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>
<div id="instructors">
[% FOREACH i IN course.instructors %]
<div class="instructor_line">
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% i.borrowernumber | uri %]">[% i.firstname | html %] [% i.surname | html %]</a>
</div>
[% END %]
</div>
</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">
<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>Collection</th>
<th>Location</th>
<th>Library</th>
<th>Staff note</th>
<th>Public note</th>
<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.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.defined %]
[% IF cr.course_item.enabled == 'yes' %]
[% ItemTypes.GetDescription( cr.item.itype ) | html %]
[% ELSE %]
[% ItemTypes.GetDescription( cr.course_item.itype ) | html %]
[% END %]
[% ELSE %]
<i>Unchanged</i>
[% IF cr.item.itype %]
([% ItemTypes.GetDescription( cr.item.itype ) | html %])
[% END %]
[% END %]
</td>
[% END %]
<td>
[% IF cr.course_item.ccode.defined %]
[% IF cr.course_item.enabled == 'yes' %]
[% AuthorisedValues.GetByCode( 'CCODE', cr.item.ccode ) | html %]
[% ELSE %]
[% AuthorisedValues.GetByCode( 'CCODE', cr.course_item.ccode ) | html %]
[% END %]
[% ELSE %]
<i>Unchanged</i>
[% IF cr.item.ccode %]
([% AuthorisedValues.GetByCode( 'CCODE', cr.item.ccode ) | html %])
[% END %]
[% END %]
</td>
<td>
[% IF cr.course_item.location.defined %]
[% IF cr.course_item.enabled == 'yes' %]
[% AuthorisedValues.GetByCode( 'LOC', cr.item.location ) | html %]
[% ELSE %]
[% AuthorisedValues.GetByCode( 'LOC', cr.course_item.location ) | html %]
[% END %]
[% ELSE %]
<i>Unchanged</i>
[% IF cr.item.location %]
([% AuthorisedValues.GetByCode( 'LOC', cr.item.location ) | html %])
[% END %]
[% END %]
</td>
<td>
[% IF cr.course_item.holdingbranch.defined %]
[% IF cr.course_item.enabled == 'yes' %]
[% Branches.GetName( cr.item.holdingbranch ) | html %]
[% ELSE %]
[% Branches.GetName( cr.course_item.holdingbranch ) | html %]
[% END %]
[% ELSE %]
<i>Unchanged</i>
[% IF cr.item.holdingbranch %]
([% Branches.GetName( cr.item.holdingbranch ) | html %])
[% END %]
[% END %]
</td>
<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>
[% 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 c IN cr.courses %]
[% UNLESS cr.course_id == c.course_id %]
<p>
<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>
</table>
[% END %]
</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' %]