summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Field.pm18
-rwxr-xr-xpage.cgi2
-rw-r--r--skins/standard/page.css33
-rw-r--r--template/en/default/bug/field-help.none.tmpl224
-rw-r--r--template/en/default/global/help.html.tmpl5
-rw-r--r--template/en/default/pages/fields.html.tmpl349
-rw-r--r--template/en/default/search/search-advanced.html.tmpl2
-rw-r--r--template/en/default/search/search-help.html.tmpl104
8 files changed, 430 insertions, 307 deletions
diff --git a/Bugzilla/Field.pm b/Bugzilla/Field.pm
index c2ab6e11b..6b9ceb7c0 100644
--- a/Bugzilla/Field.pm
+++ b/Bugzilla/Field.pm
@@ -547,6 +547,24 @@ sub legal_values {
=over
+=item C<is_timetracking>
+
+True if this is a time-tracking field that should only be shown to users
+in the C<timetrackinggroup>.
+
+=back
+
+=cut
+
+sub is_timetracking {
+ my ($self) = @_;
+ return grep($_ eq $self->name, TIMETRACKING_FIELDS) ? 1 : 0;
+}
+
+=pod
+
+=over
+
=item C<visibility_field>
What field controls this field's visibility? Returns a C<Bugzilla::Field>
diff --git a/page.cgi b/page.cgi
index 9326229a5..5464789e7 100755
--- a/page.cgi
+++ b/page.cgi
@@ -43,7 +43,7 @@ use Bugzilla::Search::Quicksearch;
# For quicksearch.html.
sub quicksearch_field_names {
- my $fields = Bugzilla::Search::Quicksearch::FIELD_MAP;
+ my $fields = Bugzilla::Search::Quicksearch->FIELD_MAP;
my %fields_reverse;
# Put longer names before shorter names.
my @nicknames = sort { length($b) <=> length($a) } (keys %$fields);
diff --git a/skins/standard/page.css b/skins/standard/page.css
index 47869bb58..da0c3be8d 100644
--- a/skins/standard/page.css
+++ b/skins/standard/page.css
@@ -68,3 +68,36 @@
width: 10em;
}
+/***************/
+/* fields.html */
+/***************/
+
+table.field_value_explanation {
+ table-layout: fixed;
+ border-collapse: collapse;
+}
+
+.field_value_explanation thead h2 {
+ margin: 0;
+}
+
+.field_value_explanation .header_row td {
+ text-align: center;
+ font-size: 120%;
+ font-weight: bold;
+}
+
+.field_value_explanation tbody td {
+ border: 1px solid black;
+ padding: 1em;
+}
+
+.field_value_explanation dt,
+.field_descriptions dt
+{
+ margin-top: 1em;
+}
+
+.field_descriptions dt {
+ font-size: 120%;
+}
diff --git a/template/en/default/bug/field-help.none.tmpl b/template/en/default/bug/field-help.none.tmpl
new file mode 100644
index 000000000..549a89002
--- /dev/null
+++ b/template/en/default/bug/field-help.none.tmpl
@@ -0,0 +1,224 @@
+[%# The contents of this file are subject to the Mozilla Public
+ # License Version 1.1 (the "License"); you may not use this file
+ # except in compliance with the License. You may obtain a copy of
+ # the License at http://www.mozilla.org/MPL/
+ #
+ # Software distributed under the License is distributed on an "AS
+ # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ # implied. See the License for the specific language governing
+ # rights and limitations under the License.
+ #
+ # The Original Code is the Bugzilla Bug Tracking System.
+ #
+ # The Initial Developer of the Original Code is Netscape Communications
+ # Corporation. Portions created by Netscape are
+ # Copyright (C) 1998 Netscape Communications Corporation. All
+ # Rights Reserved.
+ #
+ # Contributor(s): Gervase Markham <gerv@gerv.net>
+ # Max Kanat-Alexander <mkanat@bugzilla.org>
+ #%]
+
+[%# This file describes both bug fields and search fields. %]
+
+[% PROCESS "global/field-descs.none.tmpl" %]
+
+[% help_html = {
+
+# Note that all these keys here are in alphabetical order, though
+# search-specific fields are at the bottom.
+
+##############
+# Bug Fields #
+##############
+
+alias =>
+ "A short, unique name assigned to $terms.abug in order to assist with
+ looking it up and referring to it in other places in ${terms.Bugzilla}.",
+
+assigned_to =>
+ "The person in charge of resolving the ${terms.bug}.",
+
+blocked =>
+ "This $terms.bug must be resolved before the $terms.bugs listed in this
+ field can be resolved.",
+
+bug_file_loc =>
+ "$terms.Bugs can have a URL associated with them - for example, a"
+ _ " pointer to a web site where the problem is seen.",
+
+bug_id =>
+ "The numeric id of $terms.abug, unique within this entire installation"
+ _ " of ${terms.Bugzilla}.",
+
+bug_severity =>
+ "How severe the $terms.bug is, or whether it's an enhancement.",
+
+bug_status =>
+ "$terms.Abug may be in any of a number of states.",
+
+cc =>
+ "Users who may not have a direct role to play on this $terms.bug, but who
+ are interested in its progress.",
+
+classification =>
+ "$terms.Bugs are categorised into Classifications, Products and"
+ _ " Components. classifications is the top-level categorisation.",
+
+component =>
+ "Components are second-level categories; each belongs to a"
+ _ " particular Product. Select a Product to narrow down this list.",
+
+creation_ts =>
+ "When the $terms.bug was filed.",
+
+deadline =>
+ "The date that this $terms.bug must be resolved by, entered in YYYY-MM-DD
+ format.",
+
+delta_ts =>
+ "When this $terms.bug was last updated.",
+
+dependson =>
+ "The $terms.bugs listed here must be resolved before this $terms.bug
+ can be resolved.",
+
+estimated_time =>
+ "The amount of time that has been estimated it will take to resolve
+ this ${terms.bug}.",
+
+keywords =>
+ "You can add keywords from a defined list to $terms.bugs, in order"
+ _ " to tag and group them.",
+
+longdesc =>
+ "$terms.Bugs have comments added to them by $terms.Bugzilla users."
+ _ "You can search for some text in those comments.",
+
+op_sys =>
+ "The operating system the $terms.bug was observed on.",
+
+percentage_complete =>
+ "How close to 100% done this $terms.bug is, by comparing its
+ $field_descs.work_time to its ${field_descs.estimated_time}.",
+
+priority =>
+ "Engineers prioritize their $terms.bugs using this field.",
+
+# Note that this has extra text added below if useclassification is on.
+product =>
+ "$terms.Bugs are categorised into Products and Components.",
+
+qa_contact =>
+ "The person responsible for confirming this $terms.bug if it is"
+ _ " unconfirmed, and for verifying the fix once the $terms.bug"
+ _ " has been resolved.",
+
+remaining_time =>
+ "The number of hours of work left on this $terms.bug, calculated by
+ subtracting the $field_descs.work_time from the
+ ${field_descs.estimated_time}.",
+
+rep_platform =>
+ "The hardware platform the $terms.bug was observed on.",
+
+reporter =>
+ "The person who filed this ${terms.bug}.",
+
+resolution =>
+ "If $terms.abug is in a resolved state, then one of these reasons"
+ _ " will be given for its resolution.",
+
+see_also =>
+ "This allows you to refer to $terms.bugs in other installations.
+ You can enter a URL to $terms.abug in the 'Add $terms.Bug URLs'
+ field to note that that $terms.bug is related to this one. You can
+ enter multiple URLs at once by separating them with a comma.
+
+ <p>You should normally use this field to refer to $terms.bugs in
+ <em>other</em> installations. For $terms.bugs in this
+ installation, it is better to use the $field_descs.dependson and
+ $field_descs.blocked fields.</p>",
+
+short_desc =>
+ "The $terms.bug summary is a short sentence which succinctly"
+ _ " describes what the $terms.bug is about.",
+
+status_whiteboard =>
+ "Each $terms.bug has a free-form single line text entry box for"
+ _ " adding tags and status information.",
+
+target_milestone =>
+ "The target_milestone field is used to define when the engineer"
+ _ " the $terms.bug is assigned to expects to fix it.",
+
+version =>
+ "The version field defines the version of the software the"
+ _ " $terms.bug was found in.",
+
+votes =>
+ "Some $terms.bugs can be voted for, and you can limit your search to"
+ _ " $terms.bugs with more than a certain number of votes.",
+
+work_time =>
+ "The total amount of time spent on this $terms.bug so far.",
+
+##########################
+# Search-specific fields #
+##########################
+
+chfield =>
+ "You can search for specific types of change - this field defines"
+ _" which field you are interested in changes for.",
+
+# Duplicated to chfieldto below, also.
+chfieldfrom =>
+ "Specify the start and end dates either in YYYY-MM-DD format
+ optionally followed by HH:mm, in 24 hour clock), or in relative
+ dates such as 1h, 2d, 3w, 4m, 5y, which respectively mean one hour,
+ two days, three weeks, four months, or five years ago. 0d is last
+ midnight, and 0h, 0w, 0m, 0y is the beginning of this hour, week,
+ month, or year.",
+
+chfieldvalue =>
+ "The value the field defined above changed to during that time.",
+
+content =>
+ "This is a field available in searches that does a Google-like
+ 'full-text' search on the $field_descs.short_desc and
+ $field_descs.longdesc fields.",
+
+# Duplicated to email2 below, also.
+email1 =>
+ "Every $terms.bug has people associated with it in different"
+ _ " roles. Here, you can search on what people are in what role.",
+
+} %]
+
+[% help_html.email2 = help_html.email1 %]
+[% help_html.chfieldto = help_html.chfieldfrom %]
+[% help_html.deadlinefrom = help_html.deadline %]
+[% help_html.deadlineto = help_html.deadline %]
+
+[% help_all_note = BLOCK %]
+ <strong>Note:</strong> When searching, selecting the option "All"
+ only finds [% terms.bugs %] whose value for this field is literally
+ the word "All".
+[% END %]
+[% FOREACH all_field = ['op_sys', 'rep_platform'] %]
+ [% help_html.$all_field = help_html.$all_field _ ' ' _ help_all_note %]
+[% END %]
+
+[% IF Param('useclassification') %]
+ [% help_html.product = help_html.product
+ _ " Select a Classification to narrow down this list." %]
+[% END %]
+
+[% FOREACH help_field = bug_fields.keys %]
+ [% type_desc = BLOCK %]
+ The type of [% field_descs.${help_field} FILTER html %] search you
+ would like.
+ [% END %]
+ [% SET type_name = help_field _ '_type' %]
+ [% help_html.$type_name = type_desc %]
+[% END %]
diff --git a/template/en/default/global/help.html.tmpl b/template/en/default/global/help.html.tmpl
index 36439bc07..c0ff819ce 100644
--- a/template/en/default/global/help.html.tmpl
+++ b/template/en/default/global/help.html.tmpl
@@ -23,8 +23,9 @@
[% IF cgi.param("help") %]
<script type="text/javascript"> <!--
- [% FOREACH h = help_html %]
- g_helpTexts["[% h.id FILTER js %]"] = "[%- h.html FILTER js -%]";
+ [% FOREACH help_name = help_html.keys %]
+ g_helpTexts["[% help_name FILTER js %]"] =
+ "[%- help_html.$help_name FILTER js -%]";
[% END %]
// -->
</script>
diff --git a/template/en/default/pages/fields.html.tmpl b/template/en/default/pages/fields.html.tmpl
index 5be28cab7..184aef96f 100644
--- a/template/en/default/pages/fields.html.tmpl
+++ b/template/en/default/pages/fields.html.tmpl
@@ -20,128 +20,142 @@
#%]
[% PROCESS "global/field-descs.none.tmpl" %]
-[% INCLUDE global/header.html.tmpl title = "A $terms.Bug's Life Cycle" %]
+[% PROCESS global/header.html.tmpl
+ title = "$terms.Bug Fields"
+ style_urls = ['skins/standard/page.css']
+%]
-<p>
-The <b>status</b> and <b>resolution</b> fields define and track the life
-cycle of [% terms.abug %].
-</p>
+<p>This page describes the various fields that you see
+ on [% terms.abug %].</p>
-<a name="status"></a>
-<a name="resolution"></a>
-
-<table border="1" cellpadding="4">
- <tr align="center" valign="top">
- <td width="50%">
- <h1>STATUS</h1>
+<table class="field_value_explanation">
+ <thead>
+ <tr>
+ <td>
+ <a name="bug_status"></a>
+ <h2>[% field_descs.bug_status FILTER upper FILTER html %]</h2>
</td>
<td>
- <h1>RESOLUTION</h1>
+ <a name="resolution"></a>
+ <h2>[% field_descs.resolution FILTER upper FILTER html %]</h2>
</td>
</tr>
- <tr valign="top">
- <td>The <b>status</b> field indicates the general health of a
- [% terms.bug %]. Only certain status transitions are allowed.</td>
+ <tr>
+ <td>The [% field_descs.bug_status FILTER html %] field indicates the
+ current state of a [% terms.bug %]. Only certain status transitions
+ are allowed.</td>
- <td>The <b>resolution</b> field indicates what happened to this
- [%+ terms.bug %].</td>
+ <td>The [% field_descs.resolution FILTER html %] field indicates what
+ happened to this [%+ terms.bug %].</td>
</tr>
+ </thead>
- <tr valign="top">
+ <tbody>
+ <tr class="header_row">
+ <td colspan="2">Open [% terms.Bugs %]</td>
+ </tr>
+ <tr>
<td>
<dl>
<dt>
- <b>[% display_value("bug_status", "UNCONFIRMED") FILTER html %]</b>
+ [% display_value("bug_status", "UNCONFIRMED") FILTER html %]
</dt>
<dd>
This [% terms.bug %] has recently been added to the database.
- Nobody has validated that this [% terms.bug %] is true. Users
+ Nobody has confirmed that this [% terms.bug %] is valid. Users
who have the "canconfirm" permission set may confirm
- this [% terms.bug %], changing its state to [% display_value("bug_status", "NEW") FILTER html %]. Or, it may be
- directly resolved and marked [% display_value("bug_status", "RESOLVED") FILTER html %].
+ this [% terms.bug %], changing its state to
+ <b>[% display_value("bug_status", "NEW") FILTER html %]</b>.
+ Or, it may be directly resolved and marked
+ <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
</dd>
<dt>
- <b>[% display_value("bug_status", "NEW") FILTER html %]</b>
+ [% display_value("bug_status", "NEW") FILTER html %]
</dt>
<dd>
- This [% terms.bug %] has recently been added to the assignee's
- list of [% terms.bugs %] and must be processed. [% terms.Bugs %] in
- this state may be accepted, and become <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b>, passed
- on to someone else, and remain <b>[% display_value("bug_status", "NEW") FILTER html %]</b>, or resolved and marked
+ This [% terms.bug %] is valid and has recently been filed.
+ [%+ terms.Bugs %] in this state become
+ <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b> when
+ somebody is working on them, or become resolved and marked
<b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
</dd>
<dt>
- <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b>
+ [% display_value("bug_status", "ASSIGNED") FILTER html %]
</dt>
<dd>
- This [% terms.bug %] is not yet resolved, but is assigned to the
- proper person. From here [% terms.bugs %] can be given to another
- person and become <b>[% display_value("bug_status", "NEW") FILTER html %]</b>, or
- resolved and become <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
+ This [% terms.bug %] is not yet resolved, but is assigned to the
+ proper person who is working on the [% terms.bug %]. From here,
+ [%+ terms.bugs %] can be given to another person and become
+ <b>[% display_value("bug_status", "NEW") FILTER html %]</b>, or
+ resolved and become
+ <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
</dd>
<dt>
- <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b>
+ [% display_value("bug_status", "REOPENED") FILTER html %]
</dt>
<dd>
- This [% terms.bug %] was once resolved, but the resolution was
- deemed incorrect. For example, a <b>[% display_value("resolution", "WORKSFORME") FILTER html %]</b> [% terms.bug %] is
- <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b> when more information shows up and
- the [% terms.bug %] is now reproducible. From here [% terms.bugs %] are
- either marked <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b> or
+ This [% terms.bug %] was once resolved, but the resolution was
+ deemed incorrect. For example, a
+ <b>[% display_value("resolution", "WORKSFORME") FILTER html %]</b>
+ [%+ terms.bug %] is marked
+ <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b> when
+ more information shows up and the [% terms.bug %] is now
+ reproducible. From here, [% terms.bugs %] are either marked
+ <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b> or
<b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
</dd>
</dl>
</td>
<td>
- <dl>
- <dd>
- No resolution yet. All [% terms.bugs %] which are in one of
- these "open" states have the resolution set to blank. All
- other [% terms.bugs %] will be marked with one of the following
- resolutions.
- </dd>
- </dl>
+ No resolution yet. All [% terms.bugs %] which are in one of
+ these "open" states have no resolution set.
</td>
</tr>
- <tr valign="top">
+ <tr class="header_row">
+ <td colspan="2">Closed [% terms.Bugs %]</td>
+ </tr>
+
+ <tr>
<td>
<dl>
<dt>
- <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>
+ [% display_value("bug_status", "RESOLVED") FILTER html %]
</dt>
<dd>
- A resolution has been taken, and it is awaiting verification by
- QA. From here [% terms.bugs %] are either re-opened and become
- <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b>, are marked
- <b>[% display_value("bug_status", "VERIFIED") FILTER html %]</b>, or are closed for
- good and marked <b>[% display_value("bug_status", "CLOSED") FILTER html %]</b>.
+ A resolution has been performed, and it is awaiting verification by
+ QA. From here [% terms.bugs %] are either re-opened and become
+ <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b>, are
+ marked <b>[% display_value("bug_status", "VERIFIED") FILTER html %]</b>,
+ or are closed for good and marked
+ <b>[% display_value("bug_status", "CLOSED") FILTER html %]</b>.
</dd>
<dt>
- <b>[% display_value("bug_status", "VERIFIED") FILTER html %]</b>
+ [% display_value("bug_status", "VERIFIED") FILTER html %]
</dt>
<dd>
- QA has looked at the [% terms.bug %] and the resolution and
- agrees that the appropriate resolution has been taken. [% terms.Bugs %] remain
- in this state until the product they were reported
- against actually ships, at which point they become
+ QA has looked at the [% terms.bug %] and the resolution and
+ agrees that the appropriate resolution has been taken.
+ [%+ terms.Bugs %] remain in this state until the product they were
+ reported against actually ships, at which point they become
<b>[% display_value("bug_status", "CLOSED") FILTER html %]</b>.
</dd>
<dt>
- <b>[% display_value("bug_status", "CLOSED") FILTER html %]</b>
+ [% display_value("bug_status", "CLOSED") FILTER html %]
</dt>
<dd>
- The [% terms.bug %] is considered dead, the resolution is correct.
- Any zombie [% terms.bugs %] who choose to walk the earth again must
- do so by becoming <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b>.
+ The [% terms.bug %] is considered dead, the resolution is correct.
+ Any zombie [% terms.bugs %] who choose to walk the earth again must
+ do so by becoming
+ <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b>.
</dd>
</dl>
</td>
@@ -149,7 +163,7 @@ cycle of [% terms.abug %].
<td>
<dl>
<dt>
- <b>[% display_value("resolution", "FIXED") FILTER html %]</b>
+ [% display_value("resolution", "FIXED") FILTER html %]
</dt>
<dd>
A fix for this [% terms.bug %] is checked into the tree and
@@ -157,14 +171,14 @@ cycle of [% terms.abug %].
</dd>
<dt>
- <b>[% display_value("resolution", "INVALID") FILTER html %]</b>
+ [% display_value("resolution", "INVALID") FILTER html %]
</dt>
<dd>
The problem described is not [% terms.abug %].
</dd>
<dt>
- <b>[% display_value("resolution", "WONTFIX") FILTER html %]</b>
+ [% display_value("resolution", "WONTFIX") FILTER html %]
</dt>
<dd>
The problem described is [% terms.abug %] which will never be
@@ -172,17 +186,18 @@ cycle of [% terms.abug %].
</dd>
<dt>
- <b>[% display_value("resolution", "DUPLICATE") FILTER html %]</b>
+ [% display_value("resolution", "DUPLICATE") FILTER html %]
</dt>
<dd>
The problem is a duplicate of an existing [% terms.bug %].
- Marking [% terms.abug %] duplicate requires the [% terms.bug %]#
- of the duplicating [% terms.bug %] and will at least put
- that [% terms.bug %] number in the description field.
+ When [% terms.abug %] is marked as a
+ <b>[% display_value("resolution", "DUPLICATE") FILTER html %]</b>,
+ you will see which [% terms.bug %] it is a duplicate of,
+ next to the resolution.
</dd>
<dt>
- <b>[% display_value("resolution", "WORKSFORME") FILTER html %]</b>
+ [% display_value("resolution", "WORKSFORME") FILTER html %]
</dt>
<dd>
All attempts at reproducing this [% terms.bug %] were futile,
@@ -191,141 +206,77 @@ cycle of [% terms.abug %].
the [% terms.bug %] can be reopened.
</dd>
- <dt>
- <b>[% display_value("resolution", "MOVED") FILTER html %]</b>
- </dt>
- <dd>
- The problem was specific to a related product
- whose [% terms.bugs %] are tracked in
- another [% terms.bug %] database.
- The [% terms.bug %] has been moved to that database.
- </dd>
+ [% IF Param('move-enabled') %]
+ <dt>
+ [% display_value("resolution", "MOVED") FILTER html %]
+ </dt>
+ <dd>
+ The problem was specific to a related product
+ whose [% terms.bugs %] are tracked in
+ another [% terms.bug %] database.
+ The [% terms.bug %] has been moved to that database.
+ </dd>
+ [% END %]
</dl>
</td>
</tr>
+ </tbody>
</table>
-<h2><a name="importance">Importance</h2>
-The importance of [% terms.abug %] is described as the combination of
-its <a href="#priority">priority</a> and <a href="#bug_severity">severity</a>,
-as described below.
-
-<h2><a name="priority">Priority</a></h2>
-This field describes the importance and order in which [% terms.abug %]
-should be fixed compared to other [% terms.bugs %]. This field is utilized
-by the programmers/engineers to prioritize their work to be done.
-
-<h2><a name="bug_severity">Severity</a></h2>
-This field describes the impact of [% terms.abug %].
-
-<table>
- <tr>
- <th>[% display_value("bug_severity", "blocker") FILTER html %]</th>
-
- <td>Blocks development and/or testing work</td>
- </tr>
-
- <tr>
- <th>[% display_value("bug_severity", "critical") FILTER html %]</th>
-
- <td>crashes, loss of data, severe memory leak</td>
- </tr>
-
- <tr>
- <th>[% display_value("bug_severity", "major") FILTER html %]</th>
-
- <td>major loss of function</td>
- </tr>
-
- <tr>
- <th>[% display_value("bug_severity", "normal") FILTER html %]</th>
-
- <td>regular issue, some loss of functionality under specific circumstances</td>
- </tr>
-
-
- <tr>
- <th>[% display_value("bug_severity", "minor") FILTER html %]</th>
-
- <td>minor loss of function, or other problem where easy
- workaround is present</td>
- </tr>
-
- <tr>
- <th>[% display_value("bug_severity", "trivial") FILTER html %]</th>
-
- <td>cosmetic problem like misspelled words or misaligned
- text</td>
- </tr>
-
- <tr>
- <th>[% display_value("bug_severity", "enhancement") FILTER html %]</th>
-
- <td>Request for enhancement</td>
-</table>
-
-<h2><a name="rep_platform">Platform</a></h2>
-This is the hardware platform against which the [% terms.bug %] was
-reported. Legal platforms include:
-
-<ul>
- <li>[% display_value("rep_platform", "All") FILTER html %] (happens on all platforms; cross-platform [% terms.bug %])</li>
-
- <li>[% display_value("rep_platform", "Macintosh") FILTER html %]</li>
-
- <li>[% display_value("rep_platform", "PC") FILTER html %]</li>
-</ul>
-<b>Note:</b> When searching, selecting the option
-<em>[% display_value("rep_platform", "All") FILTER html %]</em> does not
-select [% terms.bugs %]
-assigned against any platform. It merely selects [% terms.bugs %] that are
-marked as occurring on all platforms, i.e. are designated
-<em>[% display_value("rep_platform", "All") FILTER html %]</em>.
-
-<h2><a name="op_sys">Operating System</a></h2>
-This is the operating system against which the [% terms.bug %] was
-reported. Legal operating systems include:
+<h2>Other Fields</h2>
-<ul>
- <li>[% display_value("op_sys", "All") FILTER html %] (happens on all operating systems; cross-platform
- [% terms.bug %])</li>
+[% PROCESS "bug/field-help.none.tmpl" %]
- <li>Windows</li>
-
- <li>Mac OS</li>
-
- <li>Linux</li>
-</ul>
-Sometimes the operating system implies the platform, but not
-always. For example, Linux can run on PC and Macintosh and
-others.
-
-<h2><a name="assigned_to">Assigned To</a></h2>
-
-<p>
-This is the person in charge of resolving the [% terms.bug %]. Every time
-this field changes, the status changes to <b>[% display_value("bug_status", "NEW") FILTER html %]</b> to make it
-easy to see which new [% terms.bugs %] have appeared on a person's list.</p>
-
-<p>
-The default status for queries is set to [% display_value("bug_status", "NEW") FILTER html %],
-[%+ display_value("bug_status", "ASSIGNED") FILTER html %] and [% display_value("bug_status", "REOPENED") FILTER html %].
-When searching for [% terms.bugs %] that have been resolved or
-verified, remember to set the status field appropriately.
-</p>
-
-[% IF Param("use_see_also") %]
- <h2><a name="see_also"></a>See Also</h2>
-
- <p>This allows you to refer to [% terms.bugs %] in other installations.
- You can enter a URL to a [%+ terms.bug %] in the "Add [% terms.Bug %] URLs"
- field to note that that [% terms.bug %] is related to this one. You can
- enter multiple URLs at once by separating them with a comma.</p>
+[% SET field_help_map = {} %]
+[% FOREACH field = bug_fields.keys %]
+ [% SET field_desc = field_descs.$field %]
+ [% field_help_map.$field_desc = { help => help_html.$field,
+ field => field } %]
+[% END %]
- <p>You should normally use this field to refer to [% terms.bugs %] in
- <em>other</em> installations. For [% terms.bugs %] in this
- installation, it is better to use the "Depends On" and "Blocks"
- fields.</p>
+[%# These are fields that don't need to be documented, either because
+ # they have docs somewhere else in the UI, or they don't show up on bugs.
+ # %]
+[% SET skip_fields = [
+ 'days_elapsed',
+ 'everconfirmed',
+ 'reporter_accessible',
+ 'cclist_accessible',
+ 'bug_group',
+ 'commenter',
+ 'owner_idle_time',
+ 'bug_status',
+ 'resolution',
+] %]
+
+<dl class="field_descriptions">
+[% FOREACH field_desc = field_help_map.keys.sort %]
+ [% SET field = field_help_map.${field_desc}.field %]
+ [% SET field_object = bug_fields.$field %]
+
+ [% NEXT IF field_object.obsolete %]
+ [% NEXT IF !user.is_timetracker AND field_object.is_timetracking %]
+
+ [% NEXT IF field == 'status_whiteboard' AND !Param('usestatuswhiteboard') %]
+ [% NEXT IF field == 'target_milestone' AND !Param('usetargetmilestone') %]
+ [% NEXT IF field == 'alias' AND !Param('usebugaliases') %]
+
+ [%# For now we don't have help for attachment fields and so on. %]
+ [% NEXT IF field.match('\.') %]
+
+ [% NEXT IF skip_fields.contains(field) %]
+
+ <dt><a name="[% field FILTER html %]"></a>[% field_desc FILTER html %]</dt>
+ <dd>
+ [% SET help_text = field_help_map.${field_desc}.help %]
+ [% IF help_text %]
+ [% help_text FILTER none %]
+ [% ELSE %]
+ A custom [% field_types.${field_object.type} FILTER html %] field in
+ this installation of [% terms.Bugzilla %].
+ [% END %]
+ </dd>
[% END %]
+</dl>
-[% INCLUDE global/footer.html.tmpl %]
+[% PROCESS global/footer.html.tmpl %]
diff --git a/template/en/default/search/search-advanced.html.tmpl b/template/en/default/search/search-advanced.html.tmpl
index cb0519a81..3a4252c2d 100644
--- a/template/en/default/search/search-advanced.html.tmpl
+++ b/template/en/default/search/search-advanced.html.tmpl
@@ -55,7 +55,7 @@ var queryform = "queryform"
[% IF NOT cgi.param("help") %]
document.write("<p><a href='query.cgi?help=1&amp;format=advanced'>Give me some help<\/a> (reloads page).<\/p>");
[% ELSE %]
- [% PROCESS "search/search-help.html.tmpl" %]
+ [% PROCESS "bug/field-help.none.tmpl" %]
if (generateHelp())
document.write("<p>For help, mouse over the page elements.<\/p>");
else
diff --git a/template/en/default/search/search-help.html.tmpl b/template/en/default/search/search-help.html.tmpl
deleted file mode 100644
index 4dbf6652a..000000000
--- a/template/en/default/search/search-help.html.tmpl
+++ /dev/null
@@ -1,104 +0,0 @@
-[%# The contents of this file are subject to the Mozilla Public
- # License Version 1.1 (the "License"); you may not use this file
- # except in compliance with the License. You may obtain a copy of
- # the License at http://www.mozilla.org/MPL/
- #
- # Software distributed under the License is distributed on an "AS
- # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- # implied. See the License for the specific language governing
- # rights and limitations under the License.
- #
- # The Original Code is the Bugzilla Bug Tracking System.
- #
- # The Initial Developer of the Original Code is Netscape Communications
- # Corporation. Portions created by Netscape are
- # Copyright (C) 1998 Netscape Communications Corporation. All
- # Rights Reserved.
- #
- # Contributor(s): Gervase Markham <gerv@gerv.net>
- #%]
-
-[% help_html = [
-{ id => "short_desc_type",
- html => "The type of summary search you would like" },
-{ id => "short_desc",
- html => "The $terms.bug summary is a short sentence which succinctly
- describes <br> what the $terms.bug is about." },
-{ id => "classification",
- html => "$terms.Bugs are categorised into Classifications, Products and Components. classifications is the<br>
- top-level categorisation." },
-{ id => "product",
- html => Param('useclassification') ?
- "$terms.Bugs are categorised into Products and Components. Select a Classification to narrow down this list" :
- "$terms.Bugs are categorised into Products and Components. Product is
- the<br>top-level categorisation." },
-{ id => "component",
- html => "Components are second-level categories; each belongs to a<br>
- particular Product. Select a Product to narrow down this list." },
-{ id => "version",
- html => "The version field defines the version of the software the
- $terms.bug<br>was found in." },
-{ id => "target_milestone",
- html => "The target_milestone field is used to define when the engineer<br>
- the $terms.bug is assigned to expects to fix it." },
-{ id => "longdesc",
- html => "$terms.Bugs have comments added to them by $terms.Bugzilla users.
- You can<br>search for some text in those comments." },
-{ id => "longdesc_type",
- html => "The type of comment search you would like" },
-{ id => "bug_file_loc",
- html => "$terms.Bugs can have a URL associated with them - for example, a
- pointer<br>to a web site where the problem is seen." },
-{ id => "bug_file_loc_type",
- html => "The type of URL search you would like" },
-{ id => "status_whiteboard",
- html => "Each $terms.bug has a free-form single line text entry box for
- adding<br>tags and status information." },
-{ id => "status_whiteboard_type",
- html => "The type of whiteboard search you would like" },
-{ id => "keywords",
- html => "You can add keywords from a defined list to $terms.bugs, in order
- to<br>tag and group them." },
-{ id => "keywords_type",
- html => "The type of keyword search you would like" },
-{ id => "bug_status",
- html => "$terms.Abug may be in any of a number of states." },
-{ id => "resolution",
- html => "If $terms.abug is in a resolved state, then one of these reasons
- will<br>be given for its resolution." },
-{ id => "bug_severity",
- html => "How severe the $terms.bug is, or whether it's an enhancement." },
-{ id => "priority",
- html => "Engineers prioritize their $terms.bugs using this field." },
-{ id => "rep_platform",
- html => "The hardware platform the $terms.bug was observed on." },
-{ id => "op_sys",
- html => "The operating system the $terms.bug was observed on." },
-{ id => "email1",
- html => "Every $terms.bug has people associated with it in different
- roles.<br>Here, you can search on what people are in what role." },
-{ id => "email2",
- html => "Every $terms.bug has people associated with it in different
- roles.<br>Here, you can search on what people are in what role." },
-{ id => "bug_id",
- html => "You can limit your search to a specific set of $terms.bugs ." },
-{ id => "chfield",
- html => "You can search for specific types of change - this field define <br>
- which field you are interested in changes for." },
-{ id => "chfieldfrom",
- html => "Specify the start and end dates either in YYYY-MM-DD format<br>
- (optionally followed by HH:mm, in 24 hour clock), or in relative<br>
- dates such as 1h, 2d, 3w, 4m, 5y, which respectively mean one hour,<br>
- two days, three weeks, four months, or five years ago. 0d is last<br>
- midnight, and 0h, 0w, 0m, 0y is the beginning of this hour, week,<br>
- month, or year." },
-{ id => "chfieldto",
- html => "Specify the start and end dates either in YYYY-MM-DD format<br>
- (optionally followed by HH:mm, in 24 hour clock), or in relative<br>
- dates such as 1h, 2d, 3w, 4m, 5y, which respectively mean one hour,<br>
- two days, three weeks, four months, or five years ago. 0d is last<br>
- midnight, and 0h, 0w, 0m, 0y is the beginning of this hour, week,<br>
- month, or year." },
-{ id => "chfieldvalue",
- html => "The value the field defined above changed to during that time." },
-] %]