[%# 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:
  # (incomplete!)
  # ...
  # known_name: string. Possibly known stored name for the query being 
  #                     edited. This value is just passed through in a
  #                     hidden field.
  #%]

[%# This is not necessary for English templates, but useful for localizers. %]
[% ordersdesc = {
   "Reuse same sort as last time" => "Reuse same sort as last time",
   "Bug Number"   => "$terms.Bug Number",
   "Importance"   => "Importance",
   "Assignee"     => "Assignee",
   "Last Changed" => "Last Changed" } %]

<input type="hidden" name="cmdtype" value="doit">
[% IF user.id %]
  <input type="hidden" name="token" value="[% issue_hash_token(['searchknob']) FILTER html %]">
[% END %]

<p>
  <label for="order">Sort results by</label>:
  <select name="order" id="order">
  [% FOREACH order = orders %]
    <option value="[% order FILTER html %]"
      [% " selected" IF default.order.0 == order %]>
         [% ordersdesc.$order FILTER html %]</option>
  [% END %]
  </select>
</p>

<p>  
  <input type="submit" id="[% button_name FILTER html %]"
         value="[% button_name FILTER html %]">
  [% IF known_name %]
    [%# We store known_name in case the user adds a boolean chart. %]
    <input type="hidden" name="known_name" value="[% known_name FILTER html %]">

    [%# The name of the existing query will be passed to buglist.cgi. %]
    <input type="hidden" name="query_based_on" value="[% known_name FILTER html %]">
  [% END %]
  [%# Preserve any custom column list that might be set. %]
  [% IF columnlist %]
    <input type="hidden" name="columnlist" value="[% columnlist FILTER html %]">
  [% END %]
</p>

[% IF user.id %]
  <p>
    &nbsp;&nbsp;&nbsp;
    <input type="checkbox" id="remasdefault"
           name="remtype" value="asdefault">
    <label for="remasdefault">
      and remember these as my default search options
    </label>
  </p>
[% END %]
        
[% IF userdefaultquery %]
  <p>
    <a href="query.cgi?nukedefaultquery=1&amp;token=
       [%- issue_hash_token(['nukedefaultquery']) FILTER uri %]">
      Set my default search back to the system default</a>.
  </p>
[% END %]
