user-error.html.tmpl 66.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
[%# 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.
  #
  # The Initial Developer of the Original Code is Netscape Communications
  # Corporation. Portions created by Netscape are
  # Copyright (C) 1998 Netscape Communications Corporation. All
  # Rights Reserved.
  #
  # Contributor(s): Gervase Markham <gerv@gerv.net>
19
  #                 Frédéric Buclin <LpSolit@gmail.com>
20 21
  #%]

22
[%# INTERFACE:
23
  # header_done: boolean. True if the Bugzilla header has already been printed.
24 25
  # error: string. The tag of the error, or the error message to be displayed
  # (deprecated). May contain HTML if it's an error message.
26
  #%]
27 28 29

[%# This is a list of all the possible user errors. Please keep them in
  # alphabetical order by error tag, and leave a blank line between errors.
30 31 32
  #
  # Note that you must explicitly filter every single template variable
  # in this file; if you do not wish to change it, use the "none" filter.
33
  #
34 35 36 37 38
  # Extension- or custom-specific error handling  can be easily added 
  # via hooks: just place your <extension>-errors.html.tmpl into 
  # template/en/extension/hook/global/user-error.html.tmpl/errors/
  # Note: be aware of uniqueness of error string parameter value, since 
  # nobody can guarantee the hook files processing order in the future
39 40 41 42
  #%]

[% PROCESS global/variables.none.tmpl %]

43
[% PROCESS "global/field-descs.none.tmpl" %]
44

45
[% DEFAULT title = "Error" %]
46

47
[% error_message = BLOCK %]
48
  [% IF    error == "account_creation_disabled" %]
49
    [% title = "Account Creation Disabled" %]
50
    User account creation has been disabled.
51
    <hr>
52 53 54 55 56 57 58 59 60 61
    New accounts must be created by an administrator. The
    maintainer is [% Param("maintainer") %].

  [% ELSIF error == "account_creation_restricted" %]
    [% title = "Account Creation Restricted" %]
    User account creation has been restricted.
    <hr>
    Contact your administrator or the maintainer
    ([% Param("maintainer") %]) for information about
    creating an account.
62

63 64
  [% ELSIF error == "account_disabled" %]
    [% title = "Account Disabled" %]
65
    [% disabled_reason FILTER none %]
66
    <hr>
67
    If you believe your account should be restored, please
68
    send email to [% Param("maintainer") %] explaining why.
69

70 71
  [% ELSIF error == "account_exists" %]
    [% title = "Account Already Exists" %]
72 73 74 75 76 77
    There is already an account with
    [% IF email %]
      the login name [% email FILTER html %].
    [% ELSE %]
      that login name.
    [% END %]
78

79 80 81 82 83
  [% ELSIF error == "alias_has_comma_or_space" %]
    [% title = "Invalid Characters In Alias" %]
    The alias you entered, <em>[% alias FILTER html %]</em>,
    contains one or more commas or spaces.  Aliases cannot contain
    commas or spaces because those characters are used to separate
84
    aliases from each other in lists.  Please choose an alias
85
    that does not contain commas and spaces.
86

87 88
  [% ELSIF error == "alias_in_use" %]
    [% title = "Alias In Use" %]
89 90 91
    [% terms.Bug %] [%+ bug_id FILTER bug_link(bug_id) FILTER none %]
    has already taken the alias <em>[% alias FILTER html %]</em>.
    Please choose another one.
92

93 94
  [% ELSIF error == "alias_is_numeric" %]
    [% title = "Alias Is Numeric" %]
95
    You tried to give this [% terms.bug %] the alias <em>[% alias FILTER html %]</em>,
96
    but aliases cannot be merely numbers, since they could
97
    then be confused with [% terms.bug %] IDs.  Please choose an
98 99
    alias containing at least one letter.

100 101
  [% ELSIF error == "alias_too_long" %]
    [% title = "Alias Too Long" %]
102
    [% terms.Bug %] aliases cannot be longer than 20 characters.
103
    Please choose a shorter alias.
104

105 106 107 108 109 110
  [% ELSIF error == "auth_cant_create_account" %]
    [% title = "Can't create accounts" %]
    This site is using an authentication scheme which does not permit
    account creation. Please contact an administrator to get a new account
    created.

111 112
  [% ELSIF error == "auth_failure" %]
    [% title = "Authorization Required" %]
113
    [% admindocslinks = {'groups.html' => 'Group Security'} %]
114 115 116 117 118 119 120 121
    Sorry,
    [% IF group %]
      you aren't a member of the '[% group FILTER html %]' group,
    [% END %]

    [% IF reason %]
      [% IF group %] and [% END %]
      [% IF reason == "cant_bless" %]
122
        you don't have permissions to add or remove people from a group,
123 124
      [% ELSIF reason == "not_visible" %]
        there are visibility restrictions on certain user groups,
125 126 127
      [% END %]
    [% END %]

128 129 130 131
    [% IF group || reason %] and so [% END %] you are not authorized to
    [% IF action == "access" %]
      access
    [% ELSIF action == "add" %]
132
      add new
133 134
    [% ELSIF action == "begin" %]
      begin
135 136 137 138 139 140
    [% ELSIF action == "modify" %]
      modify
    [% ELSIF action == "delete" %]
      delete
    [% ELSIF action == "edit" %]
      add, modify or delete
141 142
    [% ELSIF action == "move" %]
      move
143 144
    [% ELSIF action == "run" %]
      run
145 146 147 148 149
    [% ELSIF action == "schedule" %]
      schedule
    [% ELSIF action == "use" %]
      use
    [% END %]
150

151 152 153
    [% IF object == "administrative_pages" %]
      administrative pages
    [% ELSIF object == "attachment" %]
154
      this attachment
155 156
    [% ELSIF object == "bugs" %]
      [%+ terms.bugs %]
157
    [% ELSIF object == "charts" %]
158 159 160 161 162
      the "New Charts" feature
    [% ELSIF object == "classifications" %]
      classifications
    [% ELSIF object == "components" %]
      components
163 164
    [% ELSIF object == "custom_fields" %]
      custom fields
165 166
    [% ELSIF object == "field_values" %]
      field values
167 168
    [% ELSIF object == "flagtypes" %]
      flag types
169 170
    [% ELSIF object == "group_access" %]
      group access
171 172 173 174 175 176
    [% ELSIF object == "groups" %]
      groups
    [% ELSIF object == "keywords" %]
      keywords
    [% ELSIF object == "milestones" %]
      milestones
177 178
    [% ELSIF object == "multiple_bugs" %]
      multiple [% terms.bugs %] at once
179 180 181 182
    [% ELSIF object == "parameters" %]
      parameters
    [% ELSIF object == "products" %]
      products
183 184
    [% ELSIF object == "quips" %]
      quips
185 186
    [% ELSIF object == "reports" %]
      whine reports
187 188
    [% ELSIF object == "sanity_check" %]
      a sanity check
189 190
    [% ELSIF object == "settings" %]
      settings
191
    [% ELSIF object == "sudo_session" %]
192
      a sudo session
193 194
    [% ELSIF object == "timetracking_summaries" %]
      time-tracking summary reports
195 196
    [% ELSIF object == "user" %]
      the user you specified
197 198 199 200
    [% ELSIF object == "users" %]
      users
    [% ELSIF object == "versions" %]
      versions
201 202
    [% ELSIF object == "workflow" %]
      the workflow
203
    [% END %].
204

205 206
    [% Hook.process("auth_failure") %]

207 208 209 210
  [% ELSIF error == "attachment_deletion_disabled" %]
    [% title = "Attachment Deletion Disabled" %]
    Attachment deletion is disabled on this installation.

211 212 213 214
  [% ELSIF error == "attachment_removed" %]
    [% title = "Attachment Removed" %]
    The attachment you are attempting to access has been removed.

215 216
  [% ELSIF error == "bug_access_denied" %]
    [% title = "Access Denied" %]
217
    [% admindocslinks = {'groups.html' => 'Group Security'} %]
218
    You are not authorized to access [% terms.bug %] #[% bug_id FILTER html %].
219 220 221

  [% ELSIF error == "bug_access_query" %]
    [% title = "Access Denied" %]
222
    [% docslinks = {'myaccount.html' => 'Creating an account'} %]
223 224 225 226
    You are not authorized to access [% terms.bug %] #[% bug_id FILTER html %].
    To see this [% terms.bug %], you must
    first <a href="show_bug.cgi?id=
                   [% bug_id FILTER url_quote %]&amp;GoAheadAndLogIn=1">log
227
    in to an account</a> with the appropriate permissions.
228

229 230
  [% ELSIF error == "buglist_parameters_required" %]
    [% title = "Parameters Required" %]
231
    [% docslinks = {'query.html' => "Searching for $terms.bugs",
232
                    'query.html#list' => "$terms.Bug lists"} %]
233
    You may not search, or create saved searches, without any search terms.
234

235 236 237
  [% ELSIF error == "chart_too_large" %]
    [% title = "Chart Too Large" %]
    Sorry, but 2000 x 2000 is the maximum size for a chart.
238

239 240 241 242
  [% ELSIF error == "comment_invalid_isprivate" %]
    You tried to modify the privacy of comment id [% id FILTER html %],
    but that is not a valid comment on this [% terms.bug %].

243 244
  [% ELSIF error == "comment_required" %]
    [% title = "Comment Required" %]
245 246 247 248 249 250
    You have to specify a
    [% IF old && new %]
      <b>comment</b> when changing the status of [% terms.abug %] from
      [%+ old.name FILTER html %] to [% new.name FILTER html %].
    [% ELSIF new %]
      description for this [% terms.bug %].
251
    [% ELSE %]
252
      <b>comment</b> on this change.
253
    [% END %]
254

255 256 257 258
  [% ELSIF error == "comment_too_long" %]
    [% title = "Comment Too Long" %]
    Comments cannot be longer than 65,535 characters.

259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274
  [% ELSIF error == "auth_classification_not_enabled" %]
    [% title = "Classification Not Enabled" %]
    Sorry, classification is not enabled.

  [% ELSIF error == "classification_not_specified" %]
    [% title = "You Must Supply A Classification Name" %]
    You must enter a classification name.

  [% ELSIF error == "classification_already_exists" %]
    [% title = "Classification Already Exists" %]
    A classification with the name '[% name FILTER html %]' already exists.

  [% ELSIF error == "classification_doesnt_exist" %]
    [% title = "Classification Does Not Exist" %]
    The classification '[% name FILTER html %]' does not exist.

275 276 277 278 279
  [% ELSIF error == "classification_doesnt_exist_for_product" %]
    [% title = "Classification Does Not Exist For Product" %]
    The classification '[% classification FILTER html %]' does not exist
    for product '[% product FILTER html %]'.

280 281 282 283 284
  [% ELSIF error == "classification_invalid_sortkey" %]
    [% title = "Invalid Sortkey for Classification" %]
    The sortkey <em>[% sortkey FILTER html %]</em> for the '[% name FILTER html %]'
    classification is invalid. It must be a positive integer.

285 286 287 288 289 290 291 292 293
  [% ELSIF error == "classification_not_deletable" %]
    [% title = "Default Classification Can Not Be Deleted" %]
    You can not delete the default classification

  [% ELSIF error == "classification_has_products" %]
     Sorry, there are products for this classification. You
     must reassign those products to another classification before you
     can delete this one.

294 295
  [% ELSIF error == "component_already_exists" %]
    [% title = "Component Already Exists" %]
296 297
    The <em>[% product.name FILTER html %]</em> product already has
    a component named <em>[% name FILTER html %]</em>.
298 299 300

  [% ELSIF error == "component_blank_description" %]
    [% title = "Blank Component Description Not Allowed" %]
301 302
    You must enter a non-blank description for this component.

303 304 305 306
  [% ELSIF error == "component_blank_name" %]
    [% title = "Blank Component Name Not Allowed" %]
    You must enter a name for this new component.

307 308 309 310 311 312
  [% ELSIF error == "component_has_bugs" %]
    [% title = BLOCK %]Component has [% terms.Bugs %][% END %]
    There are [% nb FILTER html %] [%+ terms.bugs %] entered for this component!
    You must reassign those [% terms.bugs %] to another component before you
    can delete this one.

313 314 315
  [% ELSIF error == "component_name_too_long" %]
    [% title = "Component Name Is Too Long" %]
    The name of a component is limited to 64 characters. 
316
    '[% name FILTER html %]' is too long ([% name.length %] characters).
317 318

  [% ELSIF error == "component_need_initialowner" %]
319
    [% title = "Component Requires Default Assignee" %]
320
    A default assignee is required for this component.
321

322 323 324 325
  [% ELSIF error == "customfield_nonexistent" %]
    [% title = "Unknown Custom Field" %]
    There is no custom field with the name '[% name FILTER html %]'.

326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
  [% ELSIF error == "customfield_not_obsolete" %]
    [% title = "Custom Field Not Obsolete" %]
    The custom field '[% name FILTER html %]' is not obsolete.
    Please obsolete a custom field before attempting to delete it.

  [% ELSIF error == "customfield_has_activity" %]
    [% title = "Custom Field Has Activity" %]
    The custom field '[% name FILTER html %]' cannot be deleted because
    it has recorded activity.

  [% ELSIF error == "customfield_has_contents" %]
    [% title = "Custom Field Has Contents" %]
    The custom field '[% name FILTER html %]' cannot be deleted because
    at least one [% terms.bug %] has a non empty value for this field.

341 342
  [% ELSIF error == "dependency_loop_multi" %]
    [% title = "Dependency Loop Detected" %]
343
    The following [% terms.bug %](s) would appear on both the "depends on"
344
    and "blocks" parts of the dependency tree if these changes
345 346 347 348 349
    are committed:
    [% FOREACH dep = deps %]
      [%+ dep FILTER bug_link(dep) FILTER none %]
    [% END %].
    This would create a circular dependency, which is not allowed.
350

351 352
  [% ELSIF error == "dependency_loop_single" %]
    [% title = "Dependency Loop Detected" %]
353
    You can't make [% terms.abug %] block itself or depend on itself.
354

355
  [% ELSIF error == "dupe_id_required" %]
356
    [% title = "Duplicate $terms.Bug Id Required" %]
357 358
    You must specify [% terms.abug %] id to mark this [% terms.bug %]
    as a duplicate of.
359

360 361 362 363 364 365 366 367 368 369 370 371 372 373 374
  [% ELSIF error == "dupe_not_allowed" %]
    [% title = "Cannot mark $terms.bugs as duplicates" %]
    You cannot mark [% terms.bugs %] as duplicates when
    changing several [% terms.bugs %] at once.

  [% ELSIF error == "dupe_loop_detected" %]
    [% title = "Loop detected among duplicates" %]
    You cannot mark [% terms.bug %] [%+ bug_id FILTER html %] as
    a duplicate of
    [% IF dupe_of == bug_id %]
      itself
    [% ELSE %]
      [%+ terms.bug %] [%+ dupe_of FILTER html %], because it
      would create a duplicate loop
    [% END %].
375

376 377
  [% ELSIF error == "email_change_in_progress" %]
    [% title = "Email Change Already In Progress" %]
378 379
    Email change already in progress; please check your email.

380
  [% ELSIF error == "email_confirmation_failed" %]
381
    [% title = "Email Address Confirmation Failed" %]
382 383
    Email address confirmation failed.

384 385 386 387
  [% ELSIF error == "email_no_text_plain" %]
    Your message did not contain any text.[% terms.Bugzilla %] does not
    accept HTML-only email, or HTML email with attachments.

388 389
  [% ELSIF error == "empty_group_description" %]
    [% title = "The group description can not be empty" %]
390
    You must enter a description for the group.
391 392 393

  [% ELSIF error == "empty_group_name" %]
    [% title = "The group name can not be empty" %]
394
    You must enter a name for the group.
395
  
396 397
  [% ELSIF error == "entry_access_denied" %]
    [% title = "Permission Denied" %]
398
    [% admindocslinks = {'groups.html' => 'Group Security'} %]
399 400 401
    Sorry, either the product <em>[% product FILTER html %]</em>
    does not exist or you aren't authorized to
    enter [% terms.abug %] into it.
402

403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426
  [% ELSIF error == "field_already_exists" %]
    [% title = "Field Already Exists" %]
    The field '[% field.name FILTER html %]'     
    ([% field.description FILTER html %]) already exists. Please
    choose another name.

  [% ELSIF error == "field_invalid_name" %]
    [% title = "Invalid Field Name" %]
    '[% name FILTER html %]' is not a valid name for a field.
    A name may contain only letters, numbers, and the underscore character.

  [% ELSIF error == "field_invalid_sortkey" %]
    [% title = "Invalid Sortkey for Field" %]
    The sortkey [% sortkey FILTER html %] that you have provided for
    this field is not a valid positive integer.

  [% ELSIF error == "field_missing_description" %]
    [% title = "Missing Description for Field" %]
    You must enter a description for this field.

  [% ELSIF error == "field_missing_name" %]
    [% title = "Missing Name for Field" %]
    You must enter a name for this field.

427 428 429 430 431 432 433 434 435 436 437 438
  [% ELSIF error == "fieldname_invalid" %]
    [% title = "Specified Field Does Not Exist" %]
    The field '[% field FILTER html %]' does not exist or 
    cannot be edited with this interface.

  [% ELSIF error == "fieldname_not_specified" %]
    [% title = "Field Name Not Specified" %]
    No field name specified when trying to edit field values.

  [% ELSIF error == "fieldvalue_already_exists" %]
    [% title = "Field Value Already Exists" %]
    The value '[% value FILTER html %]' already exists for the
439
    '[%- field.description FILTER html %]' field.
440 441 442 443 444 445

  [% ELSIF error == "fieldvalue_doesnt_exist" %]
    [% title = "Specified Field Value Does Not Exist" %]
    The value '[% value FILTER html %]' does not exist for
    the '[% field FILTER html %]' field.

446 447 448
  [% ELSIF error == "fieldvalue_is_default" %]
    [% title = "Specified Field Value Is Default" %]
    '[% value FILTER html %]' is the default value for
449
    the '[% field.description FILTER html %]' field and cannot be deleted.
450 451 452 453 454
    [% IF user.groups.tweakparams %]
      You have to <a href="editparams.cgi?section=bugfields#
      [%- param_name FILTER url_quote %]">change</a> the default value first.
    [% END %]

455 456 457 458 459
  [% ELSIF error == "fieldvalue_name_too_long" %]
    [% title = "Field Value Is Too Long" %]
    The value of a field is limited to 60 characters.
    '[% value FILTER html %]' is too long ([% value.length %] characters).

460 461 462
  [% ELSIF error == "fieldvalue_not_editable" %]
    [% title = "Field Value Not Editable" %]
    The value '[% old_value FILTER html %]' cannot be renamed because
463
    it plays some special role for the '[% field.description FILTER html %]' field.
464 465 466 467

  [% ELSIF error == "fieldvalue_not_deletable" %]
    [% title = "Field Value Not Deletable" %]
    The value '[% value FILTER html %]' cannot be removed because
468
    it plays some special role for the '[% field.description FILTER html %]' field.
469

470 471 472 473
  [% ELSIF error == "fieldvalue_not_specified" %]
    [% title = "Field Value Not Specified" %]
    No field value specified when trying to edit a field value.

474 475 476 477 478 479
  [% ELSIF error == "fieldvalue_reserved_word" %]
    [% title = "Reserved Word Not Allowed" %]
    You cannot use the '[% value FILTER html %]' value for the
    '[% field.description FILTER html %]' field. This value is used internally.
    Please choose another one.

480 481 482 483 484 485 486 487
  [% ELSIF error == "fieldvalue_sortkey_invalid" %]
    [% title = "Invalid Field Value Sortkey" %]
    The sortkey '[% sortkey FILTER html %]' for the '[% name FILTER html %]'
    field is not a valid (positive) number.

  [% ELSIF error == "fieldvalue_still_has_bugs" %]
    [% title = "You Cannot Delete This Field Value" %]
    You cannot delete the value '[% value FILTER html %]' from the 
488
    '[% field FILTER html %]' field, because there are still
489
    [%+ count FILTER html %] [%+ terms.bugs %] using it.
490 491 492 493 494

  [% ELSIF error == "fieldvalue_undefined" %]
    [% title = "Undefined Value Not Allowed" %]
    You must specify a value.

495 496 497
  [% ELSIF error == "file_not_specified" %]
    [% title = "No File Specified" %]
    You did not specify a file to attach.
498

499 500
  [% ELSIF error == "file_too_large" %]
    [% title = "File Too Large" %]
501
    The file you are trying to attach is [% filesize FILTER html %] 
502
    kilobytes (KB) in size. Non-patch attachments cannot be more than
503
    [%+ Param('maxattachmentsize') %] KB. <br>
504
    We recommend that you store your attachment elsewhere
505 506 507 508 509 510 511
    [% IF Param("allow_attach_url") %]
      and then specify the URL to this file on the attachment
      creation page in the <b>AttachURL</b> field.
    [% ELSE %]
      and then insert the URL to it in a comment, or in the URL field
      for this [% terms.bug %].
    [% END %]
512
    <br>Alternately, if your attachment is an image, you could convert
513
    it to a compressible format like JPG or PNG and try again.
514

515
  [% ELSIF error == "flag_not_multiplicable" %]
516 517
    [% docslinks = {'flags-overview.html' => 'An overview on Flags',
                    'flags.html' => 'Using Flags'} %]
518 519
    You can't ask more than one person at a time for
    <em>[% type.name FILTER html %]</em>.
520 521 522 523 524 525 526

  [% ELSIF error == "flag_requestee_needs_privs" %]
    [% title = "Flag Requestee Needs Privileges" %]
    [% requestee.identity FILTER html %] does not have permission to set the
    <em>[% flagtype.name FILTER html %]</em> flag. Please select a user who is
    a member of the <em>[% flagtype.grant_group.name FILTER html %]</em> group.

527 528
  [% ELSIF error == "flag_requestee_unauthorized" %]
    [% title = "Flag Requestee Not Authorized" %]
529 530 531 532
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags',
                         'groups.html' => 'Group Security'} %]
    [% docslinks = {'flags-overview.html' => 'An overview on Flags',
                    'flags.html' => 'Using Flags'} %]
533 534

    You asked [% requestee.identity FILTER html %]
535
    for <code>[% flag_type.name FILTER html %]</code> on [% terms.bug %] 
536
    [%+ bug_id FILTER html -%]
537
    [% IF attach_id && attach_id > 0 %], attachment [% attach_id FILTER html %][% END %],
538 539 540
    but that [% terms.bug %] has been restricted to users in certain groups, 
    and the user you asked isn't in all the groups to which 
    the [% terms.bug %] has been restricted.
541 542
    Please choose someone else to ask, or make the [% terms.bug %] accessible
    to users on its CC: list and add that user to the list.
543

544 545
  [% ELSIF error == "flag_requestee_unauthorized_attachment" %]
    [% title = "Flag Requestee Not Authorized" %]
546 547 548 549
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags',
                         'groups.html' => 'Group Security'} %]
    [% docslinks = {'flags-overview.html' => 'An overview on Flags',
                    'flags.html' => 'Using Flags'} %]
