~ubuntu-branches/ubuntu/precise/trac/precise

« back to all changes in this revision

Viewing changes to templates/query.cs

  • Committer: Bazaar Package Importer
  • Author(s): Luis Matos
  • Date: 2008-07-13 23:46:20 UTC
  • mfrom: (1.1.13 upstream)
  • Revision ID: james.westby@ubuntu.com-20080713234620-13ynpdpkbaymfg1z
Tags: 0.11-2
* Re-added python-setup-tools to build dependences. Closes: #490320 #468705
* New upstream release Closes: 489727
* Added sugestion for other vcs support available: git bazaar mercurial 
* Added spamfilter plugin to sugests
* Moved packaging from python-support to python-central
* Added an entry to the NEWS about the cgi Closes: #490275
* Updated 10_remove_trac_suffix_from_title patch to be used in 0.11

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?cs include:"header.cs" ?>
2
 
<?cs include:"macros.cs" ?>
3
 
 
4
 
<div id="ctxtnav" class="nav"><?cs
5
 
 if:query.report_href ?><ul>
6
 
  <li class="first"><a href="<?cs
7
 
    var:query.report_href ?>">Available Reports</a></li>
8
 
  <li class="last">Custom Query</li></ul><?cs
9
 
 /if ?>
10
 
</div>
11
 
 
12
 
<?cs def:num_matches(v) ?><span class="numrows">(<?cs 
13
 
 alt:v ?>No<?cs /alt ?> match<?cs if:v != 1 ?>es<?cs /if ?>)</span><?cs
14
 
/def ?>
15
 
 
16
 
<div id="content" class="query">
17
 
 <h1><?cs var:title ?> <?cs call:num_matches(query.num_matches) ?></h1>
18
 
 
19
 
<form id="query" method="post" action="<?cs var:trac.href.query ?>">
20
 
 <fieldset id="filters">
21
 
  <legend>Filters</legend>
22
 
  <?cs def:checkbox_checked(constraint, option) ?><?cs
23
 
   set:checked = 0 ?><?cs
24
 
   each:value = constraint.values ?><?cs
25
 
    if:(value == option) == (constraint.mode == '') ?><?cs
26
 
      set:checked = 1 ?><?cs
27
 
    /if ?><?cs
28
 
   /each ?><?cs
29
 
   if:checked ?> checked="checked"<?cs /if ?><?cs
30
 
  /def ?>
31
 
  <table summary="Query filters">
32
 
   <tbody><tr style="height: 1px"><td colspan="4"></td></tr></tbody><?cs
33
 
   each:field = query.fields ?><?cs
34
 
   each:constraint = query.constraints ?><?cs
35
 
    if:name(field) == name(constraint) ?>
36
 
     <tbody><tr class="<?cs var:name(field) ?>">
37
 
      <th scope="row"><label><?cs var:field.label ?></label></th><?cs
38
 
      if:field.type != "radio" && field.type != "checkbox" ?>
39
 
       <td class="mode">
40
 
        <select name="<?cs var:name(field) ?>_mode"><?cs
41
 
         each:mode = query.modes[field.type] ?>
42
 
          <option value="<?cs var:mode.value ?>"<?cs
43
 
           if:mode.value == constraint.mode ?> selected="selected"<?cs
44
 
           /if ?>><?cs var:mode.name ?></option><?cs
45
 
         /each ?>
46
 
        </select>
47
 
       </td><?cs
48
 
      /if ?>
49
 
      <td class="filter"<?cs
50
 
        if:field.type == "radio" || field.type == "checkbox" ?> colspan="2"<?cs
51
 
        /if ?>><?cs
52
 
       if:field.type == "select" ?><?cs
53
 
        each:value = constraint.values ?>
54
 
         <select name="<?cs var:name(constraint) ?>"><option></option><?cs
55
 
         each:option = field.options ?>
56
 
          <option<?cs if:option == value ?> selected="selected"<?cs /if ?>><?cs
57
 
            var:option ?></option><?cs
58
 
         /each ?></select><?cs
59
 
         if:name(value) != len(constraint.values) - 1 ?>
60
 
          </td>
61
 
          <td class="actions"><input type="submit" name="rm_filter_<?cs
62
 
             var:name(field) ?>_<?cs var:name(value) ?>" value="-" /></td>
63
 
         </tr><tr class="<?cs var:name(field) ?>">
64
 
          <th colspan="2"><label>or</label></th>
65
 
          <td class="filter"><?cs
66
 
         /if ?><?cs
67
 
        /each ?><?cs
68
 
       elif:field.type == "radio" ?><?cs
69
 
        each:option = field.options ?>
70
 
         <input type="checkbox" id="<?cs var:name(field) ?>_<?cs
71
 
           var:option ?>" name="<?cs var:name(field) ?>" value="<?cs
72
 
           var:option ?>"<?cs call:checkbox_checked(constraint, option) ?> />
73
 
         <label for="<?cs var:name(field) ?>_<?cs var:option ?>"><?cs
