[%# 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. #%] [%# INTERFACE: # searchtype: string. Type of search - either "series", "saved" or undef. # ... # defaultsavename: string. The default name for saving the query. #%] [%############################################################################%] [%# Template Initialization #%] [%############################################################################%] [% PROCESS "global/field-descs.none.tmpl" %] [% USE Bugzilla %] [% cgi = Bugzilla.cgi %] [% unfiltered_title = "$terms.Bug List" %] [% IF searchname || defaultsavename %] [% unfiltered_title = unfiltered_title _ ": " _ (searchname OR defaultsavename) %] [% END %] [% title = unfiltered_title FILTER html %] [% qorder = order FILTER uri IF order %] [% javascript = BLOCK %] [% new_url = cgi.self_url %] [% IF quicksearch %] [% new_url = BLOCK ~%] buglist.cgi?quicksearch=[% quicksearch FILTER uri %] [%~ IF cgi.param('list_id') ~%] &list_id=[% cgi.param('list_id') FILTER uri %] [%~ END %] [% END %] [% ELSIF cgi.param('token') != '' %] [% new_url = 'buglist.cgi?' _ cgi.canonicalise_query('token', 'cmdtype', 'remtype') %] [% END %] if (history && history.replaceState) { history.replaceState(null, "[% unfiltered_title FILTER js %]", "[% new_url FILTER js %]"); document.title = "[% unfiltered_title FILTER js %]"; } [% javascript FILTER none %] [% END %] [%############################################################################%] [%# Page Header #%] [%############################################################################%] [% PROCESS global/header.html.tmpl title = title style = style atomlink = "buglist.cgi?$urlquerypart&title=$title&ctype=atom" yui = [ 'autocomplete', 'calendar' ] javascript_urls = [ "js/util.js", "js/field.js", "js/TUI.js" ] style_urls = [ "skins/standard/buglist.css" ] doc_section = "query.html#list" %] <div class="bz_query_head"> <span class="bz_query_timestamp"> [% currenttime FILTER time('%a %b %e %Y %T %Z') FILTER html %]<br> </span> [% IF debug %] <div class="bz_query_debug"> <p>Total execution time: [% query_time FILTER html %] seconds</p> [% FOREACH query = queries %] <p>[% query.sql FILTER html %]</p> <p>Execution time: [% query.time FILTER html %] seconds</p> [% IF query.explain %] <pre>[% query.explain FILTER html %]</pre> [% END %] [% END %] </div> [% END %] [% IF user.settings.display_quips.value == 'on' %] [% DEFAULT quip = "$terms.Bugzilla would like to put a random quip here, but no one has entered any." %] <span class="bz_quip"> <a href="quips.cgi"><em>[% quip FILTER html %]</em></a> </span> [% END %] </div> [% IF toolong %] <h2 class="bz_smallminded"> This list is too long for [% terms.Bugzilla %]'s little mind; the Next/Prev/First/Last buttons won't appear on individual [% terms.bugs %]. </h2> [% END %] [% SET shown_types = [ 'notequals', 'regexp', 'notregexp', 'lessthan', 'lessthaneq', 'greaterthan', 'greaterthaneq', 'changedbefore', 'changedafter', 'changedfrom', 'changedto', 'changedby', 'notsubstring', 'nowords', 'nowordssubstr', 'notmatches', ] %] <a id="search_description_controller" class="bz_default_hidden" href="javascript:TUI_toggle_class('search_description')">Hide Search Description</a> [%# Show the link if the browser supports JS %] <script type="text/javascript"> TUI_alternates['search_description'] = 'Show Search Description'; YAHOO.util.Dom.removeClass('search_description_controller', 'bz_default_hidden'); </script> <ul class="search_description"> [% FOREACH desc_item = search_description %] <li> <strong>[% field_descs.${desc_item.field} FILTER html %]:</strong> [% IF shown_types.contains(desc_item.type) || debug %] ([% search_descs.${desc_item.type} FILTER html %]) [% END %] [% FOREACH val IN desc_item.value.split(',') %] [%+ display_value(desc_item.field, val) FILTER html %][% ',' UNLESS loop.last %] [% END %] [% IF debug %] (<code>[% desc_item.term FILTER html %]</code>) [% END %] </li> [% END %] </ul> <hr> [%############################################################################%] [%# Preceding Status Line #%] [%############################################################################%] [% IF bugs.size > 9 %] [% PROCESS num_results %] [% END %] [%############################################################################%] [%# Start of Change Form #%] [%############################################################################%] [% IF dotweak %] <form name="changeform" method="post" action="process_bug.cgi"> [% END %] [%############################################################################%] [%# Bug Table #%] [%############################################################################%] [% PROCESS list/table.html.tmpl %] [%############################################################################%] [%# Succeeding Status Line #%] [%############################################################################%] [% PROCESS num_results %] [% IF bugs.size == 0 %] <ul class="zero_result_links"> <li>[% PROCESS enter_bug_link %]</li> [% IF one_product.defined %] <li><a href="enter_bug.cgi">File a new [% terms.bug %] in a different product</a></li> [% END %] <li><a href="[% PROCESS edit_search_url %]">Edit this search</a></li> <li><a href="query.cgi">Start a new search</a></li> </ul> [% END %] <br> [%############################################################################%] [%# Rest of Change Form #%] [%############################################################################%] [% IF dotweak %] [% PROCESS "list/edit-multiple.html.tmpl" %] </form> <hr> [% END %] [%############################################################################%] [%# Navigation Bar #%] [%############################################################################%] <table> <tr> [% IF bugs.size > 0 %] <td valign="middle" class="bz_query_buttons"> <form method="post" action="show_bug.cgi"> [% id = buglist.join(",") %] <input type="hidden" name="id" value="[% id FILTER html %]"> <input type="hidden" name="format" value="multiple"> <input type="submit" id="long_format" value="Long Format"> </form> <form method="post" action="show_bug.cgi"> <input type="hidden" name="ctype" value="xml"> [% FOREACH id = buglist %] <input type="hidden" name="id" value="[% id FILTER html %]"> [% END %] <input type="hidden" name="excludefield" value="attachmentdata"> <input type="submit" value="XML" id="xml"> </form> [% IF user.is_timetracker %] <form method="post" action="summarize_time.cgi"> <input type="hidden" name="id" value="[% buglist_joined FILTER html %]"> <input type="submit" id="timesummary" value="Time Summary"> </form> [% IF time_summary_limited %] <small> Time Summary will only include the [% terms.bugs %] shown above. In order to to see a time summary for all [% terms.bugs %] found by the search, you can <a href="buglist.cgi?[% urlquerypart FILTER html %] [%- "&order=$qorder" FILTER html IF order %]&limit=0"> Show all search results</a>.</small> [% END %] [% END %] </td> <td> </td> <td valign="middle" class="bz_query_links"> <a href="buglist.cgi? [% urlquerypart FILTER html %]&ctype=csv&human=1">CSV</a> | <a href="buglist.cgi? [% urlquerypart FILTER html %]&title= [%- title FILTER html %]&ctype=atom">Feed</a> | <a href="buglist.cgi? [% urlquerypart FILTER html %]&ctype=ics">iCalendar</a> | <a href="colchange.cgi? [% urlquerypart FILTER html %]&query_based_on= [% defaultsavename OR searchname FILTER uri %]">Change Columns</a> | [% IF bugs.size > 1 && caneditbugs && !dotweak %] <a href="buglist.cgi?[% urlquerypart FILTER html %] [%- "&order=$qorder" FILTER html IF order %]&tweak=1" >Change Several [% terms.Bugs %] at Once</a> | [% END %] [% IF bugowners && user.id %] <a href="mailto: [% bugowners FILTER html %]">Send Mail to [% terms.Bug %] Assignees</a> | [% END %] [%# Links to more things users can do with this bug list. %] [% Hook.process("links") %] </td> [% END %] <td valign="middle" class="bz_query_edit"> <a href="[% PROCESS edit_search_url %]">Edit Search</a> </td> [% IF searchtype == "saved" %] <td valign="middle" nowrap="nowrap" class="bz_query_forget"> | <a href="buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd= [% searchname FILTER uri %]&token= [% issue_hash_token([search_id, searchname]) FILTER uri %]"> Forget Search '[% searchname FILTER html %]'</a> </td> [% ELSE %] <td> </td> <td valign="middle" class="bz_query_remember"> <form method="get" action="buglist.cgi"> <input type="submit" id="remember" value="Remember search"> as <input type="hidden" name="newquery" value="[% urlquerypart FILTER html %][% "&order=$qorder" FILTER html IF order %]"> <input type="hidden" name="cmdtype" value="doit"> <input type="hidden" name="remtype" value="asnamed"> <input type="hidden" name="token" value="[% issue_hash_token(['savedsearch']) FILTER html %]"> <input type="text" id="save_newqueryname" name="newqueryname" size="20" title="New query name" value="[% defaultsavename FILTER html %]"> </form> </td> [% END %] </tr> </table> [% IF one_product.defined && bugs.size %] <p class="bz_query_single_product"> [% PROCESS enter_bug_link %] </p> [% END %] [%############################################################################%] [%# Page Footer #%] [%############################################################################%] [% PROCESS global/footer.html.tmpl %] [%##########%] [%# Blocks #%] [%##########%] [% BLOCK edit_search_url %] [% editqueryname = searchname OR defaultsavename OR '' %] query.cgi?[% urlquerypart FILTER html %] [%- IF editqueryname != '' %]&known_name= [%- editqueryname FILTER uri %] [% END %] [% END %] [% BLOCK enter_bug_link %] <a href="enter_bug.cgi [%- IF one_product.defined %]?product= [%- one_product.name FILTER uri %][% END %]">File a new [% terms.bug %] [% IF one_product.defined %] in the "[% one_product.name FILTER html %]" product [% END %]</a> [% END %] [% BLOCK num_results %] <span class="bz_result_count"> [% IF bugs.size == 0 %] <span class="zero_results">[% terms.zeroSearchResults %].</span> [% ELSIF default_limited AND bugs.size >= Param('default_search_limit') %] This result was limited to [% Param('default_search_limit') FILTER html %] [%+ terms.bugs %]. <a href="buglist.cgi?[% urlquerypart FILTER html %] [%- "&order=$qorder" FILTER html IF order %]&limit=0">See all search results for this query</a>. [% time_summary_limited = 1 %] [% ELSIF bugs.size == 1 %] One [% terms.bug %] found. [% ELSE %] [% bugs.size %] [%+ terms.bugs %] found. [% END %] </span> [% END %]