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 <oleonard@myacpl.org> Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
This commit is contained in:
parent
4da872e51f
commit
0131b9e697
2 changed files with 27 additions and 2 deletions
|
@ -579,6 +579,26 @@ canned reports and writing custom SQL reports.</p>
|
|||
[% IF ( notes ) %]<p>[% notes %]</p>[% END %]
|
||||
[% IF ( unlimited_total ) %]<p>Total number of rows matching the (unlimited) query is [% unlimited_total %].</p>[% END %]
|
||||
<pre id="sql_output">[% sql |html %]</pre>
|
||||
|
||||
<form>
|
||||
<input type="hidden" name="phase" value="Run this report"/>
|
||||
<input type="hidden" name="reports" value="[% report_id %]"/>
|
||||
|
||||
<label for="limit">Rows per page: </label>
|
||||
<select name="limit">
|
||||
[% limits = [ 10, 20, 50, 100, 200, 300, 400, 500, 1000 ] %]
|
||||
[% FOREACH l IN limits %]
|
||||
[% IF l == limit %]
|
||||
<option value="[% l %]" selected="selected">[% l %]</option>
|
||||
[% ELSE %]
|
||||
<option value="[% l %]">[% l %]</option>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</select>
|
||||
|
||||
<input type="submit" value="Update" />
|
||||
</form>
|
||||
|
||||
<div class="pages">[% pagination_bar %]</div>
|
||||
[% UNLESS ( errors ) %]
|
||||
<table>
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue