From 3e5839ae99da291b324484613b08ee785e2505ef Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 16 Jan 2013 06:53:59 -0500 Subject: [PATCH] Bug 9417 - Allow number of results per page to be selectable for guided reports This patch adds the ability to select the number of row to show per page while retaining the default rows per page as 20. Test Plan: 1) Apply patch 2) Run a guided report that will have many resultant rows 3) Try the various rows per page options 4) Verify the rows per page selected is retained when paging through results --- .../en/modules/reports/guided_reports_start.tt | 20 ++++++++++++++++++++ reports/guided_reports.pl | 9 +++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt index c055b2b..7f109d9 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt @@ -579,6 +579,26 @@ canned reports and writing custom SQL reports.

[% IF ( notes ) %]

[% notes %]

[% END %] [% IF ( unlimited_total ) %]

Total number of rows matching the (unlimited) query is [% unlimited_total %].

[% END %]
[% sql |html %]
+ +
+ + + + + + + +
+
[% pagination_bar %]
[% UNLESS ( errors ) %] diff --git a/reports/guided_reports.pl b/reports/guided_reports.pl index 631e056..23d85a9 100755 --- a/reports/guided_reports.pl +++ b/reports/guided_reports.pl @@ -523,7 +523,7 @@ elsif ( $phase eq 'Save Report' ) { elsif ($phase eq 'Run this report'){ # execute a saved report - my $limit = 20; # page size. # TODO: move to DB or syspref? + my $limit = $input->param('limit') || 20; my $offset = 0; my $report_id = $input->param('reports'); my @sql_params = $input->param('sql_params'); @@ -532,6 +532,11 @@ elsif ($phase eq 'Run this report'){ $offset = ($input->param('page') - 1) * $limit; } + $template->param( + 'limit' => $limit, + 'report_id' => $report_id, + ); + my ( $sql, $type, $name, $notes ); if (my $report = get_saved_report($report_id)) { $sql = $report->{savedsql}; @@ -654,7 +659,7 @@ elsif ($phase eq 'Run this report'){ } my $totpages = int($total/$limit) + (($total % $limit) > 0 ? 1 : 0); - my $url = "/cgi-bin/koha/reports/guided_reports.pl?reports=$report_id&phase=Run%20this%20report"; + my $url = "/cgi-bin/koha/reports/guided_reports.pl?reports=$report_id&phase=Run%20this%20report&limit=$limit"; if (@sql_params) { $url = join('&sql_params=', $url, map { URI::Escape::uri_escape($_) } @sql_params); } -- 1.7.2.5