From 88e493e5f5d1fe5c022f47cda7d2af8c25dbeadb Mon Sep 17 00:00:00 2001 From: Joseph Sikowitz Date: Sat, 23 May 2020 17:45:51 -0400 Subject: [PATCH] Bug 25606: Remove all reserve items button Adds button to course records to remove all attached reserve items. A warning dialog box will appear before executed. Test plan 1. Install patch 2. Log in as user with permission to delete reserves 3. View a course reserve record with multiple items attached 4. There should now be a button that says "- Batch remove reserves" 5. When you click the button a dialog box should appear with a warning 6. Click "Ok" 7. All course reserves should be removed from the record 8. Add an item to more than course record 9. Redo 3-7 10. Items should have been removed from that course but remain on all other courses 11. Log in as a user without delete reserves permission 12. You should not see the batch remove option Signed-off-by: Lucas Gass --- course_reserves/course-details.pl | 10 +++++++++- .../prog/en/modules/course_reserves/course-details.tt | 7 +++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/course_reserves/course-details.pl b/course_reserves/course-details.pl index af1eb62337..7604e2377c 100755 --- a/course_reserves/course-details.pl +++ b/course_reserves/course-details.pl @@ -34,7 +34,7 @@ my $action = $cgi->param('action') || ''; my $course_id = $cgi->param('course_id'); my $flagsrequired; -$flagsrequired->{coursereserves} = 'delete_reserves' if ( $action eq 'del_reserve' ); +$flagsrequired->{coursereserves} = 'delete_reserves' if ( $action eq 'del_reserve' or $action eq 'rm_all' ); my $tmpl = ($course_id) ? "course-details.tt" : "invalid-course.tt"; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( @@ -49,6 +49,14 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( if ( $action eq 'del_reserve' ) { DelCourseReserve( cr_id => scalar $cgi->param('cr_id') ); } +elsif ( $action eq 'rm_all' ) { + my $course_res = GetCourseReserves(course_id => $course_id); + foreach my $cr (@$course_res) { + if(exists $cr->{'cr_id'}) { + DelCourseReserve(cr_id => $cr->{cr_id}); + } + } +} my $course = GetCourse($course_id); my $course_reserves = GetCourseReserves( diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course-details.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course-details.tt index f5219292e0..3a3b4b2ee1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course-details.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course-details.tt @@ -36,6 +36,9 @@ Add reserves Batch add reserves [% END %] + [% IF CAN_user_coursereserves_delete_reserves %] + Remove all reserves + [% END %] [% IF ( CAN_user_coursereserves_manage_courses ) %] Edit course [% END %] @@ -284,6 +287,10 @@ return confirmDelete(_("Are you sure you want to remove this item from the course?")); }); + $("#rm_items").click(function(){ + return confirmDelete(_("Are you sure you want to remove all items from the course?")); + }); + $("#delete_course").click(function(){ [% SET count = course_reserves.size || 0 %] [% IF count == 1 %] -- 2.11.0