74
 
           alt:option ?>none<?cs /alt ?></label><?cs
75
 
        /each ?><?cs
76
 
       elif:field.type == "checkbox" ?>
77
 
        <input type="radio" id="<?cs var:name(field) ?>_on" name="<?cs
78
 
          var:name(field) ?>" value="1"<?cs
79
 
          if:constraint.mode != '!' ?> checked="checked"<?cs /if ?> />
80
 
        <label for="<?cs var:name(field) ?>_on">yes</label>
81
 
        <input type="radio" id="<?cs var:name(field) ?>_off" name="<?cs
82
 
          var:name(field) ?>" value="!1"<?cs
83
 
          if:constraint.mode == '!' ?> checked="checked"<?cs /if ?> />
84
 
        <label for="<?cs var:name(field) ?>_off">no</label><?cs
85
 
       elif:field.type == "text" ?><?cs
86
 
        each:value = constraint.values ?>
87
 
        <input type="text" name="<?cs var:name(field) ?>" value="<?cs
88
 
          var:value ?>" size="42" /><?cs
89
 
         if:name(value) != len(constraint.values) - 1 ?>
90
 
          </td>
91
 
          <td class="actions"><input type="submit" name="rm_filter_<?cs
92
 
             var:name(field) ?>_<?cs var:name(value) ?>" value="-" /></td>
93
 
         </tr><tr class="<?cs var:name(field) ?>">
94
 
          <th colspan="2"><label>or</label></th>
95
 
          <td class="filter"><?cs
96
 
         /if ?><?cs
97
 
        /each ?><?cs
98
 
       /if ?>
99
 
      </td>
100
 
      <td class="actions"><input type="submit" name="rm_filter_<?cs
101
 
         var:name(field) ?><?cs
102
 
         if:field.type != 'radio' ?>_<?cs
103
 
          var:len(constraint.values) - 1 ?><?cs
104
 
         /if ?>" value="-" /></td>
105
 
     </tr></tbody><?cs /if ?><?cs
106
 
    /each ?><?cs
107
 
   /each ?>
108
 
   <tbody><tr class="actions">
109
 
    <td class="actions" colspan="4" style="text-align: right">
110
 
     <label for="add_filter">Add filter</label>&nbsp;
111
 
     <select name="add_filter" id="add_filter">
112
 
      <option></option><?cs
113
 
      each:field = query.fields ?>
114
 
       <option value="<?cs var:name(field) ?>"<?cs
115
 
         if:field.type == "radio" ?><?cs
116
 
          if:len(query.constraints[name(field)]) != 0 ?> disabled="disabled"<?cs
117
 
          /if ?><?cs
118
 
         /if ?>><?cs var:field.label ?></option><?cs
119
 
      /each ?>  
120
 
     </select>
121
 
     <input type="submit" name="add" value="+" />
122
 
    </td>
123
 
   </tr></tbody>
124
 
  </table>
125
 
 </fieldset>
126
 
 <p class="option">
127
 
  <label for="group">Group results by</label>
128
 
  <select name="group" id="group">
129
 
   <option></option><?cs
130
 
   each:field = query.fields ?><?cs
131
 
    if:field.type == 'select' || field.type == 'radio' ||
132
 
       name(field) == 'owner' ?>
133
 
     <option value="<?cs var:name(field) ?>"<?cs
134
 
       if:name(field) == query.group ?> selected="selected"<?cs /if ?>><?cs
135
 
       var:field.label ?></option><?cs
136
 
    /if ?><?cs
137
 
   /each ?>
138
 
  </select>
139
 
  <input type="checkbox" name="groupdesc" id="groupdesc"<?cs
140
 
    if:query.groupdesc ?> checked="checked"<?cs /if ?> />
141
 
  <label for="groupdesc">descending</label>
142
 
  <script type="text/javascript">
143
 
    var group = document.getElementById("group");
144
 
    var updateGroupDesc = function() {
145
 
      enableControl('groupdesc', group.selectedIndex > 0);
146
 
    }
147
 
    addEvent(window, 'load', updateGroupDesc);
148
 
    addEvent(group, 'change', updateGroupDesc);
149
 
  </script>
150
 
 </p>
151
 
 <p class="option">
152
 
  <input type="checkbox" name="verbose" id="verbose"<?cs
153
 
    if:query.verbose ?> checked="checked"<?cs /if ?> />
154
 
  <label for="verbose">Show full description under each result</label>
155
 
 </p>
156
 
 <div class="buttons">
157
 
  <input type="hidden" name="order" value="<?cs var:query.order ?>" />
158
 
  <?cs if:query.desc ?><input type="hidden" name="desc" value="1" /><?cs /if ?>
159
 
  <input type="submit" name="update" value="Update" />
160
 
 </div>
161
 
 <hr />
162
 
</form>
163
 
