user-error.html.tmpl 61.9 KB
Newer Older
1
[%# 1.0@bugzilla.org %]
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
[%# 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>
20
  #                 Frédéric Buclin <LpSolit@gmail.com>
21 22
  #%]

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

[%# 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.
31 32 33
  #
  # 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.
34
  #
35 36 37 38 39
  # 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
40 41 42 43
  #%]

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

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

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

48
[% error_message = BLOCK %]
49
  [% IF    error == "account_creation_disabled" %]
50
    [% title = "Account Creation Disabled" %]
51
    User account creation has been disabled or restricted.
52 53 54
    <hr>
    New accounts must be created by an administrator.

55 56
  [% ELSIF error == "account_disabled" %]
    [% title = "Account Disabled" %]
57
    [% disabled_reason FILTER none %]
58
    <hr>
59
    If you believe your account should be restored, please
60
    send email to [% Param("maintainer") %] explaining why.
61

62 63
  [% ELSIF error == "account_exists" %]
    [% title = "Account Already Exists" %]
64 65 66 67 68 69
    There is already an account with
    [% IF email %]
      the login name [% email FILTER html %].
    [% ELSE %]
      that login name.
    [% END %]
70

71 72
  [% ELSIF error == "account_inexistent" %]
    [% title = "Account Does Not Exist" %]
73
    There is no [% terms.Bugzilla %] account with that login name.
74

75 76 77 78 79
  [% 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
80
    aliases from each other in lists.  Please choose an alias
81
    that does not contain commas and spaces.
82

83 84
  [% ELSIF error == "alias_in_use" %]
    [% title = "Alias In Use" %]
85 86 87
    [% 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.
88

89 90 91 92
  [% ELSIF error == "alias_not_defined" %]
    [% title = "Alias Is Not Defined" %]
    You did not supply an alias to this [% terms.bug %].

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

201 202
    [% Hook.process("auth_failure") %]

203 204 205 206
  [% ELSIF error == "attachment_deletion_disabled" %]
    [% title = "Attachment Deletion Disabled" %]
    Attachment deletion is disabled on this installation.

207 208 209 210
  [% ELSIF error == "attachment_removed" %]
    [% title = "Attachment Removed" %]
    The attachment you are attempting to access has been removed.

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

  [% ELSIF error == "bug_access_query" %]
    [% title = "Access Denied" %]
218
    [% docslinks = {'myaccount.html' => 'Creating an account'} %]
219 220 221 222
    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
223
    in to an account</a> with the appropriate permissions.
224

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

231
  [% ELSIF error == "bugs_not_changed" %]
232
    [% title = BLOCK %][% terms.Bugs %] Not Changed[% END %]
233 234
    You do not seem to have made any changes in the selected [% terms.bugs %],
    so there is nothing to Commit.
235

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

240 241
  [% ELSIF error == "comment_required" %]
    [% title = "Comment Required" %]
242
    You have to specify a <b>comment</b> on this change.
243
    Please explain your change.
244

245 246 247 248
  [% ELSIF error == "comment_too_long" %]
    [% title = "Comment Too Long" %]
    Comments cannot be longer than 65,535 characters.

249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264
  [% 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.

265 266 267 268 269
  [% 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 %]'.

270 271 272 273 274
  [% 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.

275 276 277 278 279 280 281 282 283
  [% 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.

284 285 286 287 288 289 290 291 292 293 294 295
  [% ELSIF error == "component_already_exists" %]
    [% title = "Component Already Exists" %]
    A component with the name '[% name FILTER html %]' already exists.

  [% ELSIF error == "component_blank_description" %]
    [% title = "Blank Component Description Not Allowed" %]
    You must enter a non-blank description for component '[% name FILTER html %]'.
     
  [% ELSIF error == "component_blank_name" %]
    [% title = "Blank Component Name Not Allowed" %]
    You must enter a name for this new component.

296 297 298 299 300 301
  [% 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.

302 303 304 305 306 307
  [% ELSIF error == "component_name_too_long" %]
    [% title = "Component Name Is Too Long" %]
    The name of a component is limited to 64 characters. 
    '[% name FILTER html %]' is too long ([% name.size %] characters).

  [% ELSIF error == "component_need_initialowner" %]
308 309
    [% title = "Component Requires Default Assignee" %]
    You must enter a default assignee for component '[% name FILTER html %]'.
310 311 312

  [% ELSIF error == "component_not_valid" %]
    [% title = "Specified Component Does Not Exist" %]
313 314
    Product [% product FILTER html %] does not have a component
    named [% name FILTER html %].
315

316 317 318 319
  [% ELSIF error == "customfield_nonexistent" %]
    [% title = "Unknown Custom Field" %]
    There is no custom field with the name '[% name FILTER html %]'.

320 321
  [% ELSIF error == "dependency_loop_multi" %]
    [% title = "Dependency Loop Detected" %]
322
    The following [% terms.bug %](s) would appear on both the "depends on"
323
    and "blocks" parts of the dependency tree if these changes
324 325 326 327 328
    are committed:
    [% FOREACH dep = deps %]
      [%+ dep FILTER bug_link(dep) FILTER none %]
    [% END %].
    This would create a circular dependency, which is not allowed.
329

330 331
  [% ELSIF error == "dependency_loop_single" %]
    [% title = "Dependency Loop Detected" %]
332
    You can't make [% terms.abug %] block itself or depend on itself.
333

334 335 336 337
  [% ELSIF error == "description_required" %]
    [% title = "Description Required" %]
    You must provide a description of the [% terms.bug %].

338 339 340 341 342 343 344 345 346 347 348 349 350 351 352
  [% 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 %].
353

354 355
  [% ELSIF error == "email_change_in_progress" %]
    [% title = "Email Change Already In Progress" %]
356 357
    Email change already in progress; please check your email.

358
  [% ELSIF error == "email_confirmation_failed" %]
359
    [% title = "Email Address Confirmation Failed" %]
360 361
    Email address confirmation failed.

362 363 364 365
  [% 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.

366 367
  [% ELSIF error == "empty_group_description" %]
    [% title = "The group description can not be empty" %]
368
    You must enter a description for the group.
369 370 371

  [% ELSIF error == "empty_group_name" %]
    [% title = "The group name can not be empty" %]
372
    You must enter a name for the group.
373
  
374 375
  [% ELSIF error == "entry_access_denied" %]
    [% title = "Permission Denied" %]
376
    [% admindocslinks = {'groups.html' => 'Group Security'} %]
377 378 379
    Sorry, either the product <em>[% product FILTER html %]</em>
    does not exist or you aren't authorized to
    enter [% terms.abug %] into it.
380

381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404
  [% 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.

405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423
  [% 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
    '[%- field FILTER html %]' field.

  [% 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.

424 425 426 427 428 429 430 431 432
  [% ELSIF error == "fieldvalue_is_default" %]
    [% title = "Specified Field Value Is Default" %]
    '[% value FILTER html %]' is the default value for
    the '[% field FILTER html %]' field and cannot be deleted.
    [% 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 %]

433 434 435 436 437
  [% 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).

438 439 440 441 442 443 444 445 446 447
  [% ELSIF error == "fieldvalue_not_editable" %]
    [% title = "Field Value Not Editable" %]
    The value '[% old_value FILTER html %]' cannot be renamed because
    it plays some special role for the '[% field FILTER html %]' field.

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

448 449 450 451 452 453 454 455 456 457 458 459
  [% ELSIF error == "fieldvalue_not_specified" %]
    [% title = "Field Value Not Specified" %]
    No field value specified when trying to edit a field value.

  [% 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 
460 461
    '[% field FILTER html%]' field, because there are still
    [%+ count FILTER html %] [%+ terms.bugs %] using it.
462 463 464 465 466

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

467 468 469
  [% ELSIF error == "file_not_specified" %]
    [% title = "No File Specified" %]
    You did not specify a file to attach.
470

471 472
  [% ELSIF error == "file_too_large" %]
    [% title = "File Too Large" %]
473
    The file you are trying to attach is [% filesize FILTER html %] 
474
    kilobytes (KB) in size. Non-patch attachments cannot be more than
475
    [%+ Param('maxattachmentsize') %] KB. <br>
476
    We recommend that you store your attachment elsewhere on the web,
477 478 479 480 481 482 483
    [% 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 %]
484
    <br>Alternately, if your attachment is an image, you could convert
485
    it to a compressible format like JPG or PNG and try again.
486

487
  [% ELSIF error == "flag_not_multiplicable" %]
488 489
    [% docslinks = {'flags-overview.html' => 'An overview on Flags',
                    'flags.html' => 'Using Flags'} %]
490 491
    You can't ask more than one person at a time for
    <em>[% type.name FILTER html %]</em>.
492 493 494 495 496 497 498

  [% 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.

499 500
  [% ELSIF error == "flag_requestee_unauthorized" %]
    [% title = "Flag Requestee Not Authorized" %]
501 502 503 504
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags',
                         'groups.html' => 'Group Security'} %]
    [% docslinks = {'flags-overview.html' => 'An overview on Flags',
                    'flags.html' => 'Using Flags'} %]
505 506

    You asked [% requestee.identity FILTER html %]
507
    for <code>[% flag_type.name FILTER html %]</code> on [% terms.bug %] 
508
    [%+ bug_id FILTER html -%]
509
    [% IF attach_id && attach_id > 0 %], attachment [% attach_id FILTER html %][% END %],
510 511 512
    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.
513 514
    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.
515

516 517
  [% ELSIF error == "flag_requestee_unauthorized_attachment" %]
    [% title = "Flag Requestee Not Authorized" %]
518 519 520 521
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags',
                         'groups.html' => 'Group Security'} %]
    [% docslinks = {'flags-overview.html' => 'An overview on Flags',
                    'flags.html' => 'Using Flags'} %]
522 523

    You asked [% requestee.identity FILTER html %]
524
    for <code>[% flag_type.name FILTER html %]</code> on 
525
    [%+ terms.bug %] [%+ bug_id FILTER html %],
526
    attachment [% attach_id FILTER html %], but that attachment
527 528 529
    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.
530

531 532
  [% ELSIF error == "flag_type_cc_list_invalid" %]
    [% title = "Flag Type CC List Invalid" %]
533
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags'} %]
534
    The CC list [% cc_list FILTER html %] must be less than 200 characters long.
535

536 537 538 539
  [% ELSIF error == "flag_type_component_without_product" %]
    [% title = "Product Missing" %]
    A component was selected without a product being selected.

540 541
  [% ELSIF error == "flag_type_description_invalid" %]
    [% title = "Flag Type Description Invalid" %]
542
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags'} %]
543
    The description must be less than 32K.
544

545 546
  [% ELSIF error == "flag_type_name_invalid" %]
    [% title = "Flag Type Name Invalid" %]
547
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags'} %]
548 549
    The name <em>[% name FILTER html %]</em> must be 1-50 characters long
    and must not contain any spaces or commas.
550

551 552
  [% ELSIF error == "flag_update_denied" %]
    [% title = "Flag Modification Denied" %]
553 554 555 556
    [% admindocslinks = {'flags-overview.html#flags-admin'  => 'Administering Flags',
                         'groups.html' => 'Group Security'} %]
    [% docslinks = {'flags-overview.html' => 'An overview on Flags',
                    'flags.html' => 'Using Flags'} %]
557 558
    You tried to [% IF status == "+" %] grant [% ELSIF status == "-" %] deny
    [% ELSIF status == "X" %] clear [% ELSE %] request [% END %]
559 560 561 562
    <code>[% name FILTER html %]
          [% IF status == "X" %][% old_status FILTER html %][% END %]</code>.

    Only a sufficiently empowered user can make this change.
563

564 565 566 567
  [% 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>.
568 569 570 571
    
  [% ELSIF error == "flag_type_sortkey_invalid" %]
    [% title = "Flag Type Sort Key Invalid" %]
    The sort key must be an integer between 0 and 32767 inclusive.
572
    It cannot be <em>[% sortkey FILTER html %]</em>.
573

574 575 576 577 578 579 580 581
  [% 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.

582 583 584 585
  [% ELSIF error == "group_exists" %]
    [% title = "The group already exists" %]
    The group [% name FILTER html %] already exists.

586 587 588 589 590 591 592 593 594 595 596 597 598 599
  [% 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.

600 601 602 603
  [% ELSIF error == "group_not_specified" %]
    [% title = "Group not specified" %]
    No group was specified.

604 605 606 607 608
  [% 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.

609 610 611 612 613
  [% 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!

614
  [% ELSIF error == "illegal_at_least_x_votes" %]
615
    [% title = "Your Search Makes No Sense" %]
616 617 618
    The <em>At least ___ votes</em> field must be a simple number. 
    You entered <tt>[% value FILTER html %]</tt>, which isn't.
    
619 620
  [% ELSIF error == "illegal_attachment_edit" %]
    [% title = "Unauthorised Action" %]
621
    You are not authorised to edit attachment [% attach_id FILTER html %].
622 623 624

  [% ELSIF error == "illegal_attachment_edit_bug" %]
    [% title = "Unauthorised Action" %]
625 626
    You are not authorised to edit attachments on [% terms.bug %] 
    [%+ bug_id FILTER html %].
627
         
628
  [% ELSIF error == "illegal_attachment_is_patch" %]
629
    [% title = "Your Search Makes No Sense" %]
630 631
    The only legal values for the <em>Attachment is patch</em> field are
    0 and 1.
632 633
         
  [% ELSIF error == "illegal_change" %]
634
    [% title = "Not allowed" %]
635 636
    You tried to change the 
    <strong>[% field_descs.$field FILTER html %]</strong> field 
637 638 639 640 641 642 643
    [% IF oldvalue %]
      from <em>[% oldvalue FILTER html %]</em>
    [% END %]
    [% IF newvalue %]
      to <em>[% newvalue FILTER html %]</em>
    [% END %]
    , but only
644
    [% IF privs < 3 %]
645
      the assignee
646 647 648 649 650
      [% IF privs < 2 %] or reporter [% END %]
      of the [% terms.bug %], or
    [% END %]
    a sufficiently empowered user may change that field.

651 652 653 654 655 656 657
  [% 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.

658
  [% ELSIF error == "illegal_changed_in_last_x_days" %]
659
    [% title = "Your Search Makes No Sense" %]
660 661 662 663
    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" %]
664
    [% title = "Illegal Date" %]
665
    '<tt>[% date FILTER html %]</tt>' is not a legal date.
666 667 668
    [% IF format %]
      Please use the format '<tt>[% format FILTER html %]</tt>'.
    [% END %]
669 670 671
    
  [% ELSIF error == "illegal_email_address" %]
    [% title = "Invalid Email Address" %]
672
    The e-mail address you entered (<b>[% addr FILTER html %]</b>) 
673 674 675 676 677 678 679
    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 %]
680 681 682
    It must also not contain any of these special characters:
    <tt>\ ( ) &amp; &lt; &gt; , ; : &quot; [ ]</tt>, or any whitespace.
    
683 684 685 686 687
  [% 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.
    
688 689
  [% ELSIF error == "illegal_group_control_combination" %]
    [% title = "Your Group Control Combination Is Illegal" %]
690
    [% admindocslinks = {'groups.html' => 'Assigning Group Controls to Products'} %]
691
    Your group control combination for group &quot;
692
    [% groupname FILTER html %]&quot; is illegal.
693

694
  [% ELSIF error == "illegal_is_obsolete" %]
695
    [% title = "Your Search Makes No Sense" %]
696 697
    The only legal values for the <em>Attachment is obsolete</em> field are
    0 and 1.
698 699

  [% ELSIF error == "illegal_query_name" %]
700 701
    [% title = "Illegal Search Name" %]
    The name of your search cannot contain any of the following characters: 
702 703
    &lt;, &gt;, &amp;.

704
  [% ELSIF error == "illegal_series_creation" %]
705
    [% admindocslinks = {'groups.html' => 'Group security'} %]
706
    [% docslinks = {'reporting.html' => 'Reporting'} %]
707 708 709
    You are not authorised to create series.
        
  [% ELSIF error == "illegal_series_edit" %]
710
    [% admindocslinks = {'groups.html' => 'Group security'} %]
711
    [% docslinks = {'reporting.html' => 'Reporting'} %]
712 713 714
    You are not authorised to edit this series. To do this, you must either
    be its creator, or an administrator.
        
715
  [% ELSIF error == "insufficient_data_points" %]
716
    [% docslinks = {'reporting.html' => 'Reporting'} %]
717 718
    We don't have enough data points to make a graph (yet).
        
719 720 721 722
  [% ELSIF error == "invalid_attach_id" %]
    [% title = "Invalid Attachment ID" %]
    The attachment id [% attach_id FILTER html %] is invalid.

723
  [% ELSIF error == "invalid_bug_id_non_existent" %]
724
    [% title = BLOCK %]Invalid [% terms.Bug %] ID[% END %]
725
    [% terms.Bug %] #[% bug_id FILTER html %] does not exist.
726 727
    
  [% ELSIF error == "invalid_bug_id_or_alias" %]
728
    [% title = BLOCK %]Invalid [% terms.Bug %] ID[% END %]
729 730 731
    [% IF bug_id %]
      '[% bug_id FILTER html %]' is not a valid [% terms.bug %] number
      [% IF Param("usebugaliases") %]
732
        nor an alias to [% terms.abug %]
733 734 735 736 737 738 739 740
      [% END %].
    [% ELSE %]
      [% IF field %]
        The '[% field_descs.$field FILTER html %]' field
        cannot be empty.
      [% END %]
      You must enter a valid [% terms.bug %] number!
    [% END %]
741

742 743 744 745 746
  [% ELSIF error == "invalid_changedsince" %]
    [% title = "Invalid 'Changed Since'" %]
    The 'changed since' value, '[% changedsince FILTER html %]', must be an
    integer >= 0.

747 748 749
  [% ELSIF error == "invalid_content_type" %]
    [% title = "Invalid Content-Type" %]
    The content type <em>[% contenttype FILTER html %]</em> is invalid.
750 751
    Valid types must be of the form <em>foo/bar</em> where <em>foo</em>
    is either <em>application, audio, image, message, model, multipart,
752
    text,</em> or <em>video</em>.
753 754 755 756 757 758
    
  [% ELSIF error == "invalid_context" %]
    [% title = "Invalid Context" %]
    The context [% context FILTER html %] is invalid (must be a number,
    "file" or "patch").

759 760 761 762 763
  [% ELSIF error == "invalid_datasets" %]
    [% title = "Invalid Datasets" %]
    Invalid datasets <em>[% datasets FILTER html %]</em>. Only digits,
    letters and colons are allowed.

764 765 766 767 768 769 770
  [% 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 %]
    ).
771

772 773 774 775
  [% ELSIF error == "invalid_group_ID" %]
    [% title = "Invalid group ID" %]
    The group you specified doesn't exist.

776 777 778
  [% ELSIF error == "invalid_group_name" %]
    [% title = "Invalid group name" %]
    The group you specified, [% name FILTER html %], is not valid here.
779

780
  [% ELSIF error == "invalid_maxrows" %]
781
    [% title = "Invalid Max Rows" %]
782 783
    The maximum number of rows, '[% maxrows FILTER html %]', must be
    a positive integer.
784

785 786 787 788
  [% ELSIF error == "invalid_parameter" %]
    [% title = "Invalid Parameter" %]
    The new value for [% name FILTER html %] is invalid: [% err FILTER html %].

789 790 791
  [% ELSIF error == "invalid_product_name" %]
    [% title = "Invalid Product Name" %]
    The product name '[% product FILTER html %]' is invalid or does not exist.
792 793 794 795 796

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

797 798
  [% ELSIF error == "invalid_user_group" %]
    [% title = "Invalid User Group" %]
799 800 801 802 803 804 805 806 807 808
    [% 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 %]'.
809 810
    [% ELSIF new %]
      and may not be included on a new [% terms.bug %].
811 812 813
    [% ELSE %]
      for at least one [% terms.bug %] being changed.
    [% END %]
814

815 816 817 818
  [% 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
819
    registered for a [% terms.Bugzilla %] account.
820 821 822 823

  [% ELSIF error == "invalid_username_or_password" %]
    [% title = "Invalid Username Or Password" %]
    The username or password you entered is not valid.
824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839

  [% 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.
840
     
841 842 843 844 845
  [% ELSIF error == "local_file_too_large" %]
    [% title = "Local File Too Large" %]
    Local file uploads must not exceed 
    [% Param('maxlocalattachment') %] MB in size.

846 847 848 849
  [% ELSIF error == "login_needed_for_password_change" %]
    [% title = "Login Name Required" %]
    You must enter a login name when requesting to change your password.

850 851
  [% ELSIF error == "login_required_for_pronoun" %]
    [% title = "Login Name Required" %]
852 853
    You can't use %user% without being logged in, because %user% refers
    to your login name, which we don't know.
854

855 856
  [% ELSIF error == "milestone_already_exists" %]
    [% title = "Milestone Already Exists" %]
857 858
    [% admindocslinks = {'products.html' => 'Administering products',
                         'milestones.html' => 'About Milestones'} %]
859 860 861 862 863 864 865
    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.

866 867
  [% ELSIF error == "milestone_is_default" %]
    [% title = "Default milestone not deletable" %]
868 869
    [% admindocslinks = {'products.html' => 'Administering products',
                         'milestones.html' => 'About Milestones'} %]
870 871 872
    Sorry, but [% milestone.name FILTER html %] is the default milestone 
    for product '[% product.name FILTER html %]', and so it can not be 
    deleted.
873

874 875 876 877 878 879 880 881 882 883 884 885 886 887
  [% 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).

  [% ELSIF error == "milestone_not_specified" %]
    [% title = "No Milestone Specified" %]
    No milestone specified when trying to edit milestones.

  [% ELSIF error == "milestone_not_valid" %]
    [% title = "Specified Milestone Does Not Exist" %]
    The milestone '[% milestone FILTER html %]' for product 
    '[% product FILTER html %]' does not exist.

888 889
  [% ELSIF error == "milestone_required" %]
    [% title = "Milestone Required" %]
890 891
    You must determine a target milestone for [% terms.bug %] 
    [%+ bug_id FILTER html %]
892
    if you are going to accept it.  Part of accepting 
893
    [%+ terms.abug %] is giving an estimate of when it will be fixed.
894

895 896 897
  [% ELSIF error == "milestone_sortkey_invalid" %]
    [% title = "Invalid Milestone Sortkey" %]
    The sortkey '[% sortkey FILTER html %]' for milestone '
898 899
    [% name FILTER html %]' is not in the range -32768 &le; sortkey
    &le; 32767.
900

901 902 903 904 905
  [% ELSIF error == "misarranged_dates" %]
    [% title = "Misarranged Dates" %]
    Your start date ([% datefrom FILTER html %]) is after 
    your end date ([% dateto FILTER html %]).
    
906 907 908 909
  [% ELSIF error == "missing_attachment_description" %]
    [% title = "Missing Attachment Description" %]
    You must enter a description for the attachment.
    
910 911 912
  [% ELSIF error == "missing_category" %]
    [% title = "Missing Category" %]
    You did not specify a category for this series.
913

914 915
  [% ELSIF error == "missing_component" %]
    [% title = "Missing Component" %]
916 917
    [% admindocslinks = {'products.html'   => 'Administering products',
                         'components.html' => 'Creating a component'} %]
918
    Sorry, the product <em>[% product.name FILTER html %]</em>
919
    has to have at least one component in order for you to
920
    enter [% terms.abug %] into it.<br>
921 922
    [% IF user.in_group("editcomponents", product.id) %]
      <a href="editcomponents.cgi?action=add&amp;product=[% product.name FILTER url_quote %]">Create
923
      a new component</a>.
924
    [% ELSE %]
925 926
      Please contact [% Param("maintainer") %] and ask them
      to add a component to this product.
927 928
    [% END %]

929 930
  [% ELSIF error == "missing_content_type" %]
    [% title = "Missing Content-Type" %]
931
     You asked [% terms.Bugzilla %] to auto-detect the content type, but
932 933 934 935 936 937 938 939 940
     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>.
        
941 942 943 944
  [% 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
945
    again from the <a href="query.cgi">search page</a>.
946
          
947 948
  [% ELSIF error == "missing_datasets" %]
    [% title = "No Datasets Selected" %]
949
    [% docslinks = {'reporting.html' => 'Reporting'} %]
950 951
    You must specify one or more datasets to plot.
    
952
  [% ELSIF error == "missing_email_type" %]
953
    [% title = "Your Search Makes No Sense" %]
954
    You must specify one or more fields in which to search for
955
    <tt>[% email FILTER html %]</tt>.
956
    
957 958
  [% ELSIF error == "missing_frequency" %]
    [% title = "Missing Frequency" %]
959
    [% docslinks = {'reporting.html' => 'Reporting'} %]
960 961 962 963
    You did not specify a valid frequency for this series.
                
  [% ELSIF error == "missing_name" %]
    [% title = "Missing Name" %]
964
    [% docslinks = {'reporting.html' => 'Reporting'} %]
965 966
    You did not specify a name for this series.
                
967
  [% ELSIF error == "missing_query" %]
968
    [% title = "Missing Search" %]
969 970 971
    [% docslinks = {'query.html' => "Searching for $terms.bugs",
                    'list.html'  => "$terms.Bug lists"} %]
    The search named <em>[% queryname FILTER html %]</em>
972
    [% IF sharer_id && sharer_id != user.id %]
973 974 975 976
      has not been made visible to you.
    [% ELSE %]
      does not exist.
    [% END %]
977 978 979 980 981 982

  [% 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") %].

983 984 985 986
  [% ELSIF error == "missing_subcategory" %]
    [% title = "Missing Subcategory" %]
    You did not specify a subcategory for this series.
                
987 988
  [% ELSIF error == "missing_version" %]
    [% title = "Missing Version" %]
989
    [% admindocslinks = {'versions.html' => 'Defining versions'} %]
990
    Sorry, the product <em>[% product.name FILTER html %]</em>
991
    has to have at least one version in order for you to
992
    enter [% terms.abug %] into it.<br>
993 994
    [% IF user.in_group("editcomponents", product.id) %]
      <a href="editversions.cgi?action=add&amp;product=[% product.name FILTER url_quote %]">Create
995 996
      a new version</a>.
    [% ELSE %]
997 998
      Please contact [% Param("maintainer") %] and ask them
      to add a version to this product.
999 1000
    [% END %]

1001 1002
  [% ELSIF error == "need_quip" %]
    [% title = "Quip Required" %]
1003
    [% docslinks = {'quips.html' => 'About quips'} %]
1004
    Please enter a quip in the text field.
1005

1006 1007 1008
  [% ELSIF error == "new_password_missing" %]
    [% title = "New Password Missing" %]
    You must enter a new password.
1009

1010 1011
  [% ELSIF error == "no_axes_defined" %]
    [% title = "No Axes Defined" %]
1012
    [% docslinks = {'reporting.html' => 'Reporting'} %]
1013 1014
    You didn't define any axes to plot.

1015
  [% ELSIF error == "no_bugs_chosen" %]
1016 1017
    [% title = BLOCK %]No [% terms.Bugs %] Chosen[% END %]
    You apparently didn't choose any [% terms.bugs %] to modify.
1018

1019 1020
  [% ELSIF error == "no_bug_ids" %]
    [% title = BLOCK %]No [% terms.Bugs %] Chosen[% END %]
1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035
    You didn't choose any [% terms.bugs %] to
    [% IF action == "add" %] add to [% ELSE %] remove from [% END %]
    the saved search.

  [% ELSIF error == "no_bugs_in_list" %]
    [% title = "Delete Saved Search?" %]
    You are going to remove all [% terms.bugs %] from the '[% saved_search FILTER html %]'
    saved search. This will delete this saved search completely. Click
    <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
    [%- saved_search FILTER url_quote %]">here</a> if you really want to
    remove it.

  [% ELSIF error == "no_bugs_to_remove" %]
    [% title = "No Saved Search Selected" %]
    You didn't select any saved search to remove [% terms.bugs %] from.
1036

1037 1038
  [% ELSIF error == "no_component_change_for_multiple_products" %]
    [% title = "Action Not Permitted" %]
1039
    You cannot change the component for a list of [% terms.bugs %] covering more than
1040
    one product.
1041

1042 1043
  [% ELSIF error == "no_dupe_stats" %]
    [% title = "Cannot Find Duplicate Statistics" %]
1044
    [% admindocslinks = {'extraconfig.html' => 'Setting up the collecstats.pl job'} %]
1045 1046
    There are no duplicate statistics for today ([% today FILTER html %]) 
    or yesterday.
1047

1048 1049
  [% ELSIF error == "no_dupe_stats_error_today" %]
    [% title = "Error Reading Today's Dupes File" %]
1050
    [% admindocslinks = {'extraconfig.html' => 'Setting up the collecstats.pl job'} %]
1051 1052 1053 1054
    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" %]
1055
    [% admindocslinks = {'extraconfig.html' => 'Setting up the collecstats.pl job'} %]
1056 1057
    An error occurred opening [% changedsince FILTER html %] days ago
    ([% whenever FILTER html %])'s dupes file:
1058
    [% error_msg FILTER html %].
1059

1060 1061
  [% ELSIF error == "no_dupe_stats_error_yesterday" %]
    [% title = "Error Reading Yesterday's Dupes File" %]
1062
    [% admindocslinks = {'extraconfig.html' => 'Setting up the collecstats.pl job'} %]
1063 1064
    There are no duplicate statistics for today ([% today FILTER html %]), 
    and an error
1065
    occurred opening yesterday's dupes file: [% error_msg FILTER html %].
1066

1067 1068
  [% ELSIF error == "no_new_quips" %]
    [% title = "No New Quips" %]
1069
    [% admindocslinks = {'quips.html' => 'Controlling quip usage'} %]
1070
    This site does not permit the addition of new quips.
1071

1072 1073 1074
  [% ELSIF error == "no_page_specified" %]
    [% title = "No Page Specified" %]
    You did not specify the id of a page to display.
1075

1076 1077
  [% ELSIF error == "no_products" %]
    [% title = "No Products" %]
1078 1079 1080
    [% admindocslinks = {'products.html'   => 'Setting up a product',
                         'components.html' => 'Adding components to products',
                         'groups.html'     => 'Groups security'} %]
1081
    Either no products have been defined to enter [% terms.bugs %] against or you have not
1082
    been given access to any.
1083

1084 1085 1086 1087
  [% ELSIF error == "no_valid_action" %]
    [% title = "No valid action specified" %]
    Cannot edit [% field_descs.$field FILTER html %]: no valid action was specified.

1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105
  [% 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 %]'.

1106 1107
  [% ELSIF error == "old_password_incorrect" %]
    [% title = "Incorrect Old Password" %]
1108
    You did not enter your old password correctly.
1109

1110 1111
  [% ELSIF error == "old_password_required" %]
    [% title = "Old Password Required" %]
1112
    You must enter your old password to change your email address.
1113

1114 1115 1116 1117
  [% ELSIF error == "password_change_requests_not_allowed" %]
    [% title = "Password Change Requests Not Allowed" %]
    The system is not configured to allow password change requests.

1118 1119
  [% ELSIF error == "passwords_dont_match" %]
    [% title = "Passwords Don't Match" %]
1120
    The two passwords you entered did not match.
1121

1122 1123
  [% ELSIF error == "password_too_long" %]
    [% title = "Password Too Long" %]
1124 1125
    The password must be no more than
    [%+ constants.USER_PASSWORD_MAX_LENGTH FILTER html %] characters long.
1126

1127 1128
  [% ELSIF error == "password_too_short" %]
    [% title = "Password Too Short" %]
1129 1130
    The password must be at least
    [%+ constants.USER_PASSWORD_MIN_LENGTH FILTER html %] characters long.
1131

1132 1133
  [% ELSIF error == "patch_too_large" %]
    [% title = "File Too Large" %]
1134 1135
    The file you are trying to attach is [% filesize FILTER html %] 
    kilobytes (KB) in size.
1136
    Patches cannot be more than [% Param('maxpatchsize') %] KB in size.
1137
    Try breaking your patch into several pieces.
1138

1139 1140 1141 1142
  [% ELSIF error == "product_access_denied" %]
    Either the product '[% product FILTER html %]' does not exist or
    you don't have access to it.

1143 1144 1145 1146
  [% ELSIF error == "product_doesnt_exist" %]
    [% title = "Specified Product Does Not Exist" %]
    The product '[% product FILTER html %]' does not exist.

1147
  [% ELSIF error == "product_votes_per_bug_must_be_nonnegative" %]
1148
    [% title = "Maximum Votes Must Be Non-negative" %]
1149
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1150 1151 1152 1153
    '[% maxvotesperbug FILTER html %]' is an invalid value for the 
    <em>'Maximum Votes Per [% terms.Bug %]'</em> field, which should
    contain a non-negative number.

1154
  [% ELSIF error == "product_votes_per_user_must_be_nonnegative" %]
1155
    [% title = "Votes Per User Must Be Non-negative" %]
1156
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1157 1158 1159 1160
    '[% votesperuser FILTER html %]' is an invalid value for the 
    <em>'Votes Per User'</em> field, which should contain a
    non-negative number.

1161
  [% ELSIF error == "product_votes_to_confirm_must_be_nonnegative" %]
1162
    [% title = "Votes To Confirm Must Be Non-negative" %]
1163
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1164 1165 1166 1167
    '[% votestoconfirm FILTER html %]' is an invalid value for the 
    <em>'Votes To Confirm'</em> field, which should contain a
    non-negative number.

1168
  [% ELSIF error == "product_cant_delete_description" %]
1169
    [% title = "Cannot delete product description" %]
1170
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1171 1172 1173
    Cannot delete the description for product
    '[% product FILTER html %]'.

1174
  [% ELSIF error == "product_cant_delete_name" %]
1175
    [% title = "Cannot delete product name" %]
1176
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1177 1178
    Cannot delete the product name for product '[% product FILTER html %]'.

1179
  [% ELSIF error == "product_name_already_in_use" %]
1180
    [% title = "Product name already in use" %]
1181
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1182
    The product name '[% product FILTER html %]' is already in use.
1183
  
1184
  [% ELSIF error == "product_name_diff_in_case" %]
1185
    [% title = "Product name differs only in case" %]
1186
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1187 1188
    The product name '[% product FILTER html %]' differs from existing 
    product '[% existing_product FILTER html %]' only in case.
1189

1190
  [% ELSIF error == "product_must_define_defaultmilestone" %]
1191
    [% title = "Must define new default milestone" %]
1192 1193
    [% admindocslinks = {'products.html' => 'Administering products',
                         'milestones.html' => 'About Milestones'} %]
1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204
    [% 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 %]'.

1205 1206 1207 1208
  [% ELSIF error == "product_access_denied" %]
    [% title = "Product Access Denied" %]
    You are not allowed to edit properties of product '[% product FILTER html %]'.

1209 1210
  [% ELSIF error == "product_blank_name" %]
    [% title = "Blank Product Name Not Allowed" %]
1211
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1212 1213
    You must enter a name for the new product.
  
1214 1215
  [% ELSIF error == "product_disabled" %]
    [% title = BLOCK %]Product closed for [% terms.Bugs %] Entry[% END %]
1216
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1217
    Sorry, entering [% terms.bugs %] into the
1218
    product <em>[% product.name FILTER html %]</em> has been disabled.
1219

1220 1221
  [% ELSIF error == "product_edit_denied" %]
    [% title = "Product Edit Access Denied" %]
1222 1223
    [% admindocslinks = {'products.html' => 'Administering products',
                         'groups.html'   => 'Group security'} %]
1224
    You are not permitted to edit [% terms.bugs %] in product 
1225
    [%+ product FILTER html %].
1226

1227 1228
  [% ELSIF error == "product_has_bugs" %]
    [% title = BLOCK %]Product has [% terms.Bugs %][% END %]
1229
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1230 1231 1232 1233
    There are [% nb FILTER html %] [%+ terms.bugs %] entered for this product!
    You must reassign those [% terms.bugs %] to another product before you
    can delete this one.

1234 1235
  [% ELSIF error == "product_must_have_description" %]
    [% title = "Product needs Description" %]
1236
    [% admindocslinks = {'products.html' => 'Administering products'} %]
1237 1238
    You must enter a description for product '[% product FILTER html %]'.

1239
  [% ELSIF error == "product_must_have_version" %]
1240
    [% title = "Product needs Version" %]
1241 1242
    [% admindocslinks = {'products.html' => 'Administering products',
                         'versions.html' => 'Administering versions'} %]
1243 1244
    You must enter a version for product '[% product FILTER html %]'.

1245 1246
  [% ELSIF error == "product_not_specified" %]
    [% title = "No Product Specified" %]
1247 1248 1249 1250
    [% admindocslinks = {'products.html'   => 'Administering products',
                         'components.html' => 'Administering components',
                         'milestones.html' => 'Administering milestones',
                         'versions.html'   => 'Administering versions'} %]
1251 1252 1253
    No product specified when trying to edit components, milestones, versions
    or product.

1254 1255 1256 1257 1258 1259 1260 1261
  [% 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.

1262
  [% ELSIF error == "query_name_missing" %]
1263
    [% title = "No Search Name Specified" %]
1264
    [% docslinks = {'list.html' => "About $terms.bug lists"} %]
1265
    You must enter a name for your search.
1266

1267 1268 1269 1270
  [% ELSIF error == "query_name_too_long" %]
    [% title = "Query Name Too Long" %]
    The name of the query must be less than 64 characters long.

1271 1272
  [% ELSIF error == "reassign_to_empty" %]
    [% title = "Illegal Reassignment" %]
1273
    To reassign [% terms.abug %], you must provide an address for
1274
    the new assignee.
1275

1276 1277
  [% ELSIF error == "require_component" %]
    [% title = "Component Needed" %]
1278 1279
    To file this [% terms.bug %], you must first choose a component.
    If necessary, just guess.
1280

1281
  [% ELSIF error == "require_new_password" %]
1282
    [% title = "New Password Needed" %]
1283
    You cannot change your password without choosing a new one.
1284

1285
  [% ELSIF error == "require_summary" %]
1286
    [% title = "Summary Needed" %]
1287 1288
    You must enter a summary for this [% terms.bug %].

1289 1290
  [% ELSIF error == "saved_search_used_by_whines" %]
    [% title = "Saved Search In Use" %]
1291
    [% docslinks = {'whining.html' => 'About Whining'} %]
1292 1293 1294 1295
    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 %]

1296 1297 1298 1299 1300 1301
  [% 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.

1302 1303
  [% ELSIF error == "series_already_exists" %]
    [% title = "Series Already Exists" %]
1304
    [% docslinks = {'reporting.html' => 'Reporting'} %]
1305 1306 1307 1308 1309
      A series named <em>[% series.category FILTER html %] /
      [%+ series.subcategory FILTER html %] / 
      [%+ series.name FILTER html %]</em>
      already exists.
    
1310
  [% ELSIF error == "sidebar_supports_mozilla_only" %]
1311 1312
    Sorry - sidebar.cgi currently only supports Mozilla based web browsers.
    <a href="http://www.mozilla.org">Upgrade today</a>. :-)
1313

1314 1315
  [% ELSIF error == "still_unresolved_bugs" %]
    [% IF dependency_count == 1 %]
1316
      [% terms.Bug %]# <a href="show_bug.cgi?id=[% dependencies.0.bug_id FILTER none %]">[% dependencies.0.bug_id FILTER none %]</a>
1317
      still has [% dependencies.0.dependencies FILTER html %] unresolved
1318 1319 1320 1321 1322
      [% IF dependencies.0.dependencies == 1 %]
        dependency
      [% ELSE %]
        dependencies
      [% END %]. Show
1323 1324
      <a href="showdependencytree.cgi?id=[% dependencies.0.bug_id FILTER none %]&amp;hide_resolved=1">Dependency
      Tree</a>.
1325
    [% ELSE %]
1326
      There are [% dependency_count FILTER none %] open [% terms.bugs %] which
1327 1328 1329
      have unresolved dependencies.
      <br>
      [% FOREACH bug = dependencies %]
1330
        [% terms.Bug %]# <a href="show_bug.cgi?id=[% bug.bug_id FILTER none %]">[% bug.bug_id FILTER none %]</a>
1331 1332 1333 1334 1335 1336
        has [% bug.dependencies FILTER html %] open
        [% IF bug.dependencies == 1 %]
          dependency.
        [% ELSE %]
          dependencies.
        [% END %]
1337 1338
        (<a href="showdependencytree.cgi?id=[% bug.bug_id FILTER none %]&amp;hide_resolved=1">Dependency
        Tree</a>)<br>
1339 1340 1341
      [% END %]
    [% END %]

1342 1343
  [% ELSIF error == "sudo_in_progress" %]
    [% title = "Session In Progress" %]
1344
    A sudo session (impersonating [% target FILTER html %]) is in progress.  
1345 1346
    End that session (using the link in the footer) before starting a new one.

1347 1348 1349 1350 1351
  [% 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=
1352
    [%- reason FILTER html %]">go back</a> and enter your password.
1353 1354 1355 1356 1357 1358 1359 1360
    
  [% 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>.

1361 1362 1363 1364
  [% ELSIF error == "sudo_protected" %]
    [% title = "User Protected" %]
    The user [% login FILTER html %] may not be impersonated by sudoers.

1365
  [% ELSIF error == "too_many_votes_for_bug" %]
1366
    [% title = "Illegal Vote" %]
1367
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1368
    You may only use at most [% max FILTER html %] votes for a single
1369
    [%+ terms.bug %] in the
1370
    <tt>[% product FILTER html %]</tt> product, but you are trying to
1371
    use [% votes FILTER html %].
1372

1373
  [% ELSIF error == "too_many_votes_for_product" %]
1374
    [% title = "Illegal Vote" %]
1375
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1376 1377 1378
    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.
1379

1380
  [% ELSIF error == "token_inexistent" %]
1381 1382 1383
    [% title = "Token Does Not Exist" %]
    The token you submitted does not exist, has expired, or has
    been cancelled.
1384

1385 1386
  [% ELSIF error == "too_soon_for_new_token" %]
    [% title = "Too Soon For New Token" %]
1387 1388 1389 1390 1391 1392 1393
    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.
1394

1395 1396
  [% ELSIF error == "unknown_keyword" %]
    [% title = "Unknown Keyword" %]
1397
    <code>[% keyword FILTER html %]</code> is not a known keyword.
1398
    The legal keyword names are <a href="describekeywords.cgi">listed here</a>.
1399 1400 1401

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

1404 1405
  [% ELSIF error == "version_already_exists" %]
    [% title = "Version Already Exists" %]
1406
    [% admindocslinks = {'versions.html' => 'Administering versions'} %]
1407 1408 1409 1410 1411 1412 1413
    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.

1414 1415 1416 1417 1418 1419
  [% 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.

1420 1421 1422 1423 1424 1425 1426 1427 1428
  [% ELSIF error == "version_not_specified" %]
    [% title = "No Version Specified" %]
    No version specified when trying to edit versions.

  [% ELSIF error == "version_not_valid" %]
    [% title = "Specified Version Does Not Exist" %]
    The version '[% version FILTER html %]' for product 
    '[% product FILTER html %]' does not exist.

1429 1430
  [% ELSIF error == "users_deletion_disabled" %]
    [% title = "Deletion not activated" %]
1431
    [% admindocslinks = {'useradmin.html' => 'User administration'} %]
1432 1433
    Sorry, the deletion of user accounts is not allowed.

1434 1435
  [% ELSIF error == "user_has_responsibility" %]
    [% title = "Can't Delete User Account" %]
1436
    [% admindocslinks = {'useradmin.html' => 'User administration'} %]
1437 1438 1439 1440 1441 1442
    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.
1443 1444 1445 1446
    For this reason, you cannot delete the account at this time.

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

1450 1451 1452 1453 1454
  [% 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.

1455 1456
  [% ELSIF error == "votes_must_be_nonnegative" %]
    [% title = "Votes Must Be Non-negative" %]
1457
    [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %]
1458 1459
    Only use non-negative numbers for your [% terms.bug %] votes.

1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471
  [% 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.

1472 1473 1474 1475
  [% ELSIF error == "wrong_token_for_creating_account" %]
    [% title = "Wrong Token" %]
    That token cannot be used to create a user account.

1476 1477
  [% ELSIF error == "zero_length_file" %]
    [% title = "File Is Empty" %]
1478
    The file you are trying to attach is empty!
1479

1480 1481 1482 1483
  [% ELSIF error == "illegal_user_id" %]
    [% title = "Illegal User ID" %]
    User ID '[% userid FILTER html %]' is not valid integer.

1484
  [% ELSE %]
1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496

    [%# 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 %]
1497 1498 1499
  [% END %]
[% END %]

1500
[%# We only want HTML error messages for ERROR_MODE_WEBPAGE %]
1501
[% USE Bugzilla %]
1502
[% IF Bugzilla.error_mode != constants.ERROR_MODE_WEBPAGE %]
1503 1504 1505 1506 1507
  [% IF Bugzilla.usage_mode == constants.USAGE_MODE_BROWSER %]
    [% error_message FILTER none %]
  [% ELSE %]
    [% error_message FILTER txt %]
  [% END %]
1508 1509 1510
  [% RETURN %]
[% END %]

1511
[% UNLESS header_done %]
1512
  [% PROCESS global/header.html.tmpl %]
1513 1514
[% END %]

1515 1516 1517 1518 1519
[% PROCESS global/docslinks.html.tmpl
   docslinks      = docslinks
   admindocslinks = admindocslinks
%]

1520 1521 1522 1523
<table cellpadding="20">
  <tr>
    <td bgcolor="#ff0000">
      <font size="+2">
1524
        [% error_message FILTER none %]
1525 1526 1527 1528 1529 1530 1531 1532 1533
      </font>
    </td>
  </tr>
</table>

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

1534 1535 1536
[%# 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. %]
1537

1538
[% namedcmd = Bugzilla.cgi.param("namedcmd") %]
1539
[% sharer_id = Bugzilla.cgi.param("sharer_id") %]
1540
[% IF namedcmd AND error != "missing_query" 
1541 1542
               AND error != "saved_search_used_by_whines"
               AND !sharer_id %]
1543 1544 1545
  <p>  
    Alternatively, you can    
    <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
1546
                  [% namedcmd FILTER url_quote %]">forget</a>
1547 1548 1549
                  
    [% FOREACH q = Bugzilla.user.queries %]
      [% IF q.name == namedcmd %]
1550
        or <a href="query.cgi?[% q.url FILTER html %]">edit</a>
1551 1552 1553
      [% END %]
    [% END %]
    
1554
    the saved search '[% namedcmd FILTER html %]'.
1555 1556 1557
  </p>
[% END %]            

1558
[% PROCESS global/footer.html.tmpl %]