r=LpSolit a=justdave git-svn-id: svn://10.0.0.236/trunk@265203 18797224-902f-48f8-a5cc-f745e15eee43
110 lines
4.1 KiB
Cheetah
110 lines
4.1 KiB
Cheetah
[%# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
# This Source Code Form is "Incompatible With Secondary Licenses", as
|
|
# defined by the Mozilla Public License, v. 2.0.
|
|
#%]
|
|
|
|
[%# INTERFACE:
|
|
# bugs: list of hashes. May be empty. Each hash has three members:
|
|
# bug: A Bugzilla::Bug object
|
|
# count: integer. The number of dupes
|
|
# delta: integer. The change in count in the last $changedsince days
|
|
#
|
|
# bug_ids: list of integers. May be empty. The IDs of the bugs in $bugs.
|
|
#
|
|
# sortby: string. the column on which we are sorting the buglist.
|
|
# reverse: boolean. True if we are reversing the current sort.
|
|
# maxrows: integer. Max number of rows to display.
|
|
# changedsince: integer. The number of days ago for the changedsince column.
|
|
# openonly: boolean. True if we are only showing open bugs.
|
|
# product: array of strings. Restrict to these products only.
|
|
#%]
|
|
|
|
[%# *** Column Headers *** %]
|
|
|
|
[% SET columns = [
|
|
{ name => "id", description => "$terms.Bug #" },
|
|
{ name => "count", description => "Dupe<br>Count" },
|
|
{ name => "delta",
|
|
description => "Change in last<br>$changedsince day(s)" },
|
|
{ name => "component", description => field_descs.component },
|
|
{ name => "bug_severity", description => field_descs.bug_severity },
|
|
{ name => "priority", description => field_descs.priority },
|
|
{ name => "target_milestone", description => field_descs.target_milestone },
|
|
{ name => "short_desc", description => field_descs.short_desc },
|
|
] %]
|
|
|
|
[% SET base_args = [] %]
|
|
[% FOREACH param = ['maxrows', 'openonly', 'format', 'sortvisible',
|
|
'changedsince', 'product']
|
|
%]
|
|
[% NEXT IF NOT ${param}.defined %]
|
|
[% FOREACH value = ${param} %]
|
|
[% filtered_value = value FILTER uri %]
|
|
[% base_args.push("$param=$filtered_value") %]
|
|
[% END %]
|
|
[% END %]
|
|
[% IF sortvisible %]
|
|
[% bug_ids_string = bug_ids.nsort.join(',') FILTER uri %]
|
|
[% base_args.push("bug_id=$bug_ids_string") %]
|
|
[% END %]
|
|
[% base_args_string = base_args.join('&') %]
|
|
|
|
[% IF bugs.size %]
|
|
<table id="duplicates_table">
|
|
<thead>
|
|
<tr>
|
|
[% FOREACH column = columns %]
|
|
[% IF column.name == sortby %]
|
|
[%# We add this to the column object so it doesn't affect future
|
|
# iterations of the loop.
|
|
#%]
|
|
[% column.reverse_sort = reverse ? 0 : 1 %]
|
|
[% END %]
|
|
<th class="[% column.name FILTER html %]">
|
|
<a href="duplicates.cgi?sortby=[% column.name FILTER uri %]
|
|
[% IF column.reverse_sort.defined %]
|
|
[%- %]&reverse=[% column.reverse_sort FILTER uri %]
|
|
[% END %]
|
|
[% IF base_args_string %]
|
|
[% "&$base_args_string" FILTER none %]
|
|
[% END %]"
|
|
>[% column.description FILTER none %]</a>
|
|
</th>
|
|
[% END %]
|
|
</tr>
|
|
</thead>
|
|
|
|
[%# *** Buglist *** %]
|
|
|
|
<tbody>
|
|
[% FOREACH item = bugs %]
|
|
[% SET bug = item.bug %]
|
|
<tr [% " class='resolved'" IF NOT bug.isopened %]>
|
|
<td class="id">
|
|
[% bug.id FILTER bug_link(bug) FILTER none %]
|
|
</td>
|
|
<td class="count">[% item.count FILTER html %]</td>
|
|
<td class="delta">[% item.delta FILTER html %]</td>
|
|
<td class="component">[% bug.component FILTER html %]</td>
|
|
<td class="bug_severity">
|
|
[%- display_value('bug_severity', bug.bug_severity) FILTER html %]
|
|
</td>
|
|
<td class="priority">
|
|
[%- display_value('priority', bug.priority) FILTER html %]
|
|
</td>
|
|
<td class="target_milestone">
|
|
[% display_value('target_milestone',
|
|
bug.target_milestone) FILTER html %]
|
|
</td>
|
|
<td class="short_desc">[% bug.short_desc FILTER html %]</td>
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
[% ELSE %]
|
|
<h3>No duplicate [% terms.bugs %] found.</h3>
|
|
[% END %]
|