зеркало из https://github.com/mozilla/pjs.git
Bug 138994 - split up duplicates.html.tmpl. Patch by gerv; r=myk, bbaetz.
This commit is contained in:
Родитель
189226474a
Коммит
07c48c4f5d
|
@ -191,13 +191,17 @@ $vars->{'changedsince'} = $changedsince;
|
|||
$vars->{'maxrows'} = $maxrows;
|
||||
$vars->{'openonly'} = $openonly;
|
||||
$vars->{'reverse'} = $reverse;
|
||||
$vars->{'format'} = $::FORM{'format'};
|
||||
$vars->{'product'} = $product;
|
||||
$vars->{'products'} = \@::legal_product;
|
||||
|
||||
print "Content-type: text/html\n\n";
|
||||
|
||||
my $format = ValidateOutputFormat($::FORM{'format'}, "duplicates", "reports");
|
||||
|
||||
print "Content-Type: $format->{'contenttype'}\n\n";
|
||||
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
$template->process("reports/duplicates.html.tmpl", $vars)
|
||||
$template->process("reports/$format->{'template'}", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
<!-- 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>
|
||||
#%]
|
||||
|
||||
[%# INTERFACE:
|
||||
# You need to fulfill the interface to duplicates-table.html.tmpl.
|
||||
#%]
|
||||
|
||||
<html>
|
||||
|
||||
[% IF product %]
|
||||
[% title = "Most Frequently Reported Bugs for $product" %]
|
||||
[% ELSE %]
|
||||
[% title = "Most Frequently Reported Bugs" %]
|
||||
[% END%]
|
||||
|
||||
<head>
|
||||
<title>[% title %]</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
[% PROCESS "reports/duplicates-table.html.tmpl" %]
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,137 @@
|
|||
<!-- 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>
|
||||
#%]
|
||||
|
||||
[%# INTERFACE:
|
||||
# bugs: list of hashes. May be empty. Each hash has nine members:
|
||||
# id: integer. The bug number
|
||||
# count: integer. The number of dupes
|
||||
# delta: integer. The change in count in the last $changedsince days
|
||||
# component: string. The bug's component
|
||||
# bug_severity: string. The bug's severity.
|
||||
# op_sys: string. The bug's reported OS.
|
||||
# target_milestone: string. The bug's TM.
|
||||
# short_desc: string. The bug's summary.
|
||||
# bug_status: string. The bug's status.
|
||||
#
|
||||
# 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: string. Restrict to this product only.
|
||||
#%]
|
||||
|
||||
[%# *** Column Headers *** %]
|
||||
|
||||
<table border>
|
||||
<tr BGCOLOR="#CCCCCC">
|
||||
[% FOREACH column = [ { name => "id", description => "Bug #" },
|
||||
{ name => "count", description => "Dupe<br>Count" },
|
||||
{ name => "delta",
|
||||
description => "Change in last<br>$changedsince day(s)" },
|
||||
{ name => "component", description => "Component" },
|
||||
{ name => "bug_severity", description => "Severity" },
|
||||
{ name => "op_sys", description => "Op Sys" },
|
||||
{ name => "target_milestone",
|
||||
description => "Target<br>Milestone" },
|
||||
{ name => "short_desc", description => "Summary" } ]
|
||||
%]
|
||||
|
||||
[%# Small hack to keep delta column out if we don't need it %]
|
||||
[% NEXT IF column.name == "delta" AND NOT dobefore %]
|
||||
|
||||
<td>
|
||||
<center>
|
||||
<b>
|
||||
[% bug_ids_string = bug_ids.join(',') %]
|
||||
<a href="duplicates.cgi?sortby=[% column.name %]
|
||||
[% "&reverse=1" IF NOT reverse AND sortby == column.name %]
|
||||
[% "&maxrows=$maxrows" IF maxrows %]
|
||||
[% "&changedsince=$changedsince" IF changedsince %]
|
||||
[% "&openonly=1" IF openonly %]
|
||||
[% "&product=$product" IF product %]
|
||||
[% "&format=$format" IF format %]
|
||||
[% "&bug_id=$bug_ids_string&sortvisible=1" IF sortvisible %]">
|
||||
[% column.description %]</a>
|
||||
</b>
|
||||
</center>
|
||||
</td>
|
||||
[% END %]
|
||||
</tr>
|
||||
|
||||
[% IF NOT sortby %]
|
||||
[% sortby = "count"; reverse = "1" %]
|
||||
[% END %]
|
||||
|
||||
[% IF sortby == "id" OR sortby == "count" OR sortby == "delta" %]
|
||||
[%# Numeric sort %]
|
||||
[% sortedbugs = bugs.nsort(sortby) %]
|
||||
[% ELSE %]
|
||||
[% sortedbugs = bugs.sort(sortby) %]
|
||||
[% END %]
|
||||
|
||||
[% IF reverse %]
|
||||
[% bugs = sortedbugs.reverse %]
|
||||
[% ELSE %]
|
||||
[% bugs = sortedbugs %]
|
||||
[% END %]
|
||||
|
||||
[%# *** Buglist *** %]
|
||||
|
||||
[%# We need to keep track of the bug IDs we are actually displaying, because
|
||||
# if the user decides to sort the visible list, we need to know what that
|
||||
# list actually is. %]
|
||||
[% vis_bug_ids = [] %]
|
||||
|
||||
[% FOREACH bug = bugs %]
|
||||
[% LAST IF loop.index() >= maxrows %]
|
||||
[% vis_bug_ids.push(bug.id) %]
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center>
|
||||
[% "<strike>" IF bug.resolution != "" %]
|
||||
<A HREF="show_bug.cgi?id=[% bug.id %]">[% bug.id %]</a>
|
||||
[% "</strike>" IF bug.resolution != "" %]
|
||||
</center>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<center>
|
||||
[% bug.count %]
|
||||
</center>
|
||||
</td>
|
||||
|
||||
[% IF dobefore %]
|
||||
<td><center>[% bug.delta %]</center></td>
|
||||
[% END %]
|
||||
|
||||
<td>[% bug.component %]</td>
|
||||
<td><center>[% bug.bug_severity %]</center></td>
|
||||
<td><center>[% bug.op_sys %]</center></td>
|
||||
<td><center>[% bug.target_milestone %]</center></td>
|
||||
<td>[% bug.short_desc FILTER html %]</td>
|
||||
</tr>
|
||||
[% END %]
|
||||
|
||||
</table>
|
|
@ -20,18 +20,6 @@
|
|||
#%]
|
||||
|
||||
[%# INTERFACE:
|
||||
# bugs: list of hashes. May be empty. Each hash has nine members:
|
||||
# id: integer. The bug number
|
||||
# count: integer. The number of dupes
|
||||
# delta: integer. The change in count in the last $changedsince days
|
||||
# component: string. The bug's component
|
||||
# bug_severity: string. The bug's severity.
|
||||
# op_sys: string. The bug's reported OS.
|
||||
# target_milestone: string. The bug's TM.
|
||||
# short_desc: string. The bug's summary.
|
||||
# bug_status: string. The bug's status.
|
||||
#
|
||||
# bug_ids: list of integers. May be empty. The IDs of the bugs in $bugs.
|
||||
# products: list of strings. The products this user can see.
|
||||
#
|
||||
# sortby: string. the column on which we are sorting the buglist.
|
||||
|
@ -40,6 +28,9 @@
|
|||
# changedsince: integer. The number of days ago for the changedsince column.
|
||||
# openonly: boolean. True if we are only showing open bugs.
|
||||
# product: string. Restrict to this product only.
|
||||
#
|
||||
# Additionally, you need to fulfill the interface to
|
||||
# duplicates-table.html.tmpl.
|
||||
#%]
|
||||
|
||||
[% IF product %]
|
||||
|
@ -56,99 +47,7 @@
|
|||
<a href="#params">Change parameters</a>
|
||||
</p>
|
||||
|
||||
[%# *** Column Headers *** %]
|
||||
|
||||
<table border>
|
||||
<tr BGCOLOR="#CCCCCC">
|
||||
[% FOREACH column = [ { name => "id", description => "Bug #" },
|
||||
{ name => "count", description => "Dupe<br>Count" },
|
||||
{ name => "delta",
|
||||
description => "Change in last<br>$changedsince day(s)" },
|
||||
{ name => "component", description => "Component" },
|
||||
{ name => "bug_severity", description => "Severity" },
|
||||
{ name => "op_sys", description => "Op Sys" },
|
||||
{ name => "target_milestone",
|
||||
description => "Target<br>Milestone" },
|
||||
{ name => "short_desc", description => "Summary" } ]
|
||||
%]
|
||||
|
||||
[%# Small hack to keep delta column out if we don't need it %]
|
||||
[% NEXT IF column.name == "delta" AND NOT dobefore %]
|
||||
|
||||
<td>
|
||||
<center>
|
||||
<b>
|
||||
[% bug_ids_string = bug_ids.join(',') %]
|
||||
<a href="duplicates.cgi?sortby=[% column.name %]
|
||||
[% "&reverse=1" IF NOT reverse AND sortby == column.name %]
|
||||
[% "&maxrows=$maxrows" IF maxrows %]
|
||||
[% "&changedsince=$changedsince" IF changedsince %]
|
||||
[% "&openonly=1" IF openonly %]
|
||||
[% "&product=$product" IF product %]
|
||||
[% "&bug_id=$bug_ids_string&sortvisible=1" IF sortvisible %]">
|
||||
[% column.description %]</a>
|
||||
</b>
|
||||
</center>
|
||||
</td>
|
||||
[% END %]
|
||||
</tr>
|
||||
|
||||
[% IF NOT sortby %]
|
||||
[% sortby = "count"; reverse = "1" %]
|
||||
[% END %]
|
||||
|
||||
[% IF sortby == "id" OR sortby == "count" OR sortby == "delta" %]
|
||||
[%# Numeric sort %]
|
||||
[% sortedbugs = bugs.nsort(sortby) %]
|
||||
[% ELSE %]
|
||||
[% sortedbugs = bugs.sort(sortby) %]
|
||||
[% END %]
|
||||
|
||||
[% IF reverse %]
|
||||
[% bugs = sortedbugs.reverse %]
|
||||
[% ELSE %]
|
||||
[% bugs = sortedbugs %]
|
||||
[% END %]
|
||||
|
||||
[%# *** Buglist *** %]
|
||||
|
||||
[%# We need to keep track of the bug IDs we are actually displaying, because
|
||||
# if the user decides to sort the visible list, we need to know what that
|
||||
# list actually is. %]
|
||||
[% vis_bug_ids = [] %]
|
||||
|
||||
[% FOREACH bug = bugs %]
|
||||
[% LAST IF loop.index() >= maxrows %]
|
||||
[% vis_bug_ids.push(bug.id) %]
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<center>
|
||||
[% "<strike>" IF bug.resolution != "" %]
|
||||
<A HREF="show_bug.cgi?id=[% bug.id %]">[% bug.id %]</a>
|
||||
[% "</strike>" IF bug.resolution != "" %]
|
||||
</center>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<center>
|
||||
[% bug.count %]
|
||||
</center>
|
||||
</td>
|
||||
|
||||
[% IF dobefore %]
|
||||
<td><center>[% bug.delta %]</center></td>
|
||||
[% END %]
|
||||
|
||||
<td>[% bug.component %]</td>
|
||||
<td><center>[% bug.bug_severity %]</center></td>
|
||||
<td><center>[% bug.op_sys %]</center></td>
|
||||
<td><center>[% bug.target_milestone %]</center></td>
|
||||
<td>[% bug.short_desc FILTER html %]</td>
|
||||
</tr>
|
||||
[% END %]
|
||||
|
||||
</table>
|
||||
[% PROCESS "reports/duplicates-table.html.tmpl" %]
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
|
Загрузка…
Ссылка в новой задаче