550 551

    You asked [% requestee.identity FILTER html %]
552
    for <code>[% flag_type.name FILTER html %]</code> on 
553
    [%+ terms.bug %] [%+ bug_id FILTER html %],
554
    attachment [% attach_id FILTER html %], but that attachment
555 556 557
    is restricted to users in the [% Param("insidergroup") FILTER html %] group,
    and the user you asked isn't in that group.  Please choose someone else
    to ask, or ask an administrator to add the user to the group.
558

559 560
  [% ELSIF error == "flag_type_cc_list_invalid" %]
    [% title = "Flag Type CC List Invalid" %]
561
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags'} %]
562
    The CC list [% cc_list FILTER html %] must be less than 200 characters long.
563

564 565 566 567
  [% ELSIF error == "flag_type_component_without_product" %]
    [% title = "Product Missing" %]
    A component was selected without a product being selected.

568 569
  [% ELSIF error == "flag_type_description_invalid" %]
    [% title = "Flag Type Description Invalid" %]
570
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags'} %]
571
    The description must be less than 32K.
572

573 574
  [% ELSIF error == "flag_type_name_invalid" %]
    [% title = "Flag Type Name Invalid" %]
575
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags'} %]
576 577
    The name <em>[% name FILTER html %]</em> must be 1-50 characters long
    and must not contain any spaces or commas.
578

579 580
  [% ELSIF error == "flag_update_denied" %]
    [% title = "Flag Modification Denied" %]
581 582 583 584
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags',
                         'groups.html' => 'Group Security'} %]
    [% docslinks = {'flags-overview.html' => 'An overview on Flags',
                    'flags.html' => 'Using Flags'} %]
585 586
    You tried to [% IF status == "+" %] grant [% ELSIF status == "-" %] deny
    [% ELSIF status == "X" %] clear [% ELSE %] request [% END %]
587 588 589 590
    <code>[% name FILTER html %]
          [% IF status == "X" %][% old_status FILTER html %][% END %]</code>.

    Only a sufficiently empowered user can make this change.
591

592 593 594 595
  [% ELSIF error == "format_not_found" %]
    [% title = "Format Not Found" %]
    The requested format <em>[% format FILTER html %]</em> does not exist with
    a content type of <em>[% ctype FILTER html %]</em>.
596 597 598 599
    
  [% ELSIF error == "flag_type_sortkey_invalid" %]
    [% title = "Flag Type Sort Key Invalid" %]
    The sort key must be an integer between 0 and 32767 inclusive.
600
    It cannot be <em>[% sortkey FILTER html %]</em>.
601

602 603 604 605 606 607 608
  [% ELSIF error == "freetext_too_long" %]
    [% title = "Text Too Long" %]
    The text you entered is too long ([% text.length FILTER html %] characters,
    above the maximum length allowed of [% constants.MAX_FREETEXT_LENGTH FILTER none %]
    characters):
    <p><em>[% text FILTER html %]</em></p>

609 610 611 612 613 614 615 616
  [% ELSIF error == "group_cannot_delete" %]
    [% title = "Cannot Delete Group" %]
    The <em>[% name FILTER html %]</em> group cannot be deleted because
    there are
    <a href="editgroups.cgi?action=del&amp;group=[% gid FILTER url_quote %]">records</a>
    in the database which refer to it. All references to this group must
    be removed before you can remove it.

617 618 619 620 621 622
  [% ELSIF error == "group_change_denied" %]
    [% title = "Cannot Add/Remove That Group" %]
    You tried to add or remove group id [% group_id FILTER html %]
    from [% terms.bug %] [%+ bug.id FILTER html %], but you do not
    have permissions to do so.

623 624 625 626
  [% ELSIF error == "group_exists" %]
    [% title = "The group already exists" %]
    The group [% name FILTER html %] already exists.

627 628 629 630 631 632 633 634 635 636 637 638 639 640
  [% ELSIF error == "group_has_special_role" %]
    [% title = "Group not deletable" %]
    [% IF groups.size == 1 %]
      [% attr = "it" %]
      [% param = "parameter" %]
    [% ELSE %]
      [% attr = "them" %]
      [% param = "parameters" %]
    [% END %]
    The group '[% name FILTER html %]' is used by the
    '[% groups.join("' and '") FILTER html %]' [% param FILTER html %].
    In order to delete this group, you first have to change the
    [%+ param FILTER html %] to make [% attr FILTER html %] point to another group.

641 642 643 644

  [% ELSIF error == "group_invalid_removal" %]
    You tried to remove [% terms.bug %] [%+ bug.id FILTER html %]
    from group id [% group_id FILTER html %], but [% terms.bugs %] in the 
645
    '[% product FILTER html %]' product can not be removed from that
646 647 648 649 650
    group.
    
  [% ELSIF error == "group_invalid_restriction" %]
    You tried to restrict [% terms.bug %] [%+ bug.id FILTER html %] to
    to group id [% group_id FILTER html %], but [% terms.bugs %] in the
651
    '[% product FILTER html %]' product can not be restricted to
652 653
    that group.

654 655 656 657
  [% ELSIF error == "group_not_specified" %]
    [% title = "Group not specified" %]
    No group was specified.

