From 226b1d45f546b9216c11eb02125ced43125f189a 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 Content-Type: text/plain; charset="utf-8" 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. --- .../en/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 bec1619..7343e13 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 394b415..4bbf44e 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, -- 1.7.9.5