summaryrefslogtreecommitdiffstats
path: root/template/en/default/search/boolean-charts.html.tmpl
blob: ba88b67b4c22a4575807fd2291bdf995e73f3f4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
[%# 1.0@bugzilla.org %]
[%# The contents of this file are subject to the Mozilla Public
  # License Version 1.1 (the "License"); you may not use this file
  # except in compliance with the License. You may obtain a copy of
  # the License at http://www.mozilla.org/MPL/
  #
  # Software distributed under the License is distributed on an "AS
  # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  # implied. See the License for the specific language governing
  # rights and limitations under the License.
  #
  # The Original Code is the Bugzilla Bug Tracking System.
  #
  # The Initial Developer of the Original Code is Netscape Communications
  # Corporation. Portions created by Netscape are
  # Copyright (C) 1998 Netscape Communications Corporation. All
  # Rights Reserved.
  #
  # Contributor(s): Gervase Markham <gerv@gerv.net>
  #%]
  
[% types = [
  { name => "noop", description => "---" },
  { name => "equals", description => "is equal to" },
  { name => "notequals", description => "is not equal to" },
  { name => "anyexact", description => "is equal to any of the strings" },
  { name => "substring", description => "contains the string" },
  { name => "casesubstring", description => "contains the string (exact case)" },
  { name => "notsubstring", description => "does not contain the string" },
  { name => "allwordssubstr", description => "contains all of the strings" },
  { name => "anywordssubstr", description => "contains any of the strings" },
  { name => "regexp", description => "contains regexp" },
  { name => "notregexp", description => "does not contain regexp" },
  { name => "lessthan", description => "is less than" },
  { name => "greaterthan", description => "is greater than" },
  { name => "anywords", description => "contains any of the words" },
  { name => "allwords", description => "contains all of the words" },
  { name => "nowords", description => "contains none of the words" },
  { name => "changedbefore", description => "changed before" },
  { name => "changedafter", description => "changed after" },
  { name => "changedfrom", description => "changed from" },
  { name => "changedto", description => "changed to" },
  { name => "changedby", description => "changed by" },
  { name => "matches", description => "matches" } ] %]

  <p>
    <strong>
      <a name="chart" href="queryhelp.cgi#advancedquerying">
      Advanced Searching Using Boolean Charts</a>:
    </strong>
  </p>

[%# Whoever wrote the original version of boolean charts had a seriously twisted mind %]

[% jsmagic = "onclick=\"document.forms[0].action='query.cgi#chart'; document.forms[0].method='POST'; return 1;\"" %]

[% FOREACH chart = default.charts %]
  [% chartnum = loop.count - 1 %]
  <table>
  [% FOREACH row = chart %]
    [% rownum = loop.count - 1 %]
    <tr>
    [% FOREACH col = row %]
      [% colnum = loop.count - 1 %]
      <td>
        <select name="[% "field${chartnum}-${rownum}-${colnum}" %]">
          [% FOREACH field = fields %]
            <option value="[% field.name %]"
              [%- " selected" IF field.name == col.field %]>[% field.description %]</option>
          [% END %]
        </select>

        <select name="[% "type${chartnum}-${rownum}-${colnum}" %]">
          [% FOREACH type = types %]
            <option value="[% type.name %]"
              [%- " selected" IF type.name == col.type %]>[% type.description %]</option>
          [% END %]
        </select>

        <input name="[% "value${chartnum}-${rownum}-${colnum}" %]" 
               value="[% col.value FILTER html %]"> 
      </td>
      
      [% UNLESS loop.last %]
        <td align="center"> 
          Or 
        </td>    
      </tr>
      <tr>
      [% ELSE %]
        <td>
          [% newor = colnum + 1 %]
          <input type="submit" value="Or" 
                 name="cmd-add[% "${chartnum}-${rownum}-${newor}" %]" [% jsmagic %]>
        </td>
      [% END %]
      
    [% END %]
    </tr>
    
    [% UNLESS loop.last %]
    <tr>
      <td>And</td>
    </tr>    
    [% ELSE %]
    <tr>
      <td>
        [% newand = rownum + 1; newchart = chartnum + 1 %]
        <input type="submit" value="And" 
               name="cmd-add[% "${chartnum}-${newand}-0" %]" [% jsmagic %]> 
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <input type="submit" value="Add another boolean chart" 
               name="cmd-add[% newchart %]-0-0" [% jsmagic %]>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      </td>
    </tr>   
    [% END %]
    
  [% END %]
  </table>
  <hr>
[% END %]