From 9f815f2287a5b7cacb495fac28b16d665c660be0 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Wed, 3 Jul 2013 10:05:55 -0400 Subject: [PATCH] Bug 3134 - Ability to selelct multiple reports to delete at once This patch adds the option to select multiple saved reports for deletion. To test you must have two or more saved reports to delete. Deletion should work properly when: - Selecting one report for deletion by checking the box. - Selecting more than one report for deletion by checking boxes. - Clicking the old "Delete" link Clicking the delete button should prompt you to confirm. Clicking cancel should cancel. Clicking the delete button when no boxes are checked should trigger an alert asking you to select reports for deletion. Signed-off-by: Liz Rea Functional tests pass, template tests pass. --- C4/Reports/Guided.pm | 14 +++++++------- .../prog/en/modules/reports/guided_reports_start.tt | 21 ++++++++++++++++++--- reports/guided_reports.pl | 11 +++++++++-- 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/C4/Reports/Guided.pm b/C4/Reports/Guided.pm index f0db7a3..9447c71 100644 --- a/C4/Reports/Guided.pm +++ b/C4/Reports/Guided.pm @@ -609,13 +609,13 @@ sub format_results { } sub delete_report { - my ($id) = @_; - my $dbh = C4::Context->dbh(); - my $query = "DELETE FROM saved_sql WHERE id = ?"; - my $sth = $dbh->prepare($query); - $sth->execute($id); -} - + my (@ids) = @_; + my $dbh = C4::Context->dbh; + my $query = 'DELETE FROM saved_sql WHERE id IN (' . join( ',', ('?') x @ids ) . ')'; + my $sth = $dbh->prepare($query); + $sth->execute(@ids); + $sth->finish; +} my $SAVED_REPORTS_BASE_QRY = < +
+ @@ -297,7 +308,7 @@ canned reports and writing custom SQL reports.

[% FOREACH savedreport IN savedreports %] [% UNLESS ( loop.odd ) %][% ELSE %][% END %] - + @@ -317,7 +328,7 @@ canned reports and writing custom SQL reports.

Show [% IF ( CAN_user_reports_create_reports ) %] Edit - Duplicate + Duplicate [% END %]
[% savedreport.id %] [% savedreport.report_name %] [% savedreport.type %] [% savedreport.groupname %] @@ -331,6 +342,10 @@ canned reports and writing custom SQL reports.

[% END %]
+
+ +
+
[% ELSE %]
diff --git a/reports/guided_reports.pl b/reports/guided_reports.pl index 929feea..b9c49ad 100755 --- a/reports/guided_reports.pl +++ b/reports/guided_reports.pl @@ -108,11 +108,18 @@ elsif ( $phase eq 'Build new' ) { ); } +elsif ( $phase eq 'Delete Multiple') { + my @ids = $input->param('ids'); + delete_report( @ids ); + print $input->redirect("/cgi-bin/koha/reports/guided_reports.pl?phase=Use%20saved"); + exit; +} + elsif ( $phase eq 'Delete Saved') { # delete a report from the saved reports list - my $id = $input->param('reports'); - delete_report($id); + my $ids = $input->param('reports'); + delete_report($ids); print $input->redirect("/cgi-bin/koha/reports/guided_reports.pl?phase=Use%20saved"); exit; } -- 1.8.1.2