658 659 660 661 662
  [% ELSIF error == "system_group_not_deletable" %]
    [% title = "System Groups not deletable" %]
    <em>[% name FILTER html %]</em> is a system group.
    This group cannot be deleted.

663 664 665 666 667
  [% ELSIF error == "group_unknown" %]
    [% title = "Unknown Group" %]
    The group [% name FILTER html %] does not exist. Please specify
    a valid group name. Create it first if necessary!

668
  [% ELSIF error == "illegal_at_least_x_votes" %]
669
    [% title = "Your Search Makes No Sense" %]
670 671 672
    The <em>At least ___ votes</em> field must be a simple number. 
    You entered <tt>[% value FILTER html %]</tt>, which isn't.
    
673
  [% ELSIF error == "illegal_attachment_edit" %]
674 675
    [% title = "Unauthorized Action" %]
    You are not authorized to edit attachment [% attach_id FILTER html %].
676 677

  [% ELSIF error == "illegal_attachment_edit_bug" %]
678 679
    [% title = "Unauthorized Action" %]
    You are not authorized to edit attachments on [% terms.bug %] 
680
    [%+ bug_id FILTER html %].
681
         
682
  [% ELSIF error == "illegal_attachment_is_patch" %]
683
    [% title = "Your Search Makes No Sense" %]
684 685
    The only legal values for the <em>Attachment is patch</em> field are
    0 and 1.
686 687 688

  [% ELSIF error == "illegal_bug_status_transition" %]
    [% title = "Illegal $terms.Bug Status Change" %]
689 690 691 692 693 694 695
    [% IF old.defined %]
      You are not allowed to change the [% terms.bug %] status from
      [%+ old.name FILTER html %] to [% new.name FILTER html %].
    [% ELSE %]
      You are not allowed to file new [% terms.bugs %] with the
      [%+ new.name FILTER html %] status. 
    [% END %]
696

697
  [% ELSIF error == "illegal_change" %]
698
    [% title = "Not allowed" %]
699
    You tried to change the
700
    <strong>[% field_descs.$field FILTER html %]</strong> field 
701
    [% IF oldvalue.defined %]
702
      from <em>[% oldvalue.join(', ') FILTER html %]</em>
703
    [% END %]
704
    [% IF newvalue.defined %]
705
      to <em>[% newvalue.join(', ') FILTER html %]</em>
706 707
    [% END %]
    , but only
708
    [% IF privs < 3 %]
709
      the assignee
710 711 712 713 714
      [% IF privs < 2 %] or reporter [% END %]
      of the [% terms.bug %], or
    [% END %]
    a sufficiently empowered user may change that field.

715 716 717 718 719 720 721
  [% ELSIF error == "illegal_change_deps" %]
    [% title = "Not allowed" %]
    You tried to change the 
    <strong>[% field_descs.$field FILTER html %]</strong> field 
    but only a user empowered to edit 
    both involved [% terms.bugs %] may change that field.

722
  [% ELSIF error == "illegal_changed_in_last_x_days" %]
723
    [% title = "Your Search Makes No Sense" %]
724 725 726 727
    The <em>Changed in last ___ days</em> field must be a simple number. 
    You entered <tt>[% value FILTER html %]</tt>, which isn't.
    
  [% ELSIF error == "illegal_date" %]
728
    [% title = "Illegal Date" %]
729
    '<tt>[% date FILTER html %]</tt>' is not a legal date.
730 731 732
    [% IF format %]
      Please use the format '<tt>[% format FILTER html %]</tt>'.
    [% END %]
733 734 735
    
  [% ELSIF error == "illegal_email_address" %]
    [% title = "Invalid Email Address" %]
736
    The e-mail address you entered (<b>[% addr FILTER html %]</b>) 
737 738 739 740 741 742 743
    didn't pass our syntax checking for a legal email address.
    [% IF default %]
      A legal address must contain exactly one '@',
      and at least one '.' after the @.
    [% ELSE %]
      [%+ Param('emailregexpdesc') %]
    [% END %]
744 745 746
    It must also not contain any of these special characters:
    <tt>\ ( ) &amp; &lt; &gt; , ; : &quot; [ ]</tt>, or any whitespace.
    
747 748 749 750 751
  [% ELSIF error == "illegal_frequency" %]
    [% title = "Too Frequent" %]
    Unless you are an administrator, you may not create series which are 
    run more often than once every [% minimum FILTER html %] days.
    
752 753
  [% ELSIF error == "illegal_group_control_combination" %]
    [% title = "Your Group Control Combination Is Illegal" %]
754
    [% admindocslinks = {'groups.html' => 'Assigning Group Controls to Products'} %]
755
    Your group control combination for group &quot;
756
    [% groupname FILTER html %]&quot; is illegal.
757

758
  [% ELSIF error == "illegal_is_obsolete" %]
759
    [% title = "Your Search Makes No Sense" %]
760 761
    The only legal values for the <em>Attachment is obsolete</em> field are
    0 and 1.
762 763

  [% ELSIF error == "illegal_query_name" %]
764 765
    [% title = "Illegal Search Name" %]
    The name of your search cannot contain any of the following characters: 
766 767
    &lt;, &gt;, &amp;.

768
  [% ELSIF error == "illegal_series_creation" %]
769
    [% admindocslinks = {'groups.html' => 'Group security'} %]
770
    [% docslinks = {'reporting.html' => 'Reporting'} %]
771
    You are not authorized to create series.
772 773
        
  [% ELSIF error == "illegal_series_edit" %]
774
    [% admindocslinks = {'groups.html' => 'Group security'} %]
775
    [% docslinks = {'reporting.html' => 'Reporting'} %]
776
    You are not authorized to edit this series. To do this, you must either
777
    be its creator, or an administrator.
778 779 780 781 782 783 784

  [% ELSIF error == "illegal_time" %]
    [% title = "Illegal Time" %]
    '<tt>[% time FILTER html %]</tt>' is not a legal time.
    [% IF format %]
      Please use the format '<tt>[% format FILTER html %]</tt>'.
    [% END %]
785
        
786
  [% ELSIF error == "insufficient_data_points" %]
787
    [% docslinks = {'reporting.html' => 'Reporting'} %]
788 789
    We don't have enough data points to make a graph (yet).
        
790 791 792 793
  [% ELSIF error == "invalid_attach_id" %]
    [% title = "Invalid Attachment ID" %]
    The attachment id [% attach_id FILTER html %] is invalid.

794
  [% ELSIF error == "bug_id_does_not_exist" %]
795
    [% title = BLOCK %]Invalid [% terms.Bug %] ID[% END %]
796
    [% terms.Bug %] #[% bug_id FILTER html %] does not exist.
797
    
798 799 800 801
  [% ELSIF error == "improper_bug_id_field_value" %]
    [% title = BLOCK %]
      [% IF bug_id %]Invalid [% ELSE %]Missing [% END %] [% terms.Bug %] ID
    [% END %]
802 803 804
    [% IF bug_id %]
      '[% bug_id FILTER html %]' is not a valid [% terms.bug %] number
      [% IF Param("usebugaliases") %]
805
        nor an alias to [% terms.abug %]
806 807 808 809 810 811 812 813
      [% END %].
    [% ELSE %]
      [% IF field %]
        The '[% field_descs.$field FILTER html %]' field
        cannot be empty.
      [% END %]
      You must enter a valid [% terms.bug %] number!
    [% END %]
814

815 816 817 818 819
  [% ELSIF error == "invalid_changedsince" %]
    [% title = "Invalid 'Changed Since'" %]
    The 'changed since' value, '[% changedsince FILTER html %]', must be an
    integer >= 0.

820 821 822
  [% ELSIF error == "invalid_content_type" %]
    [% title = "Invalid Content-Type" %]
    The content type <em>[% contenttype FILTER html %]</em> is invalid.
823 824
    Valid types must be of the form <em>foo/bar</em> where <em>foo</em>
    is either <em>application, audio, image, message, model, multipart,
825
    text,</em> or <em>video</em>.
826 827 828 829 830 831
    
  [% ELSIF error == "invalid_context" %]
    [% title = "Invalid Context" %]
    The context [% context FILTER html %] is invalid (must be a number,
    "file" or "patch").

832 833 834 835 836
  [% ELSIF error == "invalid_datasets" %]
    [% title = "Invalid Datasets" %]
    Invalid datasets <em>[% datasets FILTER html %]</em>. Only digits,
    letters and colons are allowed.

837 838 839 840 841 842 843
  [% ELSIF error == "invalid_format" %]
    [% title = "Invalid Format" %]
    The format "[% format FILTER html %]" is invalid (must be one of
    [% FOREACH my_format = formats %]
      "[% my_format FILTER html %]"
    [% END %]
    ).
844

845 846 847 848
  [% ELSIF error == "invalid_group_ID" %]
    [% title = "Invalid group ID" %]
    The group you specified doesn't exist.

849 850 851
  [% ELSIF error == "invalid_group_name" %]
    [% title = "Invalid group name" %]
    The group you specified, [% name FILTER html %], is not valid here.
852

853
  [% ELSIF error == "invalid_maxrows" %]
854
    [% title = "Invalid Max Rows" %]
855 856
    The maximum number of rows, '[% maxrows FILTER html %]', must be
    a positive integer.
857

858 859 860 861
  [% ELSIF error == "invalid_parameter" %]
    [% title = "Invalid Parameter" %]
    The new value for [% name FILTER html %] is invalid: [% err FILTER html %].

862 863 864
  [% ELSIF error == "invalid_product_name" %]
    [% title = "Invalid Product Name" %]
    The product name '[% product FILTER html %]' is invalid or does not exist.
865 866 867 868 869

  [% ELSIF error == "invalid_regexp" %]
    [% title = "Invalid regular expression" %]
    The regular expression you entered is invalid.

870 871
  [% ELSIF error == "invalid_user_group" %]
    [% title = "Invalid User Group" %]
872 873 874 875 876 877 878 879 880 881
    [% IF users.size > 1 %] Users [% ELSE %] User [% END %]
    '[% users.join(', ') FILTER html %]'
    [% IF users.size > 1 %] are [% ELSE %] is [% END %]
    not able to edit the
    [% IF product %]
      '[% product FILTER html %]'
    [% END %]
    [%+ field_descs.product FILTER html %]
    [% IF bug_id %]
      for [% terms.bug %] '[% bug_id FILTER html %]'.
882 883
    [% ELSIF new %]
      and may not be included on a new [% terms.bug %].
884 885 886
    [% ELSE %]
      for at least one [% terms.bug %] being changed.
    [% END %]
887

888 889 890 891
  [% ELSIF error == "invalid_username" %]
    [% title = "Invalid Username" %]
    The name <tt>[% name FILTER html %]</tt> is not a valid username.  
    Either you misspelled it, or the person has not
892
    registered for a [% terms.Bugzilla %] account.
893 894 895 896

  [% ELSIF error == "invalid_username_or_password" %]
    [% title = "Invalid Username Or Password" %]
    The username or password you entered is not valid.
897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912

  [% ELSIF error == "keyword_already_exists" %]
    [% title = "Keyword Already Exists" %]
    A keyword with the name [% name FILTER html %] already exists.

  [% ELSIF error == "keyword_blank_description" %]
    [% title = "Blank Keyword Description Not Allowed" %]
    You must enter a non-blank description for the keyword.
     
  [% ELSIF error == "keyword_blank_name" %]
    [% title = "Blank Keyword Name Not Allowed" %]
    You must enter a non-blank name for the keyword.
     
  [% ELSIF error == "keyword_invalid_name" %]
    [% title = "Invalid Keyword Name" %]
    You may not use commas or whitespace in a keyword name.
913
     
914 915 916 917 918
  [% ELSIF error == "local_file_too_large" %]
    [% title = "Local File Too Large" %]
    Local file uploads must not exceed 
    [% Param('maxlocalattachment') %] MB in size.

919 920 921 922
  [% ELSIF error == "login_needed_for_password_change" %]
    [% title = "Login Name Required" %]
    You must enter a login name when requesting to change your password.

923 924
  [% ELSIF error == "login_required_for_pronoun" %]
    [% title = "Login Name Required" %]
925 926
    You can't use %user% without being logged in, because %user% refers
    to your login name, which we don't know.
927

928 929
  [% ELSIF error == "milestone_already_exists" %]
    [% title = "Milestone Already Exists" %]
930 931
    [% admindocslinks = {'products.html' => 'Administering products',
                         'milestones.html' => 'About Milestones'} %]
932 933 934 935 936 937 938
    The milestone '[% name FILTER html %]' already exists for product '
    [%- product FILTER html %]'.

  [% ELSIF error == "milestone_blank_name" %]
    [% title = "Blank Milestone Name Not Allowed" %]
    You must enter a name for this milestone.

939 940
  [% ELSIF error == "milestone_is_default" %]
    [% title = "Default milestone not deletable" %]
941 942
    [% admindocslinks = {'products.html' => 'Administering products',
                         'milestones.html' => 'About Milestones'} %]
943 944 945
    Sorry, but [% milestone.name FILTER html %] is the default milestone
    for the '[% milestone.product.name FILTER html %]' product, and so
    it cannot be deleted.
946

947 948 949 950 951
  [% ELSIF error == "milestone_name_too_long" %]
    [% title = "Milestone Name Is Too Long" %]
    The name of a milestone is limited to 20 characters. 
    '[% name FILTER html %]' is too long ([% name.length %] characters).

952 953
  [% ELSIF error == "milestone_required" %]
    [% title = "Milestone Required" %]
954
    You must determine a target milestone for [% terms.bug %] 
955
    [%+ bug.id FILTER html %]
956
    if you are going to accept it.  Part of accepting 
957
    [%+ terms.abug %] is giving an estimate of when it will be fixed.
958

959 960
  [% ELSIF error == "milestone_sortkey_invalid" %]
    [% title = "Invalid Milestone Sortkey" %]
961 962 963
    The sortkey '[% sortkey FILTER html %]' is not in the range
    [%+ constants.MIN_SMALLINT FILTER html %] &le; sortkey &le;
    [%+ constants.MAX_SMALLINT FILTER html %].
964

965 966 967 968 969
  [% ELSIF error == "misarranged_dates" %]
    [% title = "Misarranged Dates" %]
    Your start date ([% datefrom FILTER html %]) is after 
    your end date ([% dateto FILTER html %]).
    
970 971 972 973
  [% ELSIF error == "missing_attachment_description" %]
    [% title = "Missing Attachment Description" %]
    You must enter a description for the attachment.
    
974 975 976
  [% ELSIF error == "missing_category" %]
    [% title = "Missing Category" %]
    You did not specify a category for this series.
977

978 979
  [% ELSIF error == "missing_component" %]
    [% title = "Missing Component" %]
980 981
    [% admindocslinks = {'products.html'   => 'Administering products',
                         'components.html' => 'Creating a component'} %]
982
    Sorry, the product <em>[% product.name FILTER html %]</em>
983
    has to have at least one component in order for you to
984
    enter [% terms.abug %] into it.<br>
985 986
    [% IF user.in_group("editcomponents", product.id) %]
      <a href="editcomponents.cgi?action=add&amp;product=[% product.name FILTER url_quote %]">Create
987
      a new component</a>.
988
    [% ELSE %]
989 990
      Please contact [% Param("maintainer") %] and ask them
      to add a component to this product.
991 992
    [% END %]

993 994
  [% ELSIF error == "missing_content_type" %]
    [% title = "Missing Content-Type" %]
995
     You asked [% terms.Bugzilla %] to auto-detect the content type, but
996 997 998 999 1000 1001 1002 1003 1004
     your browser did not specify a content type when uploading the file, 
     so you must enter a content type manually.
                
  [% ELSIF error == "missing_content_type_method" %]
    [% title = "Missing Content-Type Determination Method" %]
    You must choose a method for determining the content type,
    either <em>auto-detect</em>, <em>select from list</em>, or <em>enter 
    manually</em>.
        
1005 1006 1007 1008
  [% ELSIF error == "missing_cookie" %]
    [% title = "Missing Cookie" %]
    Sorry, I seem to have lost the cookie that recorded
    the results of your last search. I'm afraid you will have to start
1009
    again from the <a href="query.cgi">search page</a>.
1010
          
1011 1012
  [% ELSIF error == "missing_datasets" %]
    [% title = "No Datasets Selected" %]
1013
    [% docslinks = {'reporting.html' => 'Reporting'} %]
1014 1015
    You must specify one or more datasets to plot.
    
1016
  [% ELSIF error == "missing_email_type" %]
1017
    [% title = "Your Search Makes No Sense" %]
1018
    You must specify one or more fields in which to search for
1019
    <tt>[% email FILTER html %]</tt>.
1020
    
1021 1022
  [% ELSIF error == "missing_frequency" %]
    [% title = "Missing Frequency" %]
1023
    [% docslinks = {'reporting.html' => 'Reporting'} %]
1024 1025 1026 1027
    You did not specify a valid frequency for this series.
                
  [% ELSIF error == "missing_name" %]
    [% title = "Missing Name" %]
1028
    [% docslinks = {'reporting.html' => 'Reporting'} %]
1029 1030
    You did not specify a name for this series.
                
1031
  [% ELSIF error == "missing_query" %]
1032
    [% title = "Missing Search" %]
1033
    [% docslinks = {'query.html' => "Searching for $terms.bugs",
1034
                    'query.html#list' => "$terms.Bug lists"} %]
1035
    The search named <em>[% queryname FILTER html %]</em>
1036
    [% IF sharer_id && sharer_id != user.id %]
1037 1038 1039 1040
      has not been made visible to you.
    [% ELSE %]
      does not exist.
    [% END %]
1041

1042 1043 1044 1045 1046
  [% ELSIF error == "missing_resolution" %]
    [% title = "Resolution Required" %]
    A valid resolution is required to mark [% terms.bugs %] as
    [%+ status FILTER upper FILTER html %].

1047 1048 1049 1050 1051
  [% ELSIF error == "move_bugs_disabled" %]
    [% title = BLOCK %][% terms.Bug %] Moving Disabled[% END %]
    Sorry, [% terms.bug %] moving has been disabled. If you need
    to move [% terms.abug %], please contact [% Param("maintainer") %].

1052 1053 1054 1055
  [% ELSIF error == "missing_subcategory" %]
    [% title = "Missing Subcategory" %]
    You did not specify a subcategory for this series.
                
1056 1057
  [% ELSIF error == "missing_version" %]
    [% title = "Missing Version" %]
1058
    [% admindocslinks = {'versions.html' => 'Defining versions'} %]
1059
    Sorry, the product <em>[% product.name FILTER html %]</em>
1060
    has to have at least one version in order for you to
1061
    enter [% terms.abug %] into it.<br>
1062 1063
    [% IF user.in_group("editcomponents", product.id) %]
      <a href="editversions.cgi?action=add&amp;product=[% product.name FILTER url_quote %]">Create
