[%# 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.
  #%]
[%
   title = "Query Defaults"
   desc = "Default options for query and $terms.bug lists"
%]

[% param_descs = {
  quip_list_entry_control => "Controls how easily users can add entries to the quip list.
                              <ul>
                                <li>
                                  open - Users may freely add to the quip list, and
                                  their entries will immediately be available for viewing.
                                </li>
                                <li>
                                  moderated - quips can be entered, but need to be approved
                                  by a moderator before they will be shown.
                                </li>
                                <li>
                                  closed - no new additions to the quips list are allowed.
                                </li>
                              </ul>",

  mybugstemplate => "This is the URL to use to bring up a simple 'all of my $terms.bugs' " _
                    "list for a user. %userid% will get replaced with the login name of a user. " _
                    "Special characters must be URL-encoded.",

  defaultquery => "This is the default query that initially comes up when you " _
                  "access the advanced query page. It's in URL parameter format.",

  search_allow_no_criteria =>
    "Unless the code explicitly allows all $terms.bugs to be returned, this " _
    "parameter permits to block the execution of queries with no criteria. " _
    "When turned off, a query must have some criteria specified to limit " _
    "the number of $terms.bugs returned to the user. When turned on, a user " _
    "is allowed to run a query with no criteria and get all $terms.bugs they can " _
    "see in their list. Turning this parameter on is not recommended on large " _
    "installations.",

  default_search_limit =>
    "By default, Bugzilla limits searches done in the web"
    _ " interface to returning only this many results, for performance"
    _ " reasons. (This only affects the HTML format of search results--CSV,"
    _ " XML, and other formats are exempted.) Users can click a link on the"
    _ " search result page to see all the results."
    _ "<p>Usually you should not have to change this--the default value"
    _ " should be acceptable for most installations.</p>",

  max_search_results =>
    "The maximum number of $terms.bugs that a search can"
    _ " <strong>ever</strong> return. Tabular and graphical reports"
    _ " are exempted from this limit, however.",

} %]
