From 0131b9e6977214f5481221be52f597339a04e3b3 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
Signed-off-by: Owen Leonard
Signed-off-by: Jonathan Druart
Signed-off-by: Jared Camins-Esakov
---
.../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 c055b2b619..7f109d9526 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 631e056f7a..23d85a9e2c 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);
}
--
2.39.5