1064 1065
      a new version</a>.
    [% ELSE %]
1066 1067
      Please contact [% Param("maintainer") %] and ask them
      to add a version to this product.
1068 1069
    [% END %]

1070 1071
  [% ELSIF error == "need_quip" %]
    [% title = "Quip Required" %]
1072
    [% docslinks = {'quips.html' => 'About quips'} %]
1073
    Please enter a quip in the text field.
1074

1075 1076 1077
  [% ELSIF error == "new_password_missing" %]
    [% title = "New Password Missing" %]
    You must enter a new password.
1078

1079 1080
  [% ELSIF error == "no_axes_defined" %]
    [% title = "No Axes Defined" %]
1081
    [% docslinks = {'reporting.html' => 'Reporting'} %]
1082 1083
    You didn't define any axes to plot.

1084
  [% ELSIF error == "no_bugs_chosen" %]
1085
    [% title = BLOCK %]No [% terms.Bugs %] Selected[% END %]
1086 1087 1088 1089 1090 1091
    You apparently didn't choose any [% terms.bugs %]
    [% IF action == "modify" %]
      to modify.
    [% ELSIF action == "view" %]
      to view.
    [% END %]
1092

1093
  [% ELSIF error == "no_bug_ids" %]
1094
    [% title = BLOCK %]No [% terms.Bugs %] Selected[% END %]
1095 1096
    You didn't choose any [% terms.bugs %] to
    [% IF action == "add" %] add to [% ELSE %] remove from [% END %]
1097
    the [% tag FILTER html %] tag.
1098 1099

  [% ELSIF error == "no_bugs_in_list" %]
1100 1101 1102
    [% title = "Delete Tag?" %]
    This will remove all [% terms.bugs %] from the
    [% tag FILTER html %] tag. This will delete the tag completely. Click
1103
    <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
1104
    [%- tag FILTER url_quote %]">here</a> if you really want to delete it.
1105 1106

  [% ELSIF error == "no_bugs_to_remove" %]
1107 1108
    [% title = "No Tag Selected" %]
    You didn't select a tag from which to remove [% terms.bugs %].
1109

1110 1111
  [% ELSIF error == "no_dupe_stats" %]
    [% title = "Cannot Find Duplicate Statistics" %]
1112
    [% admindocslinks = {'extraconfig.html' => 'Setting up the collecstats.pl job'} %]
1113 1114
    There are no duplicate statistics for today ([% today FILTER html %]) 
    or yesterday.
1115

1116 1117
  [% ELSIF error == "no_dupe_stats_error_today" %]
    [% title = "Error Reading Today's Dupes File" %]
1118
    [% admindocslinks = {'extraconfig.html' => 'Setting up the collecstats.pl job'} %]
1119 1120 1121 1122
    An error occurred opening today's dupes file: [% error_msg FILTER html %].

  [% ELSIF error == "no_dupe_stats_error_whenever" %]
    [% title = "Error Reading Previous Dupes File" %]
1123
    [% admindocslinks = {'extraconfig.html' => 'Setting up the collecstats.pl job'} %]
1124 1125
    An error occurred opening [% changedsince FILTER html %] days ago
    ([% whenever FILTER html %])'s dupes file:
1126
    [% error_msg FILTER html %].
1127

1128 1129
  [% ELSIF error == "no_dupe_stats_error_yesterday" %]
    [% title = "Error Reading Yesterday's Dupes File" %]
1130
    [% admindocslinks = {'extraconfig.html' => 'Setting up the collecstats.pl job'} %]
1131 1132
    There are no duplicate statistics for today ([% today FILTER html %]), 
    and an error
1133
    occurred opening yesterday's dupes file: [% error_msg FILTER html %].
1134

1135 1136 1137 1138 1139
  [% ELSIF error == "no_initial_bug_status" %]
    [% title = "No Initial $terms.Bug Status" %]
    No [% terms.bug %] status is available on [% terms.bug %] creation.
    Please report the problem to [% Param("maintainer") %].

1140 1141
  [% ELSIF error == "no_new_quips" %]
    [% title = "No New Quips" %]
1142
    [% admindocslinks = {'quips.html' => 'Controlling quip usage'} %]
1143
    This site does not permit the addition of new quips.
1144

1145 1146 1147
  [% ELSIF error == "no_page_specified" %]
    [% title = "No Page Specified" %]
    You did not specify the id of a page to display.
1148

1149 1150
  [% ELSIF error == "no_products" %]
    [% title = "No Products" %]
1151 1152 1153
    [% admindocslinks = {'products.html'   => 'Setting up a product',
                         'components.html' => 'Adding components to products',
                         'groups.html'     => 'Groups security'} %]
1154
    Either no products have been defined to enter [% terms.bugs %] against or you have not
1155
    been given access to any.
1156

1157 1158 1159 1160
  [% ELSIF error == "no_valid_action" %]
    [% title = "No valid action specified" %]
    Cannot edit [% field_descs.$field FILTER html %]: no valid action was specified.

1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178
  [% ELSIF error == "number_not_numeric" %]
    [% title = "Numeric Value Required" %]
    The value '[% num FILTER html %]' in the 
    <em>[% field_descs.$field FILTER html %]</em> field 
    is not a numeric value.

  [% ELSIF error == "number_too_large" %]
    [% title = "Number Too Large" %]
    The value '[% num FILTER html %]' in the 
    <em>[% field_descs.$field FILTER html %]</em> field 
    is more than the maximum allowable value of '[% max_num FILTER html %]'.

  [% ELSIF error == "number_too_small" %]
    [% title = "Number Too Small" %]
    The value '[% num FILTER html %]' 
    in the <em>[% field_descs.$field FILTER html %]</em> field 
    is less than the minimum allowable value of '[% min_num FILTER html %]'.

1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196
  [% ELSIF error == "object_name_not_specified" %]
    [% type = BLOCK %][% PROCESS object_name %][% END %]
    [% title = BLOCK %][% type FILTER ucfirst FILTER html %] Not 
    Specified[% END %]
    You must select/enter a [% type FILTER html %].

  [% ELSIF error == "object_does_not_exist" %]
    [% type = BLOCK %][% PROCESS object_name %][% END %]
    [% title = BLOCK %]Invalid [% type FILTER ucfirst FILTER html %][% END %]
    There is no [% type FILTER html %] named '[% name FILTER html %]'
    [% IF product.defined %]
      in the '[% product.name FILTER html %]' product
    [% END %].
    [% IF class == "Bugzilla::User" %]
      Either you mis-typed the name or that user has not yet registered
      for a [% terms.Bugzilla %] account.
    [% END %]

1197 1198
  [% ELSIF error == "old_password_incorrect" %]
    [% title = "Incorrect Old Password" %]
1199
    You did not enter your old password correctly.
1200

1201 1202
  [% ELSIF error == "old_password_required" %]
    [% title = "Old Password Required" %]
1203
    You must enter your old password to change your email address.
1204

1205 1206 1207 1208
  [% ELSIF error == "password_change_requests_not_allowed" %]
    [% title = "Password Change Requests Not Allowed" %]
    The system is not configured to allow password change requests.

1209 1210
  [% ELSIF error == "passwords_dont_match" %]
    [% title = "Passwords Don't Match" %]
1211
    The two passwords you entered did not match.
1212

1213 1214
  [% ELSIF error == "password_too_long" %]
    [% title = "Password Too Long" %]
1215 1216
    The password must be no more than
    [%+ constants.USER_PASSWORD_MAX_LENGTH FILTER html %] characters long.
1217

1218 1219
  [% ELSIF error == "password_too_short" %]
    [% title = "Password Too Short" %]
1220 1221
    The password must be at least
    [%+ constants.USER_PASSWORD_MIN_LENGTH FILTER html %] characters long.
1222

1223 1224
  [% ELSIF error == "patch_too_large" %]
    [% title = "File Too Large" %]
1225 1226
    The file you are trying to attach is [% filesize FILTER html %] 
    kilobytes (KB) in size.
1227
    Patches cannot be more than [% Param('maxpatchsize') %] KB in size.
1228
    Try breaking your patch into several pieces.
1229

1230 1231 1232 1233
  [% ELSIF error == "product_access_denied" %]
    Either the product '[% product FILTER html %]' does not exist or
    you don't have access to it.

1234 1235 1236 1237
  [% ELSIF error == "product_doesnt_exist" %]
    [% title = "Specified Product Does Not Exist" %]
    The product '[% product FILTER html %]' does not exist.

1238
  [% ELSIF error == "product_votes_per_bug_must_be_nonnegative" %]
1239
    [% title = "Maximum Votes Must Be Non-negative" %]
1240
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1241 1242 1243 1244
    '[% maxvotesperbug FILTER html %]' is an invalid value for the 
    <em>'Maximum Votes Per [% terms.Bug %]'</em> field, which should
    contain a non-negative number.

1245
  [% ELSIF error == "product_votes_per_user_must_be_nonnegative" %]
1246
    [% title = "Votes Per User Must Be Non-negative" %]
1247
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1248 1249 1250 1251
    '[% votesperuser FILTER html %]' is an invalid value for the 
    <em>'Votes Per User'</em> field, which should contain a
    non-negative number.

1252
  [% ELSIF error == "product_votes_to_confirm_must_be_nonnegative" %]
1253
    [% title = "Votes To Confirm Must Be Non-negative" %]
1254
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1255 1256 1257 1258
    '[% votestoconfirm FILTER html %]' is an invalid value for the 
    <em>'Votes To Confirm'</em> field, which should contain a
    non-negative number.

