From 8932af7ff7f02632f8cd1a3b5094164968136679 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Wed, 21 Nov 2012 12:31:41 -0500 Subject: [PATCH] Bug 8588 [3.8.x] Duplicate field IDs cause problems with SQL report parameter entry Reimplemented for 3.8.x: Changes to markup and script to enable unique ids on form fields. These changes allow for working label+input pairs on one or more text and select inputs and multiple working datepickers. To test, create a report with more than one date parameter, at least one text parameter, and one or more authorised value parameters. The datepickers should each work properly, and labels should by clickable. Signed-off-by: Chris Cormack --- .../modules/reports/guided_reports_start.tt | 22 ++++++++++++------- reports/guided_reports.pl | 8 +++++-- 2 files changed, 20 insertions(+), 10 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 bec16194c3..7343e13483 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 @@ -487,24 +487,30 @@ canned reports and writing custom SQL reports.

Enter parameters for report [% name %]:

[% IF ( notes ) %]

[% notes %]

[% END %] +
+
    [% FOREACH sql_param IN sql_params %] [% IF sql_param.input == 'date' %] -

    - [% sql_param.entry %]: - Show calendar +

  1. + Show calendar -

    +
  2. + [% ELSIF ( sql_param.input == 'text' ) %] +
  3. [% ELSE %] -

    [% sql_param.entry %]: [% sql_param.input %]

    +
  4. [% sql_param.input %]
  5. [% END %] [% END %] - +
+
+
[% END %] diff --git a/reports/guided_reports.pl b/reports/guided_reports.pl index 394b415fd8..4bbf44ed12 100755 --- a/reports/guided_reports.pl +++ b/reports/guided_reports.pl @@ -425,6 +425,7 @@ elsif ($phase eq 'Run this report'){ for(my $i=0;$i<($#split/2);$i++) { my ($text,$authorised_value) = split /\|/,$split[$i*2+1]; my $input; + my $labelid; if ($authorised_value eq "date") { $input = 'date'; } @@ -480,8 +481,11 @@ elsif ($phase eq 'Run this report'){ $authorised_lib{$value} = $lib; } } + $labelid = $text; + $labelid =~ s/\W//g; $input =CGI::scrolling_list( # FIXME: factor out scrolling_list -name => "sql_params", + -id => "sql_params_".$labelid, -values => \@authorised_values, # -default => $value, -labels => \%authorised_lib, @@ -492,9 +496,9 @@ elsif ($phase eq 'Run this report'){ ); } else { - $input = ""; + $input = "text"; } - push @tmpl_parameters, {'entry' => $text, 'input' => $input }; + push @tmpl_parameters, {'entry' => $text, 'input' => $input, 'labelid' => $labelid }; } $template->param('sql' => $sql, 'name' => $name, -- 2.39.5