Bug 245272: Add per-chart negation to boolean searches

r=justdave,myk,timeless
a=myk
This commit is contained in:
bugreport%peshkin.net 2004-07-20 21:46:47 +00:00
Родитель c3eaed9e87
Коммит 97a92c4b85
3 изменённых файлов: 20 добавлений и 3 удалений

Просмотреть файл

@ -1049,6 +1049,7 @@ sub init {
$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++) {
@ -1111,7 +1112,14 @@ sub init {
}
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) . ")");
}
}
}

Просмотреть файл

@ -357,7 +357,7 @@ for (my $chart = 0; $::FORM{"field$chart-0-0"}; $chart++) {
}
push(@rows, \@cols);
}
push(@charts, \@rows);
push(@charts, {'rows' => \@rows, 'negate' => $::FORM{"negate$chart"}});
}
$default{'charts'} = \@charts;

Просмотреть файл

@ -57,7 +57,16 @@
[% 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 %]