]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 529201: Add help for every single field to fields.html
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Wed, 17 Feb 2010 21:49:23 +0000 (13:49 -0800)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Wed, 17 Feb 2010 21:49:23 +0000 (13:49 -0800)
r=LpSolit, a=LpSolit

Bugzilla/Field.pm
page.cgi
skins/standard/page.css
template/en/default/bug/field-help.none.tmpl [new file with mode: 0644]
template/en/default/global/help.html.tmpl
template/en/default/pages/fields.html.tmpl
template/en/default/search/search-advanced.html.tmpl
template/en/default/search/search-help.html.tmpl [deleted file]

index c2ab6e11b08264f4d6382a3bb7b5dc77dd8613f2..6b9ceb7c0b224846d6f9e4db0e19e968c626f91b 100644 (file)
@@ -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>
index 9326229a5d074fa70d25d777e04c5d4fb3fa55b0..5464789e7f1707c83a39c2f1396b3ab494a37b22 100755 (executable)
--- 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);
index 47869bb5844454645cd2cc59605201de11fa4513..da0c3be8d84f144d70e01e38c399e81a506cf12b 100644 (file)
     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 (file)
index 0000000..549a890
--- /dev/null
@@ -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 %]
index 36439bc07496beb08211ea51824bae253fc1b092..c0ff819cedb8c4a85072435d437c4eae3e54ee35 100644 (file)
@@ -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>
index 5be28cab702f4cd280ba36a3fa7afc9aa80f15c2..184aef96f905d39c473831435b6e2de188baeeee 100644 (file)
   #%]
 
 [% 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 %]
index cb0519a817b599ef5786fdcf95be7b4310136fc1..3a4252c2df04655015dad7ed19191dc99cfaf47b 100644 (file)
@@ -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 (file)
index 4dbf665..0000000
+++ /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." },   
-] %]