Koha/koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course-reserves.tt
Joseph Sikowitz 3bf7430d1c Bug 14648: Batch remove reserve items
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>
2020-10-01 10:33:10 +02:00

95 lines
4.4 KiB
Text

[% USE raw %]
[% USE Asset %]
[% USE AuthorisedValues %]
[% USE TablesSettings %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; 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> &rsaquo; <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' %]