1259
  [% ELSIF error == "product_cant_delete_description" %]
1260
    [% title = "Cannot delete product description" %]
1261
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1262 1263 1264
    Cannot delete the description for product
    '[% product FILTER html %]'.

1265
  [% ELSIF error == "product_cant_delete_name" %]
1266
    [% title = "Cannot delete product name" %]
1267
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1268 1269
    Cannot delete the product name for product '[% product FILTER html %]'.

1270
  [% ELSIF error == "product_name_already_in_use" %]
1271
    [% title = "Product name already in use" %]
1272
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1273
    The product name '[% product FILTER html %]' is already in use.
1274
  
1275
  [% ELSIF error == "product_name_diff_in_case" %]
1276
    [% title = "Product name differs only in case" %]
1277
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1278 1279
    The product name '[% product FILTER html %]' differs from existing 
    product '[% existing_product FILTER html %]' only in case.
1280

1281
  [% ELSIF error == "product_must_define_defaultmilestone" %]
1282
    [% title = "Must define new default milestone" %]
1283 1284
    [% admindocslinks = {'products.html' => 'Administering products',
                         'milestones.html' => 'About Milestones'} %]
1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295
    [% IF classification %]
      [% classification_url_part = BLOCK %]&amp;classification=
        [%- classification FILTER url_quote %]
      [% END %]
    [% END %]
    You must <a href="editmilestones.cgi?action=add&amp;product=
    [%- product FILTER url_quote %]
    [%- classification_url_part FILTER none %]">
    create the milestone '[% defaultmilestone FILTER html %]'</a> before
    it can be made the default milestone for product '[% product FILTER html %]'.

1296
  [% ELSIF error == "product_admin_denied" %]
1297 1298 1299
    [% title = "Product Access Denied" %]
    You are not allowed to edit properties of product '[% product FILTER html %]'.

1300 1301
  [% ELSIF error == "product_blank_name" %]
    [% title = "Blank Product Name Not Allowed" %]
1302
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1303 1304
    You must enter a name for the new product.
  
1305 1306
  [% ELSIF error == "product_disabled" %]
    [% title = BLOCK %]Product closed for [% terms.Bugs %] Entry[% END %]
1307
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1308
    Sorry, entering [% terms.bugs %] into the
1309
    product <em>[% product.name FILTER html %]</em> has been disabled.
1310

1311 1312
  [% ELSIF error == "product_edit_denied" %]
    [% title = "Product Edit Access Denied" %]
1313 1314
    [% admindocslinks = {'products.html' => 'Administering products',
                         'groups.html'   => 'Group security'} %]
1315
    You are not permitted to edit [% terms.bugs %] in product 
1316
    [%+ product FILTER html %].
1317

1318 1319
  [% ELSIF error == "product_has_bugs" %]
    [% title = BLOCK %]Product has [% terms.Bugs %][% END %]
1320
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1321
    There are [% nb FILTER html %] [%+ terms.bugs %] entered for this product!
1322
    You must move those [% terms.bugs %] to another product before you
1323 1324
    can delete this one.

1325 1326
  [% ELSIF error == "product_must_have_description" %]
    [% title = "Product needs Description" %]
1327
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1328 1329
    You must enter a description for product '[% product FILTER html %]'.

1330
  [% ELSIF error == "product_must_have_version" %]
1331
    [% title = "Product needs Version" %]
1332 1333
    [% admindocslinks = {'products.html' => 'Administering products',
                         'versions.html' => 'Administering versions'} %]
1334 1335
    You must enter a version for product '[% product FILTER html %]'.

1336 1337
  [% ELSIF error == "product_not_specified" %]
    [% title = "No Product Specified" %]
1338 1339 1340 1341
    [% admindocslinks = {'products.html'   => 'Administering products',
                         'components.html' => 'Administering components',
                         'milestones.html' => 'Administering milestones',
                         'versions.html'   => 'Administering versions'} %]
1342 1343 1344
    No product specified when trying to edit components, milestones, versions
    or product.

1345 1346 1347 1348 1349 1350 1351 1352
  [% ELSIF error == "query_name_exists" %]
    [% title = "Search Name Already In Use" %]
    The name <em>[% name FILTER html %]</em> is already used by another
    saved search. You first have to
    <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
    [%- name FILTER url_quote %]">delete</a> it if you really want to use
    this name.

1353
  [% ELSIF error == "query_name_missing" %]
1354
    [% title = "No Search Name Specified" %]
1355
    [% docslinks = {'query.html#list' => "$terms.Bug lists"} %]
1356
    You must enter a name for your search.
1357

1358 1359 1360 1361
  [% ELSIF error == "query_name_too_long" %]
    [% title = "Query Name Too Long" %]
    The name of the query must be less than 64 characters long.

1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375
  [% ELSIF error == "quicksearch_unknown_field" %]
    [% title = "Unknown QuickSearch Field" %]
    [% IF fields.unique.size == 1 %]
      Field <code>[% fields.first FILTER html %]</code> is not a known field.
    [% ELSE %]
      Fields
      [% FOREACH field = fields.unique.sort %]
         <code>[% field FILTER html %]</code>
         [% ', ' UNLESS loop.last() %]
      [% END %]
      are not known fields.
    [% END %]
    The legal field names are <a href="page.cgi?id=quicksearchhack.html">listed here</a>.

1376 1377
  [% ELSIF error == "reassign_to_empty" %]
    [% title = "Illegal Reassignment" %]
1378
    To reassign [% terms.abug %], you must provide an address for
1379
    the new assignee.
1380

1381 1382
  [% ELSIF error == "require_component" %]
    [% title = "Component Needed" %]
1383 1384
    To file this [% terms.bug %], you must first choose a component.
    If necessary, just guess.
1385

1386
  [% ELSIF error == "require_new_password" %]
1387
    [% title = "New Password Needed" %]
1388
    You cannot change your password without choosing a new one.
1389

1390
  [% ELSIF error == "require_summary" %]
1391
    [% title = "Summary Needed" %]
1392 1393
    You must enter a summary for this [% terms.bug %].

1394
  [% ELSIF error == "resolution_cant_clear" %]
1395
    [% terms.Bug %] [%+ bug_id FILTER bug_link(bug_id) FILTER none %] is 
1396 1397
    closed, so you cannot clear its resolution.

1398 1399 1400 1401
  [% ELSIF error == "resolution_not_allowed" %]
    [% title = "Resolution Not Allowed" %]
    You cannot set a resolution for open [% terms.bugs %].

1402 1403
  [% ELSIF error == "saved_search_used_by_whines" %]
    [% title = "Saved Search In Use" %]
1404
    [% docslinks = {'whining.html' => 'About Whining'} %]
1405 1406 1407 1408
    The saved search <em>[% search_name FILTER html %]</em> is being used 
    by <a href="editwhines.cgi">Whining events</a> with the following subjects:
    [%+ subjects FILTER html %]

1409 1410 1411 1412 1413 1414
  [% ELSIF error == "search_content_without_matches" %]
    [% title = "Illegal Search" %]
    The "content" field can only be used with "matches" search 
    and the "matches" search can only be used with the "content"
    field.

1415 1416
  [% ELSIF error == "series_already_exists" %]
    [% title = "Series Already Exists" %]
1417
    [% docslinks = {'reporting.html' => 'Reporting'} %]
1418 1419 1420 1421 1422
      A series named <em>[% series.category FILTER html %] /
      [%+ series.subcategory FILTER html %] / 
      [%+ series.name FILTER html %]</em>
      already exists.
    
1423
  [% ELSIF error == "sidebar_supports_mozilla_only" %]
1424 1425
    Sorry - sidebar.cgi currently only supports Mozilla based web browsers.
    <a href="http://www.mozilla.org">Upgrade today</a>. :-)
1426

1427 1428
  [% ELSIF error == "still_unresolved_bugs" %]
    [% IF dependency_count == 1 %]
1429
      [% terms.Bug %]# <a href="show_bug.cgi?id=[% dependencies.0.bug_id FILTER none %]">[% dependencies.0.bug_id FILTER none %]</a>
1430
      still has [% dependencies.0.dependencies FILTER html %] unresolved
1431 1432 1433 1434 1435
      [% IF dependencies.0.dependencies == 1 %]
        dependency
      [% ELSE %]
        dependencies
      [% END %]. Show
1436 1437
      <a href="showdependencytree.cgi?id=[% dependencies.0.bug_id FILTER none %]&amp;hide_resolved=1">Dependency
      Tree</a>.
1438
    [% ELSE %]
1439
      There are [% dependency_count FILTER none %] open [% terms.bugs %] which
1440 1441 1442
      have unresolved dependencies.
      <br>
      [% FOREACH bug = dependencies %]
1443
        [% terms.Bug %]# <a href="show_bug.cgi?id=[% bug.bug_id FILTER none %]">[% bug.bug_id FILTER none %]</a>
1444 1445 1446 1447 1448 1449
        has [% bug.dependencies FILTER html %] open
        [% IF bug.dependencies == 1 %]
          dependency.
        [% ELSE %]
          dependencies.
        [% END %]
1450 1451
        (<a href="showdependencytree.cgi?id=[% bug.bug_id FILTER none %]&amp;hide_resolved=1">Dependency
        Tree</a>)<br>
1452 1453 1454
      [% END %]
    [% END %]

1455 1456
  [% ELSIF error == "sudo_in_progress" %]
    [% title = "Session In Progress" %]
