From c1969c07ffb816e5b29811c23688f94220ac8f6d 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 | 17 +++++++++++++++++ reports/guided_reports.pl | 9 +++++++-- 2 files changed, 24 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..607f4cb 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,23 @@ 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 de18072..6726f93 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