Commit 2b574f4d authored by Frédéric Buclin's avatar Frédéric Buclin

Bug 840407: Remove the "align" and "valign" attributes

r/a=justdave
parent d4f65f36
...@@ -66,12 +66,6 @@ hr { ...@@ -66,12 +66,6 @@ hr {
/* edit */ /* edit */
#bugzilla-body th {
font-weight: bold;
vertical-align: top;
white-space: nowrap;
}
#bug-form td { #bug-form td {
padding-top: 2px; padding-top: 2px;
} }
......
...@@ -43,10 +43,6 @@ p.areyoureallyreallysure { ...@@ -43,10 +43,6 @@ p.areyoureallyreallysure {
border: 1px solid black; border: 1px solid black;
} }
#admin_table th, #flag_types_bugs th, #flag_types_attachments th {
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_bugs th , #flag_types_bugs td,
#flag_types_attachments th, #flag_types_attachments td { #flag_types_attachments th, #flag_types_attachments td {
...@@ -88,12 +84,9 @@ td.admin_links dt.forbidden a, td.admin_links dd.forbidden a { ...@@ -88,12 +84,9 @@ td.admin_links dt.forbidden a, td.admin_links dd.forbidden a {
cursor: default; cursor: default;
} }
.col-header { .open-status, .closed-status {
width: 8em; width: 8em;
} padding: 0.3em;
.checkbox-cell {
border: 1px black solid;
} }
/* Grey-green color */ /* Grey-green color */
...@@ -175,7 +168,6 @@ table.whining_list th, table.whining_list td, ...@@ -175,7 +168,6 @@ table.whining_list th, table.whining_list td,
table.whining_list th { table.whining_list th {
text-align: right; text-align: right;
font-weight: normal !important; font-weight: normal !important;
white-space: normal !important;
} }
table.whining_list th.subtitle { table.whining_list th.subtitle {
...@@ -212,3 +204,12 @@ table.schedule_list th, table.search_list th { ...@@ -212,3 +204,12 @@ table.schedule_list th, table.search_list th {
#mass-remove legend { #mass-remove legend {
white-space: nowrap; white-space: nowrap;
} }
#workflow {
border-collapse: collapse;
}
#workflow td {
border: 1px dotted black;
text-align: center;
}
...@@ -207,8 +207,13 @@ div#update_container { ...@@ -207,8 +207,13 @@ div#update_container {
margin-left: 2%; margin-left: 2%;
} }
.viewall_desc { .viewall_frame_container {
width: 75%; width: 75%;
margin: 2em auto;
}
.viewall_desc {
width: 100%;
border: 1px solid black; border: 1px solid black;
border-spacing: 0px; border-spacing: 0px;
border-collapse: collapse; border-collapse: collapse;
...@@ -220,7 +225,7 @@ div#update_container { ...@@ -220,7 +225,7 @@ div#update_container {
} }
.viewall_frame { .viewall_frame {
width: 75%; width: 100%;
height: 350px; height: 350px;
} }
......
...@@ -5,7 +5,8 @@ ...@@ -5,7 +5,8 @@
* This Source Code Form is "Incompatible With Secondary Licenses", as * This Source Code Form is "Incompatible With Secondary Licenses", as
* defined by the Mozilla Public License, v. 2.0. * defined by the Mozilla Public License, v. 2.0.
*/ */
.bz_query_head {
#groups_edit_multiple th, .bz_query_head {
text-align: center; text-align: center;
} }
...@@ -121,6 +122,15 @@ td.bz_total { ...@@ -121,6 +122,15 @@ td.bz_total {
color: inherit; color: inherit;
} }
.buglist_menu {
margin-top: 1em;
}
.buglist_menu div {
display: inline-block;
vertical-align: middle;
}
#groups_edit_multiple, #quips { #groups_edit_multiple, #quips {
border: 1px solid black; border: 1px solid black;
border-collapse: collapse; border-collapse: collapse;
...@@ -132,11 +142,6 @@ td.bz_total { ...@@ -132,11 +142,6 @@ td.bz_total {
padding: 0.3em; padding: 0.3em;
} }
#groups_edit_multiple th, #quips th {
text-align: center;
white-space: normal !important;
}
#groups_edit_multiple th.narrow_column { #groups_edit_multiple th.narrow_column {
width: 8em; width: 8em;
} }
......
...@@ -25,6 +25,11 @@ ...@@ -25,6 +25,11 @@
clear: both; clear: both;
} }
#bugzilla-body th {
font-weight: bold;
vertical-align: top;
}
/* global (end) */ /* global (end) */
/* header (begin) */ /* header (begin) */
...@@ -402,6 +407,10 @@ table#flags td { ...@@ -402,6 +407,10 @@ table#flags td {
padding: 0.3em; padding: 0.3em;
} }
#email_prefs th.role_header {
width: 10%;
}
#bug_activity td { #bug_activity td {
vertical-align: top; vertical-align: top;
} }
...@@ -410,6 +419,25 @@ table#flags td { ...@@ -410,6 +419,25 @@ table#flags td {
padding: 0.5em; padding: 0.5em;
} }
#permissions {
margin-left: auto;
margin-right: auto;
width: 40em;
}
#permissions p {
margin-top: 2em;
margin-bottom: 0.5em;
}
#permissions li {
list-style-type: none;
}
#permissions table td {
vertical-align: top;
}
.column_header { .column_header {
background-color: #66f; background-color: #66f;
} }
...@@ -684,6 +712,10 @@ form th { ...@@ -684,6 +712,10 @@ form th {
text-align: right; text-align: right;
} }
.middle {
vertical-align: middle;
}
.inline { .inline {
display: inline; display: inline;
} }
......
...@@ -33,13 +33,17 @@ ...@@ -33,13 +33,17 @@
padding: 0.2em 0.5em; padding: 0.2em 0.5em;
} }
#params_index {
padding-left: 1em;
}
div.table { div.table {
display: inline-table; display: inline-table;
} }
div.cell { div.cell {
display: table-cell; display: table-cell;
vertical-align: top; vertical-align: top;
} }
td.selected_section { td.selected_section {
......
...@@ -66,13 +66,20 @@ ...@@ -66,13 +66,20 @@
background-color: #cfffdf; /* light green */ background-color: #cfffdf; /* light green */
} }
#tabular_report { .tabular_report_container {
/* Force tables to be horizontally centered */
margin-left: auto;
margin-right: auto;
text-align: center;
}
.tabular_report {
border: 1px dotted black; border: 1px dotted black;
border-collapse: collapse; border-collapse: collapse;
text-align: center; text-align: center;
} }
#tabular_report th, #tabular_report td { .tabular_report th, .tabular_report td {
border: 1px dotted; border: 1px dotted;
padding: 0.2em; padding: 0.2em;
} }
......
...@@ -192,3 +192,34 @@ div.bz_section_title span { ...@@ -192,3 +192,34 @@ div.bz_section_title span {
.bz_simple_search_form th { .bz_simple_search_form th {
text-align: right; text-align: right;
} }
#tabular_reports_menu, #graphical_reports_menu {
width: 30em;
margin: 2em auto;
}
#tabular_reports_menu th, #graphical_reports_menu th {
vertical-align: middle;
white-space: nowrap;
padding: 0.3em;
}
#tabular_reports_menu th {
text-align: center;
}
#graphical_reports_menu th {
text-align: left;
}
#graphical_reports_menu label {
font-weight: normal;
}
th#reports_menu_multiple_tables {
text-align: center;
width: 15em;
height: 15em;
border: 1px solid black;
border-collapse: collapse;
}
...@@ -6,8 +6,6 @@ ...@@ -6,8 +6,6 @@
* defined by the Mozilla Public License, v. 2.0. * defined by the Mozilla Public License, v. 2.0.
*/ */
td { vertical-align: top }
table.zeroitems, table.realitems { table.zeroitems, table.realitems {
margin-left: 2.0em; margin-left: 2.0em;
margin-top: 2px; margin-top: 2px;
...@@ -22,6 +20,9 @@ tr.section_total { ...@@ -22,6 +20,9 @@ tr.section_total {
td.subtotal { td.subtotal {
background: #B0C0D9; background: #B0C0D9;
text-align: right;
font-weight: bold;
width: 8em;
} }
.zeroitems .bug_header { background: #d0e0f0 } .zeroitems .bug_header { background: #d0e0f0 }
...@@ -51,3 +52,14 @@ table.owner, table.number, table.zeroitems { ...@@ -51,3 +52,14 @@ table.owner, table.number, table.zeroitems {
margin: 1em; margin: 1em;
padding: 0.5em; padding: 0.5em;
} }
th.bug_id, th.bug_status {
white-space: nowrap;
text-align: left;
padding-right: 2em;
width: 6em;
}
.time_info {
padding-right: 3em;
}
...@@ -68,24 +68,14 @@ ...@@ -68,24 +68,14 @@
[% END %] [% END %]
<form id="account_creation_form" method="get" action="createaccount.cgi"> <form id="account_creation_form" method="get" action="createaccount.cgi">
<table> <span class="label">
<tr> [% IF Param('emailsuffix') %]
<td align="right"> Login:
<b> [% ELSE %]
[% IF Param('emailsuffix') %] Email address:
Login: [% END %]
[% ELSE %] </span>
Email address: <input size="35" id="login" name="login"> [% Param('emailsuffix') FILTER html %]
[% END %]
</b>
</td>
<td>
<input size="35" id="login" name="login">
[% Param('emailsuffix') FILTER html %]
</td>
</tr>
</table>
<br>
<input type="hidden" id="token" name="token" value="[% issue_hash_token(['create_account']) FILTER html %]"> <input type="hidden" id="token" name="token" value="[% issue_hash_token(['create_account']) FILTER html %]">
<input type="submit" id="send" value="Send"> <input type="submit" id="send" value="Send">
</form> </form>
......
...@@ -60,61 +60,36 @@ function SetCheckboxes(setting) { ...@@ -60,61 +60,36 @@ function SetCheckboxes(setting) {
} }
} }
} }
document.write('<input type="button" value="Enable All Mail" onclick="SetCheckboxes(true); return false;">\n');
document.write('<input type="button" value="Disable All Mail" onclick="SetCheckboxes(false); return false;">\n');
// --> // -->
</script> </script>
<input type="button" value="Enable All Mail" onclick="SetCheckboxes(true); return false;">
<input type="button" value="Disable All Mail" onclick="SetCheckboxes(false); return false;">
<hr> <hr>
<table> <h3>Global options</h3>
<tr>
<td colspan="2"> [% prefname = "email-$constants.REL_ANY-$constants.EVT_FLAG_REQUESTED" %]
<b>Global options:</b> <input type="checkbox" name="[% prefname %]" id="[% prefname %]" value="1"
</td> [%+ 'checked="checked"' IF user.mail_settings.${constants.REL_ANY}.${constants.EVT_FLAG_REQUESTED} %]>
</tr> <label for="[% prefname %]">Email me when someone asks me to set a flag</label>
<br>
[% prefname = "email-$constants.REL_ANY-$constants.EVT_REQUESTED_FLAG" %]
<input type="checkbox" name="[% prefname %]" id="[% prefname %]" value="1"
[%+ 'checked="checked"' IF user.mail_settings.${constants.REL_ANY}.${constants.EVT_REQUESTED_FLAG} %]>
<label for="[% prefname %]">Email me when someone sets a flag I asked for</label>
<tr>
<td width="150"></td>
<td>
[% prefname = "email-$constants.REL_ANY-$constants.EVT_FLAG_REQUESTED" %]
<input type="checkbox" name="[% prefname %]" id="[% prefname %]"
value="1"
[% " checked"
IF user.mail_settings.${constants.REL_ANY}.${constants.EVT_FLAG_REQUESTED} %]>
<label for="[% prefname %]">Email me when someone asks me to set a flag</label>
<br>
</td>
</tr>
<tr>
<td width="150"></td>
<td>
[% prefname = "email-$constants.REL_ANY-$constants.EVT_REQUESTED_FLAG" %]
<input type="checkbox" name="[% prefname %]" id="[% prefname %]"
value="1"
[% " checked"
IF user.mail_settings.${constants.REL_ANY}.${constants.EVT_REQUESTED_FLAG} %]>
<label for="[% prefname %]">Email me when someone sets a flag I asked for</label>
<br>
</td>
</tr>
[% IF user.is_global_watcher %] [% IF user.is_global_watcher %]
<tr> <p>
<td width="150"></td> You are watching all [% terms.bugs %]. To be removed from this role, contact
<td> <a href="mailto:[% Param("maintainer") %]">[% Param("maintainer") %]</a>.
You are watching all [% terms.bugs %]. To be removed from this role, </p>
contact
<a href="mailto:[% Param("maintainer") %]">[% Param("maintainer") %]</a>.
</td>
</tr>
[% END %] [% END %]
</table>
<hr> <hr>
<b>Field/recipient specific options:</b>
<br> <h3>Field/recipient specific options</h3>
<br>
[% events = [ [% events = [
{ id = constants.EVT_ADDED_REMOVED, { id = constants.EVT_ADDED_REMOVED,
...@@ -173,39 +148,33 @@ document.write('<input type="button" value="Disable All Mail" onclick="SetCheckb ...@@ -173,39 +148,33 @@ document.write('<input type="button" value="Disable All Mail" onclick="SetCheckb
[% num_columns = relationships.size %] [% num_columns = relationships.size %]
<table id="email_prefs"> <table id="email_prefs">
<tr> <tr class="column_header">
<td colspan="[% num_columns FILTER html %]" align="center" width="50%"> <th colspan="[% num_columns FILTER html %]">
<b>When my relationship to this [% terms.bug %] is:</b> When my relationship to this [% terms.bug %] is:
</td> </th>
<td rowspan="2" width="40%"> <th>I want to receive mail when:</th>
<b>I want to receive mail when:</b>
</td>
</tr> </tr>
<tr> <tr>
[% FOREACH relationship = relationships %] [% FOREACH relationship = relationships %]
<th width="9%"> <th class="role_header">[% relationship.description FILTER html %]</th>
[% relationship.description FILTER html %]
</th>
[% END %] [% END %]
</tr> </tr>
[% FOREACH event = events %] [% FOREACH event = events %]
[% count = loop.count() %] [% count = loop.count() %]
<tr class="bz_row_[% count % 2 == 1 ? "odd" : "even" %]"> <tr class="bz_row_[% count % 2 == 1 ? "odd" : "even" %]">
[% FOREACH relationship = relationships %] [% FOREACH relationship = relationships %]
<td align="center"> <td class="center">
<input type="checkbox" <input type="checkbox" value="1"
name="email-[% relationship.id %]-[% event.id %]" name="email-[% relationship.id %]-[% event.id %]"
value="1" [%# The combinations don't always make sense; disable a couple %]
[%# The combinations don't always make sense; disable a couple %] [% IF event.id == constants.EVT_ADDED_REMOVED
[% IF event.id == constants.EVT_ADDED_REMOVED AND AND no_added_removed.contains(relationship.id) %]
no_added_removed.contains(relationship.id) disabled="disabled"
%] [% ELSIF user.mail_settings.${relationship.id}.${event.id} %]
disabled checked="checked"
[% ELSIF user.mail_settings.${relationship.id}.${event.id} %] [% END %]>
checked
[% END %]>
</td> </td>
[% END %] [% END %]
<td> <td>
...@@ -213,38 +182,30 @@ document.write('<input type="button" value="Disable All Mail" onclick="SetCheckb ...@@ -213,38 +182,30 @@ document.write('<input type="button" value="Disable All Mail" onclick="SetCheckb
</td> </td>
</tr> </tr>
[% END %] [% END %]
<tr> <tr class="column_header">
<td colspan="[% num_columns FILTER html %]" <th colspan="[% num_columns FILTER html %]">&nbsp;</th>
align="center" width="50%"> <th>but not when (overrides above):</th>
&nbsp;
</td>
<td width="40%">
<b>but not when (overrides above):</b>
</td>
</tr> </tr>
[% FOREACH event = neg_events %] [% FOREACH event = neg_events %]
[% count = loop.count() %] [% count = loop.count() %]
<tr class="bz_row_[% count % 2 == 1 ? "odd" : "even" %]"> <tr class="bz_row_[% count % 2 == 1 ? "odd" : "even" %]">
[% FOREACH relationship = relationships %] [% FOREACH relationship = relationships %]
<td align="center"> <td class="center">
<input type="checkbox" <input type="checkbox" value="1"
name="neg-email-[% relationship.id %]-[% event.id %]" name="neg-email-[% relationship.id %]-[% event.id %]"
value="1" [%+ 'checked="checked"' IF NOT user.mail_settings.${relationship.id}.${event.id} %]>
[% " checked" IF NOT user.mail_settings.${relationship.id}.${event.id} %]>
</td> </td>
[% END %] [% END %]
<td> <td>[% event.description FILTER html %]</td>
[% event.description FILTER html %]
</td>
</tr> </tr>
[% END %] [% END %]
</table> </table>
<hr> <hr>
<b>User Watching</b>
<h3>User Watching</h3>
<p> <p>
If you watch a user, it is as if you are standing in their shoes for the If you watch a user, it is as if you are standing in their shoes for the
...@@ -253,22 +214,22 @@ preferences for <u>their</u> relationship to the [% terms.bug %] ...@@ -253,22 +214,22 @@ preferences for <u>their</u> relationship to the [% terms.bug %]
(e.g. Assignee). (e.g. Assignee).
</p> </p>
<p>
[% IF watchedusers.size %] [% IF watchedusers.size %]
You are watching everyone in the following list: <p>You are watching everyone in the following list:</p>
</p>
<p> <p>
<select id="watched_by_you" name="watched_by_you" multiple="multiple" size="5"> <select id="watched_by_you" name="watched_by_you" multiple="multiple" size="5">
[% FOREACH w = watchedusers %] [% FOREACH w = watchedusers %]
<option value="[% w FILTER html %]">[% w FILTER html %]</option> <option value="[% w FILTER html %]">[% w FILTER html %]</option>
[% END %] [% END %]
</select> <br /> </select>
<br>
<input type="checkbox" id="remove_watched_users" name="remove_watched_users"> <input type="checkbox" id="remove_watched_users" name="remove_watched_users">
<label for="remove_watched_users">Remove selected users from my watch list</label> <label for="remove_watched_users">Remove selected users from my watch list</label>
</p>
[% ELSE %] [% ELSE %]
You are currently not watching any users. <p>You are currently not watching any users.</p>
[% END %] [% END %]
</p>
<p id="new_watched_by_you">Add users to my watch list (comma separated list): <p id="new_watched_by_you">Add users to my watch list (comma separated list):
[% INCLUDE global/userselect.html.tmpl [% INCLUDE global/userselect.html.tmpl
...@@ -278,7 +239,7 @@ You are currently not watching any users. ...@@ -278,7 +239,7 @@ You are currently not watching any users.
size => 60 size => 60
multiple => 5 multiple => 5
%] %]
</p> </p>
<p id="watching_you">Users watching you:<br> <p id="watching_you">Users watching you:<br>
[% IF watchers.size %] [% IF watchers.size %]
...@@ -290,7 +251,9 @@ You are currently not watching any users. ...@@ -290,7 +251,9 @@ You are currently not watching any users.
[% END %] [% END %]
</p> </p>
<b>Ignore [% terms.Bugs %]</b> <hr>
<h3>Ignore [% terms.Bugs %]</h3>
<p> <p>
You can specify a list of [% terms.bugs %] from which you never want to get You can specify a list of [% terms.bugs %] from which you never want to get
...@@ -324,6 +287,8 @@ You are currently not watching any users. ...@@ -324,6 +287,8 @@ You are currently not watching any users.
</p> </p>
[% END %] [% END %]
<p>Add [% terms.bugs %]:<br> <p>
Add [% terms.bugs %]:<br>
<input type="text" id="add_ignored_bugs" <input type="text" id="add_ignored_bugs"
name="add_ignored_bugs" size="60"></p> name="add_ignored_bugs" size="60">
</p>
...@@ -17,12 +17,11 @@ ...@@ -17,12 +17,11 @@
# other people. # other people.
#%] #%]
<table align="center"> <div id="permissions">
<tr>
<td>
[% IF has_bits.size %] [% IF has_bits.size %]
You have the following permission bits set on your account: <p>You have the following permission bits set on your account:</p>
<table align="center">
<table>
[% FOREACH bit_description = has_bits %] [% FOREACH bit_description = has_bits %]
<tr> <tr>
<td>[% bit_description.name FILTER html %]</td> <td>[% bit_description.name FILTER html %]</td>
...@@ -34,46 +33,47 @@ ...@@ -34,46 +33,47 @@
[% FOREACH privs = ["editcomponents", "canconfirm", "editbugs"] %] [% FOREACH privs = ["editcomponents", "canconfirm", "editbugs"] %]
[% SET products = ${"local_$privs"} %] [% SET products = ${"local_$privs"} %]
[% IF products && products.size %] [% IF products && products.size %]
<br>
<p> <p>
You also have local '[% privs FILTER html %]' privileges You also have local '[% privs FILTER html %]' privileges
for the following products: for the following products:
</p> </p>
<p> <ul>
[% FOREACH product = products %] [% FOREACH product = products %]
[% product.name FILTER html %]<br> <li>[% product.name FILTER html %]</li>
[% END %] [% END %]
</p> </ul>
[% END %] [% END %]
[% END %] [% END %]
[% ELSE %] [% ELSE %]
There are no permission bits set on your account. <p>There are no permission bits set on your account.</p>
[% END %] [% END %]
[% IF user.in_group('editusers') %] [% IF user.in_group('editusers') %]
<br> <p>
You have editusers privileges. You can turn on and off You have editusers privileges. You can turn on and off all
all permissions for all users. permissions for all users.
</p>
[% ELSIF set_bits.size %] [% ELSIF set_bits.size %]
<br> <p>
And you can turn on or off the following bits for And you can turn on or off the following bits for
<a href="editusers.cgi">other users</a>: <a href="editusers.cgi">other users</a>:
<table align="center"> </p>
<table>
[% FOREACH bit_description = set_bits %] [% FOREACH bit_description = set_bits %]
<tr> <tr>
<td>[% bit_description.name FILTER html %]</td> <td>[% bit_description.name FILTER html %]</td>
<td>[% bit_description.desc FILTER html_light %]</td> <td>[% bit_description.desc FILTER html_light %]</td>
</tr> </tr>
[% END %] [% END %]
</table> </table>
[% END %] [% END %]
[% IF user.in_group('bz_sudoers') %] [% IF user.in_group('bz_sudoers') %]
<br> <p>
You are a member of the <b>bz_sudoers</b> group, so you can You are a member of the <b>bz_sudoers</b> group, so you can
<a href="relogin.cgi?action=prepare-sudo">impersonate someone else</a>. <a href="relogin.cgi?action=prepare-sudo">impersonate someone else</a>.
</p>
[% END %] [% END %]
</td> </div>
</tr>
</table>
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
<p>Your saved searches are as follows:</p> <p>Your saved searches are as follows:</p>
<blockquote>
<table id="saved_search_prefs"> <table id="saved_search_prefs">
<tr class="column_header"> <tr class="column_header">
<th>Search</th> <th>Search</th>
...@@ -53,7 +52,7 @@ ...@@ -53,7 +52,7 @@
</td> </td>
<td></td> <td></td>
<td></td> <td></td>
<td align="center"> <td class="center">
<input type="checkbox" name="showmybugslink" value="1" <input type="checkbox" name="showmybugslink" value="1"
[%+ 'checked="checked"' IF user.showmybugslink %]> [%+ 'checked="checked"' IF user.showmybugslink %]>
</td> </td>
...@@ -120,12 +119,12 @@ ...@@ -120,12 +119,12 @@
</tr> </tr>
[% END %] [% END %]
</table> </table>
[% IF user.can_bless %] [% IF user.can_bless %]
<p>Note that for every search that has the "Add to footer" selected, a <p>Note that for every search that has the "Add to footer" selected, a
link to the shared search is added to the footer of every user that is link to the shared search is added to the footer of every user that is
a direct member of the group at the time you click Submit Changes.</p> a direct member of the group at the time you click Submit Changes.</p>
[% END %] [% END %]
</blockquote>
[% 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>
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
[% default_name = name _ '-isdefault' %] [% default_name = name _ '-isdefault' %]
[% default_val = settings.${name}.default_value %] [% default_val = settings.${name}.default_value %]
<tr> <tr>
<td align="right"> <td class="right">
[% setting_descs.$name OR name FILTER html %] [% setting_descs.$name OR name FILTER html %]
</td> </td>
<td> <td>
......
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
[% columns.push({ [% columns.push({
name => 'bug_count' name => 'bug_count'
heading => "$terms.Bugs" heading => "$terms.Bugs"
align => "right" class => "right"
contentlink => bug_count_contentlink contentlink => bug_count_contentlink
}) %] }) %]
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
[% columns.push({ [% columns.push({
name => 'bug_count' name => 'bug_count'
heading => "$terms.Bugs" heading => "$terms.Bugs"
align => "right" class => "right"
contentlink => "buglist.cgi?product=%%name%%" contentlink => "buglist.cgi?product=%%name%%"
}) })
%] %]
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = title title = title
style_urls = ['skins/standard/admin.css']
doc_section = "flags-overview.html#flags-delete" doc_section = "flags-overview.html#flags-delete"
%] %]
...@@ -26,24 +27,14 @@ ...@@ -26,24 +27,14 @@
in the database but will not appear in the [% terms.Bugzilla %] UI. in the database but will not appear in the [% terms.Bugzilla %] UI.
</p> </p>
<table> <p class="confirmation">
<tr> Do you really want to delete this type?
<td colspan="2"> </p>
Do you really want to delete this type?
</td> <p>
</tr> <a href="editflagtypes.cgi?action=delete&amp;id=[% flag_type.id %]&amp;token=
<tr> [%- token FILTER html %]">Yes, delete</a> -
<td> <a href="editflagtypes.cgi">No, don't delete</a>
<a href="editflagtypes.cgi?action=delete&amp;id=[% flag_type.id %]&amp;token= </p>
[%- token FILTER html %]">Yes, delete
</a>
</td>
<td align="right">
<a href="editflagtypes.cgi">
No, don't delete
</a>
</td>
</tr>
</table>
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
{ {
name => "bug_count" name => "bug_count"
heading => "$terms.Bugs" heading => "$terms.Bugs"
align => "right" class => "right"
contentlink => "buglist.cgi?keywords=%%name%%" contentlink => "buglist.cgi?keywords=%%name%%"
}, },
{ {
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
[% columns.push({ [% columns.push({
name => "bug_count" name => "bug_count"
heading => "$terms.Bugs" heading => "$terms.Bugs"
align => "right" class => "right"
contentlink => bug_count_contentlink contentlink => bug_count_contentlink
}) })
%] %]
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
[% columns.push({ [% columns.push({
name => 'bug_count' name => 'bug_count'
heading => "$terms.Bugs" heading => "$terms.Bugs"
align => "right" class => "right"
contentlink => "buglist.cgi?product=%%name%%" contentlink => "buglist.cgi?product=%%name%%"
}) })
%] %]
......
...@@ -68,19 +68,17 @@ ...@@ -68,19 +68,17 @@
</div> </div>
<div class="cell"> <div class="cell">
[% IF curpanel == -1 %] <div class="contribute"><strong>Note:</strong>
[% PROCESS admin/params/index.html.tmpl panels = panels %] B[% %]ugzilla is developed entirely by volunteers.
[% ELSE %] The best way to give back to the B[% %]ugzilla project is to
<a href="http://www.bugzilla.org/contribute/">contribute</a> yourself!
<div class="contribute"><strong>Note:</strong> You don't have to be a programmer to contribute, there are lots of
B[% %]ugzilla is developed entirely by volunteers. things that we need.
The best way to give back to the B[% %]ugzilla project is to </div>
<a href="http://www.bugzilla.org/contribute/">contribute</a>
yourself!
You don't have to be a programmer to contribute, there are lots of
things that we need.
</div>
[% IF curpanel == -1 %]
[% PROCESS admin/params/index.html.tmpl panels = panels %]
[% ELSE %]
<p> <p>
This lets you edit the basic operating parameters of [% terms.Bugzilla %]. This lets you edit the basic operating parameters of [% terms.Bugzilla %].
Be careful!<br> Be careful!<br>
...@@ -95,7 +93,7 @@ ...@@ -95,7 +93,7 @@
<input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]">
<input type="submit" id="save-params" value="Save Changes"> <input type="submit" id="save-params" value="Save Changes">
</form> </form>
[% END %] [% END %]
</div> </div>
</div> </div>
......
...@@ -6,33 +6,23 @@ ...@@ -6,33 +6,23 @@
# defined by the Mozilla Public License, v. 2.0. # defined by the Mozilla Public License, v. 2.0.
#%] #%]
<p> <div id="params_index">
All parameters are displayed below, per section. <p>
If you cannot find one from here, then the parameter does not exist. All parameters are displayed below, per section.
</p> If you cannot find one from here, then the parameter does not exist.
</p>
<div align="center"> [% FOREACH panel = panels %]
<table> <h3>[% panel.title FILTER html %]</h3>
<tr>
<th>Parameter</th> <ul>
<th>Section</th>
</tr>
[% FOREACH panel = panels %]
[% FOREACH param = panel.param_list.sort('name') %] [% FOREACH param = panel.param_list.sort('name') %]
<tr> <li>
<td> <a href="editparams.cgi?section=
<a href="editparams.cgi?section= [%- panel.name FILTER uri %]#[% param.name FILTER uri %]_desc">
[%- panel.name FILTER uri %]#[% param.name FILTER uri %]_desc"> [% param.name FILTER html %]</a>
[% param.name FILTER html %]</a> </li>
</td>
<td>
[% panel.title FILTER html %]
</td>
</tr>
[% END %] [% END %]
<tr> </ul>
<td>&nbsp;</td><td>&nbsp;</td> [% END %]
</tr>
[% END %]
</table>
</div> </div>
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
}, },
{ {
name => "product_count" name => "product_count"
align => "right" class => "right"
heading => "Product Count" heading => "Product Count"
} }
] ]
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
[% columns.push({ [% columns.push({
name => "bug_count" name => "bug_count"
heading => "$terms.Bug Count" heading => "$terms.Bug Count"
align => 'right' class => 'right'
contentlink => 'buglist.cgi?product=%%name%%' contentlink => 'buglist.cgi?product=%%name%%'
}) })
%] %]
......
...@@ -25,8 +25,6 @@ ...@@ -25,8 +25,6 @@
# field_descs hash will be used instead of "content." # field_descs hash will be used instead of "content."
# See fieldvalues/select-field for an example of use. # See fieldvalues/select-field for an example of use.
# This content WILL be HTML-filtered in this case. # This content WILL be HTML-filtered in this case.
# align: left/center/right. Controls the horizontal alignment of the
# text in the column.
# allow_html_content: if defined, then this column allows some html content # allow_html_content: if defined, then this column allows some html content
# and so it will be only partially filtered. # and so it will be only partially filtered.
# yesno_field: Turn the data from 0/!0 into Yes/No # yesno_field: Turn the data from 0/!0 into Yes/No
...@@ -89,7 +87,6 @@ ...@@ -89,7 +87,6 @@
[% contentlink = c.contentlink [% contentlink = c.contentlink
content = c.content content = c.content
content_use_field = c.content_use_field content_use_field = c.content_use_field
align = c.align
class = c.class class = c.class
allow_html_content = c.allow_html_content allow_html_content = c.allow_html_content
yesno_field = c.yesno_field yesno_field = c.yesno_field
...@@ -121,8 +118,7 @@ ...@@ -121,8 +118,7 @@
[% END %] [% END %]
[% END %] [% END %]
<td [% IF align %] align="[% align FILTER html %]" [% END %] <td [% IF class %] class="[% class FILTER html %]"[% END %]>
[% IF class %] class="[% class FILTER html %]" [% END %]>
[% IF contentlink %] [% IF contentlink %]
[% FOREACH m = contentlink.match('%%(.+?)%%', 1) %] [% FOREACH m = contentlink.match('%%(.+?)%%', 1) %]
...@@ -155,7 +151,7 @@ ...@@ -155,7 +151,7 @@
[% END %] [% END %]
[% IF data.size == 0 %] [% IF data.size == 0 %]
<tr><td colspan="[% columns.size %]" align="center"><i>&lt;none&gt;</i></td></tr> <tr><td colspan="[% columns.size %]" class="center"><i>&lt;none&gt;</i></td></tr>
[% END %] [% END %]
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
[% columns.push({ [% columns.push({
name => "bug_count" name => "bug_count"
heading => "$terms.Bugs" heading => "$terms.Bugs"
align => "right" class => "right"
contentlink => bug_count_contentlink contentlink => bug_count_contentlink
}) })
%] %]
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
[% columns.push({ [% columns.push({
name => 'bug_count' name => 'bug_count'
heading => "$terms.Bugs" heading => "$terms.Bugs"
align => "right" class => "right"
contentlink => "buglist.cgi?product=%%name%%" contentlink => "buglist.cgi?product=%%name%%"
}) })
%] %]
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
<!-- <!--
function toggle_cell(cell) { function toggle_cell(cell) {
if (cell.checked) if (cell.checked)
cell.parentNode.className = "checkbox-cell checked"; cell.parentNode.className = "checked";
else else
cell.parentNode.className = "checkbox-cell"; cell.parentNode.className = "";
} }
//--> //-->
</script> </script>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</p> </p>
<form id="workflow_form" method="POST" action="editworkflow.cgi"> <form id="workflow_form" method="POST" action="editworkflow.cgi">
<table> <table id="workflow">
<tr> <tr>
<th colspan="2">&nbsp;</th> <th colspan="2">&nbsp;</th>
<th colspan="[% statuses.size FILTER html %]" class="title">To</th> <th colspan="[% statuses.size FILTER html %]" class="title">To</th>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<th rowspan="[% statuses.size + 2 FILTER html %]" class="title">From</th> <th rowspan="[% statuses.size + 2 FILTER html %]" class="title">From</th>
<th>&nbsp;</th> <th>&nbsp;</th>
[% FOREACH status = statuses %] [% FOREACH status = statuses %]
<th class="col-header[% status.is_open ? " open-status" : " closed-status" %]"> <th class="[% status.is_open ? "open-status" : "closed-status" %] center">
[% display_value("bug_status", status.name) FILTER html %] [% display_value("bug_status", status.name) FILTER html %]
</th> </th>
[% END %] [% END %]
...@@ -54,22 +54,21 @@ ...@@ -54,22 +54,21 @@
[% FOREACH new_status = statuses %] [% FOREACH new_status = statuses %]
[% IF workflow.${status.id}.${new_status.id}.defined %] [% IF workflow.${status.id}.${new_status.id}.defined %]
<td align="center" class="checkbox-cell <td class="[% "checked" IF workflow.${status.id}.${new_status.id} %]"
[% " checked" IF workflow.${status.id}.${new_status.id} %]"
title="From [% status.name FILTER html %] to [% new_status.name FILTER html %]"> title="From [% status.name FILTER html %] to [% new_status.name FILTER html %]">
<input type="checkbox" name="c_[% status.id %]_[% new_status.id %]" <input type="checkbox" name="c_[% status.id %]_[% new_status.id %]"
id="c_[% status.id %]_[% new_status.id %]" onclick="toggle_cell(this)" id="c_[% status.id %]_[% new_status.id %]" onclick="toggle_cell(this)"
[% " checked='checked'" IF workflow.${status.id}.${new_status.id} %]> [% " checked='checked'" IF workflow.${status.id}.${new_status.id} %]>
</td> </td>
[% ELSE %] [% ELSE %]
<td class="checkbox-cell forbidden">&nbsp;</td> <td class="forbidden">&nbsp;</td>
[% END %] [% END %]
[% END %] [% END %]
</tr> </tr>
[% END %] [% END %]
</table> </table>
<p align="center"> <p class="center">
<input type="hidden" name="action" value="update_comment"> <input type="hidden" name="action" value="update_comment">
<input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]">
<input type="submit" id="update_comment" value="Commit Changes"> - <input type="submit" id="update_comment" value="Commit Changes"> -
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
<!-- <!--
function toggle_cell(cell) { function toggle_cell(cell) {
if (cell.checked) if (cell.checked)
cell.parentNode.className = "checkbox-cell checked"; cell.parentNode.className = "checked";
else else
cell.parentNode.className = "checkbox-cell"; cell.parentNode.className = "";
} }
//--> //-->
</script> </script>
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</p> </p>
<form id="workflow_form" method="POST" action="editworkflow.cgi"> <form id="workflow_form" method="POST" action="editworkflow.cgi">
<table> <table id="workflow">
<tr> <tr>
<th colspan="2">&nbsp;</th> <th colspan="2">&nbsp;</th>
<th colspan="[% statuses.size FILTER html %]" class="title">To</th> <th colspan="[% statuses.size FILTER html %]" class="title">To</th>
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<th rowspan="[% statuses.size + 2 FILTER html %]" class="title">From</th> <th rowspan="[% statuses.size + 2 FILTER html %]" class="title">From</th>
<th>&nbsp;</th> <th>&nbsp;</th>
[% FOREACH status = statuses %] [% FOREACH status = statuses %]
<th class="col-header[% status.is_open ? " open-status" : " closed-status" %]"> <th class="[% status.is_open ? "open-status" : "closed-status" %] center">
[% display_value("bug_status", status.name) FILTER html %] [% display_value("bug_status", status.name) FILTER html %]
</th> </th>
[% END %] [% END %]
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
[% IF status.id != new_status.id %] [% IF status.id != new_status.id %]
[% checked = workflow.${status.id}.${new_status.id}.defined ? 1 : 0 %] [% checked = workflow.${status.id}.${new_status.id}.defined ? 1 : 0 %]
[% mandatory = (status.id && new_status.name == Param("duplicate_or_move_bug_status")) ? 1 : 0 %] [% mandatory = (status.id && new_status.name == Param("duplicate_or_move_bug_status")) ? 1 : 0 %]
<td align="center" class="checkbox-cell[% " checked" IF checked || mandatory %]" <td class="[% "checked" IF checked || mandatory %]"
title="From [% status.name FILTER html %] to [% new_status.name FILTER html %]"> title="From [% status.name FILTER html %] to [% new_status.name FILTER html %]">
<input type="checkbox" name="w_[% status.id %]_[% new_status.id %]" <input type="checkbox" name="w_[% status.id %]_[% new_status.id %]"
id="w_[% status.id %]_[% new_status.id %]" onclick="toggle_cell(this)" id="w_[% status.id %]_[% new_status.id %]" onclick="toggle_cell(this)"
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
[%+ "disabled='disabled'" IF mandatory %]> [%+ "disabled='disabled'" IF mandatory %]>
</td> </td>
[% ELSE %] [% ELSE %]
<td class="checkbox-cell forbidden">&nbsp;</td> <td class="forbidden">&nbsp;</td>
[% END %] [% END %]
[% END %] [% END %]
</tr> </tr>
...@@ -87,7 +87,7 @@ ...@@ -87,7 +87,7 @@
page and editing the <i>duplicate_or_move_bug_status</i> parameter. page and editing the <i>duplicate_or_move_bug_status</i> parameter.
</p> </p>
<p align="center"> <p class="center">
<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 %]">
<input type="submit" id="update_workflow" value="Commit Changes"> - <input type="submit" id="update_workflow" value="Commit Changes"> -
......
...@@ -26,11 +26,9 @@ ...@@ -26,11 +26,9 @@
<a href="attachment.cgi?bugid=[% bug.id FILTER html %]&amp;action=viewall">click here</a>. <a href="attachment.cgi?bugid=[% bug.id FILTER html %]&amp;action=viewall">click here</a>.
</div> </div>
[% END %] [% END %]
<br>
[% FOREACH a = attachments %] [% FOREACH a = attachments %]
<div class="viewall_frame_container">
<div align="center">
<table class="viewall_desc"> <table class="viewall_desc">
<tr> <tr>
<th colspan="6" class="bz_attach_footer">Attachment #[% a.id %]</th> <th colspan="6" class="bz_attach_footer">Attachment #[% a.id %]</th>
...@@ -91,10 +89,7 @@ ...@@ -91,10 +89,7 @@
<a href="attachment.cgi?id=[% a.id %]">Download the attachment instead</a>. <a href="attachment.cgi?id=[% a.id %]">Download the attachment instead</a>.
</b></p> </b></p>
[% END %] [% END %]
</div> </div>
<br><br>
[% END %] [% END %]
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
...@@ -35,15 +35,13 @@ ...@@ -35,15 +35,13 @@
[% FOREACH workdata = part_list %] [% FOREACH workdata = part_list %]
[%# parts contains date ranges (from, to). %] [%# parts contains date ranges (from, to). %]
[% part = parts.shift %] [% part = parts.shift %]
<div align="right"> <h4>
<h4> [% IF part.0 or part.1 %]
[% IF part.0 or part.1 %] [% part.0 OR "Up" FILTER html %] to [% part.1 OR "now" FILTER html %]
[% part.0 OR "Up" FILTER html %] to [% part.1 OR "now" FILTER html %] [% ELSE %]
[% ELSE %] Full summary (no period specified)
Full summary (no period specified) [% END %]
[% END %] </h4>
</h4>
</div>
[% IF group_by == "number" %] [% IF group_by == "number" %]
[% INCLUDE number_report %] [% INCLUDE number_report %]
[% ELSE %] [% ELSE %]
...@@ -112,11 +110,10 @@ ...@@ -112,11 +110,10 @@
[% subtotal = subtotal + bugdata.total_time %] [% subtotal = subtotal + bugdata.total_time %]
[% END %] [% END %]
<tr> <tr>
<td colspan="4" align="right"><b>Total</b>:</td> <th colspan="4" class="right">Total:</th>
<td align="right" class="subtotal" width="100"> <td class="subtotal">[% subtotal FILTER format("%.2f") %]</td>
<b>[% subtotal FILTER format("%.2f") %]</b></td>
[% global.total = global.total + subtotal %]
</tr> </tr>
[% global.total = global.total + subtotal %]
[% END %] [% END %]
[%# [%#
...@@ -156,51 +153,42 @@ ...@@ -156,51 +153,42 @@
<tr class="owner_header[% 2 FILTER none IF cid % 2 %]"> <tr class="owner_header[% 2 FILTER none IF cid % 2 %]">
<td>&nbsp;</td> <td>&nbsp;</td>
<td colspan="2"><b>[% login_name FILTER html %]</b></td> <td colspan="2"><b>[% login_name FILTER html %]</b></td>
<td align="right"> <td class="right">
[% work_time FILTER format("%.2f") %]</td> [% work_time FILTER format("%.2f") %]</td>
</tr> </tr>
[% END %] [% END %]
[% END %] [% END %]
<tr> <tr>
<td colspan="2">&nbsp;</td> <th colspan="3" class="right">Total:</th>
<td align="right"> <td class="subtotal">[% subtotal FILTER format("%.2f") %]</td>
<b>Total</b>:
</td>
<td align="right" class="subtotal" width="100">
<b>[% subtotal FILTER format("%.2f") %]</b>
</td>
</tr> </tr>
[% global.total = global.total + subtotal %] [% global.total = global.total + subtotal %]
[% END %] [% END %]
[% BLOCK bug_header %] [% BLOCK bug_header %]
<tr class="bug_header[% '2' IF cid % 2 %]"> <tr class="bug_header[% '2' IF cid % 2 %]">
<td width="80" valign="top"> <th class="bug_id">[% "$terms.Bug $id" FILTER bug_link(id) FILTER none %]</th>
<b>[% "$terms.Bug $id" FILTER bug_link(id) FILTER none %]</b> <th class="bug_status">
</td> [% display_value("bug_status", bugs.$id.bug_status) FILTER html %]
<td width="100"><b>[% display_value("bug_status", bugs.$id.bug_status) FILTER html %]</b></td> </th>
<td colspan="2">[% bugs.$id.short_desc FILTER html %]</td> <td colspan="2">[% bugs.$id.short_desc FILTER html %]</td>
[% IF extra %] [% IF extra %]
<td align="right" valign="top">[% bugdata.total_time FILTER html %]</td> <td class="right">[% bugdata.total_time FILTER html %]</td>
[% END %] [% END %]
</tr> </tr>
[% IF detailed %] [% IF detailed %]
<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> <span class="time_info">
<tr> Estimated: [% bugs.$id.estimated_time FILTER format("%.2f") %]h
<td width="33%"> </span>
Estimated: [% bugs.$id.estimated_time FILTER format("%.2f") %]h <span class="time_info">
</td> Remaining: [% bugs.$id.remaining_time FILTER format("%.2f") %]h
<td width="33%"> </span>
Remaining: [% bugs.$id.remaining_time FILTER format("%.2f") %]h <span class="time_info">
</td> Deadline: [% bugs.$id.deadline || "<b>Not set</b>" %]
<td width="33%"> </span>
Deadline: [% bugs.$id.deadline || "<b>Not set</b>" %]
</td>
</tr>
</table>
</td> </td>
[% IF extra %] [% IF extra %]
<td>&nbsp;</td> <td>&nbsp;</td>
...@@ -236,8 +224,8 @@ ...@@ -236,8 +224,8 @@
[% IF global.total > 0 %] [% IF global.total > 0 %]
<tr class="section_total"> <tr class="section_total">
<td><b>Totals</b></td> <td><b>Totals</b></td>
<td colspan="[% colspan FILTER html %]" align="right"><b>[% additional FILTER html %]</b></td> <th colspan="[% colspan FILTER html %]" class="right">[% additional FILTER html %]</th>
<td align="right"><b>[% global.total FILTER format("%.2f") %]</b></td> <th class="right">[% global.total FILTER format("%.2f") %]</th>
</tr> </tr>
[% ELSE %] [% ELSE %]
<tr> <tr>
...@@ -254,7 +242,7 @@ ...@@ -254,7 +242,7 @@
#%] #%]
[% BLOCK query_form %] [% BLOCK query_form %]
<hr noshade size=1> <hr>
<form method="post" name="summary" action="summarize_time.cgi"> <form method="post" name="summary" action="summarize_time.cgi">
<input type="hidden" name="do_depends" value="[% do_depends FILTER html %]"> <input type="hidden" name="do_depends" value="[% do_depends FILTER html %]">
<input type="hidden" name="id" value="[% ids.join(",") FILTER html %]"> <input type="hidden" name="id" value="[% ids.join(",") FILTER html %]">
...@@ -268,68 +256,67 @@ ...@@ -268,68 +256,67 @@
[% END %] [% END %]
<table> <table>
<tr> <tr>
<td align="right"> <th>
<b><label accesskey="s" <label accesskey="s" for="start_date">Period <u>s</u>tarting</label>:
for="start_date">Period <u>s</u>tarting</label></b>: </th>
</td><td colspan="3"> <td>
<input type="text" id="start_date" name="start_date" size="11" <input type="text" id="start_date" name="start_date" size="10"
align="right" value="[% start_date FILTER html %]" maxlength="10" value="[% start_date FILTER html %]" maxlength="10"
onchange="updateCalendarFromField(this)"> onchange="updateCalendarFromField(this)">
<button type="button" class="calendar_button" <button type="button" class="calendar_button" id="button_calendar_start_date"
id="button_calendar_start_date" onclick="showCalendar('start_date')"><span>Calendar</span>
onclick="showCalendar('start_date')"><span>Calendar</span> </button>
</button> <span class="label">
<div id="con_calendar_start_date"></div> and <label accesskey="e" for="end_date"><u>e</u>nding</label>:
&nbsp; </span>
<b>and <label accesskey="e" for="end_date"><u>e</u>nding</label></b>: <input type="text" name="end_date" size="10" id="end_date"
<input type="text" name="end_date" size="11" id="end_date" value ="[% end_date FILTER html %]" maxlength="10"
align="right" value ="[% end_date FILTER html %]" maxlength="10" onchange="updateCalendarFromField(this)">
onchange="updateCalendarFromField(this)"> <button type="button" class="calendar_button" id="button_calendar_end_date"
<button type="button" class="calendar_button" onclick="showCalendar('end_date')"><span>Calendar</span>
id="button_calendar_end_date" </button>
onclick="showCalendar('end_date')"><span>Calendar</span> <br>
</button> <span class="bz_info">(Dates are optional, and in YYYY-MM-DD format)</span>
<div id="con_calendar_end_date"></div> </td>
</td><td align="right"> <th><input type="submit" id="summarize" value="Summarize"></th>
<input type="submit" id="summarize" value="Summarize"> </tr>
</td></tr>
<tr> <tr>
<td>&nbsp;</td><td colspan="4"> <th>Group by:</th>
<span class="bz_info">(Dates are optional, and in YYYY-MM-DD format)</span> <td>
</td> <input type="radio" name="group_by" id="number" value="number"
<tr><td align="right"> [% 'checked="checked"' IF group_by == "number" %]>
<b>Group by</b>: <label for="number" accesskey="n">[% terms.Bug %] <u>N</u>umber</label>
</td><td colspan="2"> <input type="radio" name="group_by" id="owner" value="owner"
<input type="radio" name="group_by" id="number" value="number" [%+ [% 'checked="checked"' IF group_by == "owner" %]>
'checked="checked"' IF group_by == "number" <label for="owner" accesskey="d"><u>D</u>eveloper</label>
%]><label </td>
for="number" accesskey="n">[% terms.Bug %] <u>N</u>umber</label> <th>
<input type="radio" name="group_by" id="owner" value="owner" [%+ <label for="ctype">Format</label>:
'checked="checked"' IF group_by == "owner" <select name="ctype" id="ctype">
%]><label <option value="html">HTML Report</option>
for="owner" accesskey="d"><u>D</u>eveloper</label> </select>
</td><td colspan="2"> </th>
<label for="ctype"><b>Format</b></label>: <select name="ctype" id="ctype"> </tr>
<option value="html">HTML Report</option>
</select> <tr>
</td></tr><tr> <th>&nbsp;</th>
<td>&nbsp;</td><td colspan="4"> <td colspan="2">
<input type="checkbox" name="monthly" [% 'checked="checked"' IF <input type="checkbox" name="monthly" id="monthly"
monthly %] id="monthly"> [% 'checked="checked"' IF monthly %]>
<label for="monthly" accesskey="m">Split by <u>m</u>onth</label> <label for="monthly" accesskey="m">Split by <u>m</u>onth</label>
[%# XXX: allow splitting by other intervals %] [%# XXX: allow splitting by other intervals %]
&nbsp; <input type="checkbox" name="detailed" id="detailed"
<input type="checkbox" name="detailed" [% 'checked="checked"' IF [% 'checked="checked"' IF detailed %]>
detailed %] id="detailed"> <label for="detailed" accesskey="t">De<u>t</u>ailed summaries</label>
<label for="detailed" accesskey="t">De<u>t</u>ailed summaries</label> <input type="checkbox" name="inactive" id="inactive"
&nbsp; [% 'checked="checked"' IF inactive %]>
<input type="checkbox" name="inactive" [% 'checked="checked"' IF <label for="inactive" accesskey="i">Also show <u>i</u>nactive
inactive %] id="inactive"> [%+ terms.bugs %]</label>
<label for="inactive" accesskey="i">Also show <u>i</u>nactive </td>
[%+ terms.bugs %]</label> </tr>
</td> </table>
</tr></table>
</form> </form>
<script type="text/javascript"> <script type="text/javascript">
...@@ -337,6 +324,7 @@ ...@@ -337,6 +324,7 @@
[%+ PROCESS "global/calendar.js.tmpl" id = 'start_date' %] [%+ PROCESS "global/calendar.js.tmpl" id = 'start_date' %]
[% PROCESS "global/calendar.js.tmpl" id = 'end_date' %] [% PROCESS "global/calendar.js.tmpl" id = 'end_date' %]
document.forms['summary'].start_date.focus(); document.forms['summary'].start_date.focus();
//--></script> //-->
<hr noshade size=1> </script>
<hr>
[% END %] [% END %]
...@@ -20,16 +20,16 @@ ...@@ -20,16 +20,16 @@
[% PROCESS global/header.html.tmpl %] [% PROCESS global/header.html.tmpl %]
<h2>First, you must pick a classification on which to enter [% terms.abug %]:</h2> <h2>First, you must pick a classification on which to enter [% terms.abug %]:</h2>
<table> <table id="choose_classification">
<tr> <tr>
<th> <th class="right">
<a href="[% target FILTER uri %]?classification=__all <a href="[% target FILTER uri %]?classification=__all
[% IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%] [% IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
[%- IF format %]&amp;format=[% format FILTER uri %][% END %]"> [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
All</a>: All</a>:
</th> </th>
<td valign="top">&nbsp;Show all products</td> <td>Show all products</td>
</tr> </tr>
<tr> <tr>
<th colspan="2">&nbsp;</th> <th colspan="2">&nbsp;</th>
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
[% FOREACH class = classifications %] [% FOREACH class = classifications %]
<tr> <tr>
<th> <th class="right">
<a href="[% target FILTER uri %]?classification=[% class.name FILTER uri -%] <a href="[% target FILTER uri %]?classification=[% class.name FILTER uri -%]
[%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%] [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
[%- IF format %]&amp;format=[% format FILTER uri %][% END %]"> [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
</th> </th>
[% IF class.description %] [% IF class.description %]
<td valign="top">&nbsp;[% class.description FILTER html_light %]</td> <td>[% class.description FILTER html_light %]</td>
[% END %] [% END %]
</tr> </tr>
[% END %] [% END %]
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<h2>[% h2 FILTER html %]</h2> <h2>[% h2 FILTER html %]</h2>
<table> <table id="choose_product">
[% FOREACH c = classifications %] [% FOREACH c = classifications %]
[% IF c.object %] [% IF c.object %]
...@@ -44,14 +44,14 @@ ...@@ -44,14 +44,14 @@
[% FOREACH p = c.products %] [% FOREACH p = c.products %]
<tr> <tr>
<th valign="top"> <th class="right">
<a href="[% target %]?product=[% p.name FILTER uri -%] <a href="[% target %]?product=[% p.name FILTER uri -%]
[%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%] [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
[%- IF format %]&amp;format=[% format FILTER uri %][% END %]"> [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
[% p.name FILTER html FILTER no_break %]</a>:&nbsp; [% p.name FILTER html FILTER no_break %]</a>:&nbsp;
</th> </th>
<td valign="top">[% p.description FILTER html_light %]</td> <td>[% p.description FILTER html_light %]</td>
</tr> </tr>
[% END %] [% END %]
......
...@@ -260,11 +260,11 @@ ...@@ -260,11 +260,11 @@
[% IF Param('usestatuswhiteboard') %] [% IF Param('usestatuswhiteboard') %]
<tr> <tr>
<td align="right"> <th>
<b>Status Whiteboard:</b> <label for="status_whiteboard">Status Whiteboard:</label>
</td> </th>
<td colspan="7"> <td colspan="7">
<input name="status_whiteboard" <input name="status_whiteboard" id="status_whiteboard"
value="[% dontchange FILTER html %]" size="60"> value="[% dontchange FILTER html %]" size="60">
</td> </td>
</tr> </tr>
......
...@@ -172,8 +172,6 @@ ...@@ -172,8 +172,6 @@
</ul> </ul>
[% END %] [% END %]
<br>
[%############################################################################%] [%############################################################################%]
[%# Rest of Change Form #%] [%# Rest of Change Form #%]
[%############################################################################%] [%############################################################################%]
...@@ -188,10 +186,9 @@ ...@@ -188,10 +186,9 @@
[%# Navigation Bar #%] [%# Navigation Bar #%]
[%############################################################################%] [%############################################################################%]
<table> [% IF bugs.size > 0 %]
<tr> <div class="buglist_menu">
[% IF bugs.size > 0 %] <div class="bz_query_buttons">
<td valign="middle" class="bz_query_buttons">
<form method="post" action="show_bug.cgi"> <form method="post" action="show_bug.cgi">
[% id = buglist.join(",") %] [% id = buglist.join(",") %]
<input type="hidden" name="id" value="[% id FILTER html %]"> <input type="hidden" name="id" value="[% id FILTER html %]">
...@@ -213,19 +210,19 @@ ...@@ -213,19 +210,19 @@
<input type="submit" id="timesummary" value="Time Summary"> <input type="submit" id="timesummary" value="Time Summary">
</form> </form>
[% IF time_summary_limited %] [% IF time_summary_limited %]
<small> <span class="bz_info">
Time Summary will only include the [% terms.bugs %] shown above. In order to Time Summary will only include the [% terms.bugs %] shown above.
to see a time summary for all [% terms.bugs %] found by the search, you can In order to see a time summary for all [% terms.bugs %] found
by the search, you can
<a href="buglist.cgi?[% urlquerypart FILTER html %] <a href="buglist.cgi?[% urlquerypart FILTER html %]
[%- "&order=$qorder" FILTER html IF order %]&limit=0"> [%- "&order=$qorder" FILTER html IF order %]&limit=0">
Show all search results</a>.</small> show all search results</a>.
</span>
[% END %] [% END %]
[% END %] [% END %]
</td> </div>
<td>&nbsp;</td> <div class="bz_query_links">
<td valign="middle" class="bz_query_links">
<a href="buglist.cgi? <a href="buglist.cgi?
[% urlquerypart FILTER html %]&amp;ctype=csv&amp;human=1">CSV</a> | [% urlquerypart FILTER html %]&amp;ctype=csv&amp;human=1">CSV</a> |
<a href="buglist.cgi? <a href="buglist.cgi?
...@@ -251,39 +248,35 @@ ...@@ -251,39 +248,35 @@
[%# Links to more things users can do with this bug list. %] [%# Links to more things users can do with this bug list. %]
[% Hook.process("links") %] [% Hook.process("links") %]
</td> </div>
[% END %]
<div class="bz_query_edit">
<td valign="middle" class="bz_query_edit"> <a href="[% PROCESS edit_search_url %]">Edit&nbsp;Search</a>
<a href="[% PROCESS edit_search_url %]">Edit&nbsp;Search</a> </div>
</td>
[% IF searchtype == "saved" %]
[% IF searchtype == "saved" %] <div class="bz_query_forget">
<td valign="middle" nowrap="nowrap" class="bz_query_forget"> | <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
|
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
[% searchname FILTER uri %]&amp;token= [% searchname FILTER uri %]&amp;token=
[% issue_hash_token([search_id, searchname]) FILTER uri %]"> [% issue_hash_token([search_id, searchname]) FILTER uri %]">
Forget&nbsp;Search&nbsp;'[% searchname FILTER html %]'</a> Forget&nbsp;Search&nbsp;'[% searchname FILTER html %]'</a>
</td> </div>
[% ELSE %] [% ELSE %]
<td>&nbsp;</td> <div class="bz_query_remember">
<form method="get" action="buglist.cgi">
<td valign="middle" class="bz_query_remember"> <input type="submit" id="remember" value="Remember search"> as
<form method="get" action="buglist.cgi"> <input type="hidden" name="newquery"
<input type="submit" id="remember" value="Remember search"> as value="[% urlquerypart FILTER html %][% "&order=$qorder" FILTER html IF order %]">
<input type="hidden" name="newquery" <input type="hidden" name="cmdtype" value="doit">
value="[% urlquerypart FILTER html %][% "&order=$qorder" FILTER html IF order %]"> <input type="hidden" name="remtype" value="asnamed">
<input type="hidden" name="cmdtype" value="doit"> <input type="hidden" name="token" value="[% issue_hash_token(['savedsearch']) FILTER html %]">
<input type="hidden" name="remtype" value="asnamed"> <input type="text" id="save_newqueryname" name="newqueryname" size="20"
<input type="hidden" name="token" value="[% issue_hash_token(['savedsearch']) FILTER html %]"> title="New query name" value="[% defaultsavename FILTER html %]">
<input type="text" id="save_newqueryname" name="newqueryname" size="20" </form>
title="New query name" value="[% defaultsavename FILTER html %]"> </div>
</form> [% END %]
</td> </div>
[% END %] [% END %]
</tr>
</table>
[% IF one_product.defined && bugs.size %] [% IF one_product.defined && bugs.size %]
<p class="bz_query_single_product"> <p class="bz_query_single_product">
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
header_addl_info = time header_addl_info = time
%] %]
<div align="center"> <div class="center">
[% imageurl = BLOCK %]chart.cgi? [% imageurl = BLOCK %]chart.cgi?
[% imagebase FILTER html %]&amp;ctype=png&amp;action=plot&amp;width= [% imagebase FILTER html %]&amp;ctype=png&amp;action=plot&amp;width=
......
...@@ -134,11 +134,11 @@ function subcatSelected() { ...@@ -134,11 +134,11 @@ function subcatSelected() {
[% labelidx = labelidx + 1 %] [% labelidx = labelidx + 1 %]
[% NEXT %] [% NEXT %]
[% END %] [% END %]
[% FOREACH series = line %] [% FOREACH series = line %]
<tr> <tr>
[% IF loop.first %] [% IF loop.first %]
<td align="center" rowspan="[% line.size %]"> <td class="center" rowspan="[% line.size %]">
<input type="checkbox" value="1" name="select[% newidx %]"> <input type="checkbox" value="1" name="select[% newidx %]">
</td> </td>
<td rowspan="[% line.size %]"> <td rowspan="[% line.size %]">
...@@ -160,7 +160,7 @@ function subcatSelected() { ...@@ -160,7 +160,7 @@ function subcatSelected() {
value="[% series.series_id %]"> value="[% series.series_id %]">
</td> </td>
<td align="center"> <td>
[% IF user.id == series.creator_id OR user.in_group("admin") %] [% IF user.id == series.creator_id OR user.in_group("admin") %]
<a href="chart.cgi?action=edit&amp;series_id= <a href="chart.cgi?action=edit&amp;series_id=
[% series.series_id %]">Edit</a> | [% series.series_id %]">Edit</a> |
...@@ -172,7 +172,7 @@ function subcatSelected() { ...@@ -172,7 +172,7 @@ function subcatSelected() {
[% series.subcategory FILTER uri %]%20/%20 [% series.subcategory FILTER uri %]%20/%20
[% series.name FILTER uri -%]&amp;series_id= [% series.name FILTER uri -%]&amp;series_id=
[% series.series_id %]&amp;remaction=runseries">Run Search</a> [% series.series_id %]&amp;remaction=runseries">Run Search</a>
</td> </td>
</tr> </tr>
[% END %] [% END %]
[% labelidx = labelidx + 1 %] [% labelidx = labelidx + 1 %]
...@@ -181,7 +181,7 @@ function subcatSelected() { ...@@ -181,7 +181,7 @@ function subcatSelected() {
[% IF chart.gt %] [% IF chart.gt %]
<tr> <tr>
<td align="center"> <td class="center">
<input type="checkbox" value="1" name="select65536"> <input type="checkbox" value="1" name="select65536">
<input type="hidden" value="1" name="gt"> <input type="hidden" value="1" name="gt">
</td> </td>
......
...@@ -52,6 +52,19 @@ ...@@ -52,6 +52,19 @@
<input type="hidden" name="bug_id" value="[% bug_ids_string FILTER html %]"> <input type="hidden" name="bug_id" value="[% bug_ids_string FILTER html %]">
<table> <table>
<tr> <tr>
<td>Restrict to products:</td>
<td>
<select name="product" size="5" multiple="multiple">
[% FOREACH p = user.get_selectable_products %]
<option name="[% p.name FILTER html %]"
[% ' selected="selected"' IF product.contains(p.name) %]
>[% p.name FILTER html %]</option>
[% END %]
</select>
</td>
</tr>
<tr>
<td>When sorting or restricting, work with:</td> <td>When sorting or restricting, work with:</td>
<td> <td>
<input type="radio" name="sortvisible" id="entirelist" value="0" <input type="radio" name="sortvisible" id="entirelist" value="0"
...@@ -66,16 +79,6 @@ ...@@ -66,16 +79,6 @@
currently visible list currently visible list
</label> </label>
</td> </td>
<td rowspan="4" valign="top">Restrict to products:</td>
<td rowspan="4" valign="top">
<select name="product" size="5" multiple="multiple">
[% FOREACH p = user.get_selectable_products %]
<option name="[% p.name FILTER html %]"
[% ' selected="selected"' IF product.contains(p.name) %]
>[% p.name FILTER html %]</option>
[% END %]
</select>
</td>
</tr> </tr>
<tr> <tr>
......
...@@ -116,7 +116,7 @@ YAHOO.util.Event.addListener(window, "load", function() { ...@@ -116,7 +116,7 @@ YAHOO.util.Event.addListener(window, "load", function() {
return parseFloat(res[1]); return parseFloat(res[1]);
}; };
this.myDataSource = new YAHOO.util.DataSource(YAHOO.util.Dom.get("tabular_report")); this.myDataSource = new YAHOO.util.DataSource(YAHOO.util.Dom.get("tabular_report_[% tbl FILTER html FILTER js %]"));
this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE; this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
this.myDataSource.responseSchema = { this.myDataSource.responseSchema = {
fields: [ fields: [
...@@ -137,7 +137,7 @@ YAHOO.util.Event.addListener(window, "load", function() { ...@@ -137,7 +137,7 @@ YAHOO.util.Event.addListener(window, "load", function() {
<h2>[% tbl_disp FILTER email FILTER html %]</h2> <h2>[% tbl_disp FILTER email FILTER html %]</h2>
[% END %] [% END %]
<table> <table class="tabular_report_container">
<tr> <tr>
<td> <td>
</td> </td>
...@@ -147,7 +147,7 @@ YAHOO.util.Event.addListener(window, "load", function() { ...@@ -147,7 +147,7 @@ YAHOO.util.Event.addListener(window, "load", function() {
</tr> </tr>
<tr> <tr>
<td valign="middle"> <td class="middle">
<strong>[% row_field_disp FILTER html %]</strong> <strong>[% row_field_disp FILTER html %]</strong>
</td> </td>
<td> <td>
...@@ -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"> <table id="tabular_report_[% tbl FILTER html %]" class="tabular_report">
[% IF col_field %] [% IF col_field %]
<thead> <thead>
<tr> <tr>
...@@ -234,7 +234,7 @@ YAHOO.util.Event.addListener(window, "load", function() { ...@@ -234,7 +234,7 @@ YAHOO.util.Event.addListener(window, "load", function() {
</tbody> </tbody>
</table> </table>
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
......
...@@ -66,9 +66,8 @@ ...@@ -66,9 +66,8 @@
[% END %] [% END %]
[% END %] [% END %]
<div align="center"> <div class="center">
[% FOREACH tbl = tbl_names %]
[% FOREACH tbl = tbl_names %]
[% IF tbl == "-total-" %] [% IF tbl == "-total-" %]
[% tbl_disp = "Total" %] [% tbl_disp = "Total" %]
[% ELSE %] [% ELSE %]
...@@ -108,45 +107,38 @@ ...@@ -108,45 +107,38 @@
{ name => "table", description => "Table" } ] %] { name => "table", description => "Table" } ] %]
[% formaturl = "report.cgi?$switchbase&amp;width=$width&amp;height=$height&amp;action=wrap" %] [% formaturl = "report.cgi?$switchbase&amp;width=$width&amp;height=$height&amp;action=wrap" %]
[% FOREACH other_format = formats %] <p>
[% NEXT IF other_format.name == "pie" AND row_field AND col_field %] [% FOREACH other_format = formats %]
[% UNLESS other_format.name == format %] [% NEXT IF other_format.name == "pie" AND row_field AND col_field %]
<a href="[% formaturl %]&amp;format=[% other_format.name %]"> [% UNLESS other_format.name == format %]
<a href="[% formaturl %]&amp;format=[% other_format.name %]">
[% END %]
[% other_format.description FILTER html %]
[% "</a>" UNLESS other_format.name == format %] |
[% END %] [% END %]
[% other_format.description FILTER html %] <a href="[% formaturl %]&amp;ctype=csv&amp;format=table">CSV</a>
[% "</a>" UNLESS other_format.name == format %] | </p>
[% IF format == "table" %]
<a href="query.cgi?[% switchbase %]&amp;format=report-table">Edit this report</a>
[% ELSE %]
<a href="query.cgi?[% switchbase %]&amp;chart_format=
[%~ format FILTER uri %]&amp;format=report-graph&amp;cumulate=[% cumulate %]">
Edit this report</a>
[% END %]
|
[% IF saved_report_id %]
<a href="report.cgi?action=del&amp;saved_report_id=[% saved_report_id FILTER uri %]&amp;token=
[%~ issue_hash_token(['delete_report', saved_report_id]) FILTER uri %]">Forget this report</a>
[% ELSE %]
<form method="get" action="report.cgi" class="inline">
<input type="submit" id="remember" value="Remember report"> as
<input type="hidden" name="query" value="[% switchbase %]&amp;format=[% format FILTER uri %]&amp;action=wrap">
<input type="hidden" name="action" value="add">
<input type="hidden" name="token" value="[% issue_hash_token(['save_report']) FILTER html %]">
<input type="text" id="name" name="name" size="20" value="" maxlength="64">
</form>
[% END %] [% END %]
<a href="[% formaturl %]&amp;ctype=csv&amp;format=table">CSV</a>
<table>
<tr>
<td>
[% IF format == "table" %]
<a href="query.cgi?[% switchbase %]&amp;format=report-table">Edit this report</a>
[% ELSE %]
<a href="query.cgi?[% switchbase %]&amp;chart_format=
[%~ format FILTER uri %]&amp;format=report-graph&amp;cumulate=[% cumulate %]">
Edit this report</a>
[% END %]
</td>
<td>|</td>
<td>
[% IF saved_report_id %]
<a href="report.cgi?action=del&amp;saved_report_id=[% saved_report_id FILTER uri %]&amp;token=
[%~ issue_hash_token(['delete_report', saved_report_id]) FILTER uri %]">Forget this report</a>
[% ELSE %]
<form method="get" action="report.cgi">
<input type="submit" id="remember" value="Remember report"> as
<input type="hidden" name="query" value="[% switchbase %]&amp;format=[% format FILTER uri %]&amp;action=wrap">
<input type="hidden" name="action" value="add">
<input type="hidden" name="token" value="[% issue_hash_token(['save_report']) FILTER html %]">
<input type="text" id="name" name="name" size="20" value="" maxlength="64">
</form>
[% END %]
</td>
</tr>
</table>
</div> </div>
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
...@@ -52,71 +52,63 @@ var queryform = "reportform" ...@@ -52,71 +52,63 @@ var queryform = "reportform"
[% button_name = "Generate Report" %] [% button_name = "Generate Report" %]
<form method="get" action="report.cgi" name="reportform" id="reportform"> <form method="get" action="report.cgi" name="reportform" id="reportform">
<table id="graphical_reports_menu">
<table align="center"> <tr>
<tr> <th id="reports_menu_vertical_axis">
<td valign="middle"> Vertical Axis:<br>
<b>Vertical Axis:</b><br> [% PROCESS select name = 'y_axis_field' %]<br>
<noscript><small>(not for pie charts)</small><br></noscript> <br>
[% PROCESS select name = 'y_axis_field' %]<br> Plot Data Sets:<br>
<br> <input type="radio" id="cumulate_indiv" name="cumulate" value="0"
<b>Plot Data Sets:</b><br> [%+ 'checked="checked"' IF default.cumulate.0 != "1" %]>
<input type="radio" name="cumulate" value="0" <label for="cumulate_indiv">Individually</label><br>
[% " checked" IF default.cumulate.0 != "1" %]> <input type="radio" id="cumulate_stacked" name="cumulate" value="1"
Individually<br> [%+ 'checked="checked"' IF default.cumulate.0 == "1" %]>
<input type="radio" name="cumulate" value="1" <label for="cumulate_stacked">Stacked</label>
[% " checked" IF default.cumulate.0 == "1" %]> </th>
Stacked <th id="reports_menu_multiple_tables">
</td> Multiple Images:<br>
<td width="150" height="150"> [% PROCESS select name = 'z_axis_field' %]
<table border="1" width="100%" height="100%"> </th>
<tr> <th id="reports_menu_format">
<td align="center" valign="middle"> Format:<br>
<b>Multiple Images:</b><br> [% chart_formats = [
[% PROCESS select name = 'z_axis_field' %] { name => "line", description => "Line Graph" },
</td> { name => "bar", description => "Bar Chart" },
</tr> { name => "pie", description => "Pie Chart" } ] %]
</table> [% default.chart_format.0 = default.chart_format.0 || "bar" %]
</td>
<td rowspan="2"> [% FOREACH chart_format = chart_formats %]
<b>Format:</b><br> <input type="radio" id="format_[% chart_format.name FILTER html %]"
[% chart_formats = [ name="format" value="[% chart_format.name FILTER html %]"
{ name => "line", description => "Line Graph" }, onchange="chartTypeChanged()"
{ name => "bar", description => "Bar Chart" }, [%+ 'checked="checked"' IF default.chart_format.0 == chart_format.name %]>
{ name => "pie", description => "Pie Chart" } ] %] <label for="format_[% chart_format.name FILTER html %]">
[% default.chart_format.0 = default.chart_format.0 || "bar" %] [% chart_format.description FILTER html %]
</label><br>
[% FOREACH chart_format = chart_formats %] [% END %]
<input type="radio" name="format" </th>
value="[% chart_format.name FILTER html %]" </tr>
onchange="chartTypeChanged()"
[% " checked" IF default.chart_format.0 == chart_format.name %]> <tr>
[% chart_format.description FILTER html %]<br> <th></th>
[% END %] <th id="reports_menu_horizontal_axis">
</td> Horizontal Axis:<br>
</tr> [% PROCESS select name = 'x_axis_field' %]<br>
<input type="checkbox" name="x_labels_vertical" id="x_labels_vertical"
<tr> value="1"
<td> [%+ 'checked="checked"' IF default.x_labels_vertical.0 == "1" %]>
</td> <label for="x_labels_vertical">Vertical labels</label>
<td align="left"> </th>
<b>Horizontal Axis:</b> <th></th>
[% PROCESS select name = 'x_axis_field' %]<br> </tr>
<label for="x_labels_vertical"><b>Vertical labels:</b></label> </table>
<input type="checkbox" name="x_labels_vertical" id="x_labels_vertical"
value="1" <hr>
[% " checked" IF default.x_labels_vertical.0 == "1" %]>
</td> [% PROCESS search/form.html.tmpl %]
<td>
</td> [% PROCESS "search/boolean-charts.html.tmpl" %]
</tr>
</table>
<hr>
[% PROCESS search/form.html.tmpl %]
[% PROCESS "search/boolean-charts.html.tmpl" %]
<div id="knob"> <div id="knob">
<input type="submit" id="[% button_name FILTER css_class_quote %]" <input type="submit" id="[% button_name FILTER css_class_quote %]"
......
...@@ -35,36 +35,28 @@ var queryform = "reportform" ...@@ -35,36 +35,28 @@ var queryform = "reportform"
[% button_name = "Generate Report" %] [% button_name = "Generate Report" %]
<form method="get" action="report.cgi" name="reportform" id="reportform"> <form method="get" action="report.cgi" name="reportform" id="reportform">
<table id="tabular_reports_menu">
<tr>
<th></th>
<th id="reports_menu_horizontal_axis">
Horizontal Axis:<br>
[% PROCESS select name = 'x_axis_field' %]
</th>
</tr>
<table align="center"> <tr>
<tr> <th id="reports_menu_vertical_axis">
<td> Vertical Axis:<br>
</td> [% PROCESS select name = 'y_axis_field' %]
<td align="center"> </th>
<b>Horizontal Axis:</b> <th id="reports_menu_multiple_tables">
[% PROCESS select name = 'x_axis_field' %] Multiple Tables:<br>
</td> [% PROCESS select name = 'z_axis_field' %]
</tr> </th>
</tr>
</table>
<tr> <hr>
<td valign="middle" align="center">
<b>Vertical Axis:</b><br>
[% PROCESS select name = 'y_axis_field' %]
</td>
<td width="150" height="150">
<table border="1" width="100%">
<tr>
<td align="center" valign="middle" height="150">
<b>Multiple Tables:</b><br>
[% PROCESS select name = 'z_axis_field' %]
</td>
</tr>
</table>
</td>
</tr>
</table>
<hr>
[% PROCESS search/form.html.tmpl %] [% PROCESS search/form.html.tmpl %]
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
[% body FILTER html %] [% body FILTER html %]
</pre> </pre>
<p align="left"> <p>
[% IF author.login == recipient.login %] [% IF author.login == recipient.login %]
<a href="[%+ urlbase FILTER html %]editwhines.cgi">Click <a href="[%+ urlbase FILTER html %]editwhines.cgi">Click
here to edit your whine schedule</a> here to edit your whine schedule</a>
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<h2>[%+ query.title FILTER html %] ([% query.bugs.size %] [%+ terms.bugs %])</h2> <h2>[%+ query.title FILTER html %] ([% query.bugs.size %] [%+ terms.bugs %])</h2>
<table width="100%"> <table>
<tr> <tr>
<th>ID</th> <th>ID</th>
[% FOREACH col = query.columnlist %] [% FOREACH col = query.columnlist %]
...@@ -56,18 +56,18 @@ ...@@ -56,18 +56,18 @@
[% FOREACH bug=query.bugs %] [% FOREACH bug=query.bugs %]
<tr> <tr>
<td align="left"><a href="[%+ urlbase FILTER html %]show_bug.cgi?id= <td><a href="[%+ urlbase FILTER html %]show_bug.cgi?id=
[%- bug.bug_id %]">[% bug.bug_id %]</a></td> [%- bug.bug_id %]">[% bug.bug_id %]</a></td>
[% FOREACH col = query.columnlist %] [% FOREACH col = query.columnlist %]
[% NEXT IF col == 'bug_id' %] [% NEXT IF col == 'bug_id' %]
<td align="left">[% display_value(col, bug.$col) FILTER html %]</td> <td>[% display_value(col, bug.$col) FILTER html %]</td>
[% END %] [% END %]
</tr> </tr>
[% END %] [% END %]
</table> </table>
[% IF author.login == recipient.login %] [% IF author.login == recipient.login %]
<p align="left"> <p>
<a href="[% urlbase FILTER html %]buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% query.name FILTER uri %]">View as [% terms.bug %] list</a> <a href="[% urlbase FILTER html %]buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% query.name FILTER uri %]">View as [% terms.bug %] list</a>
</p> </p>
[% END %] [% END %]
......
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