]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 518293: Improve and Simplify the QuickSearch Documentation
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Sun, 7 Feb 2010 23:36:22 +0000 (15:36 -0800)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Sun, 7 Feb 2010 23:36:22 +0000 (15:36 -0800)
r=LpSolit, a=LpSolit

.bzrignore
page.cgi
skins/standard/page.css [moved from skins/standard/release-notes.css with 62% similarity]
template/en/default/global/common-links.html.tmpl
template/en/default/global/user-error.html.tmpl
template/en/default/pages/quicksearch.html.tmpl
template/en/default/pages/quicksearchhack.html.tmpl [deleted file]
template/en/default/pages/release-notes.html.tmpl

index 0a247ff2b2c5d6226cc3285670887df08065e12b..e42398ecc9d342b5147f9e825db13c610e09cc41 100644 (file)
@@ -21,8 +21,8 @@
 /skins/contrib/Dusk/editusers.css
 /skins/contrib/Dusk/help.css
 /skins/contrib/Dusk/panel.css
+/skins/contrib/Dusk/page.css
 /skins/contrib/Dusk/params.css
-/skins/contrib/Dusk/release-notes.css
 /skins/contrib/Dusk/reports.css
 /skins/contrib/Dusk/show_bug.css
 /skins/contrib/Dusk/show_multiple.css
index d889841b33e90a20c5c9a84aa941374b80baa8a1..cd6cb611ec5747ec6bf0d17d83aeea68e7c61d59 100755 (executable)
--- a/page.cgi
+++ b/page.cgi
@@ -35,6 +35,29 @@ use lib qw(. lib);
 use Bugzilla;
 use Bugzilla::Error;
 use Bugzilla::Hook;
+use Bugzilla::Search::Quicksearch;
+
+###############
+# Subroutines #
+###############
+
+# For quicksearch.html.
+sub quicksearch_field_names {
+    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);
+    foreach my $nickname (@nicknames) {
+        my $db_field = $fields->{$nickname};
+        $fields_reverse{$db_field} ||= [];
+        push(@{ $fields_reverse{$db_field} }, $nickname);
+    }
+    return \%fields_reverse;
+}
+
+###############
+# Main Script #
+###############
 
 Bugzilla->login();
 
@@ -51,7 +74,9 @@ if ($id) {
         ThrowCodeError("bad_page_cgi_id", { "page_id" => $id });
     }
 
-    my %vars;
+    my %vars = ( 
+      quicksearch_field_names => \&quicksearch_field_names,
+    );
     Bugzilla::Hook::process('page_before_template', 
                             { page_id => $id, vars => \%vars });
 
similarity index 62%
rename from skins/standard/release-notes.css
rename to skins/standard/page.css
index 51159ae20feaf132709c4a67d85f3fa3465d2995..47869bb5844454645cd2cc59605201de11fa4513 100644 (file)
   * Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
   */
 
+/* This CSS is used by various informational pages in the
+   template/en/default/pages/ directory. */
+
 #bugzilla-body {
     padding: 0 1em;
 }
 
+#bugzilla-body > * {
+    /* People have an easier time reading narrower columns of text. */
+    max-width: 45em;
+}
+
+/*****************/
+/* Release Notes */
+/*****************/
+
 .req_new {
     color: red;
 }
     border: 1px solid black;
     padding: .25em;
 }
+
+/********************/
+/* QuickSearch Help */
+/********************/
+
+.qs_help li {
+   margin-top: 1ex;
+}
+
+.qs_fields th {
+    padding: 0 .25em;
+}
+.qs_fields th.field_nickname {
+    text-align: left;
+}
+.qs_fields td {
+    padding: .25em;
+    border-top: 1px solid gray;
+}
+.qs_fields .field_name {
+    width: 10em;
+}
+
index 70395b31991dc014d232ae2fc80df844bc9960c0..6ad638f723a9723b38cb8f85f267ceb12e3b5f42 100644 (file)
@@ -37,7 +37,8 @@
     <input class="txt" type="text" id="quicksearch[% qs_suffix FILTER html %]" name="quicksearch">
     <input class="btn" type="submit" value="Search" 
            id="find[% qs_suffix FILTER html %]">