<script type="text/javascript"><?cs set:idx = 0 ?>
164
 
 var properties={<?cs each:field = query.fields ?><?cs
165
 
  var:name(field) ?>:{type:"<?cs var:field.type ?>",label:"<?cs
166
 
  var:field.label ?>",options:[<?cs
167
 
   each:option = field.options ?>"<?cs var:option ?>"<?cs
168
 
    if:name(option) < len(field.options) -1 ?>,<?cs /if ?><?cs
169
 
   /each ?>]}<?cs
170
 
  set:idx = idx + 1 ?><?cs if:idx < len(query.fields) ?>,<?cs /if ?><?cs
171
 
 /each ?>};<?cs set:idx = 0 ?>
172
 
 var modes = {<?cs each:type = query.modes ?><?cs var:name(type) ?>:[<?cs
173
 
  each:mode = type ?>{text:"<?cs var:mode.name ?>",value:"<?cs var:mode.value ?>"}<?cs
174
 
   if:name(mode) < len(type) -1 ?>,<?cs /if ?><?cs
175
 
  /each ?>]<?cs
176
 
  set:idx = idx + 1 ?><?cs if:idx < len(query.modes) ?>,<?cs /if ?><?cs
177
 
 /each ?>};
178
 
 initializeFilters();
179
 
</script>
180
 
 
181
 
<?cs def:thead() ?>
182
 
 <thead><tr><?cs each:header = query.headers ?>
183
 
  <th class="<?cs var:header.name ?><?cs if:query.order == header.name ?> <?cs
184
 
    if:query.desc ?>desc<?cs else ?>asc<?cs /if ?><?cs /if ?>">
185
 
   <a title="Sort by <?cs var:header.label ?><?cs
186
 
     if:query.order == header.name && !query.desc ?> (descending)<?cs
187
 
     /if ?>" href="<?cs var:header.href ?>"><?cs var:header.label ?></a>
188
 
  </th><?cs
189
 
 /each ?></tr></thead>
190
 
<?cs /def ?>
191
 
 
192
 
<?cs if:len(query.results) ?><?cs
193
 
 if:!query.group ?>
194
 
  <table class="listing tickets">
195
 
  <?cs call:thead() ?><tbody><?cs
196
 
 /if ?><?cs
197
 
 each:result = query.results ?><?cs
198
 
  if:result[query.group] != prev_group ?>
199
 
   <?cs if:prev_group ?></tbody></table><?cs /if ?>
200
 
   <h2><?cs
201
 
    each:field = query.fields ?><?cs
202
 
     if:name(field) == query.group ?><?cs
203
 
      var:field.label ?><?cs
204
 
     /if ?><?cs
205
 
    /each ?>: <?cs var:result[query.group] ?> <?cs call:num_matches(query.num_matches_group["_"+result[query.group]+"_"]) ?></h2>
206
 
   <table class="listing tickets">
207
 
   <?cs call:thead() ?><tbody><?cs
208
 
  /if ?>
209
 
  <tr class="<?cs
210
 
   if:name(result) % 2 ?>odd<?cs else ?>even<?cs /if ?> prio<?cs
211
 
   var:result.priority_value ?><?cs
212
 
   if:result.added ?> added<?cs /if ?><?cs
213
 
   if:result.changed ?> changed<?cs /if ?><?cs
214
 
   if:result.removed ?> removed<?cs /if ?>"><?cs
215
 
  each:header = query.headers ?><?cs
216
 
   if:name(header) == 0 ?><td class="id"><a href="<?cs
217
 
    var:result.href ?>" title="View ticket"><?cs var:result.id ?></a></td><?cs
218
 
   else ?><td class="<?cs var:header.name ?>"><?cs
219
 
     if:header.name == 'summary' ?><a href="<?cs
220
 
      var:result.href ?>" title="View ticket"><?cs
221
 
      var:result.summary ?></a><?cs
222
 
     else ?><span><?cs var:result[header.name] ?></span><?cs
223
 
     /if ?></td><?cs
224
 
   /if ?><?cs
225
 
  /each ?>
226
 
  <?cs if:query.verbose ?>
227
 
   </tr><tr class="fullrow"><td colspan="<?cs var:len(query.headers) ?>">
228
 
    <p class="meta">Reported by <strong><?cs var:result.reporter ?></strong>,
229
 
    <?cs var:result.time ?><?cs if:result.description ?>:<?cs /if ?></p>
230
 
    <?cs if:result.description ?><p><?cs var:result.description ?></p><?cs /if ?>
231
 
   </td>
232
 
  <?cs /if ?><?cs set:prev_group = result[query.group] ?>
233
 
 </tr><?cs /each ?>
234
 
</tbody></table><?cs
235
 
/if ?>
236
 
 
237
 
<div id="help">
238
 
 <strong>Note:</strong> See <a href="<?cs var:trac.href.wiki ?>/TracQuery">TracQuery</a> 
239
 
 for help on using queries.
240
 
</div>
241
 
 
242
 
</div>
243
 
<?cs include:"footer.cs" ?>