From 9d3cd50be1fda6e4691867c086a70596928833bc Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 16 Jan 2013 06:53:59 -0500 Subject: [PATCH] [SIGNED-OFF] Bug 9417 - Allow number of results per page to be selectable for guided reports Content-Type: text/plain; charset="utf-8" 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 Signed-off-by: Owen Leonard --- .../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.9.5