1457
    A sudo session (impersonating [% target FILTER html %]) is in progress.  
1458 1459
    End that session (using the link in the footer) before starting a new one.

1460 1461 1462 1463 1464
  [% ELSIF error == "sudo_password_required" %]
    [% title = "Password Required" %]
    Your [% terms.Bugzilla %] password is required to begin a sudo 
    session. Please <a href="relogin.cgi?action=prepare-sudo&target_login=
    [%- target_login FILTER html %]&reason=
1465
    [%- reason FILTER html %]">go back</a> and enter your password.
1466 1467 1468 1469 1470 1471 1472 1473
    
  [% ELSIF error == "sudo_preparation_required" %]
    [% title = "Preparation Required" %]
    You may not start a sudo session directly.  Please
    <a href="relogin.cgi?action=prepare-sudo&target_login=
    [%- target_login FILTER html %]&reason=
    [%- reason FILTER html %]">start your session normally</a>.

1474 1475 1476 1477
  [% ELSIF error == "sudo_protected" %]
    [% title = "User Protected" %]
    The user [% login FILTER html %] may not be impersonated by sudoers.

1478
  [% ELSIF error == "too_many_votes_for_bug" %]
1479
    [% title = "Illegal Vote" %]
1480
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1481
    You may only use at most [% max FILTER html %] votes for a single
1482
    [%+ terms.bug %] in the
1483
    <tt>[% product FILTER html %]</tt> product, but you are trying to
1484
    use [% votes FILTER html %].
1485

1486
  [% ELSIF error == "too_many_votes_for_product" %]
1487
    [% title = "Illegal Vote" %]
1488
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1489 1490 1491
    You tried to use [% votes FILTER html %] votes in the
    <tt>[% product FILTER html %]</tt> product, which exceeds the maximum of
    [%+ max FILTER html %] votes for this product.
1492

1493
  [% ELSIF error == "token_does_not_exist" %]
1494 1495
    [% title = "Token Does Not Exist" %]
    The token you submitted does not exist, has expired, or has
1496
    been canceled.
1497

1498 1499
  [% ELSIF error == "too_soon_for_new_token" %]
    [% title = "Too Soon For New Token" %]
1500 1501 1502 1503 1504 1505 1506
    You have requested
    [% IF type == "password" %]
      a password
    [% ELSIF type == "account" %]
      an account
    [% END %]
    token too recently to request another. Please wait a while and try again.
1507

1508 1509
  [% ELSIF error == "unknown_keyword" %]
    [% title = "Unknown Keyword" %]
1510
    <code>[% keyword FILTER html %]</code> is not a known keyword.
1511
    The legal keyword names are <a href="describekeywords.cgi">listed here</a>.
1512 1513 1514

  [% ELSIF error == "unknown_tab" %]
    [% title = "Unknown Tab" %]
1515
    <code>[% current_tab_name FILTER html %]</code> is not a legal tab name.
1516

1517 1518
  [% ELSIF error == "version_already_exists" %]
    [% title = "Version Already Exists" %]
1519
    [% admindocslinks = {'versions.html' => 'Administering versions'} %]
1520 1521 1522 1523 1524 1525 1526
    The version '[% name FILTER html %]' already exists for product '
    [%- product FILTER html %]'.

  [% ELSIF error == "version_blank_name" %]
    [% title = "Blank Version Name Not Allowed" %]
    You must enter a name for this version.

1527 1528 1529 1530 1531 1532
  [% ELSIF error == "version_has_bugs" %]
    [% title = BLOCK %]Version has [% terms.Bugs %][% END %]
    There are [% nb FILTER html %] [%+ terms.bugs %] associated with this
    version! You must reassign those [% terms.bugs %] to another version
    before you can delete this one.

1533 1534 1535 1536
  [% ELSIF error == "version_not_specified" %]
    [% title = "No Version Specified" %]
    No version specified when trying to edit versions.

1537 1538
  [% ELSIF error == "users_deletion_disabled" %]
    [% title = "Deletion not activated" %]
1539
    [% admindocslinks = {'useradmin.html' => 'User administration'} %]
1540 1541
    Sorry, the deletion of user accounts is not allowed.

1542 1543
  [% ELSIF error == "user_has_responsibility" %]
    [% title = "Can't Delete User Account" %]
1544
    [% admindocslinks = {'useradmin.html' => 'User administration'} %]
1545 1546 1547 1548 1549 1550
    The user you want to delete is set up as the default [% terms.bug %]
    assignee
    [% IF Param('useqacontact') %]
      or QA contact
    [% END %]
    for at least one component.
1551 1552 1553 1554
    For this reason, you cannot delete the account at this time.

  [% ELSIF error == "user_login_required" %]
    [% title = "Login Name Required" %]
1555
    [% admindocslinks = {'useradmin.html' => 'User administration'} %]
1556 1557
    You must enter a login name for the new user.

1558 1559 1560 1561 1562
  [% ELSIF error == "user_match_failed" %]
    [% title = "Match Failed" %]
    <tt>[% name FILTER html %]</tt> does not exist or you are not allowed 
    to see that user.

1563 1564
  [% ELSIF error == "votes_must_be_nonnegative" %]
    [% title = "Votes Must Be Non-negative" %]
1565
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1566 1567
    Only use non-negative numbers for your [% terms.bug %] votes.

1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579
  [% ELSIF error == "wrong_token_for_cancelling_email_change" %]
    [% title = "Wrong Token" %]
    That token cannot be used to cancel an email address change.

  [% ELSIF error == "wrong_token_for_changing_passwd" %]
    [% title = "Wrong Token" %]
    That token cannot be used to change your password.

  [% ELSIF error == "wrong_token_for_confirming_email_change" %]
    [% title = "Wrong Token" %]
    That token cannot be used to change your email address.

1580 1581 1582 1583
  [% ELSIF error == "wrong_token_for_creating_account" %]
    [% title = "Wrong Token" %]
    That token cannot be used to create a user account.

1584 1585
  [% ELSIF error == "zero_length_file" %]
    [% title = "File Is Empty" %]
1586 1587
    The file you are trying to attach is empty, does not exist, or you don't
    have permission to read it.
1588

1589 1590 1591 1592
  [% ELSIF error == "illegal_user_id" %]
    [% title = "Illegal User ID" %]
    User ID '[% userid FILTER html %]' is not valid integer.

1593
  [% ELSE %]
1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605

    [%# Try to find hooked error messages %]
    [% error_message = Hook.process("errors") %]

    [% IF not error_message %]
      [% title = "Error string not found" %]
      The user error string <code>[% error FILTER html %]</code> was not found.
      Please send email to [% Param("maintainer") %] describing the steps taken
      to obtain this message.
    [% ELSE %]
      [% error_message FILTER none %]
    [% END %]
1606 1607 1608
  [% END %]
[% END %]

1609
[%# We only want HTML error messages for ERROR_MODE_WEBPAGE %]
1610
[% USE Bugzilla %]
1611
[% IF Bugzilla.error_mode != constants.ERROR_MODE_WEBPAGE %]
1612 1613 1614 1615 1616
  [% IF Bugzilla.usage_mode == constants.USAGE_MODE_BROWSER %]
    [% error_message FILTER none %]
  [% ELSE %]
    [% error_message FILTER txt %]
  [% END %]
1617 1618 1619
  [% RETURN %]
[% END %]

1620
[% UNLESS header_done %]
1621
  [% PROCESS global/header.html.tmpl %]
1622 1623
[% END %]

1624 1625 1626 1627 1628
[% PROCESS global/docslinks.html.tmpl
   docslinks      = docslinks
   admindocslinks = admindocslinks
%]

1629 1630 1631 1632
<table cellpadding="20">
  <tr>
    <td bgcolor="#ff0000">
      <font size="+2">
1633
        [% error_message FILTER none %]
1634 1635 1636 1637 1638 1639 1640 1641 1642
      </font>
    </td>
  </tr>
</table>

<p>
  Please press <b>Back</b> and try again.
</p>

1643 1644 1645
[%# If a saved search fails, people want the ability to edit or delete it. 
  # This is the best way of getting information about that possible saved
  # search from any error call location. %]
1646

1647
[% namedcmd = Bugzilla.cgi.param("namedcmd") %]
1648
[% sharer_id = Bugzilla.cgi.param("sharer_id") %]
1649
[% IF namedcmd AND error != "missing_query" 
1650 1651
               AND error != "saved_search_used_by_whines"
               AND !sharer_id %]
1652 1653 1654
  <p>  
    Alternatively, you can    
    <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
1655
                  [% namedcmd FILTER url_quote %]">forget</a>
1656 1657 1658
                  
    [% FOREACH q = Bugzilla.user.queries %]
      [% IF q.name == namedcmd %]
1659
        or <a href="query.cgi?[% q.url FILTER html %]">edit</a>
1660 1661 1662
      [% END %]
    [% END %]
    
1663
    the saved search '[% namedcmd FILTER html %]'.
1664 1665 1666
  </p>
[% END %]            

1667
[% PROCESS global/footer.html.tmpl %]
1668 1669 1670 1671

[% BLOCK object_name %]
  [% IF class == "Bugzilla::User" %]
    user
1672 1673
  [% ELSIF class == "Bugzilla::Component" %]
    component
1674 1675 1676 1677
  [% ELSIF class == "Bugzilla::Version" %]
    version
  [% ELSIF class == "Bugzilla::Milestone" %]
    milestone
1678 1679
  [% ELSIF class == "Bugzilla::Status" %]
    status
1680 1681
  [% END %]
[% END %]