3bf7430d1c
Adds "Batch remove items" button to course-reserves.tt. Creates batch_rm_items.pl and batch_rm_items.tt. Allows user to enter a list of barcode numbers so that they will be removed from all course reserves to which they are attached. A dialog box will provide a warning before the final deletion is made. This patch also now moves barcodes that are invalid or not attached to a course reserve to the invalid barcodes output. It also provides a count of the courses that the deleted items were attached to. Test Plan 1. Log in as a user with permissions to add and delete course reserves 2. Add the same items to multiple course reserves 3. Go to the main course reserves page (i.e. /cgi-bin/koha/course_reserves/course-reserves.pl) 4. Click the "- Batch remove items" button 5. Enter the barcodes that you added to multiple reserves in step 1 6. Click submit 7. Click Ok if you are ready to delete all of these items 8. Check each course reserve that you added the items to in step 1 to make sure the items you entered were deleted but nothing else 9. Repeat 2-5 10. Add an invalid barcode and a valid barcode that is not attached to a course reserve 11. Repeat 6-7 12. You should see that the items attached to course reserves were removed while the invalid and unattached barcodes were rejected 13. Log out 14. Log in as a user without permission to delete course reserves 15. Go to the main course reserves page (i.e. /cgi-bin/koha/course_reserves/course-reserves.pl) 16. You should not longer see the "- Batch remove items" button Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
95 lines
4.4 KiB
Text
95 lines
4.4 KiB
Text
[% USE raw %]
|
|
[% USE Asset %]
|
|
[% USE AuthorisedValues %]
|
|
[% USE TablesSettings %]
|
|
[% SET footerjs = 1 %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Course reserves</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
|
|
</head>
|
|
|
|
<body id="courses_course_reserves" class="course">
|
|
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'cat-search.inc' %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/course_reserves/course-reserves.pl">Course reserves</a></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 OR CAN_user_coursereserves_delete_reserves %]
|
|
<div id="toolbar">
|
|
[% IF ( CAN_user_coursereserves_manage_courses ) %]
|
|
<a class="btn btn-default" id="new_course" href="/cgi-bin/koha/course_reserves/course.pl"><i class="fa fa-plus"></i> New course</a>
|
|
[% END %]
|
|
[% IF ( CAN_user_coursereserves_delete_reserves ) %]
|
|
<a class="btn btn-default" id="batch_rm" href="/cgi-bin/koha/course_reserves/batch_rm_items.pl"><i class="fa fa-minus"></i> Batch remove items</a>
|
|
[% END %]
|
|
</div><!-- /toolbar -->
|
|
[% END %]
|
|
|
|
<h1>Courses</h1>
|
|
<table id="course_reserves_table">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Dept.</th>
|
|
<th>Course #</th>
|
|
<th>Section</th>
|
|
<th>Term</th>
|
|
<th>Instructors</th>
|
|
<th>Staff note</th>
|
|
<th>Public note</th>
|
|
<th># of students</th>
|
|
<th>Enabled</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
[% FOREACH c IN courses %]
|
|
<tr>
|
|
<td><a href="course-details.pl?course_id=[% c.course_id | uri %]">[% c.course_name | html %]</a></td>
|
|
<td>[% AuthorisedValues.GetByCode( 'DEPARTMENT', c.department ) | html %]</td>
|
|
<td>[% c.course_number | html %]</td>
|
|
<td>[% c.section | html %]</td>
|
|
<td>[% AuthorisedValues.GetByCode( 'TERM' c.term ) | html %]</td>
|
|
<td>
|
|
[% FOREACH i IN c.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 %]
|
|
</td>
|
|
<td>[% c.staff_note | html %]</td>
|
|
<td>[% c.public_note | $raw %]</td>
|
|
<td>[% c.students_count | html %]</td>
|
|
<td>
|
|
[% IF c.enabled == 'yes' %]
|
|
Yes
|
|
[% ELSE %]
|
|
No
|
|
[% END %]
|
|
</td>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
[% MACRO jsinclude BLOCK %]
|
|
[% INCLUDE 'datatables.inc' %]
|
|
[% INCLUDE 'columns_settings.inc' %]
|
|
<script>
|
|
var columns_settings = [% TablesSettings.GetColumns( 'coursereserves', 'courses', 'course_reserves_table', 'json' ) | $raw %];
|
|
$(document).ready(function() {
|
|
var ctable = KohaTable("course_reserves_table", {
|
|
"sPaginationType": "full",
|
|
"bAutoWidth": false
|
|
}, columns_settings );
|
|
});
|
|
</script>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|