-    [%-# Work around FF bug: keep this on one line %]</form></li>
+    [%-# Work around FF bug: keep this on one line %]</form>
+  <a href="page.cgi?id=quicksearch.html" title="Quicksearch Help">[?]</a></li>
 
   <li><span class="separator">| </span><a href="report.cgi">Reports</a></li>
 
index 79faabbfde6c930ae4025b3d77a1419061846bf2..9e58fb35d6788e324b780374d6a7963a6595c115 100644 (file)
     [% END %]
 
     [% IF unknown.size %]
-      <p>The legal field names are
-        <a href="page.cgi?id=quicksearchhack.html">listed here</a>.</p>
+      <p>The legal field names are 
+        <a href="page.cgi?id=quicksearch.html#fields">listed here</a>.</p>
     [% END %]
 
   [% ELSIF error == "reassign_to_empty" %]
index 3fd7c45b93e81f1029c3a466cc11c96556e9eeb9..93b0f59100c710ea4d0d7f37ef2bedd0bcfe2465 100644 (file)
   #
   # The Original Code is the Bugzilla Bug Tracking System.
   #
-  # Contributor(s): N.N.
-  #                 Marc Schumann <wurblzap@gmail.com>
+  # The Initial Developer of the Original Code is Everything Solved, Inc.
+  # Portions created by the Initial Developer are Copyright (C) 2009
+  # the Initial Developer. All Rights Reserved.
+  #
+  # Contributor(s):
+  #   Max Kanat-Alexander <mkanat@bugzilla.org>
   #%]
 
-[% PROCESS global/variables.none.tmpl %]
+[% PROCESS "global/field-descs.none.tmpl" %]
 
 [% INCLUDE global/header.html.tmpl
    title  = "$terms.Bugzilla QuickSearch",
-   style  = 'ul {margin-bottom: 2ex}
-             ul li {margin-top: 2ex}
-             ul li ul li {margin-top: 0}'
+   style_urls = ['skins/standard/page.css']         
    onload = 'document.forms[\'f\'].quicksearch.focus()'
  %]
 
-<p style="font-size: 80%">
-  If you are already familiar with the original
-  <a href="query.cgi">[% terms.Bugzilla %] Search Form</a>,
-  you may prefer <a href="page.cgi?id=quicksearchhack.html">this form</a>.
-</p>
+[% USE Bugzilla %]
 
-<p>
-  Type in one or more words (or word fragments) to search for:
-</p>
+<p>Type in one or more words (or pieces of words) to search for:</p>
 
 <form name="f" action="buglist.cgi" method="get"
       onsubmit="if (this.quicksearch.value == '')
   <input type="submit" value="Search" id="find">
 </form>
 
-<h2>Getting Started</h2>
+<h2>The Basics</h2>
 
-<ul>
-  <li>
-    This is <strong>case-insensitive</strong> search:<br />
-    <ul>
-      <li><tt>table</tt>, <tt>Table</tt> and <tt>TABLE</tt> are all the same.</li>
-    </ul>
-  </li>
-  <li>
-    This is <strong>all words as substrings</strong>
-    search.<br />
-    Therefore you should <strong>use stems</strong> to get better results:
-    <ul>
-      <li>
-        Use <tt>localiz</tt> instead of <tt>localize</tt> or
-        <tt>localization</tt>.
-      </li>
-     <li>
-       Use <tt>bookmark</tt> instead of <tt>bookmarks</tt> or
-       <tt>bookmarking</tt>.
-     </li>
-   </ul>
+<ul class="qs_help">
+  <li>If you just put a word or series of words in the search box, 
+    [%+ terms.Bugzilla %] will search the 
+    [%+ field_descs.product FILTER html %],
+    [%+ field_descs.component FILTER html %], 
+    [%+ IF use_keywords %][%+ field_descs.keywords FILTER html %],[% END %]
+    [%+ field_descs.short_desc FILTER html %], 
+    [%+ IF Param('usestatuswhiteboard') %][% field_descs.status_whiteboard FILTER html %],[% END %]
+    and [% field_descs.longdesc FILTER html %] fields for your word or words.</li>
+
+  <li>Typing just a <strong>number</strong> in the search box will take
+    you directly to the [% terms.bug %] with that ID. 
+    [% IF Param('usebugaliases') %]
+      Also, just typing the <strong>alias</strong> of [% terms.abug %]
+      will take you to that [% terms.bug %].
+    [% END %]
   </li>
+
+  <li>Adding more terms <strong>narrows down</strong> the search, it does not
+     expand it. (In other words, [% terms.Bugzilla %] searches for 
+     [%+ terms.bugs %] that match <em>all</em> your criteria, not
+     [%+ terms.bugs %] that match <em>any</em> of your criteria.)</li>
+
+  <li>Searching is <strong>case-insensitive</strong>. So <kbd>table</kbd>,
+    <kbd>Table</kbd>, and <kbd>TABLE</kbd> are all the same.</li>
+
+  <li>[% terms.Bugzilla %] does not just search for the exact word you put in,
+    but also for any word that <strong>contains</strong> that word.
+    So, for example, searching for "cat" would also find [% terms.bugs %]
+    that contain it&mdash;for example, a but mentioning 
+    "<strong>cat</strong>ch" or "certifi<strong>cat</strong>e". It will
+    not find partial words in the [% field_descs.longdesc FILTER html %]
+    or [% field_descs.keywords FILTER html %] fields,
+    though&mdash;only full words are matched, there.</li>
+
+  <li>By default, only <strong>open</strong> [% terms.bugs %] are
+    searched. If you want to know how to also search closed [% terms.bugs %],
+    see the <a href="#shortcuts">Advanced Shortcuts</a> section.</li>
+
+  <li>If you want to search <strong>specific fields</strong>, you do it like
+    <kbd>field:value</kbd>, where <kbd>field</kbd> is one of the 
+    <a href="#fields">field names</a> lower down in this
+    document, and <kbd>value</kbd> is the value you want to search for
+    in that field. If put commas in the <kbd>value</kbd>, then it is
+    interpreted as a list of values, and [% terms.bugs %] that match
+    <em>any</em> of those values will be searched for.</li>
 </ul>
 
-<h2><a name="features">Features</a></h2>
+<p>You may also want to read up on the <a href="#advanced">Advanced
+  Features</a>.</p>
 
-<ul>
-  <li>
-    Boolean operations: &ldquo;<tt>-foo</tt>&rdquo;&nbsp;(NOT),
-    &ldquo;<tt>foo&nbsp;bar</tt>&rdquo;&nbsp;(AND),
-    &ldquo;<tt>foo|bar</tt>&rdquo;&nbsp;(OR).
-    <ul>
-      <li>
-        <strong>NOT</strong>:<br />
-        Use <tt><b>-</b><i>foo</i></tt> to exclude [% terms.bugs %]
-        with <tt><i>foo</i></tt> in the summary.
-      </li>
-      <li>
-        <strong>AND</strong>:<br />
-        Space-separated words are treated as a conjunction.
-      </li>
-      <li>
-        <strong>OR</strong>:<br />
-        Within a word, "|"-separated parts denote alternatives.
-      </li>
-      <li>
-        Besides "|", a comma can be used to separate alternatives.
-      </li>
-      <li>
-        OR has higher precedence than AND; AND is the top level operation.
-      </li>
-    </ul>
-    <i>Example:</i>
-    <tt>url,location bar,field -focus</tt> means
-    (<tt>url</tt> OR <tt>location</tt>) AND (<tt>bar</tt> OR <tt>field</tt>)
-    AND (NOT <tt>focus</tt>)
-  </li>
-  <li>
-    Use <tt>+foo</tt> to search for [% terms.bugs %] where the
-    <strong>summary</strong> contains <tt>foo</tt> as a
-    <strong>substring</strong>.<br/>
-    Use <tt>#foo</tt> to search for [% terms.bugs %] where the
-    <strong>summary</strong> contains the <strong>word</strong> <tt>foo</tt>.
-    <ul>
-      <li>
-        <tt>+brow</tt> does not find all [% terms.bugs %] in the
-        <tt>Browser</tt> product.
-      </li>
-      <li>
-        <tt>#title</tt> does not find [% terms.bugs %] with <tt>titlebar</tt>
-        or <tt>titled</tt>.
-      </li>
-    </ul>
-    Phrases with special chars (space, comma, +, -, #, &hellip;) can be
-    <strong>quoted</strong>:
+<h2><a name="fields"></a>Fields You Can Search On</h2>
+
+<p>You can specify any of these fields like <kbd>field:value</kbd>
+  in the search box, to search on them. You can also abbreviate
+  the field name, as long as your abbreviation matches only one field name.
+  So, for example, searching on <kbd>stat:NEW</kbd> will find all
+  [%+ terms.bugs %] in the <kbd>NEW</kbd> status. Some fields have
+  multiple names, and you can use any of those names to search for them.</p>
+
+[% IF Bugzilla.active_custom_fields.size %]
+  [% SET first_field = Bugzilla.active_custom_fields.0 %]
+  <p>For custom fields, they can be used and abbreviated
+    based on the part of their name <em>after</em> the <kbd>cf_</kbd>
+    if you'd like, in addition to their standard name starting with
+    <kbd>cf_</kbd>. So for example, 
+    <kbd>[% first_field.name FILTER html %]</kbd> can be
+    referred to as 
+    <kbd>[% first_field.name.replace('^cf_') FILTER html %]</kbd>,
+    also. However, if this causes a conflict between the standard
+    [%+ terms.Bugzilla %] field names and the custom field names, the
+    standard field names always take precedence.</p>
+[% END %]
+
+[% SET field_table = {} %]
+[% FOREACH field = quicksearch_field_names.keys %]
+  [% description = field_descs.$field %]
+  [% field_table.$description = quicksearch_field_names.${field} %]
+[% END %]
+
+
+<table cellspacing="0" cellpadding="0" border="0" class="qs_fields">
+  <thead>
+    <tr>
+      <th class="field_name">Field</th>
+      <th class="field_nickname">Field Name(s) For Search</th>
+    </tr>
+  </thead>
+  <tbody>
+    [% FOREACH desc = field_table.keys.sort %]
+      <tr>
+        <td class="field_name">[% desc FILTER html %]</td>
+        <td class="field_nickname">
+          [% FOREACH nickname = field_table.$desc %]
+            <kbd>[% nickname FILTER html %]</kbd>
+            [% ",&nbsp; " UNLESS loop.last %]
+          [% END %]
+      </tr>
+    [% END %]
+  </tbody>
+</table>
+
+<h2><a name="advanced"></a>Advanced Features</h2>
+
+<ul class="qs_help">
+  <li>If you want to search for a <strong>phrase</strong> or something that
+    contains spaces, you can put it in quotes, like:
+    <kbd>"this is a phrase"</kbd>. You can also use quotes to search for
+    characters that would otherwise be interpreted specially by quicksearch.
+    For example, <kbd>"this|thing"</kbd> would search for the literal phrase
+    <em>this|thing</em>.</li>
+
+  <li>You can use <strong>AND</strong>, <strong>NOT</strong>,
+    and <strong>OR</strong> in searches. 
+
+    You can also use <kbd>-</kbd> to mean "NOT", and <kbd>|</kbd> to mean "OR".
+    There is no special character for "AND", because by default any search
+    terms that are separated by a space are joined by an "AND".
+    Examples:
     <ul>
       <li>
-        <tt>"lock icon"</tt>
+        <strong>NOT</strong>:<br>
+        Use <kbd><strong>-</strong><em>summary:foo</em></kbd> to exclude 
+        [%+ terms.bugs %] with <kbd>foo</kbd> in the summary.<br>
+        <kbd><em>NOT summary:foo</em></kbd> would have the same effect.
       </li>
-    </ul>
-  </li>
-  <li>
-    <strong>Open vs. Resolved [% terms.Bugs %]</strong>:<br />
-    By default, only open (i.e. unresolved) [% terms.bugs %] are shown.
-    Use <tt>+DUP</tt> as first word in your search to include duplicate
-    [%+ terms.bugs %] in your search,
-    <tt>FIXED</tt> to search for fixed [%+ terms.bugs %] only,
-    or <tt>ALL</tt> to search all [% terms.bugs %],
-    regardless of status or resolution.
-    Searching for duplicates is recommended if you can't find an open
-    [%+ terms.bug %] directly.
-    <ul>
       <li>
-        <tt>+DUP,FIXED table border</tt>
+        <strong>AND</strong>:<br>
+        <kbd><em>foo bar</em></kbd> searches for [% terms.bugs %] that contains
+        both <kbd>foo</kbd> and <kbd>bar</kbd>.<br>
+        <kbd><em>foo AND bar</em></kbd> would have the same effect.
       </li>
       <li>
-        <tt>ALL mouse wheel</tt>
+        <strong>OR</strong>:<br>
+        <kbd><em>foo<strong>|</strong>bar</em></kbd> would search
+        for [% terms.bugs %] that contain <kbd>foo</kbd> OR <kbd>bar</kbd>.<br>
+        <kbd><em>foo OR bar</em></kbd> would have the same effect.<br>
       </li>
     </ul>
-  </li>
-  <li>
-    <strong>Focus the Search with Products &amp;
-    Components</strong>:<br />
-    To search for [% terms.bugs %] in product "Foo Bar" only, add
-    <tt>:foo</tt> or <tt>:bar</tt> or both to your search.
-    You can do this with any substring of a
-    <a href="describecomponents.cgi">product or component</a> to focus the
-    search.
+
+    <p>OR has higher precedence than AND; AND is the top level operation.
+      For example:</p>
+    <p>Searching for <em><kbd>url|location bar|field -focus</kbd></em> means
+      (<kbd>url</kbd> OR <kbd>location</kbd>) AND (<kbd>bar</kbd> OR 
+      <kbd>field</kbd>) AND (NOT <kbd>focus</kbd>)</p>
   </li>
 </ul>
 
-<h2>More Tips</h2>
+<h2><a name="shortcuts"></a>Advanced Shortcuts</h2>
 
-<ul>
-  <li>
-    You can also use this tool to <strong>lookup</strong> a [% terms.bug %] by
-    its number:<br />
-    <ul>
-      <li><tt>12345</tt></li>
-    </ul>
-  </li>
-  <li>
-    A comma-separated list of [% terms.bug %] numbers gives you a list of these
-    [%+ terms.bugs %]:<br />
-    <ul>
-      <li><tt>12345,23456,34567</tt></li>
-    </ul>
-  </li>
-</ul>
+<p>In addition to using <a href="#fields">field names</a> to search
+  specific fields, there are certain characters or words that you can
+  use as a "shortcut" for searching certain fields:</p>
 
-<p>
-  By default, the following fields are searched: Summary, Keywords, Product,
-  Component, Status Whiteboard. If a word looks like a part of a URL, that field
-  is included in the search, too.
-</p>
-<hr>
-
-<p>
-  Use the powerful <a href="query.cgi">[% terms.Bugzilla %] Search Form</a>
-  for advanced queries.
-</p>
+<table cellspacing="0" cellpadding="0" border="0" class="qs_fields">
+  <thead>
+    <tr>
+      <th class="field_name">Field</th>
+      <th class="field_nickname">Shortcut(s)</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td class="field_name">[% field_descs.bug_status FILTER html %]</td>
+      <td class="field_nickname">
+        Make the <strong>first word</strong> of your search the name of any
+        status, or even an abbreviation of any status, and [% terms.bugs %]
+        in that status will be searched. <strong><kbd>ALL</kbd></strong>
+        is a special shortcut that means "all statuses".
+        <strong><kbd>OPEN</kbd></strong> is a special shortcut that means
+        "all open statuses".
+      </td>
+    </tr>
+    <tr>
+      <td class="field_name">[% field_descs.resolution FILTER html %]</td>
+      <td class="field_nickname">
+        Make the <strong>first word</strong> of your search the name of any
+        resolution, or even an abbreviation of any resolution, and 
+        [%+ terms.bugs %] with that resolution will be searched. For example,
+        making <kbd>FIX</kbd> the first word of your search will find all
+        [%+ terms.bugs %] with a resolution of <kbd>FIXED</kbd> .
+    </tr>
+    <tr>
+      <td class="field_name">[% field_descs.priority FILTER html %]</td>
+      <td class="field_nickname">"<strong>P1</strong>" (as a word anywhere in
+        the search) means "find [% terms.bugs %] with the highest priority. 
+        "P2" means the second-highest priority, and so on.
+        <p>Searching for "<strong>P1-P3</strong>" will find [% terms.bugs %] in
+        any of the three highest priorities, and so on.</p>
+      </td>
+    </tr>
+    <tr>
+      <td class="field_name">[% field_descs.assigned_to FILTER html %]</td>
+      <td class="field_nickname"><strong>@</strong><em>value</em></td>
+    </tr>
+    <tr>
+      <td class="field_name">[% field_descs.product FILTER html %] or
+        [%+ field_descs.component FILTER html %]</td>
+      <td class="field_nickname"><strong>:</strong><em>value</em></td>
+    </tr>
+    [% IF use_keywords %]
+      <tr>
+        <td class="field_name">[% field_descs.keywords FILTER html %]</td>
+        <td class="field_nickname"><strong>!</strong><em>value</em></td>
+      </tr>
+    [% END %]
+    <tr>
+      [% SET key = "flagtypes.name" %]
+      <td class="field_name">[% field_descs.$key FILTER html %]</td>
+      <td class="field_nickname">
+        <em>flag</em><strong>?</strong><em>requestee</em>
+      </td>
+    </tr>
+    <tr>
+      <td class="field_name">[% field_descs.longdesc FILTER html %]
+        or [% field_descs.short_desc FILTER html %]</td>
+      <td class="field_nickname">
+        <strong>#</strong><em>value</em>
+      </td>
+    </tr>
+    [% IF Param('usestatuswhiteboard') %]
+      <tr>
+        <td class="field_name">[% field_descs.short_desc FILTER html %]
+          or [% field_descs.status_whiteboard FILTER html %]</td>
+        <td class="field_nickname"><strong>[</strong><em>value</em></td>
+      </tr>
+    [% END %]
+  </tbody>
+</table>
 
 [% PROCESS global/footer.html.tmpl %]
diff --git a/template/en/default/pages/quicksearchhack.html.tmpl b/template/en/default/pages/quicksearchhack.html.tmpl
deleted file mode 100644 (file)
index 06f8c6d..0000000
+++ /dev/null
@@ -1,387 +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.
-  #
-  # Contributor(s): N.N.
-  #                 Marc Schumann <wurblzap@gmail.com>
-  #%]
-
-[% PROCESS global/variables.none.tmpl %]
-
-[% INCLUDE global/header.html.tmpl
-   title  = "$terms.Bugzilla QuickSearch (for Hackers)",
-   style  = 'th {text-align: left}'
-   onload = 'document.forms[\'f\'].quicksearch.focus()'
- %]
-
-<p>
-  Type in one or more words (or word fragments) to search for:
-</p>
-
-<form name="f" action="buglist.cgi" method="get"
-      onsubmit="if (this.quicksearch.value == '')
-                { alert('Please enter one or more search terms first.');
-                  return false; } return true;">
-  <input type="text" size="40" name="quicksearch">
-  <input type="submit" value="Search" id="find">
-  <input type="submit" name="load" value="Load Search Form" id="load">
-</form>
-
-<p>
-  This is a case-insensitive &ldquo;all words as substrings&rdquo; search;
-  words are separated by spaces.
-  By default, the following fields are relevant: Summary, Keywords,
-  Product, Component, Status Whiteboard.
-  If a word looks like a part of a URL, that field is included in the search,
-  too.
-</p>
-<p>
-  The generic format for a &ldquo;word&rdquo; is
-  <tt>field1,&hellip;,fieldN:value1,&hellip;,valueM</tt>.
-  A [% terms.bug %] qualifies if at least one of the values occurs as a
-  substring in at least one of the fields.
-  For example, <tt>assignee,reporter,qa:ibm,sun</tt> will give you
-  [%+ terms.bugs %] where the assignee, reporter, or qa contact has a login
-  that contains <tt>ibm</tt> or <tt>sun</tt>.
-  If only <tt>value1,&hellip;,valueM</tt> is given, the prefix (roughly) defaults to
-  <tt>summary,keywords,product,component,statuswhiteboard:</tt> as noted above.
-  You can use <tt>-<i>word</i></tt> to express the logical negation of
-  <tt><i>word</i></tt>.
-</p>
-<p>
-  Here is a complete listing of available fields (the Shortcut column is just
-  for access speed):
-</p>
-
-<table border="1">
-<thead>
-<tr>
-  <th>Searched by default</th>
-  <th>Shortcut</th>
-  <th>Field Name</th>
-  <th>Aliases</th>
-  <th>Description</th>
-</tr>
-</thead>
-
-<!-- Status, Resolution, Platform, OS, Priority, Severity -->
-
-<tr>
-  <td>&nbsp;</td>
-  <td rowspan="2">
-    <tt>UNCO,NEW,&hellip;,CLOS,<br>FIX,DUP,&hellip;<i>(as first word)</i></tt>
-  </td>
-  <td><tt>status</tt></td>
-  <td>&nbsp;</td>
-  <td>
-    <a href="page.cgi?id=fields.html#status">Status</a>
-    <i>(&ldquo;bug_status&rdquo;)</i>
-  </td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td><tt>resolution</tt></td>
-  <td>&nbsp;</td>
-  <td><a href="page.cgi?id=fields.html#resolution">Resolution</a></td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td><i>as-is</i></td>
-  <td><tt>platform</tt></td>
-  <td>&nbsp;</td>
-  <td>
-    <a href="page.cgi?id=fields.html#rep_platform">Platform</a>
-    <i>(&ldquo;rep_platform&rdquo;)</i>
-  </td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>os</tt></td>
-  <td><tt>opsys</tt></td>
-  <td>
-    <a href="page.cgi?id=fields.html#op_sys">OS</a>
-    <i>(&ldquo;op_sys&rdquo;)</i>
-  </td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td><tt>p1,p2</tt> <i>or</i> <tt>p1-2</tt></td>
-  <td><tt>priority</tt></td>
-  <td><tt>pri</tt></td>
-  <td><a href="page.cgi?id=fields.html#priority">Priority</a></td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td><tt>blo,cri,&hellip;,enh</tt></td>
-  <td><tt>severity</tt></td>
-  <td><tt>sev</tt></td>
-  <td>
-    <a href="page.cgi?id=fields.html#bug_severity">Severity</a>
-    <i>(&ldquo;bug_severity&rdquo;)</i>
-  </td>
-</tr>
-
-<!-- People: AssignedTo, Reporter, QA Contact, CC, Added comment -->
-<!-- Added comment is missing!!!! -->
-
-<tr>
-  <td>&nbsp;</td>
-  <td><b>@</b><i>assignee</i></td>
-  <td><tt>assignedto</tt></td>
-  <td><tt>assignee</tt></td>
-  <td>
-    <a href="page.cgi?id=fields.html#assigned_to">Assignee</a>
-    <i>(&ldquo;assigned_to&rdquo;)</i>
-  </td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>reporter</tt></td>
-  <td><tt>rep</tt></td>
-  <td>Reporter (login)</td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>qa</tt></td>
-  <td><tt>qacontact</tt></td>
-  <td>QA Contact (login) <i>(&ldquo;qa_contact&rdquo;)</i></td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>cc</tt></td>
-  <td>&nbsp;</td>
-  <td>CC (login)</td>
-</tr>
-
-<!-- Product, Version, Component, Target Milestone -->
-
-<tr>
-  <td><i>yes</i></td>
-  <td rowspan="2"><b>:</b><i>area</i></td>
-  <td><tt>product</tt></td>
-  <td><tt>prod</tt></td>
-  <td>Product (enum)</td>
-</tr>
-<tr>
-  <td><i>yes</i></td>
-  <td><tt>component</tt></td>
-  <td><tt>comp</tt></td>
-  <td><a href="describecomponents.cgi">Component</a></td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>version</tt></td>
-  <td><tt>ver</tt></td>
-  <td>Version (enum)</td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>milestone</tt></td>
-  <td><tt>target, targetmilestone</tt></td>
-  <td>Target Milestone <i>(&ldquo;target_milestone&rdquo;)</i></td>
-</tr>
-
-<!-- Summary, Description, URL, Status whiteboard, Keywords -->
-
-<tr>
-  <td><i>yes</i></td>
-  <td>&nbsp;</td>
-  <td><tt>summary</tt></td>
-  <td><tt>shortdesc</tt></td>
-  <td>
-    [% terms.Bug %] Summary (short text)
-    <i>(&ldquo;short_desc&rdquo;)</i>
-  </td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>description</tt></td>
-  <td><tt>desc, longdesc<!--, comment--></tt></td>
-  <!-- reserve "comment" for "added comment" login search?! -->
-  <td>[% terms.Bug %] Description / Comments (long text)</td>
-</tr>
-<tr>
-  <td><i>depends</i></td>
-  <td>&nbsp;</td>
-  <td><tt>url</tt></td>
-  <td>&nbsp;</td>
-  <td>URL <i>(&ldquo;bug_file_loc&rdquo;)</i></td>
-</tr>
-<tr>
-  <td><i>yes</i></td>
-  <td>&nbsp;</td>
-  <td><tt>statuswhiteboard</tt></td>
-  <td><tt>sw, whiteboard</tt></td>
-  <td>Status Whiteboard <i>(&ldquo;status_whiteboard&rdquo;)</i></td>
-</tr>
-<tr>
-  <td><i>yes</i></td>
-  <td><b>!</b><i>keyword</i></td>
-  <td><tt>keywords</tt></td>
-  <td><tt>kw</tt></td>
-  <td><a href="describekeywords.cgi">Keywords</a></td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>group</tt></td>
-  <td>&nbsp;</td>
-  <td>Group</td>
-</tr>
-
-<!-- Flags -->
-
-<tr>
-  <td>&nbsp;</td>
-  <td rowspan="2"><i>flag</i><b>?</b><i>requestee</i></td>
-  <td><tt>flag</tt></td>
-  <td>&nbsp;</td>
-  <td>Flag name and status (+, - or ?)</td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td><tt>requestee</tt></td>
-  <td><tt>req</tt></td>
-  <td>Flag requestee (login)</td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>setter</tt></td>
-  <td><tt>set</tt></td>
-  <td>Flag setter (login)</td>
-</tr>
-
-<!-- Attachments -->
-
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>attachmentdesc</tt></td>
-  <td><tt>attachdesc</tt></td>
-  <td>
-    Attachment Description
-    <i>(&ldquo;attachments.description&rdquo;)</i>
-  </td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>attachmentdata</tt></td>
-  <td><tt>attachdata</tt></td>
-  <td>Attachment Data <i>(&ldquo;attach_data.thedata&rdquo;)</i></td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>attachmentmimetype</tt></td>
-  <td><tt>attachmimetype</tt></td>
-  <td>Attachment mime-type <i>(&ldquo;attachments.mimetype&rdquo;)</i></td>
-</tr>
-<tr>
-  <td>&nbsp;</td>
-  <td>&nbsp;</td>
-  <td><tt>votes</tt></td>
-  <td>&nbsp;</td>
-  <td>
-    Number of votes<br>
-    (votes:<i>N</i> and votes&gt;=<i>N</i> mean "at least N votes",
-    votes&gt;<i>N</i> means "more than N votes")
-  </td>
-</tr>
-</table>
-
-<p>
-  Examples for some useful abbreviations:
-</p>
-<table border="1">
-<thead>
-<tr>
-  <th>Syntax</th>
-  <th>Semantics and Examples</th>
-</tr>
-</thead>
-
-<!--
-<tr>
-  <td><i>STAT</i> <i>(as first word)</i></td>
-  <td><b>status,resolution:</b> <i>STAT</i></td>
-</tr>
-<tr>
-  <td></td>
-  <td></td>
-</tr>
-<tr>
-  <td><tt>ALL</tt> <i>(as first word)</i></td>
-  <td><i>include all resolved [% terms.bugs %] in your search</i></td>
-</tr>
-<tr>
-  <td><tt>+DUP,FIXED</tt> <i>(as first word)</i></td>
-  <td><i>include DUPLICATE and FIXED [% terms.bugs %] in your search</i></td>
-</tr>
--->
-
-<tr>
-  <td><b>:</b><i>area</i></td>
-  <td><b>product,component:</b><i>area</i></td>
-</tr>
-<tr>
-  <td><i>sev</i></td>
-  <td><b>severity:</b><i>sev</i></td>
-</tr>
-<tr>
-  <td><tt>blo,cri,maj</tt></td>
-  <td><i>severe [% terms.bugs %]</i></td>
-</tr>
-<tr>
-  <td><tt>enh</tt></td>
-  <td><i>enhancement requests</i></td>
-</tr>
-<tr>
-  <td><b>p</b><i>level</i></td>
-  <td><b>priority:</b><i>level</i></td>
-</tr>
-<tr>
-  <td><tt>p1</tt></td>
-  <td><i>very high-priority [% terms.bugs %]</i></td>
-</tr>
-<tr>
-  <td><tt>p1-2</tt></td>
-  <td><i>high-priority [% terms.bugs %]</i></td>
-</tr>
-<tr>
-  <td><b>@</b><i>assignee</i></td>
-  <td><b>assignedto:</b><i>assignee</i></td>
-</tr>
-<tr>
-  <td><b>!</b><i>keyword</i></td>
-  <td><b>keywords:</b><i>keyword</i></td>
-</tr>
-<tr>
-  <td><i>flag</i><b>?</b><i>requestee</i></td>
-  <td><b>flag:</b><i>flag?</i> <b>requestee:</b><i>requestee</i></td>
-</tr>
-</table>
-
-<p>
-  More information can be found in the
-  <a href="page.cgi?id=quicksearch.html#features">&ldquo;Features&rdquo;</a>
-  section on the <a href="page.cgi?id=quicksearch.html">introductory page</a>.
-</p>
-
-[% PROCESS global/footer.html.tmpl %]
index 35d586bde183d1e5cd32e14c2243ba7a3e7718d8..4156ce03b0d0da3f7d1eb03be601ebb8177ea1be 100644 (file)
@@ -20,7 +20,7 @@
 [% PROCESS global/variables.none.tmpl %]
 [% INCLUDE global/header.html.tmpl 
   title = "$terms.Bugzilla 3.4 Release Notes" 
-  style_urls = ['skins/standard/release-notes.css'] 
+  style_urls = ['skins/standard/page.css'] 
 %]
 
 <h2>Table of Contents</h2>