r/a=justdave git-svn-id: svn://10.0.0.236/trunk@265264 18797224-902f-48f8-a5cc-f745e15eee43
368 lines
16 KiB
Cheetah
368 lines
16 KiB
Cheetah
[%# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
# This Source Code Form is "Incompatible With Secondary Licenses", as
|
|
# defined by the Mozilla Public License, v. 2.0.
|
|
#%]
|
|
|
|
[% INCLUDE global/header.html.tmpl
|
|
title = "$terms.Bugzilla QuickSearch"
|
|
bodyclasses = ['narrow_page']
|
|
%]
|
|
|
|
[% USE Bugzilla %]
|
|
|
|
<p><label for="quicksearch">Type in one or more words (or pieces of words)
|
|
to search for:</label></p>
|
|
|
|
<form name="f" action="buglist.cgi" method="get">
|
|
<input size="40" name="quicksearch" id="quicksearch" autofocus required>
|
|
<input type="submit" value="Search" id="find">
|
|
</form>
|
|
|
|
<ul>
|
|
<li><a href="#basics">The Basics</a></li>
|
|
<li><a href="#basic_examples">Examples of Simple Queries</a></li>
|
|
<li><a href="#fields">Fields You Can Search On</a></li>
|
|
<li><a href="#advanced_features">Advanced Features</a></li>
|
|
<li><a href="#shortcuts">Advanced Shortcuts</a></li>
|
|
<li><a href="#advanced_examples">Examples of Complex Queries</a></li>
|
|
</ul>
|
|
|
|
<h2 id="basics">The Basics</h2>
|
|
|
|
<ul class="qs_help">
|
|
<li>If you just put a word or series of words in the search box,
|
|
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.alias FILTER html %],
|
|
[%+ 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. Also, just typing the
|
|
<strong>alias</strong> of [% terms.abug %] will take you to that [% terms.bug %].
|
|
</li>
|
|
|
|
<li>Adding more terms <strong>narrows down</strong> the search, it does not
|
|
expand it. (In other words, 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>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 as part of other words—for example, [% terms.abug %]
|
|
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—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 you 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 id="basic_examples">Examples of Simple Queries</h2>
|
|
|
|
<p>Here are some examples of how to write some simple queries.
|
|
<a href="#advanced_examples">Examples for more complex queries</a> can be
|
|
found lower in this page.</p>
|
|
|
|
<ul class="qs_help">
|
|
<li>All open [% terms.bugs %] where userA@company.com is in the CC list
|
|
(no need to mention open [% terms.bugs %], this is the default):<br>
|
|
<kbd>cc:userA@company.com</kbd></li>
|
|
<li>All unconfirmed [% terms.bugs %] in product productA (putting the
|
|
[%+ terms.bug %] status at the first position make it being automagically
|
|
considered as [% terms.abug %] status):<br>
|
|
<kbd>UNCONFIRMED product:productA</kbd>
|
|
<li>All open and closed [% terms.bugs %] reported by userB@company.com
|
|
(we must specify ALL as the first word, else only open [% terms.bugs %]
|
|
are taken into account):<br>
|
|
<kbd>ALL reporter:userB@company.com</kbd>
|
|
<li>All open [% terms.bugs %] with severity blocker or critical with the
|
|
target milestone set to 2.5:<br>
|
|
<kbd>severity:blocker,critical milestone:2.5</kbd>
|
|
<li>All open [% terms.bugs %] in the component Research & Development
|
|
with priority P1 or P2 (we must use quotes for the component as its name
|
|
contains whitespaces):<br>
|
|
<kbd>component:"Research & Development" priority:P1,P2</kbd></li>
|
|
</ul>
|
|
|
|
<h2 id="fields">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:VERIFIED</kbd> will find all
|
|
[%+ terms.bugs %] in the <kbd>VERIFIED</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
|
|
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 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>
|
|
[% ", " UNLESS loop.last %]
|
|
[% END %]
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
|
|
<h2 id="advanced_features">Advanced Features</h2>
|
|
|
|
<ul class="qs_help">
|
|
<li>If you want to search for a <strong>phrase</strong> or something that
|
|
contains spaces, commas, colons or quotes, you must put it in quotes, like:
|
|
<kbd>"yes, this is a phrase"</kbd>. You must also use quotes to search for
|
|
characters that would otherwise be interpreted specially by quicksearch.
|
|
For example, <kbd>"this|that"</kbd> would search for the literal string
|
|
<em>this|that</em> and would not be parsed as <kbd>"this OR that"</kbd>.
|
|
Also, <kbd>"-field:value"</kbd> would search for the literal phrase
|
|
<em>-field:value</em> and would not be parsed as
|
|
<kbd>"NOT field:value"</kbd>.</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>
|
|
<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>
|
|
<li>
|
|
<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>
|
|
<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>
|
|
|
|
<p>You cannot use | nor OR to enumerate possible values for a given field.
|
|
You must use commas instead. So <kbd>field:value1,value2</kbd> does what
|
|
you expect, but <kbd>field:value1|value2</kbd> would be treated as
|
|
<kbd>field:value1 OR value2</kbd>, which means value2 is not bound to
|
|
the given field.</p>
|
|
|
|
<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>
|
|
|
|
<li>
|
|
The default operator, colon (:), performs a <strong>substring</strong>
|
|
match of the value. The following operators are supported:
|
|
<ul>
|
|
<li>
|
|
<strong>:</strong> (substring):<br>
|
|
<kbd><em>summary:foo</em></kbd> will search for [% terms.bugs %]
|
|
where the <kbd>summary</kbd> contains <kbd>foo</kbd>.
|
|
</li>
|
|
<li>
|
|
<strong>=</strong> (equals):<br>
|
|
<kbd><em>summary=foo</em></kbd> will search for [% terms.bugs %]
|
|
where the <kbd>summary</kbd> is exactly <kbd>foo</kbd>.
|
|
</li>
|
|
<li>
|
|
<strong>!=</strong> (notequals):<br>
|
|
<kbd><em>summary!=foo</em></kbd> will search for [% terms.bugs %]
|
|
where the <kbd>summary</kbd> is not <kbd>foo</kbd>.
|
|
</li>
|
|
<li>
|
|
<strong>></strong> (greaterthan):<br>
|
|
<kbd><em>creation_ts>-2w</em></kbd> will search for [% terms.bugs %]
|
|
where that were created between two weeks ago and now, excluding [%
|
|
terms.bugs %] exactly two weeks old.
|
|
</li>
|
|
<li>
|
|
<strong>>=</strong> (greaterthaneq):<br>
|
|
<kbd><em>creation_ts>=-2w</em></kbd> will search for [% terms.bugs %]
|
|
where that were created between two weeks ago and now, including [%
|
|
terms.bugs %] exactly two weeks old.
|
|
</li>
|
|
<li>
|
|
<strong><</strong> (lessthan):<br>
|
|
<kbd><em>creation_ts<-2w</em></kbd> will search for [% terms.bugs %]
|
|
where that were created more than two weeks ago, excluding [%
|
|
terms.bugs %] exactly two weeks old.
|
|
</li>
|
|
<li>
|
|
<strong><=</strong> (lessthaneq):<br>
|
|
<kbd><em>creation_ts<=-2w</em></kbd> will search for [% terms.bugs %]
|
|
where that were created more than two weeks ago, including [%
|
|
terms.bugs %] exactly two weeks old.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<h2 id="shortcuts">Advanced Shortcuts</h2>
|
|
|
|
<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>
|
|
|
|
<table 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-3</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>
|
|
|
|
<h2 id="advanced_examples">Examples of Complex Queries</h2>
|
|
|
|
<p>It is pretty easy to write rather complex queries without too much effort.
|
|
For very complex queries, you have to use the
|
|
<a href="query.cgi?format=advanced">Advanced Search</a> form.</p>
|
|
|
|
<ul class="qs_help">
|
|
<li>All [% terms.bugs %] reported by userA@company.com or assigned to them
|
|
(the initial @ is a shortcut for the assignee, see the
|
|
<a href="#shortcuts">Advanced Shortcuts</a> section above):<br>
|
|
<kbd>ALL @userA@company.com OR reporter:userA@company.com</kbd></li>
|
|
<li>All open [% terms.bugs %] in product productA with either severity
|
|
blocker, critical or major, or with priority P1, or with the blocker+
|
|
flag set, and which are neither assigned to userB@company.com nor to
|
|
userC@company.com (we make the assumption that there are only two users
|
|
matching userB and userC, else we would write the whole login name):<br>
|
|
<kbd>:productA sev:blocker,critical,major OR pri:P1 OR flag:blocker+ -assign:userB,userC</kbd></li>
|
|
<li>All FIXED [% terms.bugs %] with the blocker+ flag set, but without
|
|
the approval+ nor approval? flags set:<br>
|
|
<kbd>FIXED flag:blocker+ -flag:approval+ -flag:approval?</kbd></li>
|
|
<li>[% terms.Bugs %] with <em>That's a "unusual" issue</em> in the
|
|
[%+ terms.bug %] summary (double quotes are escaped using <em>\"</em>):<br>
|
|
<kbd>summary:"That's a \"unusual\" issue"</kbd></li>
|
|
</ul>
|
|
|
|
[% PROCESS global/footer.html.tmpl %]
|