$chart < 0 || $params->param("field$chart-0-0") ;
$chart++) {
$chartid = $chart >= 0 ? $chart : "";
+ my @chartandlist = ();
for ($row = 0 ;
$params->param("field$chart-$row-0") ;
$row++) {
}
if (@orlist) {
@orlist = map("($_)", @orlist) if (scalar(@orlist) > 1);
- push(@andlist, "(" . join(" OR ", @orlist) . ")");
+ push(@chartandlist, "(" . join(" OR ", @orlist) . ")");
+ }
+ }
+ if (@chartandlist) {
+ if ($params->param("negate$chart")) {
+ push(@andlist, "NOT(" . join(" AND ", @chartandlist) . ")");
+ } else {
+ push(@andlist, "(" . join(" AND ", @chartandlist) . ")");
}
}
}
}
push(@rows, \@cols);
}
- push(@charts, \@rows);
+ push(@charts, {'rows' => \@rows, 'negate' => $::FORM{"negate$chart"}});
}
$default{'charts'} = \@charts;
[% FOREACH chart = default.charts %]
[% chartnum = loop.count - 1 %]
<table>
- [% FOREACH row = chart %]
+ <tr>
+ <input type="checkbox" id="negate[% chartnum FILTER html %]"
+ name="negate[% chartnum FILTER html %]" value="1"
+ [% "checked" IF chart.negate %]
+ >
+ <label for="negate[% chartnum FILTER html %]">
+ Not (negate this whole chart)
+ </label>
+ </tr>
+ [% FOREACH row = chart.rows %]
[% rownum = loop.count - 1 %]
<tr>
[% FOREACH col = row %]