Commit 7f85d8e5 authored by Max Kanat-Alexander's avatar Max Kanat-Alexander

Bug 518293: Improve and Simplify the QuickSearch Documentation

r=LpSolit, a=LpSolit
parent 36b5893b
......@@ -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
......
......@@ -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 });
......
......@@ -17,10 +17,22 @@
* 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;
}
......@@ -33,3 +45,26 @@
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;
}
......@@ -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>
......
......@@ -1436,8 +1436,8 @@
[% 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" %]
......
......@@ -10,29 +10,25 @@
#
# 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 == '')
......@@ -42,148 +38,236 @@
<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 %]
[%# 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 %]
......@@ -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>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment