Commit 4fa178ae authored by Frédéric Buclin's avatar Frédéric Buclin

Bug 920681: Remove the cellspacing and cellpadding attributes from tables

r/a=justdave
parent 5a15633a
...@@ -27,7 +27,6 @@ $vars->{'keywords'} = Bugzilla::Keyword->get_all_with_bug_count(); ...@@ -27,7 +27,6 @@ $vars->{'keywords'} = Bugzilla::Keyword->get_all_with_bug_count();
if (!@{$vars->{keywords}}) { if (!@{$vars->{keywords}}) {
ThrowUserError("no_keywords"); ThrowUserError("no_keywords");
} }
$vars->{'caneditkeywords'} = $user->in_group("editkeywords");
print $cgi->header(); print $cgi->header();
$template->process("reports/keywords.html.tmpl", $vars) $template->process("reports/keywords.html.tmpl", $vars)
......
...@@ -6,14 +6,9 @@ ...@@ -6,14 +6,9 @@
* defined by the Mozilla Public License, v. 2.0. * defined by the Mozilla Public License, v. 2.0.
*/ */
.column_header {
background-color: #66f;
}
.warningmessages, .criticalmessages { .warningmessages, .criticalmessages {
background-color: white; background-color: white;
border-style: solid; border: 1px solid;
border-width: 1px;
padding: 1ex 1ex 1ex 4ex; padding: 1ex 1ex 1ex 4ex;
margin: 1ex; margin: 1ex;
} }
...@@ -43,20 +38,30 @@ p.areyoureallyreallysure { ...@@ -43,20 +38,30 @@ p.areyoureallyreallysure {
font-weight: bold; font-weight: bold;
} }
#admin_table { #admin_table, #flag_types_bugs, #flag_types_attachments {
border-collapse: collapse; border-collapse: collapse;
border: 1px solid black; border: 1px solid black;
} }
#admin_table th { #admin_table th, #flag_types_bugs th, #flag_types_attachments th {
white-space: normal !important; white-space: normal !important;
} }
#admin_table th, #admin_table td { #admin_table th, #admin_table td,
#flag_types_bugs th , #flag_types_bugs td,
#flag_types_attachments th, #flag_types_attachments td {
border: 1px solid black; border: 1px solid black;
padding: 0.3em; padding: 0.3em;
} }
table.no-border th, table.no-border td {
border: 0 !important;
}
table.no-border th {
text-align: left;
}
tr.disabled { tr.disabled {
background-color: lightgrey; background-color: lightgrey;
} }
...@@ -131,20 +136,8 @@ th.title { ...@@ -131,20 +136,8 @@ th.title {
vertical-align: middle; vertical-align: middle;
} }
#edit_custom_field tr { td.max-width {
vertical-align: top; width: 100%;
}
#edit_custom_field th {
text-align: right;
}
#edit_custom_field th.narrow_label {
white-space: normal;
}
#flag_types_bugs tr th, #flag_types_attachments tr th {
text-align: left;
} }
#flag_types_bugs .inactive, #flag_types_attachments .inactive { #flag_types_bugs .inactive, #flag_types_attachments .inactive {
...@@ -155,13 +148,27 @@ th.title { ...@@ -155,13 +148,27 @@ th.title {
display: block; display: block;
} }
table.whining_list { #flagtype_form div.inline {
white-space: nowrap;
}
#flagtype_form label, #grant_table label {
font-weight:bold;
}
table.whining_list, #group_settings_desc {
border: 1px solid black; border: 1px solid black;
border-collapse: collapse; border-collapse: collapse;
width: 100%; width: 100%;
} }
table.whining_list th, table.whining_list td { #group_settings_desc th, #group_settings_desc td {
border: 1px solid black;
padding: 0.3em;
}
table.whining_list th, table.whining_list td,
#admin_table_edit th, #admin_table_edit td {
padding: 0.3em; padding: 0.3em;
} }
...@@ -180,3 +187,28 @@ table.schedule_list th, table.search_list th { ...@@ -180,3 +187,28 @@ table.schedule_list th, table.search_list th {
text-align: center; text-align: center;
font-weight: bold !important; font-weight: bold !important;
} }
#settings #update {
margin-top: 2em;
}
#grant_table td, #grant_table th {
text-align: center;
padding: 0.5em;
}
#grant_table th {
padding: 2em 3em 0.5em 3em;
}
#grant_table tr:first-child th {
padding-top: 0.5em;
}
#mass-remove {
max-width: 50%;
}
#mass-remove legend {
white-space: nowrap;
}
...@@ -108,10 +108,7 @@ table.attachment_info td { ...@@ -108,10 +108,7 @@ table.attachment_info td {
padding-bottom: 0.4em; padding-bottom: 0.4em;
} }
#attachment_attributes label, #attachment_attributes label {
#attachment_attributes span.label,
#attachment_actions span.label
{
font-weight: bold; font-weight: bold;
} }
......
...@@ -63,7 +63,13 @@ ...@@ -63,7 +63,13 @@
/* Align columns in the "change multiple bugs" form to the right. */ /* Align columns in the "change multiple bugs" form to the right. */
table#form tr th { text-align: right; } table#form tr th { text-align: right; }
table.bz_buglist td, table.bz_buglist th { table.bz_buglist {
border-collapse: collapse;
width: 100%;
}
table.bz_buglist td, table.bz_buglist th {
padding: 0.4em;
} }
/* we use a first-child class and not the pseudo-class because IE /* we use a first-child class and not the pseudo-class because IE
...@@ -76,7 +82,7 @@ tr.bz_secure td.first-child, a.bz_secure { ...@@ -76,7 +82,7 @@ tr.bz_secure td.first-child, a.bz_secure {
} }
th.first-child, td.first-child, a.bz_secure { th.first-child, td.first-child, a.bz_secure {
padding-left: 20px; padding-left: 20px !important;
} }
tr.bz_secure_mode_implied td.first-child { tr.bz_secure_mode_implied td.first-child {
...@@ -115,6 +121,26 @@ td.bz_total { ...@@ -115,6 +121,26 @@ td.bz_total {
color: inherit; color: inherit;
} }
#groups_edit_multiple, #quips {
border: 1px solid black;
border-collapse: collapse;
}
#groups_edit_multiple th, #groups_edit_multiple td,
#quips th, #quips td {
border: 1px solid;
padding: 0.3em;
}
#groups_edit_multiple th, #quips th {
text-align: center;
white-space: normal !important;
}
#groups_edit_multiple th.narrow_column {
width: 8em;
}
/* The "filtering" table is specific to request.cgi. /* The "filtering" table is specific to request.cgi.
* Same for the "requests" class used for tables. */ * Same for the "requests" class used for tables. */
...@@ -126,6 +152,17 @@ td.bz_total { ...@@ -126,6 +152,17 @@ td.bz_total {
text-align: right; text-align: right;
} }
table.requests {
border: 1px solid black;
border-collapse: collapse;
width: 100%;
}
table.requests th, table.requests td {
border: 1px solid;
padding: 0.5em;
}
table.requests th { table.requests th {
text-align: left; text-align: left;
} }
...@@ -71,6 +71,10 @@ form#Create #possible_duplicates td { vertical-align: middle; } ...@@ -71,6 +71,10 @@ form#Create #possible_duplicates td { vertical-align: middle; }
height: 500px; height: 500px;
} }
#guided_form #description {
display: inline;
}
.good { .good {
color: #090; color: #090;
} }
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
color: #000; color: #000;
background: #fff url("global/body-back.gif") repeat-x; background: #fff url("global/body-back.gif") repeat-x;
} }
body, td, th, input { body, td, th, input, dt, #titles {
font-family: Verdana, sans-serif; font-family: Verdana, sans-serif;
font-size: small; font-size: small;
} }
...@@ -20,6 +20,11 @@ ...@@ -20,6 +20,11 @@
pre, code, kbd { pre, code, kbd {
font-size: medium; font-size: medium;
} }
#bugzilla-body {
clear: both;
}
/* global (end) */ /* global (end) */
/* header (begin) */ /* header (begin) */
...@@ -43,9 +48,14 @@ ...@@ -43,9 +48,14 @@
padding: 0.5em; padding: 0.5em;
} }
#common_links {
clear: both;
}
#lang_links_container { #lang_links_container {
float: right; float: right;
} }
#lang_links_container .links { #lang_links_container .links {
border: none; border: none;
padding: .5em; padding: .5em;
...@@ -90,10 +100,9 @@ ...@@ -90,10 +100,9 @@
color: #fff; color: #fff;
border-top-left-radius: 5px; border-top-left-radius: 5px;
border-top-right-radius: 5px; border-top-right-radius: 5px;
font-size: 110%;
margin: 0; margin: 0;
padding: 0.5em;
vertical-align: bottom; vertical-align: bottom;
display: table;
} }
#titles a { #titles a {
...@@ -107,20 +116,25 @@ ...@@ -107,20 +116,25 @@
#titles #title { #titles #title {
font-weight: bold; font-weight: bold;
padding: 0.5em;
white-space: nowrap; white-space: nowrap;
display: table-cell;
} }
#titles #subtitle { #titles #subtitle {
font-weight: normal; font-weight: normal;
width: 100%;
text-align: center; text-align: center;
} padding: 0.5em;
display: table-cell;
}
#titles #information { #titles #information {
font-weight: normal; font-weight: normal;
text-align: right; text-align: right;
font-size: 90%; font-size: 90%;
padding: 0.5em;
white-space: nowrap; white-space: nowrap;
display: table-cell;
} }
/* titles (end) */ /* titles (end) */
...@@ -177,6 +191,14 @@ ...@@ -177,6 +191,14 @@
/* link lists (end) */ /* link lists (end) */
/* tabs (begin) */ /* tabs (begin) */
table.tabs {
width: 100%;
}
.tabs th, .tabs td {
padding: 1em;
}
.tabs td { .tabs td {
background: #eee; background: #eee;
text-align: center; text-align: center;
...@@ -289,6 +311,12 @@ div#docslinks { ...@@ -289,6 +311,12 @@ div#docslinks {
width: 50em; width: 50em;
} }
.bz_comment_text span.quote {
color: #65379c;
/* Make quoted text not wrap. */
white-space: pre;
}
.bz_comment_user, .bz_comment_time, .bz_comment_number, .bz_comment_user, .bz_comment_time, .bz_comment_number,
.bz_private_checkbox, .bz_comment_actions .bz_private_checkbox, .bz_comment_actions
{ {
...@@ -342,23 +370,48 @@ div#docslinks { ...@@ -342,23 +370,48 @@ div#docslinks {
display: none !important; display: none !important;
} }
.bz_comment_text span.quote {
color: #65379c;
/* Make quoted text not wrap. */
white-space: pre;
}
table#flags th, table#flags th,
table#flags td { table#flags td {
vertical-align: middle; vertical-align: middle;
text-align: left; text-align: left;
} }
table#email_prefs th, #email_prefs, #saved_search_prefs, #shared_search_prefs,
table#shared_search_prefs th, #bug_activity {
table#saved_search_prefs th { border: 1px solid black;
border-collapse: collapse;
}
#email_prefs th,
#shared_search_prefs th,
#saved_search_prefs th {
text-align: center; text-align: center;
} }
#email_prefs th, #email_prefs td,
#shared_search_prefs th, #shared_search_prefs td,
#saved_search_prefs th, #saved_search_prefs td,
#bug_activity td {
border: 1px solid;
padding: 0.3em;
}
#bug_activity td {
vertical-align: top;
}
#user_prefs th, #user_prefs td {
padding: 0.5em;
}
.column_header {
background-color: #66f;
}
.column_header th {
text-align: center;
}
.flag_select { .flag_select {
min-width: 3em; min-width: 3em;
} }
...@@ -371,16 +424,25 @@ input.requestee { ...@@ -371,16 +424,25 @@ input.requestee {
font-size: x-large; font-size: x-large;
} }
#post_err_msg {
clear: both;
}
.warning { .warning {
color: red; color: red;
} }
.throw_error { .throw_error {
background-color: #ff0000; background-color: red;
color: black; color: black;
font-size: 120%; font-size: 120%;
margin: 1em; margin-bottom: 2em;
padding: 0.5em 1em; padding: 0.5em 1em;
float: left;
}
.label {
font-weight: bold;
} }
.throw_error a:visited { .throw_error a:visited {
...@@ -419,6 +481,10 @@ dl dl > dt { ...@@ -419,6 +481,10 @@ dl dl > dt {
border: 1px solid #333333; border: 1px solid #333333;
} }
#attachment_table th, #attachment_table td {
padding: 0.3em;
}
.bz_attach_extra_info, .bz_info { .bz_attach_extra_info, .bz_info {
font-size: smaller; font-size: smaller;
} }
...@@ -432,6 +498,16 @@ dl dl > dt { ...@@ -432,6 +498,16 @@ dl dl > dt {
padding-left: 1em; padding-left: 1em;
} }
#user_match_table {
border-collapse: collapse;
}
#user_match_table td {
vertical-align: top;
border-bottom: 1px solid black;
padding: 1em 0.5em;
}
div.user_match { div.user_match {
margin-bottom: 1em; margin-bottom: 1em;
} }
...@@ -610,3 +686,9 @@ tr.shared_search { ...@@ -610,3 +686,9 @@ tr.shared_search {
background-color: #fff7cd; background-color: #fff7cd;
color: #000; color: #000;
} }
.multi-columns {
columns: 3;
-moz-columns: 3;
-webkit-columns: 3;
}
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#menu { #menu {
width: 10em; width: 10em;
margin-top: 1em;
margin-right: 0.5em; margin-right: 0.5em;
border: solid thin; border: solid thin;
border-spacing: 0px; border-spacing: 0px;
...@@ -34,8 +33,13 @@ ...@@ -34,8 +33,13 @@
padding: 0.2em 0.5em; padding: 0.2em 0.5em;
} }
table td { div.table {
vertical-align: top; display: inline-table;
}
div.cell {
display: table-cell;
vertical-align: top;
} }
td.selected_section { td.selected_section {
......
...@@ -8,49 +8,17 @@ ...@@ -8,49 +8,17 @@
/* describecomponents.cgi */ /* describecomponents.cgi */
#components_header_table {
margin-bottom: 1em;
}
.product_container {
width: 65%;
}
.product_name {
font-weight: bold;
font-size: 150%;
margin: 0;
}
.product_desc { .product_desc {
/* This is padding instead of margin because it looks better /* This is padding instead of margin because it looks better
* with the scrollbar. */ * with the scrollbar. */
padding: 0 2em; padding: 0 2em;
font-style: italic; font-style: italic;
max-height: 5em; max-height: 8em;
overflow: auto; overflow: auto;
} }
.instructions { .component_table th {
font-weight: bold;
font-size: 105%;
padding-right: 1em; padding-right: 1em;
}
.components_header {
margin: 0;
font-size: 140%;
font-weight: bold;
}
.component_table {
margin-top: -1em;
margin-left: 2em;
}
.component_table thead th {
padding-right: 1em;
vertical-align: bottom;
text-align: left; text-align: left;
} }
...@@ -62,7 +30,7 @@ ...@@ -62,7 +30,7 @@
.component_table td.component_qa_contact .component_table td.component_qa_contact
{ {
border: none; border: none;
padding-top: .5em; padding-top: 0.5em;
} }
.component_name { .component_name {
...@@ -74,7 +42,7 @@ ...@@ -74,7 +42,7 @@
} }
.component_description { .component_description {
padding-bottom: .5em; padding-bottom: 0.5em;
color: #333; color: #333;
} }
...@@ -98,6 +66,17 @@ ...@@ -98,6 +66,17 @@
background-color: #cfffdf; /* light green */ background-color: #cfffdf; /* light green */
} }
#tabular_report {
border: 1px dotted black;
border-collapse: collapse;
text-align: center;
}
#tabular_report th, #tabular_report td {
border: 1px dotted;
padding: 0.2em;
}
#graphical_report { #graphical_report {
max-width: 100%; max-width: 100%;
height: auto; height: auto;
...@@ -133,3 +112,4 @@ ...@@ -133,3 +112,4 @@
#edit_charts input#action-sum, #edit_charts input#action-remove { #edit_charts input#action-sum, #edit_charts input#action-remove {
width: 7em; width: 7em;
} }
...@@ -36,6 +36,16 @@ td.subtotal { ...@@ -36,6 +36,16 @@ td.subtotal {
.number .owner_header, .owner .bug_header { background: #ffffff } .number .owner_header, .owner .bug_header { background: #ffffff }
.number .owner_header2, .owner .bug_header2 { background: #EFEFEF } .number .owner_header2, .owner .bug_header2 { background: #EFEFEF }
table.owner, table.number, table.zeroitems {
width: 90%;
border-collapse: collapse;
}
.owner th, .owner td, .number th, .number td,
.zeroitems th, .zeroitems td {
padding: 0.2em;
}
.warning_swapped_data { .warning_swapped_data {
border: 1px solid red; border: 1px solid red;
margin: 1em; margin: 1em;
......
...@@ -172,7 +172,7 @@ document.write('<input type="button" value="Disable All Mail" onclick="SetCheckb ...@@ -172,7 +172,7 @@ document.write('<input type="button" value="Disable All Mail" onclick="SetCheckb
[% num_columns = relationships.size %] [% num_columns = relationships.size %]
<table class="bz_emailprefs" id="email_prefs" border="1"> <table id="email_prefs">
<tr> <tr>
<td colspan="[% num_columns FILTER html %]" align="center" width="50%"> <td colspan="[% num_columns FILTER html %]" align="center" width="50%">
<b>When my relationship to this [% terms.bug %] is:</b> <b>When my relationship to this [% terms.bug %] is:</b>
......
...@@ -31,57 +31,38 @@ ...@@ -31,57 +31,38 @@
<p>Your saved searches are as follows:</p> <p>Your saved searches are as follows:</p>
<blockquote> <blockquote>
<table id="saved_search_prefs" border="1" cellpadding="3"> <table id="saved_search_prefs">
<tr> <tr class="column_header">
<th> <th>Search</th>
Search <th>Run</th>
</th> <th>Edit</th>
<th> <th>Forget</th>
Run <th>Show in Footer</th>
</th>
<th>
Edit
</th>
<th>
Forget
</th>
<th>
Show in
Footer
</th>
[% may_share = user.in_group(Param('querysharegroup')) && queryshare_groups.size %] [% may_share = user.in_group(Param('querysharegroup')) && queryshare_groups.size %]
[% IF may_share %] [% IF may_share %]
<th> <th>Share With a Group</th>
Share With a Group
</th>
[% END %] [% END %]
[% Hook.process('saved-header') %] [% Hook.process('saved-header') %]
</tr> </tr>
<tr> <tr>
<td>My [% terms.Bugs %]</td> <td>My [% terms.Bugs %]</td>
<td> <td>
[% filtered_username = user.login FILTER uri %] [% filtered_username = user.login FILTER uri %]
<a href="[% Param('mybugstemplate').replace('%userid%', filtered_username) %]">Run</a> <a href="[% Param('mybugstemplate').replace('%userid%', filtered_username) %]">Run</a>
</td> </td>
<td> <td></td>
&nbsp; <td></td>
</td>
<td>
&nbsp;
</td>
<td align="center"> <td align="center">
<input type="checkbox" <input type="checkbox" name="showmybugslink" value="1"
name="showmybugslink" [%+ 'checked="checked"' IF user.showmybugslink %]>
value="1"
[% " checked" IF user.showmybugslink %]>
</td> </td>
[% IF may_share %] [% IF may_share %]
<td> <td>&mdash;</td>
&mdash;
</td>
[% END %] [% END %]
[% Hook.process('saved-row') %] [% Hook.process('saved-row') %]
</tr> </tr>
[% FOREACH q = user.queries %] [% FOREACH q = user.queries %]
<tr [% 'class="shared_search"' IF q.shared_with_group.id %]> <tr [% 'class="shared_search"' IF q.shared_with_group.id %]>
<td>[% q.name FILTER html %]</td> <td>[% q.name FILTER html %]</td>
...@@ -102,7 +83,7 @@ ...@@ -102,7 +83,7 @@
[% issue_hash_token([q.id, q.name]) FILTER uri %]">Forget</a> [% issue_hash_token([q.id, q.name]) FILTER uri %]">Forget</a>
[% END %] [% END %]
</td> </td>
<td align="center"> <td class="center">
<input type="checkbox" <input type="checkbox"
name="link_in_footer_[% q.id FILTER html %]" name="link_in_footer_[% q.id FILTER html %]"
value="1" value="1"
...@@ -149,28 +130,16 @@ ...@@ -149,28 +130,16 @@
[% IF user.queries_available.size %] [% IF user.queries_available.size %]
<p>You may use these searches saved and shared by others:</p> <p>You may use these searches saved and shared by others:</p>
<table id="shared_search_prefs" border="1" cellpadding="3"> <table id="shared_search_prefs">
<tr> <tr class="column_header">
<th> <th>Search</th>
Search <th>Shared By</th>
</th> <th>Shared To</th>
<th> <th>Run</th>
Shared By <th>Edit</th>
</th> <th>Show in Footer</th>
<th>
Shared To
</th>
<th>
Run
</th>
<th>
Edit
</th>
<th>
Show in
Footer
</th>
</tr> </tr>
[% FOREACH q = user.queries_available %] [% FOREACH q = user.queries_available %]
<tr> <tr>
<td>[% q.name FILTER html %]</td> <td>[% q.name FILTER html %]</td>
...@@ -185,7 +154,7 @@ ...@@ -185,7 +154,7 @@
<a href="query.cgi?[% q.edit_link FILTER html %]&amp;known_name= <a href="query.cgi?[% q.edit_link FILTER html %]&amp;known_name=
[% q.name FILTER uri %]">Edit</a> [% q.name FILTER uri %]">Edit</a>
</td> </td>
<td align="center"> <td class="center">
<input type="checkbox" <input type="checkbox"
name="link_in_footer_[% q.id FILTER html %]" name="link_in_footer_[% q.id FILTER html %]"
value="1" value="1"
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
</p> </p>
[% END %] [% END %]
<table border="0" cellpadding="8"> <table id="user_prefs">
[% FOREACH name = setting_names %] [% FOREACH name = setting_names %]
[% default_name = name _ '-isdefault' %] [% default_name = name _ '-isdefault' %]
[% default_val = settings.${name}.default_value %] [% default_val = settings.${name}.default_value %]
......
...@@ -8,10 +8,11 @@ ...@@ -8,10 +8,11 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Add new classification" title = "Add new classification"
style_urls = ['skins/standard/admin.css']
%] %]
<form method=post action="editclassifications.cgi"> <form method=post action="editclassifications.cgi">
<table border=0 cellpadding=4 cellspacing=0> <table id="admin_table_edit">
[% PROCESS "admin/classifications/edit-common.html.tmpl" %] [% PROCESS "admin/classifications/edit-common.html.tmpl" %]
......
...@@ -11,30 +11,29 @@ ...@@ -11,30 +11,29 @@
style_urls = ['skins/standard/admin.css'] style_urls = ['skins/standard/admin.css']
%] %]
<table border=1 cellpadding=4 cellspacing=0> <table id="admin_table">
<tr class="column_header"> <tr class="column_header">
<th valign="top" class="left">Part</th> <th>Field</th>
<th valign="top" class="left">Value</th> <th>Value</th>
</tr>
</tr><tr> <tr>
<td valign="top">Classification:</td> <td>Classification</td>
<td valign="top">[% classification.name FILTER html %]</td> <td>[% classification.name FILTER html %]</td>
</tr>
</tr><tr> <tr>
<td valign="top">Description:</td> <td>Description</td>
<td valign="top"> <td>
[% IF classification.description %] [% IF classification.description %]
[% classification.description FILTER html_light %] [% classification.description FILTER html_light %]
[% ELSE %] [% ELSE %]
<span class="warning">description missing</span> <span class="warning">description missing</span>
[% END %] [% END %]
</td> </td>
</tr>
</tr><tr> <tr>
<td valign="top">Sortkey:</td> <td>Sortkey</td>
<td valign="top">[% classification.sortkey FILTER html %]</td> <td>[% classification.sortkey FILTER html %]</td>
</tr>
</tr>
</table> </table>
<h2>Confirmation</h2> <h2>Confirmation</h2>
......
...@@ -8,14 +8,15 @@ ...@@ -8,14 +8,15 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Edit classification" title = "Edit classification"
style_urls = ['skins/standard/admin.css']
%] %]
<form method=post action="editclassifications.cgi"> <form method=post action="editclassifications.cgi">
<table border=0 cellpadding=4 cellspacing=0> <table id="admin_table_edit">
[% PROCESS "admin/classifications/edit-common.html.tmpl" %] [% PROCESS "admin/classifications/edit-common.html.tmpl" %]
<tr valign=top> <tr>
<th> <th>
<a href="editproducts.cgi?classification=[% classification.name FILTER uri %]"> <a href="editproducts.cgi?classification=[% classification.name FILTER uri %]">
Edit Products</a>: Edit Products</a>:
...@@ -25,8 +26,8 @@ ...@@ -25,8 +26,8 @@
<table> <table>
[% FOREACH product = classification.products %] [% FOREACH product = classification.products %]
<tr> <tr>
<th valign=top>[% product.name FILTER html %]</th> <th>[% product.name FILTER html %]</th>
<td valign=top>[% product.description FILTER html_light %]</td> <td>[% product.description FILTER html_light %]</td>
</tr> </tr>
[% END %] [% END %]
</table> </table>
......
...@@ -8,38 +8,39 @@ ...@@ -8,38 +8,39 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Reclassify products" title = "Reclassify products"
style_urls = ['skins/standard/admin.css']
%] %]
<form method=post action="editclassifications.cgi"> <form method=post action="editclassifications.cgi">
<table border=0 cellpadding=4 cellspacing=0> <table id="admin_table_edit">
<tr> <tr>
<th>Classification:</th> <th>Classification:</th>
<td valign="top" colspan=3>[% classification.name FILTER html %]</td> <td colspan=3>[% classification.name FILTER html %]</td>
</tr>
</tr><tr> <tr>
<th>Description:</th> <th>Description:</th>
<td valign="top" colspan=3> <td colspan=3>
[% IF classification.description %] [% IF classification.description %]
[% classification.description FILTER html_light %] [% classification.description FILTER html_light %]
[% ELSE %] [% ELSE %]
<span class="warning">description missing</span> <span class="warning">description missing</span>
[% END %] [% END %]
</td> </td>
</tr>
</tr><tr> <tr>
<th>Sortkey:</th> <th>Sortkey:</th>
<td valign="top" colspan=3>[% classification.sortkey FILTER html %]</td> <td colspan=3>[% classification.sortkey FILTER html %]</td>
</tr>
</tr><tr> <tr>
<th>Products:</th> <th>Products:</th>
<td valign="top">Other Classifications</td> <td>Other Classifications</td>
<td></td> <td></td>
<td valign="top">This Classification</td> <td>This Classification</td>
</tr>
</tr><tr> <tr>
<td></td> <td></td>
<td valign="top"> <td>
<select name="prodlist" id="prodlist" multiple="multiple" size="20"> <select name="prodlist" id="prodlist" multiple="multiple" size="20">
[% FOREACH class = classifications %] [% FOREACH class = classifications %]
[% IF class.id != classification.id %] [% IF class.id != classification.id %]
[% FOREACH product = class.products %] [% FOREACH product = class.products %]
...@@ -49,21 +50,23 @@ ...@@ -49,21 +50,23 @@
[% END %] [% END %]
[% END %] [% END %]
[% END %] [% END %]
</select></td> </select>
</td>
<td align="center"> <td>
<input type=submit value=" Add &gt;&gt; " name="add_products"><br><br> <input type=submit value=" Add &gt;&gt; " name="add_products"><br><br>
<input type=submit value="&lt;&lt; Remove" name="remove_products"> <input type=submit value="&lt;&lt; Remove" name="remove_products">
</td> </td>
<td valign="middle" rowspan=2> <td rowspan=2 class="max-width">
<select name="myprodlist" id="myprodlist" multiple="multiple" size="20"> <select name="myprodlist" id="myprodlist" multiple="multiple" size="20">
[% FOREACH product = classification.products %] [% FOREACH product = classification.products %]
<option value="[% product.name FILTER html %]"> <option value="[% product.name FILTER html %]">
[% product.name FILTER html %] [% product.name FILTER html %]
</option> </option>
[% END %] [% END %]
</select></td> </select>
</td>
</tr> </tr>
</table> </table>
......
...@@ -11,9 +11,9 @@ ...@@ -11,9 +11,9 @@
style_urls = ['skins/standard/admin.css'] style_urls = ['skins/standard/admin.css']
%] %]
<table border=1 cellpadding=4 cellspacing=0> <table id="admin_table">
<tr class="column_header"> <tr class="column_header">
<th>Edit Classification ...</th> <th>Edit Classification...</th>
<th>Description</th> <th>Description</th>
<th>Sortkey</th> <th>Sortkey</th>
<th>Products</th> <th>Products</th>
...@@ -22,26 +22,35 @@ ...@@ -22,26 +22,35 @@
[% FOREACH cl = classifications %] [% FOREACH cl = classifications %]
<tr> <tr>
<td valign="top"><a href="editclassifications.cgi?action=edit&amp;classification=[% cl.name FILTER uri %]"><b>[% cl.name FILTER html %]</b></a></td> <td>
<td valign="top"> <a href="editclassifications.cgi?action=edit&amp;classification=[% cl.name FILTER uri %]">
<b>[% cl.name FILTER html %]</b>
</a>
</td>
<td>
[% IF cl.description %] [% IF cl.description %]
[% cl.description FILTER html_light %] [% cl.description FILTER html_light %]
[% ELSE %] [% ELSE %]
<span class="warning">none</span> <span class="warning">none</span>
[% END %] [% END %]
</td> </td>
<td valign="top">[% cl.sortkey FILTER html %]</td> <td>[% cl.sortkey FILTER html %]</td>
[% IF (cl.id == 1) %] [% IF (cl.id == 1) %]
<td valign="top">[% cl.product_count FILTER html %]</td> <td>[% cl.product_count FILTER html %]</td>
[% ELSE %] [% ELSE %]
<td valign="top"><a href="editclassifications.cgi?action=reclassify&amp;classification=[% cl.name FILTER uri %]">reclassify ([% cl.product_count FILTER html %])</a></td> <td>
<a href="editclassifications.cgi?action=reclassify&amp;classification=[% cl.name FILTER uri %]">
reclassify&nbsp;([% cl.product_count FILTER html %])</a>
</td>
[% END %] [% END %]
[%# don't allow user to delete the default id. %] [%# don't allow user to delete the default id. %]
[% IF (cl.id == 1) %] [% IF (cl.id == 1) %]
<td valign="top">&nbsp;</td> <td></td>
[% ELSE %] [% ELSE %]
<td valign="top"><a href="editclassifications.cgi?action=del&amp;classification=[% cl.name FILTER uri %]">delete</a></td> <td>
<a href="editclassifications.cgi?action=del&amp;classification=[% cl.name FILTER uri %]">delete</a>
</td>
[% END %] [% END %]
</tr> </tr>
[% END %] [% END %]
......
...@@ -22,101 +22,96 @@ from '[% product.name FILTER html %]' product ...@@ -22,101 +22,96 @@ from '[% product.name FILTER html %]' product
style_urls = ['skins/standard/admin.css'] style_urls = ['skins/standard/admin.css']
%] %]
<table border="1" cellpadding="4" cellspacing="0"> <table id="admin_table">
<tr class="column_header"> <tr class="column_header">
<th valign="top" class="left">Field</th> <th>Field</th>
<th valign="top" class="left">Value</th> <th>Value</th>
</tr> </tr>
<tr> <tr>
<td valign="top">Component:</td> <td>Component</td>
<td valign="top">[% comp.name FILTER html %]</td> <td>[% comp.name FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Component Description:</td> <td>Component Description</td>
<td valign="top">[% comp.description FILTER html_light %]</td> <td>[% comp.description FILTER html_light %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Default assignee:</td> <td>Default assignee</td>
<td valign="top">[% comp.default_assignee.login FILTER html %]</td> <td>[% comp.default_assignee.login FILTER html %]</td>
</tr>
[% IF Param('useqacontact') %]
</tr> [% IF Param('useqacontact') %]
<tr> <tr>
<td valign="top">Default QA contact:</td> <td>Default QA contact</td>
<td valign="top">[% comp.default_qa_contact.login FILTER html %]</td> <td>[% comp.default_qa_contact.login FILTER html %]</td>
[% END %] </tr>
[% END %]
</tr>
<tr>
<td valign="top">Component of Product:</td>
<td valign="top">[% product.name FILTER html %]</td>
[% IF product.description %]
</tr>
<tr>
<td valign="top">Product Description:</td>
<td valign="top">[% product.description FILTER html_light %]</td>
[% END %]
[% IF Param('usetargetmilestone') %] <tr>
</tr> <td>Component of Product</td>
<tr> <td>[% product.name FILTER html %]</td>
<td valign="top">Product Milestone URL:</td> </tr>
<td valign="top">
<a href="[% product.milestone_url FILTER html %]">
[% product.milestone_url FILTER html %]
</a>
</td>
[% END %]
</tr> [% IF product.description %]
<tr> <tr>
<TD VALIGN="top">Open for [% terms.bugs %]:</TD> <td>Product Description</td>
<TD VALIGN="top">[% IF product.is_active && comp.isactive %]Yes[% ELSE %]No[% END %]</td> <td>[% product.description FILTER html_light %]</td>
</tr> </tr>
<tr> [% END %]
<td valign="top">[% terms.Bugs %]:</td>
<td valign="top"> [% IF Param('usetargetmilestone') %]
[% IF comp.bug_count %] <tr>
<a title="List of [% terms.bugs %] for component '[% comp.name FILTER html %]'" <td>Product Milestone URL</td>
href="buglist.cgi?component=[% comp.name FILTER uri %]&amp;product= <td>
[%- product.name FILTER uri %]">[% comp.bug_count %]</a> <a href="[% product.milestone_url FILTER html %]">
[% ELSE %] [% product.milestone_url FILTER html %]</a>
None </td>
[% END %] </tr>
</td> [% END %]
</tr>
<tr>
<td>Open for [% terms.bugs %]</td>
<td>[% IF product.is_active && comp.isactive %]Yes[% ELSE %]No[% END %]</td>
</tr>
<tr>
<td>[% terms.Bugs %]</td>
<td>
[% IF comp.bug_count %]
<a title="List of [% terms.bugs %] for component '[% comp.name FILTER html %]'"
href="buglist.cgi?component=[% comp.name FILTER uri %]&amp;product=
[%- product.name FILTER uri %]">[% comp.bug_count %]</a>
[% ELSE %]
None
[% END %]
</td>
</tr>
</table> </table>
<h2>Confirmation</h2> <h2>Confirmation</h2>
[% IF comp.bug_count %] [% IF comp.bug_count %]
[% IF !Param("allowbugdeletion") %] [% IF !Param("allowbugdeletion") %]
<p class="confirmation"> <p class="confirmation">
Sorry, there Sorry, there
[% IF comp.bug_count > 1 %]
[% IF comp.bug_count > 1 %] are [% comp.bug_count %] [%+ terms.bugs %]
are [% comp.bug_count %] [%+ terms.bugs %] [% ELSE %]
[% ELSE %] is 1 [% terms.bug %]
is [% comp.bug_count %] [%+ terms.bug %] [% END %]
[% END %] outstanding for this component. You must reassign
outstanding for this component. You must reassign
[% IF comp.bug_count > 1 %]
those [% terms.bugs %]
[% ELSE %]
that [% terms.bug %]
[% END %]
to another component before you can delete this one. [% IF comp.bug_count > 1 %]
</p> those [% terms.bugs %]
[% ELSE %]
that [% terms.bug %]
[% END %]
to another component before you can delete this one.
</p>
[% ELSE %] [% ELSE %]
<p class="confirmation">
<table class="confirmation"><tr><td> There
[% IF comp.bug_count > 1 %]
There [% IF comp.bug_count > 1 %]
are [% comp.bug_count %] [%+ terms.bugs %] are [% comp.bug_count %] [%+ terms.bugs %]
[% ELSE %] [% ELSE %]
is 1 [% terms.bug %] is 1 [% terms.bug %]
...@@ -124,8 +119,7 @@ from '[% product.name FILTER html %]' product ...@@ -124,8 +119,7 @@ from '[% product.name FILTER html %]' product
entered for this component! When you delete this entered for this component! When you delete this
component, <b>ALL</b> stored [% terms.bugs %] and component, <b>ALL</b> stored [% terms.bugs %] and
their history will be deleted too. their history will be deleted too.
</td></tr></table> </p>
[% END %] [% END %]
[% END %] [% END %]
......
...@@ -10,21 +10,22 @@ ...@@ -10,21 +10,22 @@
# product: object; Bugzilla::Product object representing the product to # product: object; Bugzilla::Product object representing the product to
# which the component belongs. # which the component belongs.
#%] #%]
[% title = BLOCK %]Add component to the [% product.name FILTER html %] product[% END %] [% title = BLOCK %]Add component to the [% product.name FILTER html %] product[% END %]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title
style_urls = ['skins/standard/admin.css']
yui = [ 'autocomplete' ] yui = [ 'autocomplete' ]
javascript_urls = [ "js/field.js" ] javascript_urls = [ "js/field.js" ]
title = title
%] %]
<form method="post" action="editcomponents.cgi"> <form method="post" action="editcomponents.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
[% PROCESS "admin/components/edit-common.html.tmpl" %] [% PROCESS "admin/components/edit-common.html.tmpl" %]
</table> </table>
<hr>
<input type="submit" id="create" value="Add"> <input type="submit" id="create" value="Add">
<input type="hidden" name="action" value="new"> <input type="hidden" name="action" value="new">
<input type="hidden" name='product' value="[% product.name FILTER html %]"> <input type="hidden" name='product' value="[% product.name FILTER html %]">
......
...@@ -15,12 +15,12 @@ ...@@ -15,12 +15,12 @@
[% DEFAULT desc_name = "description" %] [% DEFAULT desc_name = "description" %]
<tr> <tr>
<th class="field_label"><label for="component">Component:</label></th> <th><label for="component">Component:</label></th>
<td><input size="64" maxlength="64" name="component" id="component" <td><input size="64" maxlength="64" name="component" id="component"
value="[%- comp.name FILTER html %]"></td> value="[%- comp.name FILTER html %]"></td>
</tr> </tr>
<tr> <tr>
<th class="field_label"><label for="[% desc_name FILTER html %]">Component Description:</label></th> <th><label for="[% desc_name FILTER html %]">Component Description:</label></th>
<td> <td>
[% INCLUDE global/textarea.html.tmpl [% INCLUDE global/textarea.html.tmpl
name = desc_name name = desc_name
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<th class="field_label"><label for="initialowner">Default Assignee:</label></th> <th><label for="initialowner">Default Assignee:</label></th>
<td> <td>
[% INCLUDE global/userselect.html.tmpl [% INCLUDE global/userselect.html.tmpl
name => "initialowner" name => "initialowner"
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
</tr> </tr>
[% IF Param('useqacontact') %] [% IF Param('useqacontact') %]
<tr> <tr>
<th class="field_label"><label for="initialqacontact">Default QA contact:</label></th> <th><label for="initialqacontact">Default QA contact:</label></th>
<td> <td>
[% INCLUDE global/userselect.html.tmpl [% INCLUDE global/userselect.html.tmpl
name => "initialqacontact" name => "initialqacontact"
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
</tr> </tr>
[% END %] [% END %]
<tr> <tr>
<th class="field_label"><label for="initialcc">Default CC List:</label></th> <th><label for="initialcc">Default CC List:</label></th>
<td> <td>
[% INCLUDE global/userselect.html.tmpl [% INCLUDE global/userselect.html.tmpl
name => "initialcc" name => "initialcc"
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
%] %]
<br> <br>
[% IF !Param("usemenuforusers") %] [% IF !Param("usemenuforusers") %]
<em>Enter user names for the CC list as a comma-separated list.</em> <span class="bz_info">Enter user names for the CC list as a comma-separated list.</span>
[% END %] [% END %]
</td> </td>
</tr> </tr>
......
...@@ -18,45 +18,44 @@ ...@@ -18,45 +18,44 @@
[% END %] [% END %]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title title = title
style_urls = ['skins/standard/admin.css']
yui = [ 'autocomplete' ] yui = [ 'autocomplete' ]
javascript_urls = [ "js/field.js" ] javascript_urls = [ "js/field.js" ]
%] %]
<form method="post" action="editcomponents.cgi"> <form method="post" action="editcomponents.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
[% PROCESS "admin/components/edit-common.html.tmpl" %] [% PROCESS "admin/components/edit-common.html.tmpl" %]
<tr> <tr>
<th class="field_label"><label for="isactive">Enabled For [% terms.Bugs %]:</label></th> <th><label for="isactive">Enabled For [% terms.Bugs %]:</label></th>
<td><input id="isactive" name="isactive" type="checkbox" value="1" <td><input id="isactive" name="isactive" type="checkbox" value="1"
[% 'checked="checked"' IF comp.isactive %]></td> [% 'checked="checked"' IF comp.isactive %]></td>
</tr> </tr>
<tr> <tr>
<th class="field_label">[% terms.Bugs %]:</th> <th>[% terms.Bugs %]:</th>
<td> <td>
[% IF comp.bug_count > 0 %] [% IF comp.bug_count > 0 %]
<a title="[% terms.Bugs %] in component '[% comp.name FILTER html %]'" <a title="[% terms.Bugs %] in component '[% comp.name FILTER html %]'"
href="buglist.cgi?component= href="buglist.cgi?component=
[%- comp.name FILTER uri %]&amp;product= [%- comp.name FILTER uri %]&amp;product=
[%- product.name FILTER uri %]">[% comp.bug_count %]</a> [%- product.name FILTER uri %]">[% comp.bug_count %]</a>
[% ELSE %] [% ELSE %]
None None
[% END %] [% END %]
</td> </td>
</tr> </tr>
</table> </table>
<input type="hidden" name="action" value="update"> <input type="hidden" name="action" value="update">
<input type="hidden" name="componentold" value="[% comp.name FILTER html %]"> <input type="hidden" name="componentold" value="[% comp.name FILTER html %]">
<input type="hidden" name="product" value="[% product.name FILTER html %]"> <input type="hidden" name="product" value="[% product.name FILTER html %]">
<input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]">
<input type="submit" value="Save Changes" id="update"> or <a <input type="submit" value="Save Changes" id="update"> or
href="editcomponents.cgi?action=del&amp;product= <a href="editcomponents.cgi?action=del&amp;product=
[%- product.name FILTER uri %]&amp;component= [%- product.name FILTER uri %]&amp;component=
[%- comp.name FILTER uri %]">Delete</a> this component. [%- comp.name FILTER uri %]">Delete</a> this component.
</form> </form>
[% PROCESS admin/components/footer.html.tmpl [% PROCESS admin/components/footer.html.tmpl
......
...@@ -15,8 +15,9 @@ ...@@ -15,8 +15,9 @@
# if he declines submission. # if he declines submission.
#%] #%]
[% PROCESS global/header.html.tmpl title = "Suspicious Action" [% PROCESS global/header.html.tmpl
style_urls = ['skins/standard/global.css'] %] title = "Suspicious Action"
%]
[% IF abuser %] [% IF abuser %]
<div class="throw_error"> <div class="throw_error">
...@@ -27,37 +28,27 @@ ...@@ -27,37 +28,27 @@
is incorrect, meaning that it looks like you didn't come from the right page. is incorrect, meaning that it looks like you didn't come from the right page.
The following token has been used :</p> The following token has been used :</p>
<table border="0" cellpadding="5" cellspacing="0"> [% IF token_action != expected_action %]
[% IF token_action != expected_action %] <p>
<tr> <span class="label">Action&nbsp;stored:</span>
<th>Action&nbsp;stored:</th> [%+ token_action FILTER html %]
<td>[% token_action FILTER html %]</td> <br>
</tr> This action doesn't match the one expected ([% expected_action FILTER html %]).
<tr> </p>
<th>&nbsp;</th> [% END %]
<td>
This action doesn't match the one expected ([% expected_action FILTER html %]).
</td>
</tr>
[% END %]
[% IF abuser != user.identity %] [% IF abuser != user.identity %]
<tr> <p>
<th>Generated&nbsp;by:</th> <span class="label">Generated&nbsp;by:</span>
<td>[% abuser FILTER html %]</td> [%+ abuser FILTER html %]
</tr> <br>
<tr> This token has not been generated by you. It is possible that someone
<th>&nbsp;</th> tried to trick you!
<td> </p>
This token has not been generated by you. It is possible that someone [% END %]
tried to trick you!
</td>
</tr>
[% END %]
</table>
<p>Please report this problem to [%+ Param("maintainer") FILTER html %].</p>
</div> </div>
<p>Please report this problem to [% Param("maintainer") FILTER html %].</p>
[% ELSE %] [% ELSE %]
<div class="throw_error"> <div class="throw_error">
It looks like you didn't come from the right page (you have no valid token for It looks like you didn't come from the right page (you have no valid token for
......
...@@ -23,23 +23,23 @@ ...@@ -23,23 +23,23 @@
doc_section = "custom-fields.html#delete-custom-fields" doc_section = "custom-fields.html#delete-custom-fields"
%] %]
<table border="1" cellpadding="4" cellspacing="0"> <table id="admin_table">
<tr class="column_header"> <tr class="column_header">
<th valign="top" class="left">Field</th> <th>Field</th>
<th valign="top" class="left">Value</th> <th>Value</th>
</tr> </tr>
<tr> <tr>
<td valign="top">Custom Field:</td> <td>Custom Field</td>
<td valign="top">[% field.name FILTER html %]</td> <td>[% field.name FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Description:</td> <td>Description</td>
<td valign="top">[% field.description FILTER html %]</td> <td>[% field.description FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Type:</td> <td>Type</td>
<td valign="top">[% field_types.${field.type} FILTER html %]</td> <td>[% field_types.${field.type} FILTER html %]</td>
</tr> </tr>
</table> </table>
<h2>Confirmation</h2> <h2>Confirmation</h2>
......
...@@ -12,9 +12,9 @@ ...@@ -12,9 +12,9 @@
[% PROCESS "global/field-descs.none.tmpl" %] [% PROCESS "global/field-descs.none.tmpl" %]
<table border="0" cellspacing="0" cellpadding="5" id="edit_custom_field"> <table id="admin_table_edit">
<tr> <tr>
<th class="narrow_label"><label for="name">Name:</label></th> <th><label for="name">Name:</label></th>
<td> <td>
[% IF field %] [% IF field %]
[% field.name FILTER html %] [% field.name FILTER html %]
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
</tr> </tr>
<tr> <tr>
<th class="narrow_label"><label for="desc">Description:</label></th> <th><label for="desc">Description:</label></th>
<td> <td>
<input type="text" id="desc" name="desc" size="40" <input type="text" id="desc" name="desc" size="40"
value="[% field.description FILTER html %]"> value="[% field.description FILTER html %]">
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</tr> </tr>
<tr> <tr>
<th class="narrow_label"><label for="type">Type:</label></th> <th><label for="type">Type:</label></th>
<td> <td>
[% IF field %] [% IF field %]
[% field_types.${field.type} FILTER html %] [% field_types.${field.type} FILTER html %]
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
</tr> </tr>
<tr> <tr>
<th class="narrow_label"><label for="sortkey">Sortkey:</label></th> <th><label for="sortkey">Sortkey:</label></th>
<td> <td>
<input type="text" id="sortkey" name="sortkey" size="6" maxlength="6" <input type="text" id="sortkey" name="sortkey" size="6" maxlength="6"
value="[% field.sortkey FILTER html %]"> value="[% field.sortkey FILTER html %]">
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
</tr> </tr>
<tr> <tr>
<th class="narrow_label">Long Description:</th> <th>Long Description:</th>
<td> <td>
[% INCLUDE global/textarea.html.tmpl [% INCLUDE global/textarea.html.tmpl
name = 'long_desc' name = 'long_desc'
...@@ -147,7 +147,7 @@ ...@@ -147,7 +147,7 @@
<a href="editvalues.cgi?field=[% field.name FILTER uri %]">Edit legal values for this field</a>. <a href="editvalues.cgi?field=[% field.name FILTER uri %]">Edit legal values for this field</a>.
</td> </td>
[% ELSE %] [% ELSE %]
<th class="narrow_label"> <th>
<label for="reverse_desc">Reverse Relationship Description:</label> <label for="reverse_desc">Reverse Relationship Description:</label>
</th> </th>
<td> <td>
...@@ -164,7 +164,7 @@ ...@@ -164,7 +164,7 @@
[% END %] [% END %]
[% IF !field || field.is_select %] [% IF !field || field.is_select %]
<th class="narrow_label"> <th>
<label for="value_field_id"> <label for="value_field_id">
Field that controls the values<br> Field that controls the values<br>
that appear in this field: that appear in this field:
......
...@@ -22,34 +22,34 @@ ...@@ -22,34 +22,34 @@
style_urls = ['skins/standard/admin.css'] style_urls = ['skins/standard/admin.css']
%] %]
<table border="1" cellpadding="4" cellspacing="0"> <table id="admin_table">
<tr class="column_header"> <tr class="column_header">
<th valign="top" class="left">Field</th> <th>Field</th>
<th valign="top" class="left">Value</th> <th>Value</th>
</tr> </tr>
<tr> <tr>
<td valign="top">Field Name:</td> <td>Field Name</td>
<td valign="top">[% field.description FILTER html %]</td> <td>[% field.description FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Field Value:</td> <td>Field Value</td>
<td valign="top">[% value.name FILTER html %]</td> <td>[% value.name FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">[% terms.Bugs %]:</td> <td>[% terms.Bugs %]</td>
<td valign="top"> <td>
[% IF value.bug_count %] [% IF value.bug_count %]
<a title="List of [% terms.bugs %] where ' <a title="List of [% terms.bugs %] where '
[%- field.description FILTER html %]' is ' [%- field.description FILTER html %]' is '
[%- value.name FILTER html %]'" [%- value.name FILTER html %]'"
href="buglist.cgi?[% field.name FILTER uri %]= href="buglist.cgi?[% field.name FILTER uri %]=
[%- value.name FILTER uri %]"> [%- value.name FILTER uri %]">
[%- value.bug_count FILTER html %]</a> [%- value.bug_count FILTER html %]</a>
[% ELSE %] [% ELSE %]
None None
[% END %] [% END %]
</td> </td>
</tr> </tr>
</table> </table>
<h2>Confirmation</h2> <h2>Confirmation</h2>
...@@ -149,6 +149,6 @@ ...@@ -149,6 +149,6 @@
[% PROCESS admin/fieldvalues/footer.html.tmpl [% PROCESS admin/fieldvalues/footer.html.tmpl
no_edit_link = 1 no_edit_link = 1
+%] %]
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
[% END %] [% END %]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title title = title
style_urls = ['skins/standard/admin.css']
%] %]
<p> <p>
...@@ -23,7 +24,7 @@ ...@@ -23,7 +24,7 @@
</p> </p>
<form method="post" action="editvalues.cgi"> <form method="post" action="editvalues.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
<tr> <tr>
<th><label for="value">Value:</label></th> <th><label for="value">Value:</label></th>
<td> <td>
...@@ -74,7 +75,7 @@ ...@@ -74,7 +75,7 @@
</option> </option>
[% END %] [% END %]
</select> </select>
<small>(Leave unset to have this value always appear.)</small> <span class="bz_info">(Leave unset to have this value always appear.)</span>
</td> </td>
</tr> </tr>
[% END %] [% END %]
......
...@@ -17,15 +17,13 @@ ...@@ -17,15 +17,13 @@
[% END %] [% END %]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title title = title
style_urls = ['skins/standard/admin.css']
%] %]
<form method="post" action="editvalues.cgi"> <form method="post" action="editvalues.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
<tr> <tr>
<th valign="top"> <th><label for="value_new">Field Value:</label></th>
<label for="value_new">Field Value:</label>
</th>
<td> <td>
[% IF value.is_static %] [% IF value.is_static %]
<input type="hidden" name="value_new" id="value_new" <input type="hidden" name="value_new" id="value_new"
...@@ -71,7 +69,7 @@ ...@@ -71,7 +69,7 @@
</option> </option>
[% END %] [% END %]
</select> </select>
<small>(Leave unset to have this value always appear.)</small> <span class="bz_info">(Leave unset to have this value always appear.)</span>
</td> </td>
</tr> </tr>
[% END %] [% END %]
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
# really submit the form, as expected. %] # really submit the form, as expected. %]
<input type="submit" id="commit" value="Submit" class="bz_default_hidden"> <input type="submit" id="commit" value="Submit" class="bz_default_hidden">
<table id="form" cellspacing="0" cellpadding="4" border="0"> <table id="admin_table_edit">
<tr> <tr>
<th>Name:</th> <th>Name:</th>
<td> <td>
......
...@@ -37,38 +37,38 @@ ...@@ -37,38 +37,38 @@
</p> </p>
<form id="flagtype_form" name="flagtype_form" action="editflagtypes.cgi" method="get"> <form id="flagtype_form" name="flagtype_form" action="editflagtypes.cgi" method="get">
<table> <div class="inline">
<tr> <label for="product">Product:</label>
<th><label for="product">Product:</label></th> <select id="product" name="product"
<td> onchange="selectProduct(this, this.form.component, null, null, '__Any__');">
<select name="product" onchange="selectProduct(this, this.form.component, null, null, '__Any__');"> <option value="">__Any__</option>
<option value="">__Any__</option> [% FOREACH prod = products %]
[% FOREACH prod = products %] <option value="[% prod.name FILTER html %]"
<option value="[% prod.name FILTER html %]" [%+ 'selected="selected"' IF selected_product == prod.name %]>
[% " selected" IF selected_product == prod.name %]> [%- prod.name FILTER html %]</option>
[% prod.name FILTER html %]</option> [% END %]
[% END %] </select>
</select> </div>
</td>
<th><label for="component">Component:</label></th> <div class="inline">
<td> <label for="component">Component:</label>
<select name="component"> <select name="component">
<option value="">__Any__</option> <option value="">__Any__</option>
[% FOREACH comp = components %] [% FOREACH comp = components %]
<option value="[% comp FILTER html %]" <option value="[% comp FILTER html %]"
[% " selected" IF selected_component == comp %]> [%+ 'selected="selected"' IF selected_component == comp %]>
[% comp FILTER html %]</option> [%- comp FILTER html %]</option>
[% END %] [% END %]
</select> </select>
</td> </div>
<td>
<input type="checkbox" id="show_flag_counts" name="show_flag_counts" value="1" <div class="inline">
[%+ 'checked="checked"' IF show_flag_counts %]> <input type="checkbox" id="show_flag_counts" name="show_flag_counts" value="1"
<label for="show_flag_counts">Show flag counts</label> [%+ 'checked="checked"' IF show_flag_counts %]>
</td> <label for="show_flag_counts">Show flag counts</label>
<td><input type="submit" id="submit" value="Filter"></td> </div>
</tr>
</table> <input type="submit" id="submit" value="Filter">
</form> </form>
<h3>Flag Types for [% terms.Bugs %]</h3> <h3>Flag Types for [% terms.Bugs %]</h3>
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
[% BLOCK display_flag_types %] [% BLOCK display_flag_types %]
<table id="flag_types_[% types_id FILTER html %]" cellspacing="0" cellpadding="4" border="1"> <table id="flag_types_[% types_id FILTER html %]">
<tr class="column_header"> <tr class="column_header">
<th>Edit name ...</th> <th>Edit name ...</th>
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
<tr class="[% IF type.is_active %]active[% ELSE %]inactive[% END %]"> <tr class="[% IF type.is_active %]active[% ELSE %]inactive[% END %]">
<td><a href="editflagtypes.cgi?action=edit&amp;id=[% type.id %]">[% type.name FILTER html FILTER no_break %]</a></td> <td><a href="editflagtypes.cgi?action=edit&amp;id=[% type.id %]">[% type.name FILTER html FILTER no_break %]</a></td>
<td>[% type.description FILTER html %]</td> <td>[% type.description FILTER html %]</td>
<td align="right">[% type.sortkey FILTER html %]</td> <td class="right">[% type.sortkey FILTER html %]</td>
<td> <td>
[% IF type.is_requestable %] [% IF type.is_requestable %]
<span class="requestable">requestable</span> <span class="requestable">requestable</span>
......
...@@ -13,30 +13,35 @@ ...@@ -13,30 +13,35 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Add group" title = "Add group"
subheader = "This page allows you to define a new user group." subheader = "This page allows you to define a new user group."
style_urls = ['skins/standard/admin.css']
doc_section = "groups.html#create-groups" doc_section = "groups.html#create-groups"
%] %]
<form method="post" action="editgroups.cgi"> <form method="post" action="editgroups.cgi">
<table border="1" cellpadding="4" cellspacing="0"><tr> <table id="admin_table_edit">
<th>New Name</th> <tr>
<th>New Description</th> <th>Group Name:</th>
<th>New User RegExp</th> <td><input size="60" maxlength="255" name="name"></td>
<th>Use For [% terms.Bugs %]</th> </tr>
</tr><tr> <tr>
<td><input size="20" name="name"></td> <th>Description:</th>
<td><input size="40" name="desc"></td> <td><input size="60" name="desc"></td>
<td><input size="30" name="regexp"></td> </tr>
<td><input type="checkbox" name="isactive" value="1" checked></td> <tr>
</tr> <th>User Regexp:</th>
<tr> <td><input size="60" name="regexp"></td>
<th>Icon URL:</th> </tr>
<td colspan="3"><input type="text" size="70" maxlength="255" id="icon_url" name="icon_url"></td> <tr>
</tr> <th>Icon URL:</th>
[% Hook.process('field') %] <td><input type="text" size="60" id="icon_url" name="icon_url"></td>
</tr>
<tr>
<th>Use For [% terms.Bugs %]:</th>
<td><input type="checkbox" name="isactive" value="1" checked></td>
</tr>
[% Hook.process('field') %]
</table> </table>
<hr>
<input type="checkbox" id="insertnew" name="insertnew" value="1" <input type="checkbox" id="insertnew" name="insertnew" value="1"
[% IF Param("makeproductgroups") %] checked[% END %]> [% IF Param("makeproductgroups") %] checked[% END %]>
<label for="insertnew">Insert new group into all existing products.</label> <label for="insertnew">Insert new group into all existing products.</label>
...@@ -46,7 +51,9 @@ ...@@ -46,7 +51,9 @@
<input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]">
</form> </form>
<p><b>Name</b> is what is used with the B<!-- blah -->ugzilla->user->in_group() <hr>
<p><b>Group Name</b> is what is used with the B[%%]ugzilla->user->in_group()
function in any customized cgi files you write that use a given group. function in any customized cgi files you write that use a given group.
It can also be used by people submitting [% terms.bugs %] by email to It can also be used by people submitting [% terms.bugs %] by email to
limit [% terms.abug %] to a certain set of groups.</p> limit [% terms.abug %] to a certain set of groups.</p>
...@@ -55,15 +62,6 @@ limit [% terms.abug %] to a certain set of groups.</p> ...@@ -55,15 +62,6 @@ limit [% terms.abug %] to a certain set of groups.</p>
to members of the group where they can choose whether to members of the group where they can choose whether
the [% terms.bug %] will be restricted to others in the same group.</p> the [% terms.bug %] will be restricted to others in the same group.</p>
<p>The <b>Use For [% terms.Bugs %]</b> flag determines whether or not the
group is eligible to be used for [% terms.bugs %]. If you clear this, it will
no longer be possible for users to add [% terms.bugs %] to this group,
although [% terms.bugs %] already in the group will remain in the group.
Doing so is a much less drastic way to stop a group from growing
than deleting the group would be. <b>Note: If you are creating
a group, you probably want it to be usable for [% terms.bugs %], in which
case you should leave this checked.</b></p>
<p><b>User RegExp</b> is optional, and if filled in, will <p><b>User RegExp</b> is optional, and if filled in, will
automatically grant membership to this group to anyone with an automatically grant membership to this group to anyone with an
email address that matches this regular expression.</p> email address that matches this regular expression.</p>
...@@ -75,6 +73,15 @@ email address that matches this regular expression.</p> ...@@ -75,6 +73,15 @@ email address that matches this regular expression.</p>
in comments in [% terms.bugs %] besides the name of the author of comments. in comments in [% terms.bugs %] besides the name of the author of comments.
</p> </p>
<p>The <b>Use For [% terms.Bugs %]</b> flag determines whether or not the
group is eligible to be used for [% terms.bugs %]. If you clear this, it will
no longer be possible for users to add [% terms.bugs %] to this group,
although [% terms.bugs %] already in the group will remain in the group.
Doing so is a much less drastic way to stop a group from growing
than deleting the group would be. <b>Note: If you are creating
a group, you probably want it to be usable for [% terms.bugs %], in which
case you should leave this checked.</b></p>
[% IF Param("makeproductgroups") %] [% IF Param("makeproductgroups") %]
<p>By default, the new group will be associated with existing products. <p>By default, the new group will be associated with existing products.
Unchecking the "Insert new group into all existing products" option will Unchecking the "Insert new group into all existing products" option will
...@@ -87,8 +94,6 @@ email address that matches this regular expression.</p> ...@@ -87,8 +94,6 @@ email address that matches this regular expression.</p>
a product.</p> a product.</p>
[% END %] [% END %]
<p>Back to the <a href="./">main [% terms.bugs %] page</a> <p>Back to the <a href="editgroups.cgi">group list</a>.</p>
or to the <a href="editgroups.cgi">group list</a>.
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
...@@ -13,21 +13,28 @@ ...@@ -13,21 +13,28 @@
# group. # group.
#%] #%]
[% title = BLOCK %]Delete group '[% group.name FILTER html %]'[% END %]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Delete group" title = title
style_urls = ['skins/standard/admin.css']
doc_section = "groups.html" doc_section = "groups.html"
%] %]
<table border="1"> <table id="admin_table">
<tr> <tr class="column_header">
<th>Id</th> <th>Field</th>
<th>Name</th> <th>Value</th>
<th>Description</th>
</tr> </tr>
<tr> <tr>
<td>Id</td>
<td>[% group.id FILTER html %]</td> <td>[% group.id FILTER html %]</td>
</tr>
<tr>
<td>Name</td>
<td>[% group.name FILTER html %]</td> <td>[% group.name FILTER html %]</td>
</tr>
<tr>
<td>Description</td>
<td>[% group.description FILTER html_light %]</td> <td>[% group.description FILTER html_light %]</td>
</tr> </tr>
</table> </table>
...@@ -150,7 +157,9 @@ ...@@ -150,7 +157,9 @@
<h2>Confirmation</h2> <h2>Confirmation</h2>
<p>Do you really want to delete this group?</p> <p class="confirmation">
Do you really want to delete this group?
</p>
[% IF group.users.size || group.bugs.size || group.products.size [% IF group.users.size || group.bugs.size || group.products.size
|| group.flags.size || group.flags.size
%] %]
......
...@@ -18,29 +18,20 @@ ...@@ -18,29 +18,20 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title title = title
style_urls = ['skins/standard/admin.css']
doc_section = "groups.html#edit-groups" doc_section = "groups.html#edit-groups"
style = "
.grant_table { border-collapse: collapse; }
.grant_table td, .grant_table th {
padding-left: .5em;
}
.grant_table td.one, .grant_table th.one {
border-right: 1px solid black;
padding-right: .5em;
}
"
%] %]
<form method="post" action="editgroups.cgi"> <form method="post" action="editgroups.cgi">
<input type="hidden" name="action" value="postchanges"> <input type="hidden" name="action" value="postchanges">
<input type="hidden" name="group_id" value="[% group.id FILTER html %]"> <input type="hidden" name="group_id" value="[% group.id FILTER html %]">
<table border="1" cellpadding="4"> <table id="admin_table_edit">
<tr> <tr>
<th>Group:</th> <th>Group:</th>
<td> <td>
[% IF group.is_bug_group %] [% IF group.is_bug_group %]
<input type="text" name="name" size="60" <input type="text" name="name" size="60" maxlength="255"
value="[% group.name FILTER html %]"> value="[% group.name FILTER html %]">
[% ELSE %] [% ELSE %]
[% group.name FILTER html %] [% group.name FILTER html %]
...@@ -52,7 +43,7 @@ ...@@ -52,7 +43,7 @@
<th>Description:</th> <th>Description:</th>
<td> <td>
[% IF group.is_bug_group %] [% IF group.is_bug_group %]
<input type="text" name="desc" size="70" <input type="text" name="desc" size="60"
value="[% group.description FILTER html %]"> value="[% group.description FILTER html %]">
[% ELSE %] [% ELSE %]
[% group.description FILTER html %] [% group.description FILTER html %]
...@@ -63,7 +54,7 @@ ...@@ -63,7 +54,7 @@
<tr> <tr>
<th>User Regexp:</th> <th>User Regexp:</th>
<td> <td>
<input type="text" name="regexp" size="40" <input type="text" name="regexp" size="60"
value="[% group.user_regexp FILTER html %]"> value="[% group.user_regexp FILTER html %]">
</td> </td>
</tr> </tr>
...@@ -76,7 +67,7 @@ ...@@ -76,7 +67,7 @@
[% END %] [% END %]
</th> </th>
<td> <td>
<input type="text" name="icon_url" size="70" maxlength="255" <input type="text" name="icon_url" size="60"
value="[% group.icon_url FILTER html %]"> value="[% group.icon_url FILTER html %]">
</td> </td>
</tr> </tr>
...@@ -95,78 +86,72 @@ ...@@ -95,78 +86,72 @@
<h4>Group Permissions</h4> <h4>Group Permissions</h4>
<table class="grant_table"> <table id="grant_table">
<tr> <tr>
<th class="one">Groups That Are a Member of This Group<br> <th colspan="2">
(&quot;Users in <var>X</var> are automatically in Groups That Are a Member of This Group<br>
[%+ group.name FILTER html %]&quot;)</th> ("Users in <var>X</var> are automatically in [% group.name FILTER html %]")
<th>Groups That This Group Is a Member Of<br> </th>
(&quot;If you are in [% group.name FILTER html %], you are <th colspan="2">
automatically also in...&quot;)</th> Groups That This Group Is a Member Of<br>
("If you are in [% group.name FILTER html %], you are automatically also in...")
</th>
</tr> </tr>
<tr> <tr>
<td class="one"> [% PROCESS select_pair name = "members" size = 10
[% PROCESS select_pair name = "members" size = 10 items_available = members_available
items_available = members_available items_current = members_current %]
items_current = members_current %]
</td> [% PROCESS select_pair name = "member_of" size = 10
items_available = member_of_available
<td>[% PROCESS select_pair name = "member_of" size = 10 items_current = member_of_current %]
items_available = member_of_available
items_current = member_of_current %]</td>
</tr> </tr>
</table>
<table class="grant_table">
<tr> <tr>
<th class="one"> <th colspan="2">
Groups That Can Grant Membership in This Group<br> Groups That Can Grant Membership in This Group<br>
(&quot;Users in <var>X</var> can add other users to ("Users in <var>X</var> can add other users to [% group.name FILTER html %]")
[%+ group.name FILTER html %]&quot;) </th>
<th colspan="2">
Groups That This Group Can Grant Membership In<br>
("Users in [% group.name FILTER html %] can add users to...")
</th> </th>
<th>Groups That This Group Can Grant Membership In<br>
(&quot;Users in [% group.name FILTER html %] can add users to...&quot;)
</th>
</tr> </tr>
<tr> <tr>
<td class="one"> [% PROCESS select_pair name = "bless_from" size = 10
[% PROCESS select_pair name = "bless_from" size = 10 items_available = bless_from_available
items_available = bless_from_available items_current = bless_from_current %]
items_current = bless_from_current %]
</td> [% PROCESS select_pair name = "bless_to" size = 10
<td>[% PROCESS select_pair name = "bless_to" size = 10 items_available = bless_to_available
items_available = bless_to_available items_current = bless_to_current %]
items_current = bless_to_current %]
</td>
</tr> </tr>
</table>
[% IF Param('usevisibilitygroups') %] [% IF Param('usevisibilitygroups') %]
<table class="grant_table">
<tr> <tr>
<th class="one"> <th colspan="2">
Groups That Can See This Group<br> Groups That Can See This Group<br>
(&quot;Users in <var>X</var> can see users in ("Users in <var>X</var> can see users in [% group.name FILTER html %]")
[%+ group.name FILTER html %]&quot;) </th>
<th colspan="2">
Groups That This Group Can See<br>
("Users in [% group.name FILTER html %] can see users in...")
</th> </th>
<th>Groups That This Group Can See<br>
(&quot;Users in [% group.name FILTER html %] can see users in...&quot;)
</th>
</tr> </tr>
<tr> <tr>
<td class="one"> [% PROCESS select_pair name = "visible_from" size = 10
[% PROCESS select_pair name = "visible_from" size = 10 items_available = visible_from_available
items_available = visible_from_available items_current = visible_from_current %]
items_current = visible_from_current %]
</td> [% PROCESS select_pair name = "visible_to_me" size = 10
<td>[% PROCESS select_pair name = "visible_to_me" size = 10 items_available = visible_to_me_available
items_available = visible_to_me_available items_current = visible_to_me_current %]
items_current = visible_to_me_current %]
</td>
</tr> </tr>
</table> [% END %]
[% END %] </table>
<input type="submit" id="update-group" value="Update Group"> <input type="submit" id="update-group" value="Update Group">
<input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]">
...@@ -178,9 +163,8 @@ ...@@ -178,9 +163,8 @@
This is often very useful if you upgraded from [% terms.Bugzilla %] This is often very useful if you upgraded from [% terms.Bugzilla %]
2.16.</p> 2.16.</p>
<table><tr><td>
<form method="post" action="editgroups.cgi"> <form method="post" action="editgroups.cgi">
<fieldset> <fieldset id="mass-remove">
<legend>Remove all explicit memberships from users whose login names <legend>Remove all explicit memberships from users whose login names
match the following regular expression:</legend> match the following regular expression:</legend>
<input type="text" size="20" name="regexp"> <input type="text" size="20" name="regexp">
...@@ -193,41 +177,35 @@ ...@@ -193,41 +177,35 @@
<input type="hidden" name="group_id" value="[% group.id FILTER html %]"> <input type="hidden" name="group_id" value="[% group.id FILTER html %]">
</fieldset> </fieldset>
</form> </form>
</td></tr></table>
<p>Back to the <a href="editgroups.cgi">group list</a>.</p> <p>Back to the <a href="editgroups.cgi">group list</a>.</p>
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
[% BLOCK select_pair %] [% BLOCK select_pair %]
<table class="select_pair"> <td>
<tr> <label for="[% "${name}_add" FILTER html %]">Add<br>(select to add)</label>
<th><label for="[% "${name}_add" FILTER html %]">Add<br> <br>
(select to add)</label></th> <select multiple="multiple" size="[% size FILTER html %]"
<th><label for="[% "${name}_remove" FILTER html %]">Current<br> name="[% "${name}_add" FILTER html %]"
(select to remove)</label></th> id="[% "${name}_add" FILTER html %]">
</tr> [% FOREACH item = items_available %]
<tr> <option value="[% item.id FILTER html %]">
<td> [% item.name FILTER html %]</option>
<select multiple="multiple" size="[% size FILTER html %]" [% END %]
name="[% "${name}_add" FILTER html %]" </select>
id="[% "${name}_add" FILTER html %]"> </td>
[% FOREACH item = items_available %]
<option value="[% item.id FILTER html %]"> <td>
[% item.name FILTER html %]</option> <label for="[% "${name}_remove" FILTER html %]">Current<br>(select to remove)</label>
[% END %] <br>
</select> <select multiple="multiple" size="[% size FILTER html %]"
</td> name="[% "${name}_remove" FILTER html %]"
<td> id="[% "${name}_remove" FILTER html %]">
<select multiple="multiple" size="[% size FILTER html %]" [% FOREACH item = items_current %]
name="[% "${name}_remove" FILTER html %]" <option value="[% item.id FILTER html %]">
id="[% "${name}_remove" FILTER html %]"> [% item.name FILTER html %]</option>
[% FOREACH item = items_current %] [% END %]
<option value="[% item.id FILTER html %]"> </select>
[% item.name FILTER html %]</option> </td>
[% END %]
</select>
</td>
</tr>
</table>
[% END %] [% END %]
...@@ -12,26 +12,29 @@ ...@@ -12,26 +12,29 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Delete Keyword" title = "Delete Keyword"
style_urls = ['skins/standard/admin.css']
%] %]
<p> <h2>Confirmation</h2>
<p class="confirmation">
[% IF keyword.bug_count == 1 %] [% IF keyword.bug_count == 1 %]
There is one [% terms.bug %] with this keyword set. There is one [% terms.bug %]
[% ELSIF keyword.bug_count > 1 %] [% ELSIF keyword.bug_count > 1 %]
There are [% keyword.bug_count FILTER html %] [%+ terms.bugs %] with There are [% keyword.bug_count FILTER html %] [%+ terms.bugs %]
this keyword set.
[% END %] [% END %]
with the <em>[% keyword.name FILTER html %]</em> keyword set.
Are you <b>sure</b> you want to delete </p>
the <code>[% keyword.name FILTER html %]</code> keyword?
<p>
Do you really want to delete this keyword?
</p> </p>
<form method="post" action="editkeywords.cgi"> <form method="post" action="editkeywords.cgi">
<input type="hidden" name="id" value="[% keyword.id FILTER html %]"> <input type="hidden" name="id" value="[% keyword.id FILTER html %]">
<input type="hidden" name="action" value="delete"> <input type="hidden" name="action" value="delete">
<input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]">
<input type="submit" id="delete" <input type="submit" id="delete" value="Yes, delete">
value="Yes, really delete the keyword">
</form> </form>
<p><a href="editkeywords.cgi">Edit other keywords</a>.</p> <p><a href="editkeywords.cgi">Edit other keywords</a>.</p>
......
...@@ -9,14 +9,15 @@ ...@@ -9,14 +9,15 @@
[%# INTERFACE: [%# INTERFACE:
# none # none
#%] #%]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Add keyword" title = "Add keyword"
subheader = "This page allows you to add a new keyword." subheader = "This page allows you to add a new keyword."
style_urls = ['skins/standard/admin.css']
%] %]
<form method="post" action="editkeywords.cgi"> <form method="post" action="editkeywords.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
<tr> <tr>
<th>Name:</th> <th>Name:</th>
<td><input size="64" maxlength="64" name="name" value=""></td> <td><input size="64" maxlength="64" name="name" value=""></td>
...@@ -33,13 +34,15 @@ ...@@ -33,13 +34,15 @@
</td> </td>
</tr> </tr>
</table> </table>
<hr>
<input type="hidden" name="id" value="-1"> <input type="hidden" name="id" value="-1">
<input type="submit" id="create" value="Add"> <input type="submit" id="create" value="Add">
<input type="hidden" name="action" value="new"> <input type="hidden" name="action" value="new">
<input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]">
</form> </form>
<hr>
<p><a href="editkeywords.cgi">Edit other keywords</a>.</p> <p><a href="editkeywords.cgi">Edit other keywords</a>.</p>
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
...@@ -12,10 +12,11 @@ ...@@ -12,10 +12,11 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Edit keyword" title = "Edit keyword"
style_urls = ['skins/standard/admin.css']
%] %]
<form method="post" action="editkeywords.cgi"> <form method="post" action="editkeywords.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
<tr> <tr>
<th>Name:</th> <th>Name:</th>
<td><input size="64" maxlength="64" name="name" <td><input size="64" maxlength="64" name="name"
......
...@@ -21,33 +21,33 @@ ...@@ -21,33 +21,33 @@
style_urls = ['skins/standard/admin.css'] style_urls = ['skins/standard/admin.css']
%] %]
<table border="1" cellpadding="4" cellspacing="0"> <table id="admin_table">
<tr class="column_header"> <tr class="column_header">
<th valign="top" class="left">Field</th> <th>Field</th>
<th valign="top" class="left">Value</th> <th>Value</th>
</tr> </tr>
<tr> <tr>
<td valign="top">Milestone:</td> <td>Milestone</td>
<td valign="top">[% milestone.name FILTER html %]</td> <td>[% milestone.name FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Milestone of Product:</td> <td>Milestone of Product</td>
<td valign="top">[% product.name FILTER html %]</td> <td>[% product.name FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">[% terms.Bugs %]:</td> <td>[% terms.Bugs %]</td>
<td valign="top"> <td>
[% IF milestone.bug_count %] [% IF milestone.bug_count %]
<a title="List of [% terms.bugs %] targetted at milestone ' <a title="List of [% terms.bugs %] targetted at milestone '
[% milestone.name FILTER html %]'" [%- milestone.name FILTER html %]'"
href="buglist.cgi?target_milestone=[% milestone.name FILTER uri %]&amp;product= href="buglist.cgi?target_milestone=[% milestone.name FILTER uri %]&amp;product=
[%- product.name FILTER uri %]"> [%- product.name FILTER uri %]">
[% milestone.bug_count FILTER none %]</a> [% milestone.bug_count FILTER none %]</a>
[% ELSE %] [% ELSE %]
None None
[% END %] [% END %]
</td> </td>
</tr> </tr>
</table> </table>
<h2>Confirmation</h2> <h2>Confirmation</h2>
......
...@@ -17,11 +17,12 @@ ...@@ -17,11 +17,12 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title title = title
subheader = subheader subheader = subheader
style_urls = ['skins/standard/admin.css']
onload = "document.forms['f'].milestone.focus()" onload = "document.forms['f'].milestone.focus()"
%] %]
<form name="f" method="post" action="editmilestones.cgi"> <form name="f" method="post" action="editmilestones.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
<tr> <tr>
<th><label for="milestone">Milestone:</label></th> <th><label for="milestone">Milestone:</label></th>
<td><input id="milestone" size="64" maxlength="64" name="milestone" <td><input id="milestone" size="64" maxlength="64" name="milestone"
......
...@@ -17,24 +17,24 @@ ...@@ -17,24 +17,24 @@
[%- product.name FILTER html %]'[% END %] [%- product.name FILTER html %]'[% END %]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title title = title
style_urls = ['skins/standard/admin.css']
onload = "document.forms['f'].milestone.select()" onload = "document.forms['f'].milestone.select()"
%] %]
<form name="f" method="post" action="editmilestones.cgi"> <form name="f" method="post" action="editmilestones.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
<tr> <tr>
<th class="field_label"><label for="milestone">Milestone:</label></th> <th><label for="milestone">Milestone:</label></th>
<td><input id="milestone" size="64" maxlength="64" name="milestone" value=" <td><input id="milestone" size="64" maxlength="64" name="milestone" value="
[%- milestone.name FILTER html %]"></td> [%- milestone.name FILTER html %]"></td>
</tr> </tr>
<tr> <tr>
<th class="field_label"><label for="sortkey">Sortkey:</label></th> <th><label for="sortkey">Sortkey:</label></th>
<td><input id="sortkey" size="20" maxlength="20" name="sortkey" value=" <td><input id="sortkey" size="20" maxlength="20" name="sortkey" value="
[%- milestone.sortkey FILTER html %]"></td> [%- milestone.sortkey FILTER html %]"></td>
</tr> </tr>
<tr> <tr>
<th class="field_label"><label for="isactive">Enabled For [% terms.Bugs %]:</label></th> <th><label for="isactive">Enabled For [% terms.Bugs %]:</label></th>
<td><input id="isactive" name="isactive" type="checkbox" value="1" <td><input id="isactive" name="isactive" type="checkbox" value="1"
[% 'checked="checked"' IF milestone.isactive %]></td> [% 'checked="checked"' IF milestone.isactive %]></td>
</tr> </tr>
......
...@@ -40,9 +40,8 @@ ...@@ -40,9 +40,8 @@
doc_section = "parameters.html" doc_section = "parameters.html"
%] %]
<table border="0" width="100%"> <div class="table">
<tr> <div class="cell">
<td>
[%# NAVIGATION BAR %] [%# NAVIGATION BAR %]
<table id="menu"> <table id="menu">
<tr> <tr>
...@@ -66,8 +65,9 @@ ...@@ -66,8 +65,9 @@
</tr> </tr>
[% END %] [% END %]
</table> </table>
</td> </div>
<td>
<div class="cell">
[% IF curpanel == -1 %] [% IF curpanel == -1 %]
[% PROCESS admin/params/index.html.tmpl panels = panels %] [% PROCESS admin/params/index.html.tmpl panels = panels %]
[% ELSE %] [% ELSE %]
...@@ -96,8 +96,7 @@ ...@@ -96,8 +96,7 @@
<input type="submit" id="save-params" value="Save Changes"> <input type="submit" id="save-params" value="Save Changes">
</form> </form>
[% END %] [% END %]
</td> </div>
</tr> </div>
</table>
[% INCLUDE global/footer.html.tmpl %] [% INCLUDE global/footer.html.tmpl %]
...@@ -24,20 +24,19 @@ ...@@ -24,20 +24,19 @@
style_urls = ['skins/standard/admin.css'] style_urls = ['skins/standard/admin.css']
%] %]
<table border="1" cellpadding="4" cellspacing="0"> <table id="admin_table">
<tr class="column_header"> <tr class="column_header">
<th valign="top" class="left">Field</th> <th>Field</th>
<th valign="top" class="left">Value</th> <th>Value</th>
</tr> </tr>
[% IF Param('useclassification') %] [% IF Param('useclassification') %]
<tr> <tr>
<td>Classification:</td> <td>Classification</td>
<td>[% classification.name FILTER html %]</td> <td>[% classification.name FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td>Classification Description:</td> <td>Classification Description</td>
[%# descriptions are intentionally not filtered to allow html content %]
<td> <td>
[% IF classification.description %] [% IF classification.description %]
[% classification.description FILTER html_light %] [% classification.description FILTER html_light %]
...@@ -49,22 +48,21 @@ ...@@ -49,22 +48,21 @@
[% END %] [% END %]
<tr> <tr>
<td valign="top">Product:</td> <td>Product</td>
<td valign="top"> <td>
<a href="editproducts.cgi?product=[% product.name FILTER uri %]"> <a href="editproducts.cgi?product=[% product.name FILTER uri %]">
[% product.name FILTER html %] [% product.name FILTER html %]
</a> </a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td valign="top">Description:</td> <td>Description</td>
[%# descriptions are intentionally not filtered to allow html content %] <td>[% product.description FILTER html_light %]</td>
<td valign="top">[% product.description FILTER html_light %]</td>
</tr> </tr>
[% IF Param('usetargetmilestone') %] [% IF Param('usetargetmilestone') %]
<tr> <tr>
<td>Milestone URL:</td> <td>Milestone URL</td>
<td> <td>
[% IF product.milestone_url %] [% IF product.milestone_url %]
<a href="[% product.milestone_url FILTER html %]"> <a href="[% product.milestone_url FILTER html %]">
...@@ -78,7 +76,7 @@ ...@@ -78,7 +76,7 @@
[% END %] [% END %]
<tr> <tr>
<td>Closed for [% terms.bugs %]:</td> <td>Closed for [% terms.bugs %]</td>
<td> <td>
[% IF product.is_active %] [% IF product.is_active %]
open open
...@@ -93,15 +91,15 @@ ...@@ -93,15 +91,15 @@
[% IF product.components.size > 0 %] [% IF product.components.size > 0 %]
<a href="editcomponents.cgi?product=[% product.name FILTER uri %]" <a href="editcomponents.cgi?product=[% product.name FILTER uri %]"
title="Edit components for product '[% product.name FILTER html %]'"> title="Edit components for product '[% product.name FILTER html %]'">
Components: Components
</a> </a>
[% ELSE %] [% ELSE %]
Components: Components
[% END %] [% END %]
</td> </td>
<td> <td>
[% IF product.components.size > 0 %] [% IF product.components.size > 0 %]
<table> <table class="no-border">
[% FOREACH c = product.components %] [% FOREACH c = product.components %]
<tr> <tr>
<th>[% c.name FILTER html %]:</th> <th>[% c.name FILTER html %]:</th>
...@@ -119,17 +117,19 @@ ...@@ -119,17 +117,19 @@
<td> <td>
[% IF product.versions.size > 0 %] [% IF product.versions.size > 0 %]
<a href="editversions.cgi?product=[%- product.name FILTER uri %]"> <a href="editversions.cgi?product=[%- product.name FILTER uri %]">
Versions: Versions
</a> </a>
[% ELSE %] [% ELSE %]
Versions: Versions
[% END %] [% END %]
</td> </td>
<td> <td>
[% IF product.versions.size > 0 %] [% IF product.versions.size > 0 %]
[% FOREACH v = product.versions %] <div class="multi-columns">
[% v.name FILTER html %]<br> [% FOREACH v = product.versions %]
[% END %] [% v.name FILTER html %]<br>
[% END %]
</div>
[% ELSE %] [% ELSE %]
none none
[% END %] [% END %]
...@@ -139,20 +139,22 @@ ...@@ -139,20 +139,22 @@
[% IF Param('usetargetmilestone') %] [% IF Param('usetargetmilestone') %]
<tr> <tr>
<td valign="top"> <td>
[% IF product.milestones.size > 0 %] [% IF product.milestones.size > 0 %]
<a href="editmilestones.cgi?product=[%- product.name FILTER uri %]"> <a href="editmilestones.cgi?product=[%- product.name FILTER uri %]">
Milestones: Milestones
</a> </a>
[% ELSE %] [% ELSE %]
Milestones: Milestones
[% END %] [% END %]
</td> </td>
<td> <td>
[% IF product.milestones.size > 0 %] [% IF product.milestones.size > 0 %]
[% FOREACH m = product.milestones %] <div class="multi-columns">
[% m.name FILTER html %]<br> [% FOREACH m = product.milestones %]
[% END %] [% m.name FILTER html %]<br>
[% END %]
</div>
[% ELSE %] [% ELSE %]
none none
[% END %] [% END %]
...@@ -161,7 +163,7 @@ ...@@ -161,7 +163,7 @@
[% END %] [% END %]
<tr> <tr>
<td>[% terms.Bugs %]:</td> <td>[% terms.Bugs %]</td>
<td> <td>
[% IF product.bug_count %] [% IF product.bug_count %]
<a href="buglist.cgi?product=[% product.name FILTER uri %]" <a href="buglist.cgi?product=[% product.name FILTER uri %]"
...@@ -181,41 +183,34 @@ ...@@ -181,41 +183,34 @@
[% IF !Param("allowbugdeletion") %] [% IF !Param("allowbugdeletion") %]
<p class="confirmation">Sorry, there <p class="confirmation">
Sorry, there
[% IF product.bug_count > 1 %] [% IF product.bug_count > 1 %]
are [% product.bug_count FILTER html %] [%+ terms.bugs %] are [% product.bug_count FILTER html %] [%+ terms.bugs %]
[% ELSE %] [% ELSE %]
is 1 [% terms.bug %] is 1 [% terms.bug %]
[% END %] [% END %]
outstanding for this product. You must reassign
outstanding for this product. You must reassign [% IF product.bug_count > 1 %]
those [% terms.bugs %]
[% IF product.bug_count > 1 %] [% ELSE %]
those [% terms.bugs %] that [% terms.bug %]
[% ELSE %] [% END %]
that [% terms.bug %] to another product before you can delete this one.
[% END %] </p>
to another product before you can delete this one.</p>
[% ELSE %] [% ELSE %]
<table class="confirmation"> <p class="confirmation">
<tr> There
<td> [% IF product.bug_count > 1 %]
There are [% product.bug_count FILTER html %] [%+ terms.bugs %]
[% IF product.bug_count > 1 %] [% ELSE %]
are [% product.bug_count FILTER html %] [%+ terms.bugs %] is 1 [% terms.bug %]
[% ELSE %] [% END %]
is 1 [% terms.bug %] entered for this product! When you delete this product, <b>ALL</b>
[% END %] stored [% terms.bugs %] and their history will be deleted, too.
entered for this product! When you delete this </p>
product, <b>ALL</b> stored [% terms.bugs %] and
their history will be deleted, too.
</td>
</tr>
</table>
[% END %] [% END %]
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
%] %]
<form method="post" action="editproducts.cgi"> <form method="post" action="editproducts.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
[% PROCESS "admin/products/edit-common.html.tmpl" %] [% PROCESS "admin/products/edit-common.html.tmpl" %]
......
...@@ -30,12 +30,12 @@ ...@@ -30,12 +30,12 @@
%] %]
<form method="post" action="editproducts.cgi"> <form method="post" action="editproducts.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
[% PROCESS "admin/products/edit-common.html.tmpl" %] [% PROCESS "admin/products/edit-common.html.tmpl" %]
<tr> <tr>
<th valign="top"> <th>
<a href="editcomponents.cgi?product=[% product.name FILTER uri %]"> <a href="editcomponents.cgi?product=[% product.name FILTER uri %]">
Edit components: Edit components:
</a> </a>
...@@ -55,16 +55,16 @@ ...@@ -55,16 +55,16 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<th valign="top"> <th>
<a href="editversions.cgi?product=[% product.name FILTER uri %]">Edit <a href="editversions.cgi?product=[% product.name FILTER uri %]">Edit versions:</a>
versions:</a>
</th> </th>
<td> <td>
[%- IF product.versions.size -%] [%- IF product.versions.size -%]
[% FOREACH v = product.versions %] <div class="multi-columns">
[% v.name FILTER html %] [% FOREACH v = product.versions %]
<br> [% v.name FILTER html %]<br>
[% END %] [% END %]
</div>
[% ELSE %] [% ELSE %]
<span class="warning">missing</span> <span class="warning">missing</span>
[% END %] [% END %]
...@@ -72,16 +72,17 @@ versions:</a> ...@@ -72,16 +72,17 @@ versions:</a>
</tr> </tr>
[% IF Param('usetargetmilestone') %] [% IF Param('usetargetmilestone') %]
<tr> <tr>
<th valign="top"> <th>
<a href="editmilestones.cgi?product=[% product.name FILTER uri %]"> <a href="editmilestones.cgi?product=[% product.name FILTER uri %]">
Edit milestones:</a> Edit milestones:</a>
</th> </th>
<td> <td>
[%- IF product.milestones.size -%] [%- IF product.milestones.size -%]
[%- FOREACH m = product.milestones -%] <div class="multi-columns">
[% m.name FILTER html %] [%- FOREACH m = product.milestones -%]
<br> [% m.name FILTER html %]<br>
[% END %] [% END %]
</div>
[% ELSE %] [% ELSE %]
<span class="warning">missing</span> <span class="warning">missing</span>
[% END %] [% END %]
...@@ -89,7 +90,7 @@ versions:</a> ...@@ -89,7 +90,7 @@ versions:</a>
</tr> </tr>
[% END %] [% END %]
<tr> <tr>
<th valign="top"> <th>
<a href="editproducts.cgi?action=editgroupcontrols&product= <a href="editproducts.cgi?action=editgroupcontrols&product=
[%- product.name FILTER uri %]"> [%- product.name FILTER uri %]">
Edit Group Access Controls: Edit Group Access Controls:
...@@ -98,7 +99,7 @@ versions:</a> ...@@ -98,7 +99,7 @@ versions:</a>
<td> <td>
[% IF product.group_controls.size %] [% IF product.group_controls.size %]
[% FOREACH g = product.group_controls.values.sort("name") %] [% FOREACH g = product.group_controls.values.sort("name") %]
<b>[% g.group.name FILTER html %]:</b>&nbsp; <b>[% g.group.name FILTER html %]:</b>
[% IF g.group.isactive %] [% IF g.group.isactive %]
[% group_control.${g.membercontrol} FILTER html %]/ [% group_control.${g.membercontrol} FILTER html %]/
[% group_control.${g.othercontrol} FILTER html %] [% group_control.${g.othercontrol} FILTER html %]
...@@ -119,8 +120,10 @@ versions:</a> ...@@ -119,8 +120,10 @@ versions:</a>
</tr> </tr>
<tr> <tr>
<th>[% terms.Bugs %]:</th> <th>[% terms.Bugs %]:</th>
<td><a href="buglist.cgi?product=[% product.name FILTER uri %]"> <td>
[% product.bug_count FILTER html %]</a></td> <a href="buglist.cgi?product=[% product.name FILTER uri %]">
[% product.bug_count FILTER html %]</a>
</td>
</tr> </tr>
</table> </table>
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
<input type="hidden" name="product" value="[% product.name FILTER html %]"> <input type="hidden" name="product" value="[% product.name FILTER html %]">
<input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]">
<table id="form" cellspacing="0" cellpadding="4" border="1"> <table id="admin_table">
<tr class="column_header"> <tr class="column_header">
<th>Group</th> <th>Group</th>
<th>Entry</th> <th>Entry</th>
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
[% IF !group.group.isactive %] [% IF !group.group.isactive %]
<tr class="disabled"> <tr class="disabled">
<td>[% group.group.name FILTER html %]</td> <td>[% group.group.name FILTER html %]</td>
<td align="center" colspan="7">Disabled</td> <td class="center" colspan="7">Disabled</td>
<td>[% group.bug_count FILTER html %]</td> <td>[% group.bug_count FILTER html %]</td>
</tr> </tr>
[% ELSE %] [% ELSE %]
...@@ -167,7 +167,7 @@ indicate which [% terms.bugs %] will be placed in ...@@ -167,7 +167,7 @@ indicate which [% terms.bugs %] will be placed in
this group according to the following definitions. this group according to the following definitions.
</p> </p>
<table border=1> <table id="group_settings_desc">
<tr> <tr>
<th> <th>
MemberControl MemberControl
......
...@@ -16,41 +16,38 @@ ...@@ -16,41 +16,38 @@
#%] #%]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Default Preferences" title = "Default Preferences"
%] style_urls = ['skins/standard/admin.css']
%]
[% PROCESS "global/setting-descs.none.tmpl" %] [% PROCESS "global/setting-descs.none.tmpl" %]
<p> <p>
This lets you edit the default preferences values. This lets you edit the default preferences values. The Default Value displayed
for each preference will apply to all users who do not choose their own value,
and to anyone who is not logged in.
</p> </p>
<p>
The Default Value displayed for each preference will apply to all users who
do not choose their own value, and to anyone who is not logged in.
</p>
<p>
The 'Enabled' checkbox controls whether or not this preference is available
to users.<br>
If it is checked, users will see this preference on their User Preferences page,
and will be allowed to choose their own value if they desire.<br>
If it is not checked, this preference will not appear on the User Preference
page, and the Default Value will automatically apply to everyone.
</p>
<hr>
[% IF settings.size %] <div>
<form name="adminsettingform" method="post" action="editsettings.cgi"> The 'Enabled' checkbox controls whether or not this preference is available to users:
<table border="1" cellpadding="4"> <ul>
<tr> <li>If it is checked, users will be allowed to choose their own value if they desire.</li>
<th>Preference Text</th> <li>If it is not checked, the Default Value will automatically apply to everyone.</li>
<th>Default Value</th> </ul>
<th>Enabled</th> </div>
</tr>
<form id="settings" method="post" action="editsettings.cgi">
<table id="admin_table">
<tr class="column_header">
<th>Preference Text</th>
<th>Default Value</th>
<th>Enabled</th>
</tr>
[% FOREACH name = settings.keys %] [% FOREACH name = settings.keys %]
[% checkbox_name = name _ '-enabled' %] [% checkbox_name = name _ '-enabled' %]
<tr> <tr>
<td align="right"> <td>
[% setting_descs.$name OR name FILTER html %] [% setting_descs.$name OR name FILTER html %]
</td> </td>
<td> <td>
...@@ -63,31 +60,19 @@ page, and the Default Value will automatically apply to everyone. ...@@ -63,31 +60,19 @@ page, and the Default Value will automatically apply to everyone.
[% END %] [% END %]
</select> </select>
</td> </td>
<td align="center"> <td class="center">
<input type="checkbox" <input type="checkbox"
name="[% checkbox_name FILTER html %]" name="[% checkbox_name FILTER html %]"
id="[% checkbox_name FILTER html %]" id="[% checkbox_name FILTER html %]"
[% " checked=\"checked\"" IF settings.${name}.is_enabled %]> [% " checked=\"checked\"" IF settings.${name}.is_enabled %]>
<br>
</td> </td>
</tr> </tr>
[% END %] [% END %]
</table> </table>
<input type="hidden" name="action" value="update"> <input type="hidden" name="action" value="update">
<input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]">
<table> <input type="submit" id="update" value="Submit Changes">
<tr>
<td width="150"></td>
<td>
<input type="submit" id="update" value="Submit Changes">
</td>
</tr>
</table>
</form> </form>
[% ELSE %]
There are no preferences to edit.
[% END %]
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#%] #%]
[% hidden_products = 0 %] [% hidden_products = 0 %]
<table id="user_responsibilities" border="0"> <table id="user_responsibilities">
[% FOREACH item = otheruser.product_responsibilities %] [% FOREACH item = otheruser.product_responsibilities %]
[% IF !user.can_see_product(item.product.name) %] [% IF !user.can_see_product(item.product.name) %]
[% hidden_products = 1 %] [% hidden_products = 1 %]
......
...@@ -21,33 +21,33 @@ ...@@ -21,33 +21,33 @@
style_urls = ['skins/standard/admin.css'] style_urls = ['skins/standard/admin.css']
%] %]
<table border="1" cellpadding="4" cellspacing="0"> <table id="admin_table">
<tr class="column_header"> <tr class="column_header">
<th valign="top" class="left">Field</th> <th>Field</th>
<th valign="top" class="left">Value</th> <th>Value</th>
</tr> </tr>
<tr> <tr>
<td valign="top">Version:</td> <td>Version</td>
<td valign="top">[% version.name FILTER html %]</td> <td>[% version.name FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Version of Product:</td> <td>Version of Product</td>
<td valign="top">[% product.name FILTER html %]</td> <td>[% product.name FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">[% terms.Bugs %]:</td> <td>[% terms.Bugs %]</td>
<td valign="top"> <td>
[% IF version.bug_count %] [% IF version.bug_count %]
<a title="List of [% terms.bugs %] targetted at version ' <a title="List of [% terms.bugs %] targetted at version '
[%- version.name FILTER html %]'" [%- version.name FILTER html %]'"
href="buglist.cgi?version=[% version.name FILTER uri %]&amp;product= href="buglist.cgi?version=[% version.name FILTER uri %]&amp;product=
[%- product.name FILTER uri %]"> [%- product.name FILTER uri %]">
[%- version.bug_count FILTER none %]</a> [%- version.bug_count FILTER none %]</a>
[% ELSE %] [% ELSE %]
None None
[% END %] [% END %]
</td> </td>
</tr> </tr>
</table> </table>
<h2>Confirmation</h2> <h2>Confirmation</h2>
......
...@@ -17,10 +17,11 @@ ...@@ -17,10 +17,11 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title title = title
subheader = subheader subheader = subheader
style_urls = ['skins/standard/admin.css']
%] %]
<form method="post" action="editversions.cgi"> <form method="post" action="editversions.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
<tr> <tr>
<th><label for="version">Version:</label></th> <th><label for="version">Version:</label></th>
<td><input id="version" size="64" maxlength="64" name="version" <td><input id="version" size="64" maxlength="64" name="version"
......
...@@ -17,20 +17,24 @@ ...@@ -17,20 +17,24 @@
[%- product.name FILTER html %]'[% END %] [%- product.name FILTER html %]'[% END %]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title title = title
style_urls = ['skins/standard/admin.css']
%] %]
<form method="post" action="editversions.cgi"> <form method="post" action="editversions.cgi">
<table border="0" cellpadding="4" cellspacing="0"> <table id="admin_table_edit">
<tr> <tr>
<th class="field_label"><label for="version">Version:</label></th> <th><label for="version">Version:</label></th>
<td><input id="version" size="64" maxlength="64" name="version" value=" <td>
[%- version.name FILTER html %]"></td> <input id="version" size="64" maxlength="64" name="version"
value="[% version.name FILTER html %]">
</td>
</tr> </tr>
<tr> <tr>
<th class="field_label"><label for="isactive">Enabled For [% terms.Bugs %]:</label></th> <th><label for="isactive">Enabled For [% terms.Bugs %]:</label></th>
<td><input id="isactive" name="isactive" type="checkbox" value="1" <td>
[% 'checked="checked"' IF version.isactive %]></td> <input id="isactive" name="isactive" type="checkbox" value="1"
[% 'checked="checked"' IF version.isactive %]>
</td>
</tr> </tr>
</table> </table>
......
...@@ -21,48 +21,44 @@ ...@@ -21,48 +21,44 @@
doc_section = "attachments.html" doc_section = "attachments.html"
%] %]
<table border="1" cellpadding="4" cellspacing="0"> <table id="admin_table">
<tr class="column_header"> <tr class="column_header">
<th valign="top" class="left">Field</th> <th>Field</th>
<th valign="top" class="left">Value</th> <th>Value</th>
</tr> </tr>
<tr> <tr>
<td valign="top">Attachment ID:</td> <td>Attachment ID</td>
<td valign="top"> <td>
<a href="attachment.cgi?id=[% a.id FILTER html %]">[% a.id FILTER html %]</a> <a href="attachment.cgi?id=[% a.id FILTER html %]">[% a.id FILTER html %]</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td valign="top">File name:</td> <td>File name</td>
<td valign="top">[% a.filename FILTER html %]</td> <td>[% a.filename FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Description:</td> <td>Description</td>
<td valign="top">[% a.description FILTER html %]</td> <td>[% a.description FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Contained in [% terms.Bug %]:</td> <td>Contained in [% terms.Bug %]</td>
<td valign="top">[% a.bug_id FILTER bug_link(a.bug_id) FILTER none %]</td> <td>[% a.bug_id FILTER bug_link(a.bug_id) FILTER none %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Creator:</td> <td>Creator</td>
<td valign="top">[% a.attacher.identity FILTER html %]</td> <td>[% a.attacher.identity FILTER html %]</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Creation Date:</td> <td>Creation Date</td>
<td valign="top">[% a.attached FILTER time %]</td> <td>[% a.attached FILTER time %]</td>
</tr> </tr>
</table> </table>
<h2>Confirmation</h2> <h2>Confirmation</h2>
<table class="confirmation"> <p class="confirmation">
<tr> The content of this attachment will be deleted in an <b>irreversible</b> way.
<td> </p>
The content of this attachment will be deleted in an <b>irreversible</b> way.
</td>
</tr>
</table>
<p>Do you really want to delete this attachment?</p> <p>Do you really want to delete this attachment?</p>
......
...@@ -44,7 +44,7 @@ incremental_restore() ...@@ -44,7 +44,7 @@ incremental_restore()
[% FOREACH section = sections %] [% FOREACH section = sections %]
[% section_num = section_num + 1 %] [% section_num = section_num + 1 %]
<tr><th colspan="4" class="section_head"> <tr><th colspan="4" class="section_head">
<table id="[% file.filename FILTER html %]_sec[% section_num %]" cellpadding="0" cellspacing="0"> <table id="[% file.filename FILTER html %]_sec[% section_num %]">
<tr><th width="95%" class="left"> <tr><th width="95%" class="left">
[% IF file.is_add %] [% IF file.is_add %]
Added Added
......
...@@ -42,7 +42,7 @@ function toggle_display(link) { ...@@ -42,7 +42,7 @@ function toggle_display(link) {
</script> </script>
<br> <br>
<table id="attachment_table" cellspacing="0" cellpadding="4"> <table id="attachment_table">
<tr id="a0"> <tr id="a0">
<th colspan="[% show_attachment_flags ? 3 : 2 %]" class="left"> <th colspan="[% show_attachment_flags ? 3 : 2 %]" class="left">
Attachments Attachments
...@@ -65,7 +65,7 @@ function toggle_display(link) { ...@@ -65,7 +65,7 @@ function toggle_display(link) {
[% " bz_private" IF attachment.isprivate %] [% " bz_private" IF attachment.isprivate %]
[% " bz_tr_obsolete bz_default_hidden" [% " bz_tr_obsolete bz_default_hidden"
IF attachment.isobsolete %]"> IF attachment.isobsolete %]">
<td valign="top"> <td>
[% IF attachment.datasize %] [% IF attachment.datasize %]
<a href="attachment.cgi?id=[% attachment.id %]" <a href="attachment.cgi?id=[% attachment.id %]"
title="View the content of the attachment"> title="View the content of the attachment">
...@@ -102,7 +102,7 @@ function toggle_display(link) { ...@@ -102,7 +102,7 @@ function toggle_display(link) {
</td> </td>
[% IF show_attachment_flags %] [% IF show_attachment_flags %]
<td class="bz_attach_flags" valign="top"> <td class="bz_attach_flags">
[% IF attachment.flags.size == 0 %] [% IF attachment.flags.size == 0 %]
<i>no flags</i> <i>no flags</i>
[% ELSE %] [% ELSE %]
...@@ -129,7 +129,7 @@ function toggle_display(link) { ...@@ -129,7 +129,7 @@ function toggle_display(link) {
</td> </td>
[% END %] [% END %]
<td valign="top"> <td>
<a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">Details</a> <a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">Details</a>
[% IF attachment.ispatch && feature_enabled('patch_viewer') %] [% IF attachment.ispatch && feature_enabled('patch_viewer') %]
| <a href="attachment.cgi?id=[% attachment.id %]&amp;action=diff">Diff</a> | <a href="attachment.cgi?id=[% attachment.id %]&amp;action=diff">Diff</a>
......
...@@ -33,8 +33,8 @@ ...@@ -33,8 +33,8 @@
[% END %] [% END %]
[% IF operations.size > 0 %] [% IF operations.size > 0 %]
<table border cellpadding="4"> <table id="bug_activity">
<tr> <tr class="column_header">
<th>Who</th> <th>Who</th>
<th>When</th> <th>When</th>
<th>What</th> <th>What</th>
...@@ -44,10 +44,10 @@ ...@@ -44,10 +44,10 @@
[% FOREACH operation = operations %] [% FOREACH operation = operations %]
<tr> <tr>
<td rowspan="[% operation.changes.size %]" valign="top"> <td rowspan="[% operation.changes.size %]">
[% operation.who FILTER email FILTER html %] [% operation.who FILTER email FILTER html %]
</td> </td>
<td rowspan="[% operation.changes.size %]" valign="top"> <td rowspan="[% operation.changes.size %]">
[% operation.when FILTER time %] [% operation.when FILTER time %]
</td> </td>
[% FOREACH change = operation.changes %] [% FOREACH change = operation.changes %]
......
...@@ -49,7 +49,8 @@ ...@@ -49,7 +49,8 @@
<!-- This auto-sizes the comments and positions the collapse/expand links <!-- This auto-sizes the comments and positions the collapse/expand links
to the right. --> to the right. -->
<table class="bz_comment_table" cellpadding="0" cellspacing="0"><tr> <table class="bz_comment_table">
<tr>
<td> <td>
[% FOREACH comment = comments %] [% FOREACH comment = comments %]
......
...@@ -47,22 +47,15 @@ function PutDescription() { ...@@ -47,22 +47,15 @@ function PutDescription() {
<p>Check the two lists of frequently-reported [% terms.bugs %]:</p> <p>Check the two lists of frequently-reported [% terms.bugs %]:</p>
[%# Include other products if sensible %]
[% IF product.name == "Firefox" %]
[% productstring = "product=Mozilla%20Application%20Suite&amp;product=Firefox" %]
[% ELSIF product.name == "Thunderbird" %]
[% productstring = "product=Mozilla%20Application%20Suite&amp;product=Thunderbird" %]
[% ELSE %]
[% productstring = BLOCK %]product=[% product.name FILTER uri %][% END %]
[% END %]
<p> <p>
<a href="duplicates.cgi?[% productstring %]&amp;format=simple" target="somebugs">All-time Top 100</a> (loaded initially) | <a href="duplicates.cgi?product=[% product.name FILTER uri %]&amp;format=simple"
<a href="duplicates.cgi?[% productstring %]&amp;format=simple&amp;sortby=delta&amp;reverse=1&amp;maxrows=100&amp;changedsince=14" target="somebugs">Hot in the last two weeks</a> target="somebugs">All-time Top 100</a> (loaded initially) |
<a href="duplicates.cgi?product=[% product.name FILTER uri %]&amp;format=simple&amp;sortby=delta&amp;reverse=1&amp;maxrows=100&amp;changedsince=14"
target="somebugs">Hot in the last two weeks</a>
</p> </p>
<iframe name="somebugs" id="somebugs" <iframe name="somebugs" id="somebugs"
src="duplicates.cgi?[% productstring %]&amp;format=simple"> src="duplicates.cgi?product=[% product.name FILTER uri %]&amp;format=simple">
</iframe> </iframe>
<p> <p>
...@@ -70,7 +63,7 @@ function PutDescription() { ...@@ -70,7 +63,7 @@ function PutDescription() {
a few key words having to do with your [% terms.bug %] in this box. a few key words having to do with your [% terms.bug %] in this box.
For example: <kbd><b>pop3 mail</b></kbd> or <kbd><b>copy paste</b></kbd>. For example: <kbd><b>pop3 mail</b></kbd> or <kbd><b>copy paste</b></kbd>.
The results will appear above. The results will appear above.
</p> </p>
[%# All bugs opened inside the past six months %] [%# All bugs opened inside the past six months %]
<form action="buglist.cgi" method="get" target="somebugs"> <form action="buglist.cgi" method="get" target="somebugs">
...@@ -78,16 +71,6 @@ function PutDescription() { ...@@ -78,16 +71,6 @@ function PutDescription() {
<input type="hidden" name="order" value="relevance desc"> <input type="hidden" name="order" value="relevance desc">
<input type="hidden" name="bug_status" value="__all__"> <input type="hidden" name="bug_status" value="__all__">
<input type="hidden" name="product" value="[% product.name FILTER html %]"> <input type="hidden" name="product" value="[% product.name FILTER html %]">
[% IF product.name == "Firefox" OR
product.name == "Thunderbird" OR
product.name == "Mozilla Application Suite" OR
product.name == "Camino" %]
<input type="hidden" name="product" value="Core">
<input type="hidden" name="product" value="Toolkit">
<input type="hidden" name="product" value="PSM">
<input type="hidden" name="product" value="NSPR">
<input type="hidden" name="product" value="NSS">
[% END %]
<input type="hidden" name="chfieldfrom" value="-6m"> <input type="hidden" name="chfieldfrom" value="-6m">
<input type="hidden" name="chfieldto" value="Now"> <input type="hidden" name="chfieldto" value="Now">
<input type="hidden" name="chfield" value="[Bug creation]"> <input type="hidden" name="chfield" value="[Bug creation]">
...@@ -112,7 +95,7 @@ function PutDescription() { ...@@ -112,7 +95,7 @@ function PutDescription() {
there, tell us all about it. there, tell us all about it.
</p> </p>
<form method="post" action="post_bug.cgi"> <form id="guided_form" method="post" action="post_bug.cgi">
<input type="hidden" name="format" value="guided"> <input type="hidden" name="format" value="guided">
<input type="hidden" name="assigned_to" value=""> <input type="hidden" name="assigned_to" value="">
<input type="hidden" name="priority" <input type="hidden" name="priority"
...@@ -121,105 +104,77 @@ function PutDescription() { ...@@ -121,105 +104,77 @@ function PutDescription() {
value="[% default.version FILTER html %]"> value="[% default.version FILTER html %]">
<input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]">
<table valign="top" cellpadding="5" cellspacing="5" border="0"> <table>
<tr class="guided_form_field"> <tr class="guided_form_field">
<td align="right" valign="top"> <th>Product</th>
<b>Product</b> <td>
</td>
<td valign="top">
<input type="hidden" name="product" value="[% product.name FILTER html %]"> <input type="hidden" name="product" value="[% product.name FILTER html %]">
[% product.name FILTER html %] [% product.name FILTER html %]
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="right" valign="top"> <th>Component</th>
<b>Component</b> <td>
</td> <select name="component" id="component" size="5" onchange="PutDescription()">
<td valign="top"> [% IF NOT default.component_ %]
<table border="0" cellpadding="0" cellspacing="0"> [% default.component_ = "General" %]
<tr> [% END %]
<td valign="top"> [% FOREACH c = product.components %]
<select name="component" id="component" <option value="[% c.name FILTER html %]"
size="5" onchange="PutDescription()"> [%+ 'selected="selected"' IF c.name == default.component_ %]>
[% IF NOT default.component_ %] [% c.name FILTER html %]
[%# Various b.m.o. products have a "General" component, </option>
which is a useful default. %] [% END %]
[% default.component_ = "General" %] </select>
[% END %]
[% FOREACH c = product.components %] <div id="description" class="comment">
<option value="[% c.name FILTER html %]" <script type="text/javascript">
[% " selected=\"selected\"" IF c.name == default.component_ %]> if ((document.getElementById) && (document.body.innerHTML)) {
[% c.name FILTER html %] document.write("Select a component to see its description here.");
</option> }
[% END %] </script>
</select> </div>
</td>
<td valign="top" width="100%">
<div id="description" class="comment">
<script type="text/javascript">
if ((document.getElementById) && (document.body.innerHTML)) {
document.write("\
Select a component to see its description here.");
}
</script>
</div>
</td>
</tr>
</table>
<p> <p>
The area where the problem occurs. The area where the problem occurs.
To pick the right component, you could use the same one as To pick the right component, you could use the same one as
similar [% terms.bugs %] you found in your search, or read the full list of similar [% terms.bugs %] you found in your search, or read the full list of
<a target="_blank" href="describecomponents.cgi?product= <a href="describecomponents.cgi?product=[% product.name FILTER uri %]"
[% product.name FILTER uri %]">component target="_blank" >component descriptions</a> (opens in new window) if
descriptions</a> (opens in new window) if you need more help. you need more help.
</p> </p>
</td> </td>
</tr> </tr>
[%# We override rep_platform and op_sys for simplicity. The values chosen [%# We override rep_platform and op_sys for simplicity. %]
are based on which are most common in the b.m.o database %]
[% rep_platform = [ "PC", "Macintosh", "All", "Other" ] %] [% rep_platform = [ "PC", "Macintosh", "All", "Other" ] %]
<tr class="guided_form_field"> <tr class="guided_form_field">
<td align="right" valign="top"> <th>[% field_descs.rep_platform FILTER html %]</th>
<b>[% field_descs.rep_platform FILTER html %]</b> <td>
</td>
<td valign="top">
[% PROCESS select sel = 'rep_platform' %] [% PROCESS select sel = 'rep_platform' %]
</td> </td>
</tr> </tr>
[% op_sys = [ "Windows 2000", "Windows XP", "Windows Vista", "Windows 7", [% op_sys = [ "Windows XP", "Windows Vista", "Windows 7", "Windows 8",
"Mac OS X", "Linux", "All", "Other" ] %] "Mac OS X", "Linux", "All", "Other" ] %]
<tr> <tr>
<td align="right" valign="top"> <th>Operating System</th>
<b>Operating System</b> <td>
</td>
<td valign="top">
[% PROCESS select sel = 'op_sys' %] [% PROCESS select sel = 'op_sys' %]
</td> </td>
</tr> </tr>
[% IF product.name.match("Firefox|Camino|Mozilla Application Suite") %]
[% matches = cgi.user_agent('Gecko/(\d+)') %]
[% buildid = cgi.user_agent() IF matches %]
[% END %]
[%# Accept URL parameter build ID for non-browser products %] [%# Accept URL parameter build ID for non-browser products %]
[% IF cgi.param("buildid") %] [% IF cgi.param("buildid") %]
[% buildid = cgi.param("buildid") %] [% buildid = cgi.param("buildid") %]
[% END %] [% END %]
<tr class="guided_form_field"> <tr class="guided_form_field">
<td align="right" valign="top"> <th>Build Identifier</th>
<b>Build Identifier</b> <td>
</td>
<td valign="top">
<input type="text" size="80" name="buildid" value="[% buildid FILTER html %]"> <input type="text" size="80" name="buildid" value="[% buildid FILTER html %]">
<p> <p>
This should identify the exact version of the product you were using. This should identify the exact version of the product you were using.
...@@ -233,25 +188,18 @@ function PutDescription() { ...@@ -233,25 +188,18 @@ function PutDescription() {
</tr> </tr>
<tr> <tr>
<td align="right" valign="top"> <th>URL</th>
<b>URL</b> <td>
</td>
<td valign="top">
<input type="text" size="80" name="bug_file_loc" value="http://"> <input type="text" size="80" name="bug_file_loc" value="http://">
<p> <p>
URL that demonstrates the problem you are seeing (optional).<br> URL that demonstrates the problem you are seeing (optional).
<b>IMPORTANT</b>: if the problem is with a broken web page, you need
to report it
<a href="https://bugzilla.mozilla.org/page.cgi?id=broken-website.html">a different way</a>.
</p> </p>
</td> </td>
</tr> </tr>
<tr class="guided_form_field"> <tr class="guided_form_field">
<td align="right" valign="top"> <th>Summary</th>
<b>Summary</b> <td>
</td>
<td valign="top">
<input type="text" size="80" name="short_desc" id="short_desc" <input type="text" size="80" name="short_desc" id="short_desc"
maxlength="255" spellcheck="true"> maxlength="255" spellcheck="true">
<p> <p>
...@@ -272,10 +220,8 @@ function PutDescription() { ...@@ -272,10 +220,8 @@ function PutDescription() {
</tr> </tr>
<tr> <tr>
<td align="right" valign="top"> <th>Details</th>
<b>Details</b> <td>
</td>
<td valign="top">
[% INCLUDE global/textarea.html.tmpl [% INCLUDE global/textarea.html.tmpl
name = 'comment' name = 'comment'
minrows = 6 minrows = 6
...@@ -302,10 +248,8 @@ function PutDescription() { ...@@ -302,10 +248,8 @@ function PutDescription() {
</tr> </tr>
<tr class="guided_form_field"> <tr class="guided_form_field">
<td align="right" valign="top"> <th>Reproducibility</th>
<b>Reproducibility</b> <td>
</td>
<td valign="top">
<select name="reproducible"> <select name="reproducible">
<option name="AlwaysReproducible" value="Always"> <option name="AlwaysReproducible" value="Always">
Happens every time. Happens every time.
...@@ -324,10 +268,8 @@ function PutDescription() { ...@@ -324,10 +268,8 @@ function PutDescription() {
</tr> </tr>
<tr> <tr>
<td align="right" valign="top"> <th>Steps to Reproduce</th>
<b>Steps to Reproduce</b> <td>
</td>
<td valign="top">
[% INCLUDE global/textarea.html.tmpl [% INCLUDE global/textarea.html.tmpl
name = 'reproduce_steps' name = 'reproduce_steps'
minrows = 4 minrows = 4
...@@ -342,10 +284,8 @@ function PutDescription() { ...@@ -342,10 +284,8 @@ function PutDescription() {
</tr> </tr>
<tr class="guided_form_field"> <tr class="guided_form_field">
<td valign="top" align="right"> <th>Actual Results</th>
<b>Actual Results</b> <td>
</td>
<td valign="top">
[% INCLUDE global/textarea.html.tmpl [% INCLUDE global/textarea.html.tmpl
name = 'actual_results' name = 'actual_results'
minrows = 4 minrows = 4
...@@ -358,10 +298,8 @@ function PutDescription() { ...@@ -358,10 +298,8 @@ function PutDescription() {
</tr> </tr>
<tr> <tr>
<td valign="top" align="right"> <th>Expected Results</th>
<b>Expected Results</b> <td>
</td>
<td valign="top">
[% INCLUDE global/textarea.html.tmpl [% INCLUDE global/textarea.html.tmpl
name = 'expected_results' name = 'expected_results'
minrows = 4 minrows = 4
...@@ -374,10 +312,8 @@ function PutDescription() { ...@@ -374,10 +312,8 @@ function PutDescription() {
</tr> </tr>
<tr class="guided_form_field"> <tr class="guided_form_field">
<td valign="top" align="right"> <th>Additional Information</th>
<b>Additional Information</b> <td>
</td>
<td valign="top">
[% INCLUDE global/textarea.html.tmpl [% INCLUDE global/textarea.html.tmpl
name = 'additional_info' name = 'additional_info'
minrows = 8 minrows = 8
...@@ -387,8 +323,7 @@ function PutDescription() { ...@@ -387,8 +323,7 @@ function PutDescription() {
Add any additional information you feel may be Add any additional information you feel may be
relevant to this [% terms.bug %], such as the <b>theme</b> you were relevant to this [% terms.bug %], such as the <b>theme</b> you were
using (does the [% terms.bug %] still occur using (does the [% terms.bug %] still occur
with the default theme?), a with the default theme?), or special
<b><a href="http://kb.mozillazine.org/Quality_Feedback_Agent">Talkback crash ID</a></b>, or special
information about <b>your computer's configuration</b>. Any information information about <b>your computer's configuration</b>. Any information
longer than a few lines, such as a <b>stack trace</b> or <b>HTML longer than a few lines, such as a <b>stack trace</b> or <b>HTML
testcase</b>, should be added testcase</b>, should be added
...@@ -406,10 +341,8 @@ function PutDescription() { ...@@ -406,10 +341,8 @@ function PutDescription() {
</tr> </tr>
<tr> <tr>
<td valign="top" align="right"> <th>[% field_descs.bug_severity FILTER html %]</th>
<b>[% field_descs.bug_severity FILTER html %]</b> <td>
</td>
<td valign="top">
<select name="bug_severity"> <select name="bug_severity">
<option name="critical" value="critical"> <option name="critical" value="critical">
Critical: The software crashes, hangs, or causes you to Critical: The software crashes, hangs, or causes you to
......
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
</td> </td>
[%# 2nd Column %] [%# 2nd Column %]
<td id="bz_show_bug_column_2" class="bz_show_bug_column"> <td id="bz_show_bug_column_2" class="bz_show_bug_column">
<table cellpadding="3" cellspacing="1"> <table>
[%# *** Reported and modified dates *** %] [%# *** Reported and modified dates *** %]
[% PROCESS section_dates %] [% PROCESS section_dates %]
...@@ -143,7 +143,8 @@ ...@@ -143,7 +143,8 @@
</tr> </tr>
</table> </table>
<table id="bz_big_form_parts" cellspacing="0" cellpadding="0"><tr> <table id="bz_big_form_parts">
<tr>
<td> <td>
[% IF user.is_timetracker %] [% IF user.is_timetracker %]
[% PROCESS section_timetracking %] [% PROCESS section_timetracking %]
...@@ -618,7 +619,7 @@ ...@@ -618,7 +619,7 @@
<tr> <tr>
<th>&nbsp;</th> <th>&nbsp;</th>
<td colspan="2" align="left" id="show_dependency_tree_or_graph"> <td colspan="2" id="show_dependency_tree_or_graph">
Show dependency <a href="showdependencytree.cgi?id=[% bug.bug_id %]&amp;hide_resolved=1">tree</a> Show dependency <a href="showdependencytree.cgi?id=[% bug.bug_id %]&amp;hide_resolved=1">tree</a>
[% IF Param('webdotbase') %] [% IF Param('webdotbase') %]
...@@ -1123,8 +1124,7 @@ ...@@ -1123,8 +1124,7 @@
<br> <br>
[% PROCESS commit_button id=""%] [% PROCESS commit_button id=""%]
<table id="bug_status_bottom" <table id="bug_status_bottom" class="status">
class="status" cellspacing="0" cellpadding="0">
<tr> <tr>
<th class="field_label"> <th class="field_label">
<a href="page.cgi?id=fields.html#bug_status">Status</a>: <a href="page.cgi?id=fields.html#bug_status">Status</a>:
......
...@@ -18,7 +18,9 @@ ...@@ -18,7 +18,9 @@
#%] #%]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = 'Verify New Product Details...' %] title = 'Verify New Product Details...'
style_urls = ['skins/standard/buglist.css']
%]
<form action="process_bug.cgi" method="post"> <form action="process_bug.cgi" method="post">
...@@ -150,23 +152,23 @@ ...@@ -150,23 +152,23 @@
} }
</script> </script>
<table border="1"> <table id="groups_edit_multiple">
<tr> <tr>
<th>Remove<br>[% terms.bugs %]<br>from this<br>group</th> <th class="narrow_column">Remove [% terms.bugs %] from this group</th>
<th>Add<br>[% terms.bugs %]<br>to this<br>group</th> <th class="narrow_column">Add [% terms.bugs %] to this group</th>
<th>Group Name:</th> <th>Group Name</th>
</tr> </tr>
[% FOREACH group = optional_groups %] [% FOREACH group = optional_groups %]
<tr> <tr>
<td align="center"> <td class="center">
<input type="checkbox" name="defined_groups" <input type="checkbox" name="defined_groups"
id="defined_group_[% group.group.id FILTER html %]" id="defined_group_[% group.group.id FILTER html %]"
value="[% group.group.name FILTER html %]" value="[% group.group.name FILTER html %]"
[% IF cgi.param("defined_groups").contains(group.group.name) %] checked="checked"[% END %] [% IF cgi.param("defined_groups").contains(group.group.name) %] checked="checked"[% END %]
onchange="turn_off(this, 'group_[% group.group.id FILTER html %]')"> onchange="turn_off(this, 'group_[% group.group.id FILTER html %]')">
</td> </td>
<td align="center"> <td class="center">
<input type="checkbox" name="groups" <input type="checkbox" name="groups"
id="group_[% group.group.id FILTER html %]" id="group_[% group.group.id FILTER html %]"
value="[% group.group.name FILTER html %]" value="[% group.group.name FILTER html %]"
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
[% BLOCK owner_report %] [% BLOCK owner_report %]
[% global.total = 0 global.bug_count = {} global.owner_count = {} %] [% global.total = 0 global.bug_count = {} global.owner_count = {} %]
<table cellpadding="4" cellspacing="0" width="90%" class="realitems owner"> <table class="realitems owner">
[% FOREACH owner = workdata.keys.sort %] [% FOREACH owner = workdata.keys.sort %]
[% INCLUDE do_one_owner owner=owner ownerdata=workdata.$owner [% INCLUDE do_one_owner owner=owner ownerdata=workdata.$owner
detailed=detailed %] detailed=detailed %]
...@@ -128,7 +128,7 @@ ...@@ -128,7 +128,7 @@
[% BLOCK number_report %] [% BLOCK number_report %]
[% global.total = 0 global.owner_count = {} global.bug_count = {} %] [% global.total = 0 global.owner_count = {} global.bug_count = {} %]
<table cellpadding="4" cellspacing="0" width="90%" class="realitems number"> <table class="realitems number">
[% FOREACH bug = workdata.keys.nsort %] [% FOREACH bug = workdata.keys.nsort %]
[% INCLUDE do_one_bug id=bug bugdata=workdata.$bug [% INCLUDE do_one_bug id=bug bugdata=workdata.$bug
detailed=detailed %] detailed=detailed %]
...@@ -188,7 +188,7 @@ ...@@ -188,7 +188,7 @@
<tr class="bug_header[% '2' IF cid % 2 %]"> <tr class="bug_header[% '2' IF cid % 2 %]">
<td>&nbsp;</td> <td>&nbsp;</td>
<td colspan="3"> <td colspan="3">
<table width="100%" cellpadding="0" cellspacing="0"> <table>
<tr> <tr>
<td width="33%"> <td width="33%">
Estimated: [% bugs.$id.estimated_time FILTER format("%.2f") %]h Estimated: [% bugs.$id.estimated_time FILTER format("%.2f") %]h
...@@ -222,7 +222,7 @@ ...@@ -222,7 +222,7 @@
[% BLOCK inactive_report %] [% BLOCK inactive_report %]
<h3>Inactive [% terms.bugs %]</h3> <h3>Inactive [% terms.bugs %]</h3>
<table cellpadding="4" cellspacing="0" width="90%" class="zeroitems"> <table class="zeroitems">
[% cid = 0 %] [% cid = 0 %]
[% FOREACH bug_id = null.nsort %] [% FOREACH bug_id = null.nsort %]
[% INCLUDE bug_header id=bug_id cid=cid %] [% INCLUDE bug_header id=bug_id cid=cid %]
...@@ -296,7 +296,7 @@ ...@@ -296,7 +296,7 @@
</td></tr> </td></tr>
<tr> <tr>
<td>&nbsp;</td><td colspan="4"> <td>&nbsp;</td><td colspan="4">
<small>(Dates are optional, and in YYYY-MM-DD format)</small> <span class="bz_info">(Dates are optional, and in YYYY-MM-DD format)</span>
</td> </td>
<tr><td align="right"> <tr><td align="right">
<b>Group by</b>: <b>Group by</b>:
......
...@@ -274,7 +274,6 @@ ...@@ -274,7 +274,6 @@
'bug/create/create-guided.html.tmpl' => [ 'bug/create/create-guided.html.tmpl' => [
'sel', 'sel',
'productstring',
], ],
'bug/activity/table.html.tmpl' => [ 'bug/activity/table.html.tmpl' => [
......
...@@ -440,15 +440,14 @@ ...@@ -440,15 +440,14 @@
</script> </script>
</samp> </samp>
<table cellpadding="20"> <div id="error_msg" class="throw_error">
<tr> [% error_message FILTER none %]
<td id="error_msg" class="throw_error"> </div>
[% error_message FILTER none %]
</td> <p id="post_err_msg">
</tr> Traceback:
</table> </p>
<p>Traceback:</p>
<pre>[% traceback FILTER html %]</pre> <pre>[% traceback FILTER html %]</pre>
[% IF variables %] [% IF variables %]
......
...@@ -79,21 +79,13 @@ ...@@ -79,21 +79,13 @@
<p>Please go back and try other names or email addresses.</p> <p>Please go back and try other names or email addresses.</p>
[% END %] [% END %]
<table border="0"> <table id="user_match_table">
<tr>
<td colspan="2">
<hr width="100%" size="1">
</td>
</tr>
[%# this is messy to allow later expansion %]
[% FOREACH field = matches %] [% FOREACH field = matches %]
<tr> <tr>
<td align="left" valign="top"> <td>
[% PROCESS field_names field_name=field.key %]: [% PROCESS field_names field_name=field.key %]:
</td> </td>
<td align="left" valign="top"> <td>
[% FOREACH query = field.value %] [% FOREACH query = field.value %]
<div class="user_match"> <div class="user_match">
<b>[% query.key FILTER html %]</b> <b>[% query.key FILTER html %]</b>
...@@ -148,14 +140,8 @@ ...@@ -148,14 +140,8 @@
[% END %] [% END %]
</td> </td>
</tr> </tr>
<tr>
<td colspan="2">
<hr width="100%" size="1">
</td>
</tr>
[% END %] [% END %]
</table>
</table>
[% IF matchsuccess == 1 %] [% IF matchsuccess == 1 %]
......
...@@ -11,26 +11,17 @@ ...@@ -11,26 +11,17 @@
# global/useful-links.html.tmpl. # global/useful-links.html.tmpl.
#%] #%]
[% Hook.process('main-end') %] [% Hook.process('main-end') %]
</div> </div>
[%# Migration note: below this point, this file corresponds to the old Param <div id="footer">
# 'footerhtml' <div class="intro">[% Hook.process('intro') %]</div>
#%]
<div id="footer">
<div class="intro">[% Hook.process('intro') %]</div>
[%# Migration note: the old param 'blurbhtml' goes here %]
[%# Migration note: useful-links.html.tmpl corresponds to %commandmenu% %]
[% PROCESS "global/useful-links.html.tmpl" %]
<div class="outro">[% Hook.process('outro') %]</div> [% PROCESS "global/useful-links.html.tmpl" %]
</div>
[% Hook.process("end") %] <div class="outro">[% Hook.process('outro') %]</div>
</div>
</body> [% Hook.process("end") %]
</body>
</html> </html>
...@@ -86,8 +86,6 @@ ...@@ -86,8 +86,6 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
[% END %] [% END %]
[%# Migration note: contents of the old Param 'headerhtml' would go here %]
[% PROCESS "global/site-navigation.html.tmpl" %] [% PROCESS "global/site-navigation.html.tmpl" %]
[% PROCESS 'global/setting-descs.none.tmpl' %] [% PROCESS 'global/setting-descs.none.tmpl' %]
...@@ -215,75 +213,58 @@ ...@@ -215,75 +213,58 @@
[% Hook.process("additional_header") %] [% Hook.process("additional_header") %]
</head> </head>
[%# Migration note: contents of the old Param 'bodyhtml' go in the body tag, <body [% IF onload %] onload="[% onload %]"[% END %]
# but set the onload attribute in the DEFAULT directive above.
#%]
<body onload="[% onload %]"
class="[% urlbase.replace('^https?://','').replace('/$','').replace('[-~@:/.]+','-') FILTER css_class_quote %] class="[% urlbase.replace('^https?://','').replace('/$','').replace('[-~@:/.]+','-') FILTER css_class_quote %]
[% FOREACH class = bodyclasses %] [% FOREACH class = bodyclasses %]
[% ' ' %][% class FILTER css_class_quote %] [%+ class FILTER css_class_quote %]
[% END %] yui-skin-sam"> [% END %] yui-skin-sam">
[%# Migration note: the following file corresponds to the old Param <div id="header">
# 'bannerhtml' [% INCLUDE global/banner.html.tmpl %]
#%]
<div id="titles">
<div id="header"> <span id="title">[% terms.Bugzilla %][% " &ndash; $header" IF header %]</span>
[% INCLUDE global/banner.html.tmpl %] [% IF subheader %]
<span id="subtitle" class="subheader">[% subheader %]</span>
<table border="0" cellspacing="0" cellpadding="0" id="titles"> [% END %]
<tr>
<td id="title"> [% IF header_addl_info %]
<p>[% terms.Bugzilla %] <span id="information" class="header_addl_info">[% header_addl_info %]</span>
[% " &ndash; $header" IF header %]</p> [% END %]
</td> </div>
[% IF subheader %] <div id="common_links">
<td id="subtitle"> [% PROCESS "global/common-links.html.tmpl" qs_suffix = "_top" %]
<p class="subheader">[% subheader %]</p> </div>
</td>
[% END %] [% IF Bugzilla.languages.size > 1 %]
<div id="lang_links_container" class="bz_default_hidden">
[% IF header_addl_info %] <ul class="links">
<td id="information"> [% FOREACH lang = Bugzilla.languages.sort %]
<p class="header_addl_info">[% header_addl_info %]</p> <li>
</td> [% IF NOT loop.first %]<span class="separator"> | </span>[% END %]
[% END %] [% IF lang == current_language %]
</tr> <span class="lang_current">[% lang FILTER html FILTER upper %]</span>
</table> [% ELSE %]
<a href="#" onclick="set_language('[% lang FILTER none %]');">
<table id="lang_links_container" cellpadding="0" cellspacing="0" [%- lang FILTER html FILTER upper %]</a>
class="bz_default_hidden"><tr><td> [% END %]
[% IF Bugzilla.languages.size > 1 %] </li>
<ul class="links"> [% END %]
[% FOREACH lang = Bugzilla.languages.sort %] </ul>
<li>[% IF NOT loop.first %]<span class="separator"> | </span>[% END %] </div>
[% IF lang == current_language %]
<span class="lang_current">[% lang FILTER html FILTER upper %]</span>
[% ELSE %]
<a href="#" onclick="set_language('[% lang FILTER none %]');">
[%- lang FILTER html FILTER upper %]</a>
[% END %] [% END %]
</li> </div>
[% END %]
</ul>
[% END %]
</td></tr></table>
[% PROCESS "global/common-links.html.tmpl" qs_suffix = "_top" %]
</div> [%# header %]
<div id="bugzilla-body">
[% IF Param('announcehtml') %] <div id="bugzilla-body">
[% Param('announcehtml') FILTER none %] [% IF Param('announcehtml') %]
[% END %] [% Param('announcehtml') FILTER none %]
[% END %]
[% IF message %] [% IF message %]
<div id="message">[% message %]</div> <div id="message">[% message %]</div>
[% END %] [% END %]
[% BLOCK format_css_link %] [% BLOCK format_css_link %]
[% IF style_url.match('/IE-fixes\.css') %] [% IF style_url.match('/IE-fixes\.css') %]
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#%] #%]
<div class="tabbed"> <div class="tabbed">
<table class="tabs" cellspacing="0" cellpadding="10" border="0" width="100%"> <table class="tabs">
<tr> <tr>
<td class="spacer">&nbsp;</td> <td class="spacer">&nbsp;</td>
......
...@@ -1930,15 +1930,11 @@ ...@@ -1930,15 +1930,11 @@
admindocslinks = admindocslinks admindocslinks = admindocslinks
%] %]
<table cellpadding="20"> <div id="error_msg" class="throw_error">
<tr> [% error_message FILTER none %]
<td id="error_msg" class="throw_error"> </div>
[% error_message FILTER none %]
</td>
</tr>
</table>
<p> <p id="post_err_msg">
Please press <b>Back</b> and try again. Please press <b>Back</b> and try again.
</p> </p>
......
...@@ -318,23 +318,23 @@ ...@@ -318,23 +318,23 @@
</script> </script>
<b>Groups:</b><br> <b>Groups:</b><br>
<table border="1"> <table id="groups_edit_multiple">
<tr> <tr>
<th>Remove<br>[% terms.bugs %]<br>from this<br>group</th> <th class="narrow_column">Remove [% terms.bugs %] from this group</th>
<th>Add<br>[% terms.bugs %]<br>to this<br>group</th> <th class="narrow_column">Add [% terms.bugs %] to this group</th>
<th>Group Name:</th> <th>Group Name</th>
</tr> </tr>
[% FOREACH group = groups %] [% FOREACH group = groups %]
<tr> <tr>
<td align="center"> <td class="center">
<input type="checkbox" name="defined_groups" <input type="checkbox" name="defined_groups"
id="defined_group_[% group.id %]" id="defined_group_[% group.id %]"
value="[% group.name FILTER html %]" value="[% group.name FILTER html %]"
onchange="turn_off(this, 'group_[% group.id %]')"> onchange="turn_off(this, 'group_[% group.id %]')">
</td> </td>
[% IF group.is_active %] [% IF group.is_active %]
<td align="center"> <td class="center">
<input type="checkbox" name="groups" <input type="checkbox" name="groups"
id="group_[% group.id FILTER html %]" id="group_[% group.id FILTER html %]"
value="[% group.name FILTER html %]" value="[% group.name FILTER html %]"
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title title = title
style = style
atomlink = "buglist.cgi?$urlquerypart&title=$title&ctype=atom" atomlink = "buglist.cgi?$urlquerypart&title=$title&ctype=atom"
yui = [ 'autocomplete', 'calendar' ] yui = [ 'autocomplete', 'calendar' ]
javascript_urls = [ "js/util.js", "js/field.js", "js/TUI.js" ] javascript_urls = [ "js/util.js", "js/field.js", "js/TUI.js" ]
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "$terms.Bugzilla Quip System" title = "$terms.Bugzilla Quip System"
header = "Add your own clever headline" header = "Add your own clever headline"
style_urls = ['skins/standard/buglist.css']
%] %]
<p> <p>
...@@ -69,13 +70,17 @@ ...@@ -69,13 +70,17 @@
<input type="hidden" name="action" value="approve"> <input type="hidden" name="action" value="approve">
<input type="hidden" name="token" <input type="hidden" name="token"
value="[% issue_hash_token(['approve-quips']) FILTER html %]"> value="[% issue_hash_token(['approve-quips']) FILTER html %]">
<table border="1"> <table id="quips">
<thead><tr> <thead>
<tr class="column_header">
<th>Quip</th> <th>Quip</th>
<th>Author</th> <th>Author</th>
<th>Action</th> <th>Action</th>
<th>Approved</th> <th>Approved</th>
</tr></thead><tbody> </tr>
</thead>
<tbody>
[% FOREACH quipid = quipids %] [% FOREACH quipid = quipids %]
<tr> <tr>
<td>[% quips.$quipid.quip FILTER html %]</td> <td>[% quips.$quipid.quip FILTER html %]</td>
...@@ -90,7 +95,7 @@ ...@@ -90,7 +95,7 @@
Delete Delete
</a> </a>
</td> </td>
<td> <td class="center">
<input type="hidden" name="defined_quipid_[% quipid FILTER html %]" <input type="hidden" name="defined_quipid_[% quipid FILTER html %]"
id="defined_quipid_[% quipid FILTER html %]" id="defined_quipid_[% quipid FILTER html %]"
value="1"> value="1">
......
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
[%############################################################################%] [%############################################################################%]
[% tableheader = BLOCK %] [% tableheader = BLOCK %]
<table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%"> <table class="bz_buglist">
<tr class="bz_buglist_header bz_first_buglist_header"> <tr class="bz_buglist_header bz_first_buglist_header">
[% IF dotweak %] [% IF dotweak %]
<th>&nbsp;</th> <th>&nbsp;</th>
......
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
[% END %] [% END %]
<table cellspacing="0" cellpadding="0" border="0" class="qs_fields"> <table class="qs_fields">
<thead> <thead>
<tr> <tr>
<th class="field_name">Field</th> <th class="field_name">Field</th>
...@@ -221,7 +221,7 @@ ...@@ -221,7 +221,7 @@
specific fields, there are certain characters or words that you can specific fields, there are certain characters or words that you can
use as a "shortcut" for searching certain fields:</p> use as a "shortcut" for searching certain fields:</p>
<table cellspacing="0" cellpadding="0" border="0" class="qs_fields"> <table class="qs_fields">
<thead> <thead>
<tr> <tr>
<th class="field_name">Field</th> <th class="field_name">Field</th>
......
...@@ -794,7 +794,7 @@ ...@@ -794,7 +794,7 @@
<h3 id="v42_req_modules">Required Perl Modules</h3> <h3 id="v42_req_modules">Required Perl Modules</h3>
<table class="req_table" border="0" cellpadding="0" cellspacing="0"> <table class="req_table">
<tbody> <tbody>
<tr> <tr>
<th>Module</th> <th>Module</th>
...@@ -857,7 +857,7 @@ ...@@ -857,7 +857,7 @@
features of [% terms.Bugzilla %]:</p> features of [% terms.Bugzilla %]:</p>
<table class="req_table" border="0" cellpadding="0" cellspacing="0"> <table class="req_table">
<tbody> <tbody>
<tr> <tr>
<th>Module</th> <th>Module</th>
...@@ -1443,7 +1443,7 @@ ...@@ -1443,7 +1443,7 @@
<h3 id="v40_req_modules">Required Perl Modules</h3> <h3 id="v40_req_modules">Required Perl Modules</h3>
<table cellspacing="0" cellpadding="0" border="0" class="req_table"> <table class="req_table">
<tbody> <tbody>
<tr> <tr>
<th>Module</th><th>Version</th> <th>Module</th><th>Version</th>
...@@ -1501,7 +1501,7 @@ ...@@ -1501,7 +1501,7 @@
<p>The following perl modules, if installed, enable various <p>The following perl modules, if installed, enable various
features of [% terms.Bugzilla %]:</p> features of [% terms.Bugzilla %]:</p>
<table cellspacing="0" cellpadding="0" border="0" class="req_table"> <table class="req_table">
<tbody> <tbody>
<tr> <tr>
<th>Module</th><th>Version</th><th>Enables Feature</th> <th>Module</th><th>Version</th><th>Enables Feature</th>
...@@ -2241,7 +2241,7 @@ ...@@ -2241,7 +2241,7 @@
[% BLOCK req_table %] [% BLOCK req_table %]
<table class="req_table" border="0" cellspacing="0" cellpadding="0"> <table class="req_table">
<tr> <tr>
<th>Module</th> <th>Version</th> <th>Module</th> <th>Version</th>
[% IF include_feature %] [% IF include_feature %]
......
...@@ -203,7 +203,7 @@ ...@@ -203,7 +203,7 @@
<h3 id="v36_req_modules">Required Perl Modules</h3> <h3 id="v36_req_modules">Required Perl Modules</h3>
<table class="req_table" border="0" cellspacing="0" cellpadding="0"> <table class="req_table">
<tr> <tr>
<th>Module</th> <th>Version</th> <th>Module</th> <th>Version</th>
</tr> </tr>
...@@ -276,7 +276,7 @@ ...@@ -276,7 +276,7 @@
<p>The following perl modules, if installed, enable various <p>The following perl modules, if installed, enable various
features of [% terms.Bugzilla %]:</p> features of [% terms.Bugzilla %]:</p>
<table class="req_table" border="0" cellspacing="0" cellpadding="0"> <table class="req_table">
<tr> <tr>
<th>Module</th> <th>Version</th> <th>Module</th> <th>Version</th>
<th>Enables Feature</th> <th>Enables Feature</th>
...@@ -1156,7 +1156,7 @@ ...@@ -1156,7 +1156,7 @@
<h3 id="v34_req_modules">Required Perl Modules</h3> <h3 id="v34_req_modules">Required Perl Modules</h3>
<table class="req_table" border="0" cellspacing="0" cellpadding="0"> <table class="req_table">
<tr> <tr>
<th>Module</th> <th>Version</th> <th>Module</th> <th>Version</th>
</tr> </tr>
...@@ -1215,7 +1215,7 @@ ...@@ -1215,7 +1215,7 @@
<p>The following perl modules, if installed, enable various <p>The following perl modules, if installed, enable various
features of [% terms.Bugzilla %]:</p> features of [% terms.Bugzilla %]:</p>
<table class="req_table" border="0" cellspacing="0" cellpadding="0"> <table class="req_table">
<tr> <tr>
<th>Module</th> <th>Module</th>
<th>Version</th> <th>Version</th>
...@@ -1880,24 +1880,47 @@ ...@@ -1880,24 +1880,47 @@
<h3 id="v32_req_modules">Required Perl Modules</h3> <h3 id="v32_req_modules">Required Perl Modules</h3>
<table class="req_table" border="0" cellpadding="0" cellspacing="0"> <table class="req_table">
<tr> <th>Module</th> <th>Version</th> </tr> <tr>
<tr> <td>CGI</td> <td class="req_new">3.21 (on Perl 5.8.x) <th>Module</th>
or 3.33 (on Perl 5.10.x)</td> </tr> <th>Version</th>
<tr> <td>Date::Format</td> <td>2.21</td> </tr> </tr>
<tr> <td>File::Spec</td> <td>0.84</td> </tr> <tr>
<tr> <td>DBI</td> <td>1.41</td> </tr> <td>CGI</td>
<tr> <td>Template</td> <td class="req_new">2.15</td> </tr> <td class="req_new">3.21 (on Perl 5.8.x) or 3.33 (on Perl 5.10.x)</td>
<tr> <td>Email::Send</td> <td>2.00</td> </tr> </tr>
<tr> <td>Email::MIME</td> <td class="req_new">1.861</td> </tr> <tr>
<tr> <td>Date::Format</td>
<td class="req_new">Email::MIME::Encodings</td> <td>2.21</td>
<td class="req_new">1.313</td> </tr>
</tr> <tr>
<tr> <td>File::Spec</td>
<td>Email::MIME::Modifier</td> <td>0.84</td>
<td class="req_new">1.442</td> </tr>
</tr> <tr>
<td>DBI</td>
<td>1.41</td>
</tr>
<tr>
<td>Template</td>
<td class="req_new">2.15</td>
</tr>
<tr>
<td>Email::Send</td>
<td>2.00</td>
</tr>
<tr>
<td>Email::MIME</td>
<td class="req_new">1.861</td>
</tr>
<tr>
<td class="req_new">Email::MIME::Encodings</td>
<td class="req_new">1.313</td>
</tr>
<tr>
<td>Email::MIME::Modifier</td>
<td class="req_new">1.442</td>
</tr>
</table> </table>
<h3 id="v32_req_optional_mod">Optional Perl Modules</h3> <h3 id="v32_req_optional_mod">Optional Perl Modules</h3>
...@@ -1905,7 +1928,7 @@ ...@@ -1905,7 +1928,7 @@
<p>The following perl modules, if installed, enable various <p>The following perl modules, if installed, enable various
features of [% terms.Bugzilla %]:</p> features of [% terms.Bugzilla %]:</p>
<table class="req_table" border="0" cellpadding="0" cellspacing="0"> <table class="req_table">
<tr> <tr>
<th>Module</th> <th>Module</th>
<th>Version</th> <th>Version</th>
...@@ -2678,24 +2701,30 @@ ...@@ -2678,24 +2701,30 @@
<h3 id="v30_req_modules">Required Perl Modules</h3> <h3 id="v30_req_modules">Required Perl Modules</h3>
<table class="req_table" border="0" cellspacing="0" cellpadding="0"> <table class="req_table">
<tr> <tr>
<th>Module</th> <th>Version</th> <th>Module</th>
<th>Version</th>
</tr> </tr>
<tr><td>CGI</td> <td>2.93</td> <tr>
<td>CGI</td>
<td>2.93</td>
</tr> </tr>
<tr> <tr>
<td>Date::Format</td> <td>2.21</td> <td>Date::Format</td>
<td>2.21</td>
</tr> </tr>
<tr> <tr>
<td>DBI</td> <td>DBI</td>
<td class="req_new">1.41</td> <td class="req_new">1.41</td>
</tr> </tr>
<tr> <tr>
<td>File::Spec</td> <td>0.84</td> <td>File::Spec</td>
<td>0.84</td>
</tr> </tr>
<tr> <tr>
<td>Template</td> <td>2.12</td> <td>Template</td>
<td>2.12</td>
</tr> </tr>
<tr> <tr>
<td class="req_new">Email::Send</td> <td class="req_new">Email::Send</td>
...@@ -2716,9 +2745,10 @@ ...@@ -2716,9 +2745,10 @@
<p>The following perl modules, if installed, enable various <p>The following perl modules, if installed, enable various
features of [% terms.Bugzilla %]:</p> features of [% terms.Bugzilla %]:</p>
<table class="req_table" border="0" cellspacing="0" cellpadding="0"> <table class="req_table">
<tr> <tr>
<th>Module</th> <th>Version</th> <th>Module</th>
<th>Version</th>
<th>Enables Feature</th> <th>Enables Feature</th>
</tr> </tr>
<tr> <tr>
...@@ -3446,7 +3476,7 @@ sub y { $var++ }</pre> ...@@ -3446,7 +3476,7 @@ sub y { $var++ }</pre>
[% BLOCK req_table %] [% BLOCK req_table %]
<table class="req_table" border="0" cellspacing="0" cellpadding="0"> <table class="req_table">
<tr> <tr>
<th>Module</th> <th>Version</th> <th>Module</th> <th>Version</th>
[% IF include_feature %] [% IF include_feature %]
......
...@@ -26,39 +26,23 @@ ...@@ -26,39 +26,23 @@
[% numcols = 2 %] [% numcols = 2 %]
[% END %] [% END %]
<table cellpadding="0" cellspacing="0" id="components_header_table"> <h1>[% product.name FILTER html %]</h1>
<tr>
<td class="instructions">
Select a component to see open [% terms.bugs %] in that component:
</td>
<td class="product_container">
<span class="product_name">[% product.name FILTER html %]</span>
<div class="product_desc">
[% product.description FILTER html_light %]
</div>
</td>
</tr>
</table>
<span class="components_header">Components</span> <div class="product_desc">[% product.description FILTER html_light %]</div>
<p>Select a component to see open [% terms.bugs %] in that component.</p>
<table summary="Components table" <table class="component_table">
class="component_table" cellspacing="0" cellpadding="0">
<thead>
<tr> <tr>
<th>&nbsp;</th> <th>Component</th>
<th>Default Assignee</th> <th>Default Assignee</th>
[% IF Param("useqacontact") %] [% IF Param("useqacontact") %]
<th>Default QA Contact</th> <th>Default QA Contact</th>
[% END %] [% END %]
</tr> </tr>
</thead>
<tbody>
[% FOREACH comp = product.components %] [% FOREACH comp = product.components %]
[% INCLUDE describe_comp %] [% INCLUDE describe_comp %]
[% END %] [% END %]
</tbody>
</table> </table>
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
[% base_args_string = base_args.join('&amp;') %] [% base_args_string = base_args.join('&amp;') %]
[% IF bugs.size %] [% IF bugs.size %]
<table id="duplicates_table" cellpadding="0" cellspacing="0"> <table id="duplicates_table">
<thead> <thead>
<tr> <tr>
[% FOREACH column = columns %] [% FOREACH column = columns %]
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
# name: the name of the keyword # name: the name of the keyword
# description: keyword description. Can contain some limited HTML code. # description: keyword description. Can contain some limited HTML code.
# bug_count: number of bugs with that keyword # bug_count: number of bugs with that keyword
# caneditkeywords: boolean. True if this user can edit keywords
%] %]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
...@@ -20,27 +19,19 @@ ...@@ -20,27 +19,19 @@
style_urls = ['skins/standard/admin.css'] style_urls = ['skins/standard/admin.css']
%] %]
[% FOREACH keyword = keywords %] <table id="admin_table">
[% IF loop.index % 50 == 0 %] <tr class="column_header">
[% IF loop.index != 0 %] <th>Name</th>
</table> <th>Description</th>
[% END %] <th>Open [% terms.Bugs %]</th>
<th>Total [% terms.Bugs %]</th>
<table border="1" cellpadding="4" cellspacing="0"> </tr>
<tr class="column_header">
<th>Name</th>
<th>Description</th>
<th>Open [% terms.Bugs %]</th>
<th>Total [% terms.Bugs %]</th>
</tr>
[% END %]
[% FOREACH keyword = keywords %]
<tr id="[% keyword.name FILTER html %]"> <tr id="[% keyword.name FILTER html %]">
<th> <td>[% keyword.name FILTER html %]</td>
[% keyword.name FILTER html %]
</th>
<td>[% keyword.description FILTER html_light %]</td> <td>[% keyword.description FILTER html_light %]</td>
<td align="center"> <td class="center">
[% IF keyword.bug_count > 0 %] [% IF keyword.bug_count > 0 %]
<a href="buglist.cgi?keywords=[% keyword.name FILTER uri %]&amp;resolution=---"> <a href="buglist.cgi?keywords=[% keyword.name FILTER uri %]&amp;resolution=---">
Search</a> Search</a>
...@@ -48,7 +39,7 @@ ...@@ -48,7 +39,7 @@
none none
[% END %] [% END %]
</td> </td>
<td align="right"> <td class="right">
[% IF keyword.bug_count > 0 %] [% IF keyword.bug_count > 0 %]
<a href="buglist.cgi?keywords=[% keyword.name FILTER uri %]"> <a href="buglist.cgi?keywords=[% keyword.name FILTER uri %]">
[% keyword.bug_count %]</a> [% keyword.bug_count %]</a>
...@@ -57,13 +48,10 @@ ...@@ -57,13 +48,10 @@
[% END %] [% END %]
</td> </td>
</tr> </tr>
[% END %] [% END %]
</table>
[% IF keywords.size > 0 %]
</table>
[% END %]
[% IF caneditkeywords %] [% IF user.in_group("editkeywords") %]
<p> <p>
<a href="editkeywords.cgi">Edit keywords</a>. <a href="editkeywords.cgi">Edit keywords</a>.
</p> </p>
......
...@@ -15,19 +15,20 @@ ...@@ -15,19 +15,20 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "$terms.Bug Charts" title = "$terms.Bug Charts"
h1 = "Welcome to the $terms.Bugzilla Charting Kitchen" h1 = "Welcome to the $terms.Bugzilla Charting Kitchen"
style_urls = ['skins/standard/reports.css']
doc_section = "reporting.html#charts" doc_section = "reporting.html#charts"
%] %]
<div align="center"> [% IF url_image %]
[% IF url_image %] <div class="center">
<img src="[% url_image FILTER html %]"> <img src="[% url_image FILTER html %]">
<br clear="both"> </div>
[% ELSE %] [% ELSE %]
<form id="choose_product" method="get" action="reports.cgi"> <form id="choose_product" method="get" action="reports.cgi">
<table border="1" cellpadding="5" cellspacing="2"> <table id="old_charts">
<tr> <tr>
<th>Product:</th> <th>Product:</th>
<td align="center"> <td>
<select id="product_id" name="product_id"> <select id="product_id" name="product_id">
[% FOREACH product = products %] [% FOREACH product = products %]
<option value="[% product.id FILTER html %]">[% product.name || '-All-' FILTER html %]</option> <option value="[% product.id FILTER html %]">[% product.name || '-All-' FILTER html %]</option>
...@@ -37,7 +38,7 @@ ...@@ -37,7 +38,7 @@
</tr> </tr>
<tr> <tr>
<th>Chart datasets:</th> <th>Chart datasets:</th>
<td align="center"> <td>
<select id="datasets" name="datasets" multiple="multiple" size="5"> <select id="datasets" name="datasets" multiple="multiple" size="5">
[%# We cannot use translated statuses and resolutions from field-descs.none.html [%# We cannot use translated statuses and resolutions from field-descs.none.html
# because old charts do not distinguish statuses from resolutions. %] # because old charts do not distinguish statuses from resolutions. %]
...@@ -56,7 +57,6 @@ ...@@ -56,7 +57,6 @@
</tr> </tr>
</table> </table>
</form> </form>
[% END %] [% END %]
</div>
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
...@@ -141,7 +141,7 @@ YAHOO.util.Event.addListener(window, "load", function() { ...@@ -141,7 +141,7 @@ YAHOO.util.Event.addListener(window, "load", function() {
<tr> <tr>
<td> <td>
</td> </td>
<td align="center"> <td class="center">
<strong>[% col_field_disp FILTER html %]</strong> <strong>[% col_field_disp FILTER html %]</strong>
</td> </td>
</tr> </tr>
...@@ -158,7 +158,7 @@ YAHOO.util.Event.addListener(window, "load", function() { ...@@ -158,7 +158,7 @@ YAHOO.util.Event.addListener(window, "load", function() {
[% row_idx = 0 %] [% row_idx = 0 %]
[% total_key = '-total-' %] [% total_key = '-total-' %]
<div id="tabular_report_container_[% tbl FILTER html %]"> <div id="tabular_report_container_[% tbl FILTER html %]">
<table id="tabular_report" border="1"> <table id="tabular_report">
[% IF col_field %] [% IF col_field %]
<thead> <thead>
<tr> <tr>
...@@ -182,14 +182,14 @@ YAHOO.util.Event.addListener(window, "load", function() { ...@@ -182,14 +182,14 @@ YAHOO.util.Event.addListener(window, "load", function() {
[% FOREACH row = row_names %] [% FOREACH row = row_names %]
[% row_idx = 1 - row_idx %] [% row_idx = 1 - row_idx %]
<tr> <tr>
<td class="[% classes.$row_idx.$col_idx %]" align="right"> <td class="[% classes.$row_idx.$col_idx %] right">
[% PROCESS value_display value = row field = row_field %] [% PROCESS value_display value = row field = row_field %]
</td> </td>
[% FOREACH col = col_names %] [% FOREACH col = col_names %]
[% NEXT IF col == "" %] [% NEXT IF col == "" %]
[% col_idx = 1 - col_idx %] [% col_idx = 1 - col_idx %]
<td class="[% classes.$row_idx.$col_idx %]" align="center"> <td class="[% classes.$row_idx.$col_idx %]">
[% IF data.$tbl.$col.$row AND data.$tbl.$col.$row > 0 %] [% IF data.$tbl.$col.$row AND data.$tbl.$col.$row > 0 %]
<a href="[% urlbase %]&amp; <a href="[% urlbase %]&amp;
[% row_field FILTER uri %]=[% row FILTER uri %]&amp; [% row_field FILTER uri %]=[% row FILTER uri %]&amp;
...@@ -200,7 +200,7 @@ YAHOO.util.Event.addListener(window, "load", function() { ...@@ -200,7 +200,7 @@ YAHOO.util.Event.addListener(window, "load", function() {
[% END %] [% END %]
</td> </td>
[% END %] [% END %]
<td class="ttotal" align="right"> <td class="ttotal right">
<a href="[% urlbase %]&amp; <a href="[% urlbase %]&amp;
[% row_field FILTER uri %]=[% row FILTER uri %] [% row_field FILTER uri %]=[% row FILTER uri %]
[% "&amp;$col_vals" IF col_vals %]"> [% "&amp;$col_vals" IF col_vals %]">
...@@ -216,14 +216,14 @@ YAHOO.util.Event.addListener(window, "load", function() { ...@@ -216,14 +216,14 @@ YAHOO.util.Event.addListener(window, "load", function() {
[% FOREACH col = col_names %] [% FOREACH col = col_names %]
[% NEXT IF col == "" %] [% NEXT IF col == "" %]
<td class="ttotal" align="center"> <td class="ttotal">
<a href="[% urlbase %]&amp; <a href="[% urlbase %]&amp;
[% col_field FILTER uri %]=[% col FILTER uri %] [% col_field FILTER uri %]=[% col FILTER uri %]
[% "&amp;$row_vals" IF row_vals %]"> [% "&amp;$row_vals" IF row_vals %]">
[% data.$tbl.$col.$total_key OR 0 FILTER html %]</a> [% data.$tbl.$col.$total_key OR 0 FILTER html %]</a>
</td> </td>
[% END %] [% END %]
<td class="ttotal" align="right"> <td class="ttotal right">
<strong> <strong>
<a href="[% urlbase %] <a href="[% urlbase %]
[% "&amp;$row_vals" IF row_vals %] [% "&amp;$row_vals" IF row_vals %]
......
...@@ -212,7 +212,7 @@ to some group are shown by default. ...@@ -212,7 +212,7 @@ to some group are shown by default.
<h3>[% column_headers.$group_field %]: <h3>[% column_headers.$group_field %]:
[%+ (request.$group_field || "None") FILTER email FILTER html %]</h3> [%+ (request.$group_field || "None") FILTER email FILTER html %]</h3>
<table class="requests" cellspacing="0" cellpadding="4" border="1"> <table class="requests">
<tr> <tr>
[% FOREACH column = display_columns %] [% FOREACH column = display_columns %]
[% NEXT IF column == group_field || excluded_columns.contains(column) %] [% NEXT IF column == group_field || excluded_columns.contains(column) %]
......
...@@ -36,7 +36,7 @@ for "crash secure SSL flash". ...@@ -36,7 +36,7 @@ for "crash secure SSL flash".
} }
</script> </script>
<table summary="Search fields" class="bz_simple_search_form"> <table class="bz_simple_search_form">
<tr> <tr>
<th> <th>
<label for="bug_status">[% field_descs.bug_status FILTER html %]:</label> <label for="bug_status">[% field_descs.bug_status FILTER html %]:</label>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment