diff options
author | Dexter Morgan <dmorgan@mageia.org> | 2010-11-26 14:56:29 +0000 |
---|---|---|
committer | Colin Guthrie <colin@mageia.org> | 2014-09-15 20:44:39 +0100 |
commit | 80fc05854135e575e7811b55f521e8bb9855a2ee (patch) | |
tree | 72b18ca48983a3ebb7fe2f0d658d099f5854f3db /template/en/default/global | |
download | bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar.gz bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar.bz2 bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar.xz bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.zip |
Add custom template with identity support
Diffstat (limited to 'template/en/default/global')
29 files changed, 5274 insertions, 0 deletions
diff --git a/template/en/default/global/banner.html.tmpl b/template/en/default/global/banner.html.tmpl new file mode 100644 index 0000000..ab1c2a8 --- /dev/null +++ b/template/en/default/global/banner.html.tmpl @@ -0,0 +1,26 @@ +[%# 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> + # Matthew Tuck <matty@chariot.net.au> + # Vitaly Harisov <vitaly@rathedg.com> + #%] + +[%# Migration note: this file corresponds to the old Param 'bannerhtml' %] + + <div id="banner"> + </div> diff --git a/template/en/default/global/choose-classification.html.tmpl b/template/en/default/global/choose-classification.html.tmpl new file mode 100644 index 0000000..9342d81 --- /dev/null +++ b/template/en/default/global/choose-classification.html.tmpl @@ -0,0 +1,63 @@ +[%# 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 Albert Ting + # + # Contributor(s): Albert Ting <alt@sonic.net> + #%] + +[%# INTERFACE: + # classifications: an array of classification objects containing + # at least one product accessible by the user. + #%] + +[% IF target == "enter_bug.cgi" %] + [% title = "Select Classification" %] + [% subheader = "Please select the classification." %] +[% END %] + +[% DEFAULT title = "Choose the classification" %] +[% PROCESS global/header.html.tmpl %] + +<table> + <tr> + <th align="right"> + <a href="[% target FILTER url_quote %]?classification=__all + [% IF cloned_bug_id %]&cloned_bug_id=[% cloned_bug_id FILTER url_quote %][% END -%] + [%- IF format %]&format=[% format FILTER url_quote %][% END %]"> + All</a>: + </th> + + <td valign="top"> Show all products</td> + </tr> + <tr> + <th colspan="2"> </th> + </tr> + +[% FOREACH class = classifications %] + <tr> + <th align="right"> + <a href="[% target FILTER url_quote %]?classification=[% class.name FILTER url_quote -%] + [%- IF cloned_bug_id %]&cloned_bug_id=[% cloned_bug_id FILTER url_quote %][% END -%] + [%- IF format %]&format=[% format FILTER url_quote %][% END %]"> + [% class.name FILTER html %]</a>: + </th> + + [% IF class.description %] + <td valign="top"> [% class.description FILTER html_light %]</td> + [% END %] + </tr> +[% END %] + +</table> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/choose-product.html.tmpl b/template/en/default/global/choose-product.html.tmpl new file mode 100644 index 0000000..5c9ad09 --- /dev/null +++ b/template/en/default/global/choose-product.html.tmpl @@ -0,0 +1,75 @@ +[%# 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> + #%] + +[%# INTERFACE: + # classifications: array of hashes, with an 'object' key representing a + # classification object and 'products' the list of + # product objects the user can enter bugs into. + # target: the script that displays this template. + # cloned_bug_id: ID of the bug being cloned. + # format: the desired format to display the target. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% IF target == "enter_bug.cgi" %] + [% title = "Enter $terms.Bug" %] + [% h2 = BLOCK %]First, you must pick a product on which to enter [% terms.abug %]: [% END %] +[% ELSIF target == "describecomponents.cgi" %] + [% title = "Browse" %] + [% h2 = "Select a product category to browse:" %] +[% END %] + +[% DEFAULT title = "Choose a Product" %] +[% PROCESS global/header.html.tmpl %] + +<h2>[% h2 FILTER html %]</h2> + +<table> + +[% FOREACH c = classifications %] + [% IF c.object %] + <tr> + <th colspan="2" align="left">[% c.object.name FILTER html %]: + [%+ c.object.description FILTER html_light %]</th> + </tr> + [% END %] + + [% FOREACH p = c.products %] + <tr> + <th align="right" valign="top"> + <a href="[% target %]?product=[% p.name FILTER url_quote -%] + [%- IF cloned_bug_id %]&cloned_bug_id=[% cloned_bug_id FILTER url_quote %][% END -%] + [%- IF format %]&format=[% format FILTER url_quote %][% END %]"> + [% p.name FILTER html FILTER no_break %]</a>: + </th> + + <td valign="top">[% p.description FILTER html_light %]</td> + </tr> + [% END %] + + <tr> + <th colspan="2"> </th> + </tr> +[% END %] + +</table> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl new file mode 100644 index 0000000..753695b --- /dev/null +++ b/template/en/default/global/code-error.html.tmpl @@ -0,0 +1,574 @@ +[%# 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> + #%] + +[%# INTERFACE: + # header_done: boolean. True if the header has already been printed. + # error: string. The tag of the error. + # variables: hash. Useful data about the problem. The keys are the variable + # names, and the values the variable values. + #%] + +[%# This is a list of all the possible code errors. Please keep them in + # alphabetical order by error tag, and leave a blank line between errors. + # + # 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. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% DEFAULT title = "Internal Error" %] + +[% error_message = BLOCK %] + [% IF error == "action_unrecognized" %] + [% docslinks = {'query.html' => "Searching for $terms.bugs", + 'query.html#list' => "$terms.Bug lists"} %] + I don't recognize the value (<em>[% action FILTER html %]</em>) + of the <em>action</em> variable. + + [% ELSIF error == "attachment_already_obsolete" %] + Attachment #[% attach_id FILTER html %] ([% description FILTER html %]) + is already obsolete. + + [% ELSIF error == "attachment_local_storage_disabled" %] + [% title = "Local Storage Disabled" %] + You cannot store attachments locally. This feature is disabled. + + [% ELSIF error == "attachment_url_disabled" %] + [% title = "Attachment URL Disabled" %] + You cannot attach a URL. This feature is currently disabled. + + [% ELSIF error == "auth_invalid_email" %] + [% title = "Invalid Email Address" %] + We received an email address (<b>[% addr FILTER html %]</b>) + that didn't pass our syntax checking for a legal email address, + when trying to create or update your account. + [% IF default %] + A legal address must contain exactly one '@', + and at least one '.' after the @. + [% ELSE %] + [%+ Param('emailregexpdesc') %] + [% END %] + It must also not contain any of these special characters: + <tt>\ ( ) & < > , ; : " [ ]</tt>, or any whitespace. + + [% ELSIF error == "authres_unhandled" %] + The result value of [% value FILTER html %] was not handled by + the login code. + + [% ELSIF error == "bad_page_cgi_id" %] + [% title = "Invalid Page ID" %] + The ID <code>[% page_id FILTER html %]</code> is not a + valid page identifier. + + [% ELSIF error == "bad_arg" %] + Bad argument <code>[% argument FILTER html %]</code> sent to + <code>[% function FILTER html %]</code> function. + + [% ELSIF error == "bug_error" %] + Trying to retrieve [% terms.bug %] [%+ bug.bug_id FILTER html %] returned + the error [% bug.error FILTER html %]. + + [% ELSIF error == "chart_data_not_generated" %] + [% admindocslinks = {'extraconfig.html' => 'Setting up Charting'} %] + [% IF product %] + Charts for the <em>[% product FILTER html %]</em> product are not + available yet because no charting data has been collected for it since it + was created. + [% ELSE %] + No charting data has been collected yet. + [% END %] + Please wait a day and try again. + If you're seeing this message after a day, then you should contact + <a href="mailto:[% Param('maintainer') %]">[% Param('maintainer') %]</a> + and reference this error. + + [% ELSIF error == "chart_datafile_corrupt" %] + The chart data file [% file FILTER html %] is corrupt. + + [% ELSIF error == "chart_dir_nonexistent" %] + One of the directories <tt>[% dir FILTER html %]</tt> and + <tt>[% graph_dir FILTER html %]</tt> does not exist. + + [% ELSIF error == "chart_file_open_fail" %] + Unable to open the chart datafile <tt>[% filename FILTER html %]</tt>. + + [% ELSIF error == "column_not_null_without_default" %] + Failed adding the column [% name FILTER html %]: + You cannot add a NOT NULL column with no default to an existing table + unless you specify something for the <code>$init_value</code> argument. + + [% ELSIF error == "column_not_null_no_default_alter" %] + You cannot alter the [% name FILTER html %] column to be NOT NULL + without specifying a default or something for $set_nulls_to, because + there are NULL values currently in it. + + [% ELSIF error == "comment_extra_data_not_allowed" %] + You tried to set the <code>extra_data</code> field to + '[% extra_data FILTER html %]' but comments of type [% type FILTER html %] + do not accept an <code>extra_data</code> argument. + + [% ELSIF error == "comment_extra_data_required" %] + Comments of type [% type FILTER html %] require an <code>extra_data</code> + argument to be set. + + [% ELSIF error == "comment_extra_data_not_numeric" %] + You tried to set the <code>extra_data</code> field to + '[% extra_data FILTER html %]' but comments of type [% type FILTER html %] + require a numeric <code>extra_data</code> argument. + + [% ELSIF error == "comment_type_invalid" %] + '[% type FILTER html %]' is not a valid comment type. + + [% ELSIF error == "db_rename_conflict" %] + Name conflict: Cannot rename [% old FILTER html %] to + [% new FILTER html %] because [% new FILTER html %] already exists. + + [% ELSIF error == "cookies_need_value" %] + Every cookie must have a value. + + [% ELSIF error == "env_no_email" %] + [% terms.Bugzilla %] did not receive an email address from the + environment. + [% IF Param("auth_env_email") %] + This means that the '[% Param("auth_env_email") FILTER html %]' + environment variable was empty or did not exist. + [% ELSE %] + You need to set the "auth_env_email" parameter to the name of + the environment variable that will contain the user's email + address. + [% END %] + + [% ELSIF error == "extension_must_be_subclass" %] + <code>[% package FILTER html %]</code> from + <code>[% filename FILTER html %]</code> is not a subclass of + <code>[% class FILTER html %]</code>. + + [% ELSIF error == "extension_must_return_name" %] + <code>[% extension FILTER html %]</code> returned + <code>[% returned FILTER html %]</code>, which is not a valid name + for an extension. Extensions must return their name, not <code>1</code> + or a number. See the documentation of + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Extension.html">Bugzilla::Extension</a> + for details. + + [% ELSIF error == "extension_no_name" %] + We did not find a <code>NAME</code> method in + <code>[% package FILTER html %]</code> (loaded from + <code>[% filename FILTER html %]</code>). This means that + the extension has one or more of the following problems: + + <ul> + <li><code>[% filename FILTER html %]</code> did not define a + <code>[% package FILTER html %]</code> package.</li> + <li><code>[% package FILTER html %]</code> did not define a + <code>NAME</code> method (or the <code>NAME</code> method + returned an empty string).</li> + </ul> + + [% ELSIF error == "extern_id_conflict" %] + The external ID '[% extern_id FILTER html %]' already exists + in the database for '[% username FILTER html %]', but your + account source says that '[% extern_user FILTER html %]' has that ID. + + [% ELSIF error == "field_choice_must_use_type" %] + When you call a class method on <code>Bugzilla::Field::Choice</code>, + you must call <code>Bugzilla::Field::Choice->type('some_field')</code> + to generate the right class (you can't call class methods directly + on Bugzilla::Field::Choice). + + [% ELSIF error == "field_not_custom" %] + '[% field.description FILTER html %]' ([% field.name FILTER html %]) + is not a custom field. + + [% ELSIF error == "field_type_mismatch" %] + Cannot seem to handle <code>[% field FILTER html %]</code> + and <code>[% type FILTER html %]</code> together. + + [% ELSIF error == "field_type_not_specified" %] + [% title = "Field Type Not Specified" %] + You must specify a type when creating a custom field. + + [% ELSIF error == "illegal_content_type_method" %] + Your form submission got corrupted somehow. The <em>content + method</em> field, which specifies how the content type gets determined, + should have been either <em>autodetect</em>, <em>list</em>, + or <em>manual</em>, but was instead + <em>[% contenttypemethod FILTER html %]</em>. + + [% ELSIF error == "illegal_field" %] + A legal [% field FILTER html %] was not set. + + [% ELSIF error == "inactive_group" %] + Attempted to add [% terms.bug %] to the '[% name FILTER html %]' + group, which is not used for [% terms.bugs %]. + + [% ELSIF error == "invalid_attach_id_to_obsolete" %] + The attachment number of one of the attachments you wanted to obsolete, + [% attach_id FILTER html %], is invalid. + + [% ELSIF error == "invalid_customfield_type" %] + [% title = "Invalid Field Type" %] + The type <em>[% type FILTER html %]</em> is not a valid field type. + + [% ELSIF error == "invalid_dimensions" %] + [% title = "Invalid Dimensions" %] + The width or height specified is not a positive integer. + + [% ELSIF error == "invalid_feature" %] + [% title = "Invalid Feature Name" %] + [% feature FILTER html %] is not a valid feature name. See + <code>OPTIONAL_MODULES</code> in + <code>Bugzilla::Install::Requirements</code> for valid names. + + [% ELSIF error == "invalid_flag_association" %] + [% title = "Invalid Flag Association" %] + Some flags do not belong to + [% IF attach_id %] + attachment [% attach_id FILTER html %]. + [% ELSE %] + [%+ terms.bug %] [%+ bug_id FILTER html %]. + [% END %] + + [% ELSIF error == "invalid_series_id" %] + [% title = "Invalid Series" %] + The series_id [% series_id FILTER html %] is not valid. It may be that + this series has been deleted. + + [% ELSIF error == "invalid_webservergroup" %] + There is no such group: [% group FILTER html %]. Check your $webservergroup + setting in [% constants.bz_locations.localconfig FILTER html %]. + + [% ELSIF error == "mismatched_bug_ids_on_obsolete" %] + Attachment [% attach_id FILTER html %] ([% description FILTER html %]) + is attached to [% terms.bug %] [%+ attach_bug_id FILTER html %], + but you tried to flag it as obsolete while creating a new attachment to + [% terms.bug %] [%+ my_bug_id FILTER html %]. + + [% ELSIF error == "feature_disabled" %] + The [% install_string("feature_$feature") FILTER html %] feature is not + available in this [% terms.Bugzilla %]. + [% IF user.in_group('admin') %] + If you would like to enable this feature, please run + <kbd>checksetup.pl</kbd> to see how to install the necessary + requirements for this feature. + [% END %] + + [% ELSIF error == "flag_unexpected_object" %] + [% title = "Object Not Recognized" %] + Flags cannot be set for objects of type [% caller FILTER html %]. + They can only be set for [% terms.bugs %] and attachments. + + [% ELSIF error == "flag_requestee_disabled" %] + [% title = "Flag not Requestable from Specific Person" %] + You can't ask a specific person for + <em>[% type.name FILTER html %]</em>. + + [% ELSIF error == "flag_status_invalid" %] + The flag status <em>[% status FILTER html %]</em> + [% IF id %] + for flag ID #[% id FILTER html %] + [% END %] + is invalid. + + [% ELSIF error == "flag_type_inactive" %] + [% title = "Inactive Flag Type" %] + The flag type [% type FILTER html %] is inactive and cannot be used + to create new flags. + + [% ELSIF error == "flag_type_nonexistent" %] + There is no flag type with the ID <em>[% id FILTER html %]</em>. + + [% ELSIF error == "flag_type_target_type_invalid" %] + The target type was neither <em>[% terms.bug %]</em> nor <em>attachment</em> + but rather <em>[% target_type FILTER html %]</em>. + + [% ELSIF error == "invalid_field_name" %] + Can't use [% field FILTER html %] as a field name. + + [% ELSIF error == "invalid_keyword_id" %] + The keyword ID <em>[% id FILTER html %]</em> couldn't be + found. + + [% ELSIF error == "invalid_user" %] + [% title = "Invalid User" %] + There is no user account + [% IF user_id %] + with ID <em>[% user_id FILTER html %]</em>. + [% ELSIF user_login %] + with login name <em>[% user_login FILTER html %]</em>. + [% ELSE %] + given. + [% END %] + + [% ELSIF error == "jobqueue_insert_failed" %] + [% title = "Job Queue Failure" %] + Inserting a <code>[% job FILTER html %]</code> job into the Job + Queue failed with the following error: [% errmsg FILTER html %] + + [% ELSIF error == "jobqueue_no_job_mapping" %] + <code>Bugzilla::JobQueue</code> has not been configured to handle + the job "[% job FILTER html %]". You need to add this job type + to the <code>JOB_MAP</code> constant in <code>Bugzilla::JobQueue</code>. + + [% ELSIF error == "ldap_bind_failed" %] + Failed to bind to the LDAP server. The error message was: + <code>[% errstr FILTER html %]</code> + + [% ELSIF error == "ldap_cannot_retreive_attr" %] + The specified LDAP attribute [% attr FILTER html %] was not found. + + [% ELSIF error == "ldap_connect_failed" %] + Could not connect to the LDAP server(s) <code>[% server FILTER html %]</code>. + + [% ELSIF error == "ldap_start_tls_failed" %] + Could not start TLS with LDAP server: <code>[% error FILTER html %]</code>. + + [% ELSIF error == "ldap_search_error" %] + An error occurred while trying to search LDAP for + "[% username FILTER html %]": + [% IF errstr %] + <code>[% errstr FILTER html %]</code> + [% ELSE %] + Unable to find user in LDAP + [% END %] + + [% ELSIF error == "ldap_server_not_defined" %] + The LDAP server for authentication has not been defined. + + [% ELSIF error == "mail_send_error" %] + There was an error sending mail from '[% mail.header('From') FILTER html %]' + to '[% mail.header('To') FILTER html %]': + [% msg FILTER html %] + + [% ELSIF error == "missing_bug_id" %] + No [% terms.bug %] ID was given. + + [% ELSIF error == "missing_series_id" %] + Having inserted a series into the database, no series_id was returned for + it. Series: [% series.category FILTER html %] / + [%+ series.subcategory FILTER html %] / + [%+ series.name FILTER html %]. + + [% ELSIF error == "need_quipid" %] + A valid quipid is needed. + + [% ELSIF error == "no_manual_moved" %] + You cannot set the resolution of [% terms.abug %] to [% display_value("resolution", "MOVED") FILTER html %] without + moving the [% terms.bug %]. + + [% ELSIF error == "no_open_bug_status" %] + [% title = "$terms.Bug Cannot Be Confirmed" %] + There is no valid transition from + [%+ display_value("bug_status", "UNCONFIRMED") FILTER html %] to an open state. + + [% ELSIF error == "param_invalid" %] + [% title = "Invalid Parameter" %] + <code>[% param FILTER html %]</code> is not a valid parameter + for the [% function FILTER html %] function. + + [% ELSIF error == "param_must_be_numeric" %] + [% title = "Invalid Parameter" %] + Invalid parameter <code>[% param FILTER html %]</code> passed to + <code>[% function FILTER html %]</code>: It must be numeric. + + [% ELSIF error == "param_required" %] + [% title = "Missing Parameter" %] + The function <code>[% function FILTER html %]</code> requires + a <code>[% param FILTER html %]</code> argument, and that + argument was not set. + + [% ELSIF error == "params_required" %] + [% title = "Missing Parameter" %] + The function <code>[% function FILTER html %]</code> requires + that you set one of the following parameters: + <code>[% params.join(', ') FILTER html %]</code> + + [% ELSIF error == "product_empty_group_controls" %] + [% title = "Missing Group Controls" %] + New settings must be defined to edit group controls for + the [% group.name FILTER html %] group. + + [% ELSIF error == "product_illegal_group_control" %] + [% title = "Illegal Group Control" %] + '[% value FILTER html %]' is not a legal value for + the '[% field FILTER html %]' field. + + [% ELSIF error == "protection_violation" %] + The function <code>[% function FILTER html %]</code> was called + + [% IF argument %] + with the argument <code>[% argument FILTER html %]</code> + [% END %] + + from + + [% IF caller %] + <code>[%+ caller FILTER html %]</code>, which is + [% END %] + + outside the package. This function may only be called from + a subclass of <code>[% superclass FILTER html %]</code>. + + [% ELSIF error == "radius_preparation_error" %] + An error occurred while preparing for a RADIUS authentication request: + <code>[% errstr FILTER html %]</code>. + + [% ELSIF error == "request_queue_group_invalid" %] + The group field <em>[% group FILTER html %]</em> is invalid. + + [% ELSIF error == "report_axis_invalid" %] + <em>[% val FILTER html %]</em> is not a valid value for + [%+ IF fld == "x" %]the horizontal axis + [%+ ELSIF fld == "y" %]the vertical axis + [%+ ELSIF fld == "z" %]the multiple tables/images + [%+ ELSE %]a report axis[% END %] field. + + [% ELSIF error == "setting_info_invalid" %] + To create a new setting, you must supply a setting name, a list of + value/sortindex pairs, and the devault value. + + [% ELSIF error == "setting_name_invalid" %] + The setting name <em>[% name FILTER html %]</em> is not a valid + option. Setting names must begin with a letter, and contain only + letters, digits, or the symbols '_', '-', '.', or ':'. + + [% ELSIF error == "setting_subclass_invalid" %] + There is no such Setting subclass as + <code>[% subclass FILTER html %]</code>. + + [% ELSIF error == "setting_value_invalid" %] + The value "<code>[% value FILTER html %]</code>" is not in the list of + legal values for the <em>[% name FILTER html %]</em> setting. + + [% ELSIF error == "token_generation_error" %] + Something is seriously wrong with the token generation system. + + [% ELSIF error == "template_error" %] + [% template_error_msg FILTER html %] + + [% ELSIF error == "template_invalid" %] + Template with invalid file name found in hook call: [% name FILTER html %]. + + [% ELSIF error == "unable_to_retrieve_password" %] + I was unable to retrieve your old password from the database. + + [% ELSIF error == "undefined_field" %] + Form field [% field FILTER html %] was not defined. + + [% ELSIF error == "unknown_action" %] + [% IF action %] + Unknown action [% action FILTER html %]! + [% ELSE %] + I could not figure out what you wanted to do. + [% END %] + + [% ELSIF error == "unknown_method" %] + The requested method '[% method FILTER html %]' was not found. + + [% ELSIF error == "usage_mode_invalid" %] + '[% invalid_usage_mode FILTER html %]' is not a valid usage mode. + + [% ELSIF error == "must_be_patch" %] + [% title = "Attachment Must Be Patch" %] + Attachment #[% attach_id FILTER html %] must be a patch. + + [% ELSIF error == "not_in_transaction" %] + Attempted to end transaction without starting one first. + + [% ELSIF error == "comma_operator_deprecated" %] + [% title = "SQL query generator internal error" %] + There is an internal error in the SQL query generation code, + creating queries with implicit JOIN. + + [% ELSIF error == "invalid_post_bug_submit_action" %] + Invalid setting for post_bug_submit_action + + [% ELSE %] + [%# Try to find hooked error messages %] + [% error_message = Hook.process("errors") %] + [% IF NOT error_message %] + [% title = "Internal error" %] + An internal error has occurred, but [% terms.Bugzilla %] doesn't know + what <code>[% error FILTER html %]</code> means. + + If you are a [% terms.Bugzilla %] end-user seeing this message, please save + this page and send it to [% Param('maintainer') %]. + [% ELSE %] + [% error_message FILTER none %] + [% END %] + [% END %] +[% END %] + +[%# We only want HTML error messages for ERROR_MODE_WEBPAGE %] +[% USE Bugzilla %] +[% IF Bugzilla.error_mode != constants.ERROR_MODE_WEBPAGE %] + [% IF Bugzilla.usage_mode == constants.USAGE_MODE_BROWSER %] + [% error_message FILTER none %] + [% ELSE %] + [% error_message FILTER txt %] + [% END %] + [% RETURN %] +[% END %] + +[% UNLESS header_done %] + [% PROCESS global/header.html.tmpl %] +[% END %] + +[% PROCESS global/docslinks.html.tmpl + docslinks = docslinks + admindocslinks = admindocslinks +%] + +<tt> + <p> + [% terms.Bugzilla %] has suffered an internal error. Please save this page and send + it to [% Param("maintainer") %] with details of what you were doing at + the time this message appeared. + </p> + <script type="text/javascript"> <!-- + document.write("<p>URL: " + + document.location.href.replace(/&/g,"&") + .replace(/</g,"<") + .replace(/>/g,">") + "</p>"); + // --> + </script> +</tt> + +<table cellpadding="20"> + <tr> + <td bgcolor="#ff0000"> + <font size="+2"> + [% error_message FILTER none %] + </font> + </td> + </tr> +</table> + +[% IF variables %] + <pre> +Variables: + [% FOREACH key = variables.keys %] + [%+ key FILTER html %]: [%+ variables.$key FILTER html %] + [% END %] + </pre> +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/common-links.html.tmpl b/template/en/default/global/common-links.html.tmpl new file mode 100644 index 0000000..6ad638f --- /dev/null +++ b/template/en/default/global/common-links.html.tmpl @@ -0,0 +1,116 @@ +[%# 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> + # Svetlana Harisova <light@rathedg.com> + #%] + +[% DEFAULT qs_suffix = "" %] +[% USE Bugzilla %] + +<ul class="links"> + <li><a href="./">Home</a></li> + <li><span class="separator">| </span><a href="enter_bug.cgi">New</a></li> + <li><span class="separator">| </span><a href="describecomponents.cgi">Browse</a></li> + <li><span class="separator">| </span><a href="query.cgi">Search</a></li> + + <li class="form"> + <span class="separator">| </span> + <form action="buglist.cgi" method="get" + onsubmit="if (this.quicksearch.value == '') + { alert('Please enter one or more search terms first.'); + return false; } return true;"> + <input class="txt" type="text" id="quicksearch[% qs_suffix FILTER html %]" name="quicksearch"> + <input class="btn" type="submit" value="Search" + id="find[% qs_suffix FILTER html %]"> + [%-# Work around FF bug: keep this on one line %]</form> + <a href="page.cgi?id=quicksearch.html" title="Quicksearch Help">[?]</a></li> + + <li><span class="separator">| </span><a href="report.cgi">Reports</a></li> + + <li> + [% IF Param('shutdownhtml') || Bugzilla.has_flags %] + <span class="separator">| </span> + [% IF user.id %] + <a href="request.cgi?requester=[% user.login FILTER url_quote %]&requestee= + [% user.login FILTER url_quote %]&do_union=1&group=type&action=queue">My Requests</a> + [% ELSE %] + <a href="request.cgi">Requests</a> + [% END %] + [% END %] + [%-# Work around FF bug: keep this on one line %]</li> + + [% IF user.login %] + <li><span class="separator">| </span><a href="userprefs.cgi">Preferences</a></li> + [% IF user.in_group('tweakparams') || user.in_group('editusers') || user.can_bless + || (Param('useclassification') && user.in_group('editclassifications')) + || user.in_group('editcomponents') || user.in_group('admin') || user.in_group('creategroups') + || user.in_group('editkeywords') || user.in_group('bz_canusewhines') + || user.get_products_by_permission("editcomponents").size %] + <li><span class="separator">| </span><a href="admin.cgi">Administration</a></li> + [% END %] + + [% PROCESS link_to_documentation %] + + <li> + <span class="separator">| </span> + [% IF user.authorizer.can_logout %] + <a href="index.cgi?logout=1">Log out</a> + [% ELSE %] + Logged in as + [% END %] + [% IF sudoer %] + [%+ sudoer.login FILTER html %] (<b>impersonating + [%+ user.login FILTER html %]</b> + <a href="relogin.cgi?action=end-sudo">end session</a>) + [% ELSE %] + [%+ user.login FILTER html %] + [% END %] + [%-# Work around FF bug: keep this on one line %]</li> + [% ELSE %] + + [% PROCESS link_to_documentation %] + + [% IF Param('createemailregexp') + && user.authorizer.user_can_create_account %] + <li id="new_account_container[% qs_suffix FILTER html %]"> + <span class="separator">| </span> + <a href="createaccount.cgi">New Account</a> + </li> + [% END %] + + [%# Only display one login form when we're on a LOGIN_REQUIRED page. That + # way, we're guaranteed that the user will use the form that has + # hidden_fields in it (the center form) instead of this one. Also, it's + # less confusing to have one form (as opposed to three) when you're + # required to log in. + #%] + [% IF user.authorizer.can_login && !Bugzilla.page_requires_login %] + [% PROCESS "account/auth/login-small.html.tmpl" %] + [% END %] + [% END %] +</ul> + +[% Hook.process("link-row") %] +[% BLOCK link_to_documentation %] + [% IF doc_section && Param('docs_urlbase') %] + <li> + <span class="separator">| </span> + <a href="[% docs_urlbase _ doc_section FILTER html %]" target="_blank">Help</a> + </li> + [% END %] +[% END %] diff --git a/template/en/default/global/confirm-action.html.tmpl b/template/en/default/global/confirm-action.html.tmpl new file mode 100644 index 0000000..e57a83c --- /dev/null +++ b/template/en/default/global/confirm-action.html.tmpl @@ -0,0 +1,63 @@ +[%# 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 Frédéric Buclin. + # Portions created by Frédéric Buclin are Copyright (C) 2008 + # Frédéric Buclin. All Rights Reserved. + # + # Contributor(s): Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # script_name: the script generating this warning. + # token: a valid token for the current action. + # reason: reason of the failure. + #%] + +[% PROCESS global/header.html.tmpl title = "Suspicious Action" + style_urls = ['skins/standard/global.css'] %] + +<div class="throw_error"> + [% IF reason == "expired_token" %] + Your changes have been rejected because you exceeded the time limit + of [% constants.MAX_TOKEN_AGE FILTER html %] days before submitting your + changes to [% script_name FILTER html %]. Your page may have been displayed + for too long, or old changes have been resubmitted by accident. + + [% ELSIF reason == "missing_token" %] + It looks like you didn't come from the right page. + One reason could be that you entered the URL in the address bar of your + web browser directly, which should be safe. Another reason could be that + you clicked on a URL which redirected you here <b>without your consent</b>. + + [% ELSIF reason == "invalid_token" %] + You submitted changes to [% script_name FILTER html %] with an invalid + token, which may indicate that someone tried to abuse you, for instance + by making you click on a URL which redirected you here <b>without your + consent</b>. + [% END %] + <p> + Are you sure you want to commit these changes? + </p> +</div> + +<form name="check" id="check" method="post" action="[% script_name FILTER html %]"> + [% PROCESS "global/hidden-fields.html.tmpl" + exclude="^(Bugzilla_login|Bugzilla_password|token)$" %] + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" id="confirm" value="Yes, Confirm Changes"> +</form> + +<p><a href="index.cgi">No, throw away these changes</a> (you will be redirected +to the home page).</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/confirm-user-match.html.tmpl b/template/en/default/global/confirm-user-match.html.tmpl new file mode 100644 index 0000000..67a901f --- /dev/null +++ b/template/en/default/global/confirm-user-match.html.tmpl @@ -0,0 +1,202 @@ +[%# 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): Myk Melez <myk@mozilla.org> + # Erik Stambaugh <not_erik@dasbistro.com> + #%] + +[%# INTERFACE: + # fields: hash/record; the fields being matched, each of which has: + # type: single|multi: whether or not the user can select multiple matches + # flag_type: for flag requestee fields, the type of flag being requested + # matches: hash; Hierarchical. The levels go like this: + # field_name { + # pattern_text { + # 'users' = @user_list (user objects) + # 'status' = success|fail|trunc (result of search. + # 'trunc' (truncated) means max was reached) + # } + # } + # script: string; The name of the calling script, used to create a + # self-referential URL + #%] + +[%# use the global field descs %] +[% PROCESS "global/field-descs.none.tmpl" %] + +[%# This lists fields which use the user auto-completion feature and which + # are not listed in field_descs. %] +[% field_labels = { # Used by editcomponents.cgi + "initialcc" => "Default CC List", + "initialowner" => "Default Assignee", + "initialqacontact" => "Default QA Contact", + # Used by process_bug.cgi + "masscc" => "CC List", + # Used by request.cgi + "requester" => "Requester", + "requestee" => "Requestee", + # Used by userprefs.cgi + "new_watchedusers" => "Watch List", + + } +%] +[% IF matchsuccess == 1 %] + [% PROCESS global/header.html.tmpl title="Confirm Match" %] + + [% USE Bugzilla %] + + <form method="post" + [% IF script -%] + action="[% script %]" + [%- END -%] + [% IF Bugzilla.cgi.param("data") %] + enctype="multipart/form-data" + [% END %] + > + + <p> + [% IF matchmultiple %] + [% terms.Bugzilla %] cannot make a conclusive match for one or more + of the names and/or email addresses you entered on the previous page. + <br>Please examine the lists of potential matches below and select the + ones you want, + [% ELSE %] + [% terms.Bugzilla %] is configured to require verification whenever + you enter a name or partial email address. + <br>Below are the names/addresses you entered and the matched accounts. + Please confirm that they are correct, + [% END %] + or go back to the previous page to revise the names you entered. + </p> +[% ELSE %] + [% PROCESS global/header.html.tmpl title="Match Failed" %] + <p> + [% terms.Bugzilla %] was unable to make any match at all for one or more of + the names and/or email addresses you entered on the previous page. + [% IF !user.id %] + <b>Note: You are currently logged out. Only exact matches against e-mail + addresses will be performed.</b> + [% END %] + </p> + <p>Please go back and try other names or email addresses.</p> +[% END %] + + <table border="0"> + <tr> + <td colspan="2"> + <hr width="100%" size="1"> + </td> + </tr> + + [%# this is messy to allow later expansion %] + + [% FOREACH field = matches %] + <tr> + <td align="left" valign="top"> + [% PROCESS field_names field_name=field.key %]: + </td> + <td align="left" valign="top"> + [% FOREACH query = field.value %] + <div class="user_match"> + <b>[% query.key FILTER html %]</b> + [% IF query.value.users.size %] + [% IF query.value.users.size > 1 %] + [% IF query.value.status == 'fail' %] + <font color="#FF0000"> + matches multiple users. + </font> + Please go back and try again with a more specific + name/address. + [% ELSE %] + [% IF query.value.status == 'trunc' %] + matched + more than the maximum + of [% query.value.users.size %] users:<br> + [% ELSE %] + matched:<br> + [% END %] + <select name="[% field.key FILTER html %]" + id="[% field.key FILTER html %]" + [% IF fields.${field.key}.type == 'multi' %] + multiple="multiple" + [% IF query.value.users.size > 5 %] + size="5" + [% ELSE %] + size="[% query.value.users.size %]" + [% END %] + [% END %] + > + [% FOREACH match = query.value.users %] + <option value="[% match.login FILTER html %]"> + [%- match.identity FILTER html -%] + </option> + [% END %] + </select> + [% END %] + [% ELSE %] + matched + <b>[% query.value.users.0.identity FILTER html %]</b> + [% END %] + [% ELSE %] + [% IF (query.key.length < 3) && !Param('emailsuffix') %] + <font color="#FF0000">was too short for substring match + (minimum 3 characters)</font> + [% ELSE %] + <font color="#FF0000">did not match anything</font> + [% END %] + [% END %] + </div> + [% END %] + </td> + </tr> + <tr> + <td colspan="2"> + <hr width="100%" size="1"> + </td> + </tr> + [% END %] + + </table> + +[% IF matchsuccess == 1 %] + + [% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %] + + <p> + <input type="submit" id="continue" value="Continue"> + </p> + + </form> + +[% END %] + +[% PROCESS global/footer.html.tmpl %] + + +[% BLOCK field_names %] + + [% IF field_descs.$field_name %] + [% field_descs.$field_name FILTER html %] + [% ELSIF field_labels.$field_name %] + [% field_labels.$field_name FILTER html %] + [% ELSIF field_name.match("^requestee") %] + [% fields.${field_name}.flag_type.name %] requestee + [% ELSE %] + [% field_name FILTER html %] + [% END %] + +[% END %] diff --git a/template/en/default/global/docslinks.html.tmpl b/template/en/default/global/docslinks.html.tmpl new file mode 100644 index 0000000..712dfb4 --- /dev/null +++ b/template/en/default/global/docslinks.html.tmpl @@ -0,0 +1,52 @@ +[%# 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. + # + # Contributor(s): Marc Schumann <wurblzap@gmail.com> + #%] + +[%# INTERFACE: + # docslinks: hash. Hash keys will be used as text of the documentation links, + # hash values will be used as links to the document, relative to + # the main Bugzilla documentation directory. + # Example: If you want a 'FAQ' link to point to, the "faq-general" + # named anchor on faq.html, assign + # { 'FAQ' => "faq.html#faq-general" } + # to docslinks. + # You may only link to sections by their given ID; it is not allowed + # to link to a section which is not given an ID (thus getting + # assigned an automatically generated ID). Otherwise, the link + # would break on a recompilation of the documentation. + # admindocslinks: hash. Same as docslinks, but will only be displayed to + # members of the admin group. + #%] + +[% IF Param('docs_urlbase') && + docslinks.keys.size || (admindocslinks.keys.size && user.in_group('admin')) %] + <div id="docslinks"> + <h2>Related documentation</h2> + <ul> + [% IF user.in_group('admin') %] + [% PROCESS docslinkslist docstype = admindocslinks %] + [% END %] + [% PROCESS docslinkslist docstype = docslinks %] + </ul> + </div> +[% END %] + +[% BLOCK docslinkslist %] + [% FOREACH docslink = docstype.keys %] + <li> + <a href="[% docs_urlbase FILTER html %] + [% docslink FILTER none %]">[% docstype.$docslink FILTER html %]</a> + </li> + [% END %] +[% END %] diff --git a/template/en/default/global/field-descs.none.tmpl b/template/en/default/global/field-descs.none.tmpl new file mode 100644 index 0000000..0c17e57 --- /dev/null +++ b/template/en/default/global/field-descs.none.tmpl @@ -0,0 +1,176 @@ +[%# 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> + # Elliotte Martin <elliotte_martin@yahoo.com> + #%] + +[%# Remember to PROCESS rather than INCLUDE this template. %] + +[% PROCESS global/variables.none.tmpl %] + +[% SET search_descs = { + "noop" => "---", + "equals" => "is equal to", + "notequals" => "is not equal to", + "anyexact" => "is equal to any of the strings", + "substring" => "contains the string", + "casesubstring" => "contains the string (exact case)", + "notsubstring" => "does not contain the string", + "anywordssubstr" => "contains any of the strings", + "allwordssubstr" => "contains all of the strings", + "nowordssubstr" => "contains none of the strings", + "regexp" => "matches regular expression", + "notregexp" => "does not match regular expression", + "lessthan" => "is less than", + "lessthaneq" => "is less than or equal to", + "greaterthan" => "is greater than", + "greaterthaneq" => "is greater than or equal to", + "anywords" => "contains any of the words", + "allwords" => "contains all of the words", + "nowords" => "contains none of the words", + "changedbefore" => "changed before", + "changedafter" => "changed after", + "changedfrom" => "changed from", + "changedto" => "changed to", + "changedby" => "changed by", + "matches" => "matches", + "notmatches" => "does not match", +} %] + +[% field_types = { ${constants.FIELD_TYPE_UNKNOWN} => "Unknown Type", + ${constants.FIELD_TYPE_FREETEXT} => "Free Text", + ${constants.FIELD_TYPE_SINGLE_SELECT} => "Drop Down", + ${constants.FIELD_TYPE_MULTI_SELECT} => "Multiple-Selection Box", + ${constants.FIELD_TYPE_TEXTAREA} => "Large Text Box", + ${constants.FIELD_TYPE_DATETIME} => "Date/Time", + ${constants.FIELD_TYPE_BUG_ID} => "$terms.Bug ID", + } %] + +[%# You can use this hash to localize (translate) the values displayed + # for drop-down and multiple-select fields. Lines starting with "#" + # are comments. + #%] +[% value_descs = { + "bug_status" => { + # "UNCONFIRMED" => "UNCO", + # "NEW" => "NEWISH", + }, + + "resolution" => { + "" => "---", + # "FIXED" => "NO LONGER AN ISSUE", + # "MOVED" => "BYE-BYE", + }, +} %] + +[%# We use "FILTER none" here because only the caller can know how to + # filter the result appropriately. + #%] +[% MACRO display_value(field_name, value_name) BLOCK %][% FILTER trim %] + [% IF value_descs.${field_name}.${value_name}.defined %] + [% value_descs.${field_name}.${value_name} FILTER none %] + [% ELSE %] + [% value_name FILTER none %] + [% END %] +[% END %][% END %] + +[% IF in_template_var %] + [% vars.terms = terms %] + + [%# field_descs is loaded as a global template variable and cached + # across all templates--see VARIABLES in Bugzilla/Template.pm. + #%] + [% vars.field_descs = { + "[Bug creation]" => "[$terms.Bug creation]", + "actual_time" => "Actual Hours", + "alias" => "Alias", + "assigned_to" => "Assignee", + "attach_data.thedata" => "Attachment data", + "attachments.description" => "Attachment description", + "attachments.filename" => "Attachment filename", + "attachments.mimetype" => "Attachment mime type", + "attachments.ispatch" => "Attachment is patch", + "attachments.isobsolete" => "Attachment is obsolete", + "attachments.isprivate" => "Attachment is private", + "attachments.isurl" => "Attachment is a URL", + "attachments.submitter" => "Attachment creator", + "blocked" => "Blocks", + "bug_file_loc" => "URL", + "bug_group" => "Group", + "bug_id" => "$terms.Bug ID", + "bug_severity" => "Severity", + "bug_status" => "Status", + "changeddate" => "Changed", + "cc" => "CC", + "classification" => "Classification", + "cclist_accessible" => "CC list accessible", + "commenter" => "Commenter", + "component_id" => "Component ID", + "component" => "Component", + "content" => "Content", + "creation_ts" => "Creation date", + "deadline" => "Deadline", + "delta_ts" => "Changed", + "dependson" => "Depends on", + "dup_id" => "Duplicate", + "estimated_time" => "Orig. Est.", + "everconfirmed" => "Ever confirmed", + "flagtypes.name" => "Flags", + "keywords" => "Keywords", + "longdesc" => "Comment", + "longdescs.isprivate" => "Comment is private", + "newcc" => "CC", + "op_sys" => "OS", + "opendate" => "Opened", + "owner_idle_time" => "Time Since Assignee Touched", + "percentage_complete" => "%Complete", + "priority" => "Priority", + "product_id" => "Product ID", + "product" => "Product", + "qa_contact" => "QA Contact", + "remaining_time" => "Hours Left", + "rep_platform" => "Hardware", + "reporter" => "Reporter", + "reporter_accessible" => "Reporter accessible", + "requestees.login_name" => "Flag Requestee", + "resolution" => "Resolution", + "see_also" => "See Also", + "setters.login_name" => "Flag Setter", + "setting" => "Setting", + "settings" => "Settings", + "short_desc" => "Summary", + "status_whiteboard" => "Whiteboard", + "target_milestone" => "Target Milestone", + "version" => "Version", + "votes" => "Votes" + "work_time" => "Hours Worked", + } %] + + [%# Also include any custom fields or fields which don't have a + Description here, by copying their Description from the + database. If you want to override this for your language + or your installation, just use a hook. %] + [% UNLESS Param('shutdownhtml') %] + [% FOREACH bz_field = bug_fields.values %] + [% SET vars.field_descs.${bz_field.name} = bz_field.description + IF !vars.field_descs.${bz_field.name}.defined %] + [% END %] + [% END %] +[% END %] + +[% Hook.process("end") %] diff --git a/template/en/default/global/footer.html.tmpl b/template/en/default/global/footer.html.tmpl new file mode 100644 index 0000000..0379f02 --- /dev/null +++ b/template/en/default/global/footer.html.tmpl @@ -0,0 +1,49 @@ +[%# 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> + # Svetlana Harisova <light@rathedg.com> + #%] + +[%# INTERFACE: + # This template has no interface. However, you must fulfill the interface to + # global/useful-links.html.tmpl. + #%] + +[% INCLUDE "global/help.html.tmpl" %] + +</div> + +[%# Migration note: below this point, this file corresponds to the old Param + # 'footerhtml' + #%] + +<div id="footer"> + <div class="intro"></div> + +[%# Migration note: the old param 'blurbhtml' goes here %] + +[%# Migration note: useful-links.html.tmpl corresponds to %commandmenu% %] + + [% PROCESS "global/useful-links.html.tmpl" %] + + <div class="outro"></div> +</div> + +</body> +</html> + diff --git a/template/en/default/global/header.html.tmpl b/template/en/default/global/header.html.tmpl new file mode 100644 index 0000000..4837df5 --- /dev/null +++ b/template/en/default/global/header.html.tmpl @@ -0,0 +1,324 @@ +[%# 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> + # Vaskin Kissoyan <vkissoyan@yahoo.com> + # Vitaly Harisov <vitaly@rathedg.com> + # Svetlana Harisova <light@rathedg.com> + #%] + +[%# INTERFACE: + # (All the below interface elements are optional.) + # title: string. Page title. + # header: string. Main page header. + # subheader: string. Page subheader. + # header_addl_info: string. Additional header information. + # bodyclasses: array of extra CSS classes for the <body> + # onload: string. JavaScript code to run when the page finishes loading. + # javascript: string. Javascript to go in the header. + # javascript_urls: list. List of URLs to Javascript. + # style: string. CSS style. + # style_urls: list. List of URLs to CSS style sheets. + # message: string. A message to display to the user. May contain HTML. + # atomlink: Atom link URL, May contain HTML + #%] + +[% IF message %] + [% PROCESS global/messages.html.tmpl %] +[% END %] + +[% DEFAULT + subheader = "" + header_addl_info = "" + onload = "" + style_urls = [] +%] + +[%# We should be able to set the default value of the header variable + # to the value of the title variable using the DEFAULT directive, + # but that doesn't work if a caller sets header to the empty string + # to avoid header inheriting the value of title, since DEFAULT + # mistakenly treats empty strings as undefined and gives header the + # value of title anyway. To get around that problem we explicitly + # set header's default value here only if it is undefined. %] +[% IF !header.defined %][% header = title %][% END %] + +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html> + <head> + [% Hook.process("start") %] + <title>[% title %]</title> + +[%# Migration note: contents of the old Param 'headerhtml' would go here %] + + [% PROCESS "global/site-navigation.html.tmpl" %] + + [% PROCESS 'global/setting-descs.none.tmpl' %] + + [%# Set up the skin CSS cascade: + # 1. Standard Bugzilla stylesheet set (persistent) + # 2. Standard Bugzilla stylesheet set (selectable) + # 3. All third-party "skin" stylesheet sets (selectable) + # 4. Page-specific styles + # 5. Custom Bugzilla stylesheet set (persistent) + # "Selectable" skin file sets may be either preferred or alternate. + # Exactly one is preferred, determined by the "skin" user preference. + #%] + [% IF user.settings.skin.value != 'standard' %] + [% user_skin = user.settings.skin.value %] + [% END %] + [% style_urls.unshift('skins/standard/global.css') %] + + [%# CSS cascade, part 1: Standard Bugzilla stylesheet set (persistent). + # Always present. + #%] + [% FOREACH style_url = style_urls %] + <link href="[% style_url FILTER html %]" + rel="stylesheet" + type="text/css"> + [% END %] + <!--[if lte IE 7]> + [%# Internet Explorer treats [if IE] HTML comments as uncommented. + # Use it to import CSS fixes so that Bugzilla looks decent on IE 7 + # and below. + #%] + <link href="skins/standard/IE-fixes.css" + rel="stylesheet" + type="text/css"> + <![endif]--> + + [%# CSS cascade, part 2: Standard Bugzilla stylesheet set (selectable) + # Present if skin selection is enabled. + #%] + [% IF user.settings.skin.is_enabled %] + [% FOREACH style_url = style_urls %] + <link href="[% style_url FILTER html %]" + rel="[% 'alternate ' IF user_skin %]stylesheet" + title="[% setting_descs.standard FILTER html %]" + type="text/css"> + [% END %] + <!--[if lte IE 7]> + [%# Internet Explorer treats [if IE] HTML comments as uncommented. + # Use it to import CSS fixes so that Bugzilla looks decent on IE 7 + # and below. + #%] + <link href="skins/standard/IE-fixes.css" + rel="[% 'alternate ' IF user_skin %]stylesheet" + title="[% setting_descs.standard FILTER html %]" + type="text/css"> + <![endif]--> + [% END %] + + [%# CSS cascade, part 3: Third-party stylesheet set (selectable). + # All third-party skins are present if skin selection is enabled. + # The admin-selected skin is always present. + #%] + [% FOREACH contrib_skin = user.settings.skin.legal_values %] + [% NEXT IF contrib_skin == 'standard' %] + [% NEXT UNLESS contrib_skin == user_skin + OR user.settings.skin.is_enabled %] + [% contrib_skin = contrib_skin FILTER url_quote %] + [% IF contrib_skin.match('\.css$') %] + [%# 1st skin variant: single-file stylesheet %] + <link href="[% "skins/contrib/$contrib_skin" %]" + rel="[% 'alternate ' UNLESS contrib_skin == user_skin %]stylesheet" + title="[% contrib_skin FILTER html %]" + type="text/css"> + [% ELSE %] + [%# 2nd skin variant: stylesheet set %] + [% FOREACH style_url = style_urls %] + [% IF style_url.match('^skins/standard/') %] + <link href="[% style_url.replace('^skins/standard/', + "skins/contrib/$contrib_skin/") %]" + rel="[% 'alternate ' UNLESS contrib_skin == user_skin %]stylesheet" + title="[% contrib_skin FILTER html %]" + type="text/css"> + [% END %] + [% END %] + <!--[if lte IE 7]> + [%# Internet Explorer treats [if IE] HTML comments as uncommented. + # Use it to import CSS fixes so that Bugzilla looks decent on IE 7 + # and below. + #%] + <link href="skins/contrib/[% contrib_skin FILTER html %]/IE-fixes.css" + rel="[% 'alternate ' UNLESS contrib_skin == user_skin %]stylesheet" + title="[% contrib_skin FILTER html %]" + type="text/css"> + <![endif]--> + [% END %] + [% END %] + + [%# CSS cascade, part 4: page-specific styles. + #%] + [% IF style %] + <style type="text/css"> + [% style %] + </style> + [% END %] + + [%# CSS cascade, part 5: Custom Bugzilla stylesheet set (persistent). + # Always present. Site administrators may override all other style + # definitions, including skins, using custom stylesheets. + #%] + [% FOREACH style_url = style_urls %] + [% IF style_url.match('^skins/standard/') %] + <link href="[% style_url.replace('^skins/standard/', "skins/custom/") + FILTER html %]" rel="stylesheet" type="text/css"> + [% END %] + [% END %] + <!--[if lte IE 7]> + [%# Internet Explorer treats [if IE] HTML comments as uncommented. + # Use it to import CSS fixes so that Bugzilla looks decent on IE 7 + # and below. + #%] + <link href="skins/custom/IE-fixes.css" + rel="stylesheet" + type="text/css"> + <![endif]--> + + <script src="js/yui/yahoo-dom-event.js" type="text/javascript"></script> + <script src="js/yui/cookie.js" type="text/javascript"></script> + <script src="js/global.js" type="text/javascript"></script> + <script type="text/javascript"> + <!-- + YAHOO.namespace('bugzilla'); + if (YAHOO.env.ua.gecko) { + YAHOO.util.Event._simpleRemove(window, "unload", + YAHOO.util.Event._unload); + } + [%# The language selector needs javascript to set its cookie, + # so it is hidden in HTML/CSS by the "bz_default_hidden" class. + # If the browser can run javascript, it will then "unhide" + # the language selector using the following code. + #%] + function unhide_language_selector() { + YAHOO.util.Dom.removeClass( + 'lang_links_container', 'bz_default_hidden' + ); + } + YAHOO.util.Event.onDOMReady(unhide_language_selector); + + [%# Make some Bugzilla information available to all scripts. + # We don't import every parameter and constant because we + # don't want to add a lot of uncached JS to every page. + #%] + var BUGZILLA = { + param: { + cookiepath: '[% Param('cookiepath') FILTER js %]' + }, + + string: { + attach_desc_required: + 'You must enter a Description for this attachment.' + } + }; + [% IF javascript %] + [% javascript %] + [% END %] + // --> + </script> + + [% IF javascript_urls %] + [% FOREACH javascript_url = javascript_urls %] + <script src="[% javascript_url FILTER html %]" type="text/javascript"></script> + [% END %] + [% END %] + + [%# this puts the live bookmark up on firefox for the Atom feed %] + [% IF atomlink %] + <link rel="alternate" + type="application/atom+xml" title="Atom feed" + href="[% atomlink FILTER html %]"> + [% END %] + + [%# Required for the 'Autodiscovery' feature in Firefox 2 and IE 7. %] + <link rel="search" type="application/opensearchdescription+xml" + title="[% terms.Bugzilla %]" href="./search_plugin.cgi"> + <link rel="shortcut icon" href="images/favicon.ico" > + [% Hook.process("additional_header") %] + </head> + +[%# Migration note: contents of the old Param 'bodyhtml' go in the body tag, + # but set the onload attribute in the DEFAULT directive above. + #%] + + <body onload="[% onload %]" + class="[% urlbase.replace('^https?://','').replace('/$','').replace('[-~@:/.]+','-') %] + [% FOREACH class = bodyclasses %] + [% ' ' %][% class FILTER css_class_quote %] + [% END %]"> + +[%# Migration note: the following file corresponds to the old Param + # 'bannerhtml' + #%] + +<div id="header"> + +[% INCLUDE global/banner.html.tmpl %] + +<table border="0" cellspacing="0" cellpadding="0" id="titles"> +<tr> + <td id="title"> + <p>[% terms.Bugzilla %] + [% " – $header" IF header %]</p> + </td> + + [% IF subheader %] + <td id="subtitle"> + <p class="subheader">[% subheader %]</p> + </td> + [% END %] + + [% IF header_addl_info %] + <td id="information"> + <p class="header_addl_info">[% header_addl_info %]</p> + </td> + [% END %] +</tr> +</table> + +<table id="lang_links_container" cellpadding="0" cellspacing="0" + class="bz_default_hidden"><tr><td> +[% IF Bugzilla.languages.size > 1 %] + <ul class="links"> + [% FOREACH lang = Bugzilla.languages.sort %] + <li>[% IF NOT loop.first %]<span class="separator"> | </span>[% END %] + [% IF lang == current_language %] + <span class="lang_current">[% lang FILTER html FILTER upper %]</span> + [% ELSE %] + <a href="#" onclick="set_language('[% lang FILTER none %]');"> + [%- lang FILTER html FILTER upper %]</a> + [% END %] + </li> + [% END %] + </ul> +[% END %] +</td></tr></table> + +[% PROCESS "global/common-links.html.tmpl" qs_suffix = "_top" %] +</div> [%# header %] + +<div id="bugzilla-body"> + +[% IF Param('announcehtml') %] +[% Param('announcehtml') FILTER none %] +[% END %] + +[% IF message %] +<div id="message">[% message %]</div> +[% END %] diff --git a/template/en/default/global/help.html.tmpl b/template/en/default/global/help.html.tmpl new file mode 100644 index 0000000..36439bc --- /dev/null +++ b/template/en/default/global/help.html.tmpl @@ -0,0 +1,32 @@ +[%# 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> + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% IF cgi.param("help") %] + <script type="text/javascript"> <!-- + [% FOREACH h = help_html %] + g_helpTexts["[% h.id FILTER js %]"] = "[%- h.html FILTER js -%]"; + [% END %] + // --> + </script> +[% END %] + diff --git a/template/en/default/global/hidden-fields.html.tmpl b/template/en/default/global/hidden-fields.html.tmpl new file mode 100644 index 0000000..24f15c4 --- /dev/null +++ b/template/en/default/global/hidden-fields.html.tmpl @@ -0,0 +1,58 @@ +[%# 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): Myk Melez <myk@mozilla.org> + #%] + +[%# INTERFACE: + # exclude: string; a regular expression matching fields to exclude + # from the list of hidden fields generated by this template + #%] + +[%# The global Bugzilla->cgi object is used to obtain form variable values. %] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[%# Generate hidden form fields for non-excluded fields. %] +[% FOREACH field = cgi.param() %] + [% NEXT IF exclude && field.search(exclude) %] + [%# The '.slice(0)' bit is here to force the 'param(field)' to be evaluated + in a list context, so we can avoid extra code checking for single valued or + empty fields %] + [% IF field == "data" && cgi.param("data") %] + <div class="box"> + <p> + We were unable to store the file you uploaded because of incomplete information + in the form you just submitted. Because we are unable to retain the file between + form submissions, you must re-attach the file in addition to completing the + remaining missing information above. + </p> + <p> + Please re-attach the file <b>[% cgi.param(field) FILTER html %]</b> in + the field below: + </p> + <p> + <input type="file" id="data" name="data" size="50"> + </p> + </div> + [% ELSE %] + [% FOREACH mvalue = cgi.param(field).slice(0) %] + <input type="hidden" name="[% field FILTER html %]" + value="[% mvalue FILTER html FILTER html_linebreak %]"> + [% END %] + [% END %] +[% END %] diff --git a/template/en/default/global/initialize.none.tmpl b/template/en/default/global/initialize.none.tmpl new file mode 100644 index 0000000..a6c4897 --- /dev/null +++ b/template/en/default/global/initialize.none.tmpl @@ -0,0 +1,32 @@ +[%# 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): Myk Melez <myk@mozilla.org> + #%] + +[%# This template is a place to put directives that should get processed + # every time a primary template gets processed. Primary templates are those + # called from Perl code rather than from other templates via the PROCESS + # and INCLUDE directives. + # + # This template gets auto-processed at the beginning of primary templates + # via the PRE_PROCESS configuration parameter. Note that it gets processed + # for non-HTML templates too, so don't put HTML-specific stuff in here; + # put that into header.html.tmpl instead. + #%] + +[% USE Hook %] diff --git a/template/en/default/global/js-products.html.tmpl b/template/en/default/global/js-products.html.tmpl new file mode 100644 index 0000000..8ca206f --- /dev/null +++ b/template/en/default/global/js-products.html.tmpl @@ -0,0 +1,34 @@ +[%# 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): Myk Melez <myk@mozilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# The javascript block gets used in header.html.tmpl. %] +[% javascript = BLOCK %] + var useclassification = false; // No classification level in use + var first_load = true; // Is this the first time we load the page? + var last_sel = []; // Caches last selection + var cpts = new Array(); + [% n = 1 %] + [% FOREACH prod = products %] + cpts['[% n %]'] = [ + [%- FOREACH comp = prod.components %]'[% comp.name FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ]; + [% n = n+1 %] + [% END %] +[% END %] diff --git a/template/en/default/global/message.html.tmpl b/template/en/default/global/message.html.tmpl new file mode 100644 index 0000000..e578a7f --- /dev/null +++ b/template/en/default/global/message.html.tmpl @@ -0,0 +1,42 @@ +[%# 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): + #%] + +[%# INTERFACE: + # url: string. An optional URL to go to. + # link: string. The link text for that URL. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% DEFAULT title = "$terms.Bugzilla Message" %] + +[% PROCESS global/header.html.tmpl %] + +[%# The "header" template automatically displays a message if it finds one. + Note that the global messages list is in messages.html.tmpl. %] + +[%# Display a URL if the calling script or message block has included one. %] +[% IF url && link %] + <p> + <a href="[% url FILTER html %]">[% link FILTER html %]</a> + </p> +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/message.txt.tmpl b/template/en/default/global/message.txt.tmpl new file mode 100644 index 0000000..9329cdb --- /dev/null +++ b/template/en/default/global/message.txt.tmpl @@ -0,0 +1,25 @@ +[%# 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 Max Kanat-Alexander. + # Portions created by Max Kanat-Alexander are Copyright (C) 2005 + # Max Kanat-Alexander. All Rights Reserved. + # + # Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[%# Yes, this may show some HTML. But it's the best we + # can do at the moment. %] +[% PROCESS global/messages.html.tmpl %] +[% message FILTER txt %] diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl new file mode 100644 index 0000000..7351aa0 --- /dev/null +++ b/template/en/default/global/messages.html.tmpl @@ -0,0 +1,858 @@ +[%# 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> + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# This is a list of all the possible messages. Please keep them in + # alphabetical order by message tag, and leave a blank line between messages. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% message_tag = message %] + +[% message = BLOCK %] + [% IF message_tag == "account_created" %] + The user account [% otheruser.login FILTER html %] has been created + successfully. + [% IF groups.size %] + You may want to edit the group settings now, using the form below. + [% END %] + + [% ELSIF message_tag == "account_creation_canceled" %] + [% title = "User Account Creation Canceled" %] + The creation of the user account [% account FILTER html %] has been + canceled. + + [% ELSIF message_tag == "account_updated" %] + [% IF changed_fields.size + + groups_added_to.size + groups_removed_from.size + + groups_granted_rights_to_bless.size + groups_denied_rights_to_bless.size %] + [% title = "User $loginold updated" %] + The following changes have been made to the user account + [%+ loginold FILTER html %]: + <ul> + [% FOREACH field = changed_fields %] + <li> + [% IF field == 'login_name' %] + The login is now [% otheruser.login FILTER html %]. + [% ELSIF field == 'realname' %] + The real name has been updated. + [% ELSIF field == 'cryptpassword' %] + A new password has been set. + [% ELSIF field == 'disabledtext' %] + The disable text has been modified. + [% ELSIF field == 'disable_mail' %] + [% IF otheruser.email_disabled %] + [% terms.Bug %]mail has been disabled. + [% ELSE %] + [% terms.Bug %]mail has been enabled. + [% END %] + [% END %] + </li> + [% END %] + [% IF groups_added_to.size %] + <li> + The account has been added to the + [%+ groups_added_to.join(', ') FILTER html %] + group[% 's' IF groups_added_to.size > 1 %]. + </li> + [% END %] + [% IF groups_removed_from.size %] + <li> + The account has been removed from the + [%+ groups_removed_from.join(', ') FILTER html %] + group[% 's' IF groups_removed_from.size > 1 %]. + </li> + [% END %] + [% IF groups_granted_rights_to_bless.size %] + <li> + The account has been granted rights to bless the + [%+ groups_granted_rights_to_bless.join(', ') FILTER html %] + group[% 's' IF groups_granted_rights_to_bless.size > 1 %]. + </li> + [% END %] + [% IF groups_denied_rights_to_bless.size %] + <li> + The account has been denied rights to bless the + [%+ groups_denied_rights_to_bless.join(', ') FILTER html %] + group[% 's' IF groups_denied_rights_to_bless.size > 1 %]. + </li> + [% END %] + </ul> + [% ELSE %] + [% title = "User $otheruser.login not changed" %] + You didn't request any changes to the user's account + [%+ otheruser.login FILTER html %]. + [% END %] + + [% ELSIF message_tag == "account_deleted" %] + [% title = "User $otheruser.login deleted" %] + The user account [% otheruser.login FILTER html %] has been deleted + successfully. + + [% ELSIF message_tag == "account_disabled" %] + The user account [% account FILTER html %] is disabled, so you + cannot change its password. + + [% ELSIF message_tag == "attachment_creation_failed" %] + The [% terms.bug %] was created successfully, but attachment creation + failed. + Please add your attachment by clicking the "Add an Attachment" link + below. + + [% ELSIF message_tag == "bug_group_description" %] + Access to [% terms.bugs %] in the [% product.name FILTER html %] product + + [% ELSIF message_tag == "buglist_adding_field" %] + [% title = "Adding field to search page..." %] + [% link = "Click here if the page does not redisplay automatically." %] + + [% ELSIF message_tag == "buglist_updated_named_query" %] + [% title = "Search updated" %] + Your search named <code><a + href="buglist.cgi?cmdtype=runnamed&namedcmd=[% queryname FILTER url_quote %]" + >[% queryname FILTER html %]</a></code> has been updated. + + [% ELSIF message_tag == "buglist_new_default_query" %] + OK, you now have a new default search. You may + also bookmark the result of any individual search. + + [% ELSIF message_tag == "buglist_new_named_query" %] + [% title = "Search created" %] + OK, you have a new search named <code><a + href="buglist.cgi?cmdtype=runnamed&namedcmd=[% queryname FILTER url_quote %]" + >[% queryname FILTER html %]</a></code>. + + [% ELSIF message_tag == "buglist_query_gone" %] + [% title = "Search is gone" %] + [% link = "Go back to the search page." %] + OK, the <b>[% namedcmd FILTER html %]</b> search is gone. + + [% ELSIF message_tag == "buglist_sorted_by_relevance" %] + [% terms.Bugs %] on this list are sorted by relevance, with the most + relevant [% terms.bugs %] at the top. + + [% ELSIF message_tag == "change_columns" %] + [% title = "Change columns" %] + Resubmitting your search with new columns... + Click <a href="[% redirect_url FILTER html %]">here</a> + if the page does not automatically refresh. + + [% ELSIF message_tag == "classification_created" %] + [% title = "New Classification Created" %] + The <em>[% classification.name FILTER html %]</em> classification has been created. + + [% ELSIF message_tag == "classification_deleted" %] + [% title = "Classification Deleted" %] + The <em>[% classification.name FILTER html %]</em> classification has been deleted. + + [% ELSIF message_tag == "classification_updated" %] + [% title = "Classification Updated" %] + [% IF changes.keys.size %] + Changes to the <em>[% classification.name FILTER html %]</em> classification + have been saved: + <ul> + [% IF changes.name.defined %] + <li>Name updated to '[% classification.name FILTER html %]'</li> + [% END %] + [% IF changes.description.defined %] + [% IF classification.description %] + <li>Description updated to '[% classification.description FILTER html %]'</li> + [% ELSE %] + <li>Description removed</li> + [% END %] + [% END %] + [% IF changes.sortkey.defined %] + <li>Sortkey updated to '[% classification.sortkey FILTER html %]'</li> + [% END %] + [% Hook.process('classification_updated_fields') %] + </ul> + [% ELSE %] + No changes made to <em>[% classification.name FILTER html %]</em>. + [% END %] + + [% ELSIF message_tag == "component_created" %] + [% title = "Component Created" %] + The component <em>[% comp.name FILTER html %]</em> has been created. + + [% ELSIF message_tag == "component_deleted" %] + [% title = "Component Deleted" %] + The component <em>[% comp.name FILTER html %]</em> has been deleted. + [% IF comp.bug_count %] + All [% terms.bugs %] being in this component and all references + to them have also been deleted. + [% END %] + + [% ELSIF message_tag == "component_updated" %] + [% title = "Component Updated" %] + [% IF changes.keys.size %] + Changes to the component <em>[% comp.name FILTER html %]</em> have been saved: + <ul> + [% IF changes.name.defined %] + <li>Name updated to '[% comp.name FILTER html %]'</li> + [% END %] + [% IF changes.description.defined %] + <li>Description updated to '[% comp.description FILTER html_light %]'</li> + [% END %] + [% IF changes.initialowner.defined %] + <li>Default assignee updated to '[% comp.default_assignee.login FILTER html %]'</li> + [% END %] + [% IF changes.initialqacontact.defined %] + [% IF comp.default_qa_contact.id %] + <li>Default QA contact updated to '[% comp.default_qa_contact.login FILTER html %]'</li> + [% ELSE %] + <li>Default QA contact deleted</li> + [% END %] + [% END %] + [% IF changes.cc_list.defined %] + [% IF comp.initial_cc.size %] + [% cc_list = [] %] + [% FOREACH cc_user = comp.initial_cc %] + [% cc_list.push(cc_user.login) %] + [% END %] + <li>Default CC list updated to [% cc_list.join(", ") FILTER html %]</li> + [% ELSE %] + <li>Default CC list deleted</li> + [% END %] + [% END %] + [% Hook.process('component_updated_fields') %] + </ul> + [% ELSE %] + No changes made to <em>[% comp.name FILTER html %]</em>. + [% END %] + + [% ELSIF message_tag == "custom_field_created" %] + [% title = "Custom Field Created" %] + The new custom field '[% field.name FILTER html %]' has been + successfully created. + + [% ELSIF message_tag == "custom_field_deleted" %] + [% title = "Custom Field Deleted" %] + The custom field '[% field.name FILTER html %]' has been + successfully deleted. + + [% ELSIF message_tag == "custom_field_updated" %] + [% title = "Custom Field Updated" %] + Properties of the '[% field.name FILTER html %]' field have been + successfully updated. + + [% ELSIF message_tag == "default_settings_updated" %] + [% IF changes_saved %] + Changes to default preferences have been saved. + [% ELSE %] + No changes made. + [% END %] + + [% ELSIF message_tag == "emailold_change_canceled" %] + [% title = "Cancel Request to Change Email Address" %] + The request to change the email address for your account to + [%+ new_email FILTER html %] has been canceled. + + [% ELSIF message_tag == "email_change_canceled" %] + [% title = "Cancel Request to Change Email Address" %] + The request to change the email address for the + account [%+ old_email FILTER html %] to + [%+ new_email FILTER html %] has been canceled. + + [% ELSIF message_tag == "email_change_canceled_reinstated" %] + [% title = "Cancel Request to Change Email Address" %] + The request to change the email address for the + account [%+ old_email FILTER html %] to + [%+ new_email FILTER html %] has been canceled. + Your old account settings have been reinstated. + + [% ELSIF message_tag == "extension_created" %] + An extension named [% name FILTER html %] has been created + in [% path FILTER html %]. Make sure you change "YOUR NAME" and + "YOUR EMAIL ADDRESS" in the code to your name and your email address. + + [% ELSIF message_tag == "field_value_created" %] + [% title = "New Field Value Created" %] + The value <em>[% value.name FILTER html %]</em> has been added as a + valid choice for the <em>[% field.description FILTER html %]</em> + (<em>[% field.name FILTER html %]</em>) field. + [% IF field.name == "bug_status" %] + You should now visit the <a href="editworkflow.cgi">status workflow + page</a> to include your new [% terms.bug %] status. + [% END %] + + [% ELSIF message_tag == "field_value_deleted" %] + [% title = "Field Value Deleted" %] + The value <em>[% value.name FILTER html %]</em> of the + <em>[% field.description FILTER html %]</em> + (<em>[% field.name FILTER html %]</em>) field has been deleted. + + [% ELSIF message_tag == "field_value_updated" %] + [% title = "Field Value Updated" %] + [% IF changes.keys.size %] + The <em>[% value_old FILTER html %]</em> value of the + <em>[% field.description FILTER html %]</em> + (<em>[% field.name FILTER html %]</em>) field has been changed: + <ul> + [% IF changes.value %] + <li>Field value updated to + <em>[% changes.value.1 FILTER html %]</em>. + [% IF value.is_default %] + (Note that this value is the default for this field. All + references to the default value will now point to this new value.) + [% END %] + </li> + [% END %] + [% IF changes.sortkey %] + <li>Sortkey updated to + <em>[% changes.sortkey.1 FILTER html %]</em>.</li> + [% END %] + [% IF changes.visibility_value_id %] + [% IF value.visibility_value.defined %] + <li>It only appears when + [%+ value.field.value_field.description FILTER html %] is set to + '[%+ value.visibility_value.name FILTER html %]'.</li> + [% ELSE %] + <li>It now always appears, no matter what + [%+ value.field.value_field.description FILTER html %] is set to. + </li> + [% END %] + [% END %] + </ul> + [% ELSE %] + No changes made to the field value <em>[% value_old FILTER html %]</em>. + [% END %] + + [% ELSIF message_tag == "flag_cleared" %] + Some flags didn't apply in the new product/component + and have been cleared. + + [% ELSIF message_tag == "flag_creation_failed" %] + [% title = "Flag Creation Failure" %] + An error occured while validating flags: + [%+ flag_creation_error FILTER none %] + + [% ELSIF message_tag == "get_field_desc" %] + [% field_descs.$field_name FILTER html %] + + [% ELSIF message_tag == "get_resolution" %] + [% display_value("resolution", resolution) FILTER html %] + + [% ELSIF message_tag == "get_status" %] + [% display_value("bug_status", status) FILTER html %] + + [% ELSIF message_tag == "group_created" %] + [% title = "New Group Created" %] + The group <em>[% group.name FILTER html %]</em> has been created. + + [% ELSIF message_tag == "group_deleted" %] + [% title = "Group Deleted" %] + The group <em>[% name FILTER html %]</em> has been deleted. + + [% ELSIF message_tag == "group_membership_removed" %] + [% title = "Group Membership Removed" %] + [% IF users.size %] + Explicit membership to the <em>[% group FILTER html %]</em> group removed + [% IF regexp %] for users matching '[% regexp FILTER html %]'[% END %]: + [% FOREACH user = users %] + [%+ user.login FILTER html %] + [% END %] + [% ELSE %] + No users are being affected by your action. + [% END %] + + [% ELSIF message_tag == "group_updated" %] + [% IF changes.keys.size %] + The following changes have been made to the '[% group.name FILTER html %]' + group: + <ul> + [% FOREACH field = changes.keys.sort %] + [% SWITCH field %] + [% CASE 'name' %] + <li>The name was changed to '[% changes.name.1 FILTER html %]'</li> + [% CASE 'description' %] + <li>The description was updated.</li> + [% CASE 'userregexp' %] + <li>The regular expression was updated.</li> + [% CASE 'isactive' %] + [% IF changes.isactive.1 %] + <li>The group will now be used for [% terms.bugs %].</li> + [% ELSE %] + <li>The group will no longer be used for [% terms.bugs %].</li> + [% END %] + [% CASE 'icon_url' %] + <li>The group icon URL has been updated.</li> + [% CASE 'members_add' %] + <li>The following groups are now members of this group: + [%+ changes.members_add.join(', ') FILTER html %]</li> + [% CASE 'members_remove' %] + <li>The following groups are no longer members of this group: + [%+ changes.members_remove.join(', ') FILTER html %]</li> + [% CASE 'member_of_add' %] + <li>This group is now a member of the following groups: + [%+ changes.member_of_add.join(', ') FILTER html %]</li> + [% CASE 'member_of_remove' %] + <li>This group is no longer a member of the following groups: + [%+ changes.member_of_remove.join(', ') FILTER html %]</li> + [% CASE 'bless_from_add' %] + <li>The following groups may now add users to this group: + [%+ changes.bless_from_add.join(', ') FILTER html %]</li> + [% CASE 'bless_from_remove' %] + <li>The following groups may no longer add users to this group: + [%+ changes.bless_from_remove.join(', ') FILTER html %]</li> + [% CASE 'bless_to_add' %] + <li>This group may now add users to the following groups: + [%+ changes.bless_to_add.join(', ') FILTER html %]</li> + [% CASE 'bless_to_remove' %] + <li>This group may no longer add users to the following groups: + [%+ changes.bless_to_remove.join(', ') FILTER html %]</li> + [% CASE 'visible_from_add' %] + <li>The following groups can now see users in this group: + [%+ changes.visible_from_add.join(', ') FILTER html %]</li> + [% CASE 'visible_from_remove' %] + <li>The following groups may no longer see users in this group: + [%+ changes.visible_from_remove.join(', ') FILTER html %]</li> + [% CASE 'visible_to_me_add' %] + <li>This group may now see users in the following groups: + [%+ changes.visible_to_me_add.join(', ') FILTER html %]</li> + [% CASE 'visible_to_me_remove' %] + <li>This group may no longer see users in the following groups: + [%+ changes.visible_to_me_remove.join(', ') FILTER html %]</li> + [% END %] + [% END %] + </ul> + [% ELSE %] + You didn't request any change for the '[% group.name FILTER html %]' + group. + [% END %] + + [% ELSIF message_tag == "invalid_column_name" %] + The custom sort order specified contains one or more invalid + column names: <em>[% invalid_fragments.join(', ') FILTER html %]</em>. + They have been removed from the sort list. + + [% ELSIF message_tag == "job_queue_depth" %] + [% count FILTER html %] jobs in the queue. + + [% ELSIF message_tag == "keyword_created" %] + [% title = "New Keyword Created" %] + The keyword <em>[% name FILTER html %]</em> has been created. + + [% ELSIF message_tag == "keyword_deleted" %] + [% title = "Keyword Deleted" %] + The <em>[% keyword.name FILTER html %]</em> keyword has been deleted. + <b>After you have finished editing keywords, you need to + <a href="sanitycheck.cgi?rebuildkeywordcache=1">rebuild the keyword + cache</a></b> (on a very large installation of [% terms.Bugzilla %], + this can take several minutes). + + [% ELSIF message_tag == "keyword_updated" %] + [% title = "Keyword Updated" %] + [% IF changes.keys.size %] + Changes to the <em>[% keyword.name FILTER html %]</em> keyword have + been saved: + <ul> + [% IF changes.name.defined %] + <li> + Keyword renamed to <em>[% keyword.name FILTER html %]</em>. + <b>After you have finished editing keywords, you need to + <a href="sanitycheck.cgi?rebuildkeywordcache=1">rebuild + the keyword cache</a></b> (on a very large installation + of [% terms.Bugzilla %], this can take several minutes). + </li> + [% END %] + [% IF changes.description.defined %] + <li>Description updated to <em>[% keyword.description FILTER html %]</em></li> + [% END %] + </ul> + [% ELSE %] + No changes made. + [% END %] + + [% ELSIF message_tag == "logged_out" %] + [% title = "Logged Out" %] + [% url = "index.cgi?GoAheadAndLogIn=1" %] + [% link = "Log in again." %] + <b>Your login has been forgotten</b>. + The cookie that was remembering your login is now gone. You will be + prompted for a login the next time it is required. + + [% ELSIF message_tag == "login_changed" %] + [% title = "$terms.Bugzilla Login Changed" %] + Your [% terms.Bugzilla %] login has been changed. + + [% ELSIF message_tag == "migrate_component_created" %] + Component created: [% comp.name FILTER html %] + (in [% product.name FILTER html %]) + + [% ELSIF message_tag == "migrate_creating_bugs" %] + Creating [% terms.bugs %]... + + [% ELSIF message_tag == "migrate_field_created" %] + New custom field: [% field.description FILTER html %] + ([% field.name FILTER html %]) + + [% ELSIF message_tag == "migrate_product_created" %] + Product created: [% created.name FILTER html %] + + [% ELSIF message_tag == "migrate_reading_bugs" %] + Reading [% terms.bugs %]... + + [% ELSIF message_tag == "migrate_reading_products" %] + Reading products... + + [% ELSIF message_tag == "migrate_reading_users" %] + Reading users... + + [% ELSIF message_tag == "migrate_translating_bugs" %] + Converting [% terms.bug %] values to be appropriate for + [%+ terms.Bugzilla %]... + + [% ELSIF message_tag == "migrate_user_created" %] + User created: [% created.email FILTER html %] + [% IF password %] Password: [% password FILTER html %][% END %] + + [% ELSIF message_tag == "migrate_value_created" %] + [% IF product.defined %] + [% product.name FILTER html %] + [% END %] + [%+ field_descs.${field.name} FILTER html %] value + created: [% value FILTER html %] + + [% ELSIF message_tag == "milestone_created" %] + [% title = "Milestone Created" %] + The milestone <em>[% milestone.name FILTER html %]</em> has been created. + + [% ELSIF message_tag == "milestone_deleted" %] + [% title = "Milestone Deleted" %] + The milestone <em>[% milestone.name FILTER html %]</em> has been deleted. + [% IF milestone.bug_count %] + [%+ terms.Bugs %] targetted to this milestone have been retargetted to + the default milestone <em>[% product.default_milestone FILTER html %]</em>. + [% END %] + + [% ELSIF message_tag == "milestone_updated" %] + [% title = "Milestone Updated" %] + [% IF changes.size %] + Changes to the milestone <em>[% milestone.name FILTER html %]</em> + have been saved: + <ul> + [% IF changes.value.defined %] + <li>Milestone name updated to <em>[% milestone.name FILTER html %]</em></li> + [% END %] + [% IF changes.sortkey.defined %] + <li>Sortkey updated to <em>[% milestone.sortkey FILTER html %]</em> + [% END %] + </ul> + [% ELSE %] + No changes made to milestone <em>[% milestone.name FILTER html %]</em>. + [% END %] + + [% ELSIF message_tag == "parameters_updated" %] + [% title = "Parameters Updated" %] + [% IF param_changed.size > 0 %] + [% FOREACH param = param_changed %] + Changed <em>[% param FILTER html %]</em><br> + [% IF param == 'utf8' && Param('utf8') %] + <strong>You must now re-run checksetup.pl.</strong><br> + [% END %] + [% END %] + [% ELSE %] + No changes made. + [% END %] + + [% IF shutdown_is_active == 1 %] + <hr> + [% terms.Bugzilla %] has now been shut down. To re-enable the system, + clear the <em>shutdownhtml</em> field. + [% END%] + + [% ELSIF message_tag == "password_change_canceled" %] + [% title = "Cancel Request to Change Password" %] + Your request has been canceled. + + [% ELSIF message_tag == "password_change_request" %] + [% title = "Request to Change Password" %] + A token for changing your password has been emailed to you. + Follow the instructions in that email to change your password. + + [% ELSIF message_tag == "password_changed" %] + [% title = "Password Changed" %] + Your password has been changed. + + [% ELSIF message_tag == "flag_type_created" %] + [% title = BLOCK %]Flag Type '[% name FILTER html %]' Created[% END %] + The flag type <em>[% name FILTER html %]</em> has been created. + + [% ELSIF message_tag == "flag_type_changes_saved" %] + [% title = BLOCK %]Flag Type '[% name FILTER html %]' Changes Saved[% END %] + Your changes to the flag type <em>[% name FILTER html %]</em> + have been saved. + + [% ELSIF message_tag == "flag_type_deleted" %] + [% title = BLOCK %]Flag Type '[% name FILTER html %]' Deleted[% END %] + The flag type <em>[% name FILTER html %]</em> has been deleted. + + [% ELSIF message_tag == "flag_type_deactivated" %] + [% title = BLOCK %]Flag Type '[% flag_type.name FILTER html %]' Deactivated[% END %] + The flag type <em>[% flag_type.name FILTER html %]</em> has been deactivated. + + [% ELSIF message_tag == "install_admin_get_email" %] + Enter the e-mail address of the administrator: + + [% ELSIF message_tag == "install_admin_get_name" %] + Enter the real name of the administrator: + + [% ELSIF message_tag == "install_admin_get_password" %] + Enter a password for the administrator account: + + [% ELSIF message_tag == "install_admin_created" %] + [% user.login FILTER html %] is now set up as an administrator. + + [% ELSIF message_tag == "install_admin_setup" %] + Looks like we don't have an administrator set up yet. + Either this is your first time using [% terms.Bugzilla %], or your + administrator's privileges might have accidentally been deleted. + + [% ELSIF message_tag == "install_column_add" %] + Adding new column '[% column FILTER html %]' to the '[% table FILTER html %]' table... + + [% ELSIF message_tag == "install_column_drop" %] + Deleting the '[% column FILTER html %]' column from the '[% table FILTER html %]' table... + + [% ELSIF message_tag == "install_column_rename" %] + Renaming column '[% old FILTER html %]' to '[% new FILTER html %]'... + + [% ELSIF message_tag == "install_confirm_password" %] + Please retype the password to verify: + + [% ELSIF message_tag == "install_default_classification" %] + Creating default classification '[% name FILTER html %]'... + + [% ELSIF message_tag == "install_default_product" %] + Creating initial dummy product '[% name FILTER html %]'... + + [% ELSIF message_tag == "install_file_perms_fix" %] + Fixing file permissions... + + [% ELSIF message_tag == "install_fk_add" %] + Adding foreign key: [% table FILTER html %].[% column FILTER html %] -> [% fk.TABLE FILTER html %].[% fk.COLUMN FILTER html %]... + + [% ELSIF message_tag == "install_fk_drop" %] + Dropping foreign key: [% table FILTER html %].[% column FILTER html %] -> [% fk.TABLE FILTER html %].[% fk.COLUMN FILTER html %]... + + [% ELSIF message_tag == "install_fk_invalid" %] + ERROR: There are invalid values for the [% column FILTER html %] column in the [% table FILTER html %] + table. (These values do not exist in the [% foreign_table FILTER html %] table, in the + [% foreign_column FILTER html %] column.) + + Before continuing with checksetup, you will need to fix these values, + either by deleting these rows from the database, or changing the values + of [% column FILTER html %] in [% table FILTER html %] to point to valid values in [% foreign_table FILTER html %].[% foreign_column FILTER html %]. + + The bad values from the [% table FILTER html %].[% column FILTER html %] column are: + [%+ values.join(', ') FILTER html %] + + [% ELSIF message_tag == "install_fk_invalid_fixed" %] + WARNING: There were invalid values in [% table FILTER html %].[% column FILTER html %] + that have been [% IF action == 'delete' %]deleted[% ELSE %]set to NULL[% END %]: + [%+ values.join(', ') FILTER html %] + + [% ELSIF message_tag == "install_group_create" %] + Creating group [% name FILTER html %]... + + [% ELSIF message_tag == "install_setting_new" %] + Adding a new user setting called '[% name FILTER html %]' + + [% ELSIF message_tag == "install_table_drop" %] + Dropping the '[% name FILTER html %]' table... + + [% ELSIF message_tag == "install_table_rename" %] + Renaming the '[% old FILTER html %]' table to '[% new FILTER html %]'... + + [% ELSIF message_tag == "install_urlbase_default" %] + Now that you have installed [% terms.Bugzilla %], you should visit the + 'Parameters' page (linked in the footer of the Administrator + account) to ensure it is set up as you wish - this includes + setting the 'urlbase' option to the correct URL. + + [% ELSIF message_tag == "install_reset_password" %] + Enter a new password for [% user.login FILTER html %]: + + [% ELSIF message_tag == "install_reset_password_done" %] + New password set. + + [% ELSIF message_tag == "install_webservergroup_empty" %] + **************************************************************************** + WARNING! You have not entered a value for the "webservergroup" parameter + in localconfig. This means that certain files and directories which need + to be editable by both you and the web server must be world writable, and + other files (including the localconfig file which stores your database + password) must be world readable. This means that _anyone_ who can obtain + local access to this machine can do whatever they want to your + [%+ terms.Bugzilla %] installation, and is probably also able to run + arbitrary Perl code as the user that the web server runs as. + + You really, really, really need to change this setting. + **************************************************************************** + + [% ELSIF message_tag == "install_webservergroup_not_in" %] + Warning: you have entered a value for the "webservergroup" parameter in + localconfig, but you are not either a) running this script as [% constants.ROOT_USER FILTER html %]; + or b) a member of this group. This can cause permissions problems and + decreased security. If you experience problems running [% terms.Bugzilla %] + scripts, log in as [% constants.ROOT_USER FILTER html %] and re-run this script, become a + member of the group, or remove the value of the "webservergroup" parameter. + + [% ELSIF message_tag == "install_webservergroup_windows" %] + Warning: You have set webservergroup in [% constants.bz_locations.localconfig FILTER html %] + Please understand that this does not bring you any security when + running under Windows. + Verify that the file permissions in your [% terms.Bugzilla %] directory are + suitable for your system. Avoid unnecessary write access. + + [% ELSIF message_tag == "product_created" %] + [% title = "Product Created" %] + The product <em>[% product.name FILTER html %]</em> has been created. You will need to + <a href="editcomponents.cgi?action=add&product=[% product.name FILTER url_quote %]"> + add at least one component</a> before anyone can enter [% terms.bugs %] against this product. + + [% ELSIF message_tag == "product_deleted" %] + [% title = "Product Deleted" %] + The product <em>[% product.name FILTER html %]</em> and all its versions, + components, milestones and group controls have been deleted. + [% IF product.bug_count %] + All [% terms.bugs %] being in this product and all references + to them have also been deleted. + [% END %] + + [% ELSIF message_tag == "product_invalid" %] + [% title = "$terms.Bugzilla Component Descriptions" %] + The product <em>[% product FILTER html %]</em> does not exist + or you don't have access to it. The following is a list of the + products you can choose from. + + [% ELSIF message_tag == "remaining_time_zeroed" %] + The [% field_descs.remaining_time FILTER html %] field has been + set to zero automatically as part of closing this [% terms.bug %] + or moving it from one closed state to another. + + [% ELSIF message_tag == "sanitycheck" %] + [%# We use this way to call sanitycheck-specific messages so that + # we can still use get_text(). %] + [% PROCESS "admin/sanitycheck/messages.html.tmpl" %] + + [% ELSIF message_tag == "series_all_open" %] + All Open + + [% ELSIF message_tag == "series_all_closed" %] + All Closed + + [% ELSIF message_tag == "series_subcategory" %] + -All- + + [% ELSIF message_tag == "sudo_started" %] + [% title = "Sudo session started" %] + The sudo session has been started. For the next 6 hours, or until you + end the session, everything you do you do as the user you are + impersonating ([% target FILTER html %]). + + [% ELSIF message_tag == "sudo_ended" %] + [% title = "Sudo session complete" %] + The sudo session has been ended. From this point forward, everything you + do you do as yourself. + + [% ELSIF message_tag == "series_created" %] + [% title = "Series Created" %] + The series <em>[% series.category FILTER html %] / + [%+ series.subcategory FILTER html %] / + [%+ series.name FILTER html %]</em> + has been created. Note that you may need to wait up to + [%+ series.frequency * 2 %] days before there will be enough data for a + chart of this series to be produced. + + [% ELSIF message_tag == "series_deleted" %] + [% title = "Series Deleted" %] + The series <em>[% series.category FILTER html %] / + [%+ series.subcategory FILTER html %] / + [%+ series.name FILTER html %]</em> + has been deleted. + + [% ELSIF message_tag == "shutdown" %] + [% title = "$terms.Bugzilla is Down" %] + [% Param("shutdownhtml") %] + [% IF userid %] + <p>For security reasons, you have been logged out automatically. + The cookie that was remembering your login is now gone. + [% END %] + + [% ELSIF message_tag == "term" %] + [% terms.$term FILTER html %] + + [% ELSIF message_tag == "unexpected_flag_types" %] + Some flags could not be set. Please check your changes. + + [% ELSIF message_tag == "user_match_failed" %] + You entered a username that did not match any known + [% terms.Bugzilla %] users, so we have instead left + the [% match_field FILTER html %] field blank. + + [% ELSIF message_tag == "user_match_multiple" %] + You entered a username that matched more than one + user, so we have instead left the [% match_field FILTER html %] + field blank. + + [% ELSIF message_tag == "version_created" %] + [% title = "Version Created" %] + The version <em>[% version.name FILTER html %]</em> of product + <em>[% product.name FILTER html %]</em> has been created. + + [% ELSIF message_tag == "version_deleted" %] + [% title = "Version Deleted" %] + The version <em>[% version.name FILTER html %]</em> of product + <em>[% product.name FILTER html %]</em> has been deleted. + + [% ELSIF message_tag == "version_updated" %] + [% title = "Version Updated" %] + [% IF changes.size %] + [% IF changes.value.defined %] + Version renamed to <em>[% version.name FILTER html %]</em>. + [% END %] + [% ELSE %] + No changes made to version <em>[% version.name FILTER html %]</em>. + [% END %] + + [% ELSIF message_tag == "workflow_updated" %] + The workflow has been updated. + [% END %] +[% END %] + +[% IF !message %] + [% message = Hook.process('messages') %] +[% END %] + +[%# Give sensible error if the message function is used incorrectly. #%] +[% IF !message %] + [% message = BLOCK %] + You are using [% terms.Bugzilla %]'s messaging functions incorrectly. You + passed in the string '[% message_tag %]'. The correct use is to pass + in a tag, and define that tag in the file messages.html.tmpl.<br> + <br> + If you are a [% terms.Bugzilla %] end-user seeing this message, please + save this page and send it to [% Param('maintainer') %]. + [% END %] +[% END %] diff --git a/template/en/default/global/per-bug-queries.html.tmpl b/template/en/default/global/per-bug-queries.html.tmpl new file mode 100644 index 0000000..3c62e35 --- /dev/null +++ b/template/en/default/global/per-bug-queries.html.tmpl @@ -0,0 +1,100 @@ +[%# 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. + # + # Contributor(s): Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% IF user.id && user.settings.per_bug_queries.value == "on" %] + <li id="links-special"> + <script type="text/javascript"> + <!-- + function update_text() { + // 'lob' means list_of_bugs. + var lob_action = document.getElementById('lob_action'); + var action = lob_action.options[lob_action.selectedIndex].value; + var text = document.getElementById('lob_direction'); + var new_query_text = document.getElementById('lob_new_query_text'); + + if (action == "add") { + text.innerHTML = "to"; + new_query_text.style.display = 'inline'; + } + else { + text.innerHTML = "from"; + new_query_text.style.display = 'none'; + } + } + + function manage_old_lists() { + var old_lists = document.getElementById('lob_oldqueryname'); + // If there is no saved searches available, returns. + if (!old_lists) return; + + var new_query = document.getElementById('lob_newqueryname').value; + + if (new_query != "") { + old_lists.disabled = true; + } + else { + old_lists.disabled = false; + } + } + //--> + </script> + + [%# Get existing lists of bugs for this user %] + [% lists_of_bugs = [] %] + [% FOREACH q = user.queries %] + [% NEXT UNLESS q.type == constants.LIST_OF_BUGS %] + [% lists_of_bugs.push(q.name) %] + [% END %] + <div class="label"></div> + <ul class="links"><li class="form"> + <form id="list_of_bugs" action="buglist.cgi" method="get"> + <input type="hidden" name="cmdtype" value="doit"> + <input type="hidden" name="remtype" value="asnamed"> + <input type="hidden" name="list_of_bugs" value="1"> + <select id="lob_action" name="action" onchange="update_text();"> + <option value="add">Add</option> + [% IF lists_of_bugs.size %] + <option value="remove">Remove</option> + [% END %] + </select> + + [% IF Param('docs_urlbase') %] + <a href="[% docs_urlbase FILTER html %]query.html#individual-buglists">the named tag</a> + [% ELSE %] + the named tag + [% END %] + + [% IF lists_of_bugs.size %] + <select id="lob_oldqueryname" name="oldqueryname"> + [% FOREACH query = lists_of_bugs %] + <option value="[% query FILTER html %]">[% query FILTER html %]</option> + [% END %] + </select> + [% END %] + <span id="lob_new_query_text"> + [% " or create and add the tag" IF lists_of_bugs.size %] + <input class="txt" type="text" id="lob_newqueryname" + size="20" maxlength="64" name="newqueryname" + onkeyup="manage_old_lists();"> + </span> + <span id="lob_direction">to</span> + [%+ terms.bugs %] + <input type="text" name="bug_ids" size="12" maxlength="80" + [%- " value=\"$bugids\"" IF bugids %]> + <input type="submit" value="Commit" id="commit_list_of_bugs"> + </form> + </li></ul> + </li> +[% END %] diff --git a/template/en/default/global/select-menu.html.tmpl b/template/en/default/global/select-menu.html.tmpl new file mode 100644 index 0000000..f8d4d68 --- /dev/null +++ b/template/en/default/global/select-menu.html.tmpl @@ -0,0 +1,64 @@ +[%# 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): Myk Melez <myk@mozilla.org> + #%] + +[%# INTERFACE: + # name: string; the name of the menu. + # + # multiple: boolean; whether or not the menu is multi-select + # + # size: integer; the number of items to display at once + # + # options: array or hash; the items with which to populate the array. + # If a hash is passed, the hash keys become the names displayed + # to the user while the hash values become the value of the item. + # + # default: string; the item selected in the menu by default. + # + # onchange: code; JavaScript to be run when the user changes the value + # selected in the menu. + #%] + +[%# Get the scalar representation of the options reference, + # which looks like "ARRAY(0xA352BA3F)" or "HASH(0xA352BA3F)", + # so we can figure out whether it is a reference to an array + # or a hash. + #%] +[% options_type = BLOCK %][% options %][% END %] + +<select name="[% name FILTER html %]" + [% IF onchange %]onchange="[% onchange FILTER html %]"[% END %] + [% IF multiple %] multiple [% END %] + [% IF size %] size="[% size %]" [% END %]> + [% IF options_type.search("ARRAY") %] + [% FOREACH value = options %] + <option value="[% value FILTER html %]" + [% " selected" IF value == default %]> + [% value FILTER html %] + </option> + [% END %] + [% ELSIF options_type.search("HASH") %] + [% FOREACH option = options %] + <option value="[% option.value FILTER html %]" + [% " selected" IF option.value == default %]> + [% option.key FILTER html %] + </option> + [% END %] + [% END %] +</select> diff --git a/template/en/default/global/setting-descs.none.tmpl b/template/en/default/global/setting-descs.none.tmpl new file mode 100644 index 0000000..661334c --- /dev/null +++ b/template/en/default/global/setting-descs.none.tmpl @@ -0,0 +1,51 @@ +[%# 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. + # + # Contributor(s): Shane H. W. Travis <travis@sedsystems.ca> + # + #%] + +[%# Remember to PROCESS rather than INCLUDE this template. %] + +[% PROCESS global/variables.none.tmpl %] + +[% setting_descs = { + "comment_sort_order" => "When viewing $terms.abug, show comments in this order", + "csv_colsepchar" => "Field separator character for CSV files", + "display_quips" => "Show a quip at the top of each $terms.bug list", + "zoom_textareas" => "Zoom textareas large when in use (requires JavaScript)", + "newest_to_oldest" => "Newest to Oldest", + "newest_to_oldest_desc_first" => "Newest to Oldest, but keep Description at the top", + "off" => "Off", + "oldest_to_newest" => "Oldest to Newest", + "on" => "On", + "per_bug_queries" => "Enable tags for $terms.bugs", + "post_bug_submit_action" => "After changing $terms.abug", + "next_bug" => "Show next $terms.bug in my list", + "same_bug" => "Show the updated $terms.bug", + "standard" => "Classic", + "skin" => "$terms.Bugzilla's general appearance (skin)", + "nothing" => "Do Nothing", + "state_addselfcc" => "Automatically add me to the CC list of $terms.bugs I change", + "always" => "Always", + "never" => "Never", + "cc_unless_role" => "Only if I have no role on them", + "lang" => "Language used in email", + "quote_replies" => "Quote the associated comment when you click on its reply link", + "quoted_reply" => "Quote the full comment", + "simple_reply" => "Reference the comment number only", + "timezone" => "Timezone used to display dates and times", + "local" => "Same as the server", + } +%] + +[% Hook.process('settings') %] diff --git a/template/en/default/global/site-navigation.html.tmpl b/template/en/default/global/site-navigation.html.tmpl new file mode 100644 index 0000000..df60b76 --- /dev/null +++ b/template/en/default/global/site-navigation.html.tmpl @@ -0,0 +1,101 @@ +[%# 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): Toms Baugis <toms.baugis@tietoenator.com> + # Gervase Markham <gerv@gerv.net> + #%] + +[%# INTERFACE: + # bug.bug_id: integer. Number of current bug (for navigation purposes) + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% IF NOT (cgi.user_agent("MSIE [1-6]") OR cgi.user_agent("Mozilla/4")) %] + <link rel="Top" href="[% urlbase FILTER html %]"> + + [%# *** Attachment *** %] + [% IF attachment && attachment.bug_id %] + <link rel="Up" href="show_bug.cgi?id=[% attachment.bug_id FILTER none %]"> + [% END %] + + + [%# *** Dependencies, Votes, Activity, Print-version *** %] + [% IF bug %] + <link rel="Show" title="Dependency Tree" + href="showdependencytree.cgi?id=[% bug.bug_id %]&hide_resolved=1"> + [% IF Param('webdotbase') %] + <link rel="Show" title="Dependency Graph" + href="showdependencygraph.cgi?id=[% bug.bug_id %]"> + [% END %] + + [% IF bug.use_votes %] + <link rel="Show" title="Votes ([% bug.votes %])" + href="votes.cgi?action=show_bug&bug_id=[% bug.bug_id %]"> + [% END %] + + <link rel="Show" title="[% terms.Bug %] Activity" + href="show_activity.cgi?id=[% bug.bug_id %]"> + <link rel="Show" title="Printer-Friendly Version" + href="show_bug.cgi?format=multiple&id=[% bug.bug_id %]"> + [% END %] + + + [%# *** Saved Searches *** %] + [% IF user.showmybugslink %] + [% user_login = user.login FILTER url_quote %] + <link rel="Saved Searches" title="My [% terms.Bugs %]" + href="[% Param('mybugstemplate').replace('%userid%', user_login) %]"> + [% END %] + + [% FOREACH q = user.queries %] + <link rel="Saved Searches" + title="[% q.name FILTER html %]" + href="buglist.cgi?cmdtype=runnamed&namedcmd=[% q.name FILTER url_quote %]"> + [% END %] + + [% FOREACH q = user.queries_subscribed %] + <link rel="Saved Search" + title="[% q.name FILTER html %] ([% q.user.login FILTER html %])" + href="buglist.cgi?cmdtype=dorem&remaction=run&namedcmd= + [% q.name FILTER url_quote %]&sharer_id= + [% q.user.id FILTER url_quote %]"> + [% END %] + + [%# *** Bugzilla Administration Tools *** %] + [% IF user.login %] + [% '<link rel="Administration" title="Parameters" + href="editparams.cgi">' IF user.in_group('tweakparams') %] + [% '<link rel="Administration" title="Users" + href="editusers.cgi">' IF user.in_group('editusers') %] + [% '<link rel="Administration" title="Products" href="editproducts.cgi">' + IF user.in_group('editcomponents') || user.get_products_by_permission("editcomponents").size %] + [% '<link rel="Administration" title="Flag Types" + href="editflagtypes.cgi">' IF user.in_group('editcomponents') %] + [% '<link rel="Administration" title="Groups" + href="editgroups.cgi">' IF user.in_group('creategroups') %] + [% '<link rel="Administration" title="Keywords" + href="editkeywords.cgi">' IF user.in_group('editkeywords') %] + [% '<link rel="Administration" title="Whining" + href="editwhines.cgi">' IF user.in_group('bz_canusewhines') %] + [% '<link rel="Administration" title="Sanity Check" + href="sanitycheck.cgi">' IF user.in_group('editcomponents') %] + [% END %] +[% END %] diff --git a/template/en/default/global/tabs.html.tmpl b/template/en/default/global/tabs.html.tmpl new file mode 100644 index 0000000..85556c4 --- /dev/null +++ b/template/en/default/global/tabs.html.tmpl @@ -0,0 +1,56 @@ +[%# 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> + # Myk Melez <myk@mozilla.org> + # Marc Schumann <wurblzap@gmail.com> + #%] + +[%# INTERFACE: + # tabs: List of hashes. Must have at least one item. Each hash has: + # name: string. Name of the tab. + # link: string. relative URL to the tab's resource on this installation. + # label: string. text displayed in the tab. + # current_tab_name: string. name of the currently selected tab + #%] + +<div class="tabbed"> + <table class="tabs" cellspacing="0" cellpadding="10" border="0" width="100%"> + <tr> + <td class="spacer"> </td> + + [% FOREACH tab = tabs %] + [% IF tab.name == current_tab_name %] + <td id="tab_[% tab.name FILTER html %]" class="selected"> + [% tab.label FILTER html %]</td> + [% ELSE %] + <td id="tab_[% tab.name FILTER html %]" class="clickable_area" + onClick="document.location='[% tab.link FILTER html %]'"> + <a href="[% tab.link FILTER html %]">[% tab.label FILTER html %]</a> + </td> + [% END %] + [% END %] + + <td class="spacer"> </td> + </tr> + </table> + + <div class="tabbody"> + [% content %] + </div> + +</div> diff --git a/template/en/default/global/textarea.html.tmpl b/template/en/default/global/textarea.html.tmpl new file mode 100644 index 0000000..d20422e --- /dev/null +++ b/template/en/default/global/textarea.html.tmpl @@ -0,0 +1,50 @@ +[%# 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. + # + # Contributor(s): Marc Schumann <wurblzap@gmail.com> + #%] + +[%# INTERFACE: + # + # id: (optional) The "id"-attribute of the textarea. + # name: (optional) The "name"-attribute of the textarea. + # accesskey: (optional) The "accesskey"-attribute of the textarea. + # style: (optional) The "style"-attribute of the textarea. + # classes: (optional) The "class"-attribute of the textarea. + # wrap: (deprecated; optional) The "wrap"-attribute of the textarea. + # minrows: (required) Number of rows the textarea shall have initially + # and when not having focus. + # maxrows: (optional) Number of rows the textarea shall have if + # maximized (which happens on getting focus). If not given, + # the textarea doesn't maximize when getting focus. + # defaultrows: (optional) Number of rows the textarea shall have if + # the zoom_textareas user preference if off. If not given, + # minrows will be used. + # cols: (required) Number of columns the textarea shall have. + # defaultcontent: (optional) Default content for the textarea. + #%] + +<textarea [% IF name %]name="[% name FILTER html %]"[% END %] + [% IF id %] id="[% id FILTER html %]"[% END %] + [% IF accesskey %] accesskey="[% accesskey FILTER html %]"[% END %] + [% IF style %] style="[% style FILTER html %]"[% END %] + [% IF classes %] class="[% classes FILTER html %]"[% END %] + [% IF wrap %] wrap="[% wrap FILTER html %]"[% END %] + [% IF defaultrows && user.settings.zoom_textareas.value == 'off' %] + rows="[% defaultrows FILTER html %]" + [% ELSE %] + rows="[% minrows FILTER html %]" + [% END %] + cols="[% cols FILTER html %]" + [% IF maxrows && user.settings.zoom_textareas.value == 'on' %] + onFocus="this.rows=[% maxrows FILTER html %]" + [% END %]>[% defaultcontent FILTER html %]</textarea> diff --git a/template/en/default/global/useful-links.html.tmpl b/template/en/default/global/useful-links.html.tmpl new file mode 100644 index 0000000..1f12249 --- /dev/null +++ b/template/en/default/global/useful-links.html.tmpl @@ -0,0 +1,81 @@ +[%# 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> + # Svetlana Harisova <light@rathedg.com> + # Marc Schumann <wurblzap@gmail.com> + #%] + +[%# Migration note: this whole file corresponds to the old %commandmenu% + substitution param in 'footerhtml' %] + +[% PROCESS global/variables.none.tmpl %] + +<ul id="useful-links"> + <li id="links-actions"> + [% PROCESS "global/common-links.html.tmpl" qs_suffix = "_bottom" %] + </li> + + [%# Saved searches %] + + [% IF user.showmybugslink OR user.queries.size + OR user.queries_subscribed.size + %] + [% print_pipe = 0 %] + <li id="links-saved"> + <ul class="links"> + [% IF user.showmybugslink %] + [% filtered_username = user.login FILTER url_quote %] + <li><a href="[% Param('mybugstemplate').replace('%userid%', filtered_username) %]">My [% terms.Bugs %]</a></li> + [% print_pipe = 1 %] + [% END %] + + [% FOREACH q = user.queries %] + [% IF q.link_in_footer %] + <li>[% '<span class="separator">| </span>' IF print_pipe %] + <a href="buglist.cgi?cmdtype=runnamed&namedcmd=[% q.name FILTER url_quote %]">[% q.name FILTER html %]</a></li> + [% print_pipe = 1 %] + [% END %] + [% END %] + [% new_line = print_pipe %] + [% print_pipe = 0 %] + [% FOREACH q = user.queries_subscribed %] + [% IF new_line %] + <br> + [% new_line = 0 %] + [% END %] + <li> + [% '<span class="separator">| </span>' IF print_pipe %] + <a href="buglist.cgi?cmdtype=dorem&remaction=run&namedcmd= + [% q.name FILTER url_quote %]&sharer_id= + [% q.user.id FILTER url_quote %]" + class="shared" + title="Shared by [% q.user.identity FILTER html %]" + >[% q.name FILTER html FILTER no_break %]</a></li> + [% print_pipe = 1 %] + [% END %] + </ul> + </li> + [% END %] + + [%# Individual bugs addition %] + + [% PROCESS "global/per-bug-queries.html.tmpl" %] + + [%# Sections of links to more things users can do on this installation. %] + [% Hook.process("end") %] +</ul> diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl new file mode 100644 index 0000000..4698c94 --- /dev/null +++ b/template/en/default/global/user-error.html.tmpl @@ -0,0 +1,1806 @@ +[%# 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> + # Frédéric Buclin <LpSolit@gmail.com> + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # header_done: boolean. True if the Bugzilla header has already been printed. + # error: string. The tag of the error, or the error message to be displayed + # (deprecated). May contain HTML if it's an error message. + #%] + +[%# 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. + # + # 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. + # + # Extension- or custom-specific error handling can be easily added + # via hooks: just place additional code into + # template/en/hook/global/user-error-errors.html.tmpl + # Note: be aware of uniqueness of error string parameter value, since + # nobody can guarantee the hook files processing order in the future. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% DEFAULT title = "Error" %] + +[% error_message = BLOCK %] + [% IF error == "account_creation_disabled" %] + [% title = "Account Creation Disabled" %] + User account creation has been disabled. + <hr> + 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. + + [% ELSIF error == "account_disabled" %] + [% title = "Account Disabled" %] + [% disabled_reason FILTER none %] + <hr> + If you believe your account should be restored, please + send email to [% Param("maintainer") %] explaining why. + + [% ELSIF error == "account_exists" %] + [% title = "Account Already Exists" %] + There is already an account with + [% IF email %] + the login name [% email FILTER html %]. + [% ELSE %] + that login name. + [% END %] + + [% ELSIF error == "account_locked" %] + [% title = "Account Locked" %] + Your IP ([% ip_addr FILTER html %]) has been locked out of this + account until [% unlock_at FILTER time %], as you have + exceeded the maximum number of login attempts. + + [% 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 + aliases from each other in lists. Please choose an alias + that does not contain commas and spaces. + + [% ELSIF error == "alias_in_use" %] + [% title = "Alias In Use" %] + [% 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. + + [% ELSIF error == "alias_is_numeric" %] + [% title = "Alias Is Numeric" %] + You tried to give this [% terms.bug %] the alias <em>[% alias FILTER html %]</em>, + but aliases cannot be merely numbers, since they could + then be confused with [% terms.bug %] IDs. Please choose an + alias containing at least one letter. + + [% ELSIF error == "alias_too_long" %] + [% title = "Alias Too Long" %] + [% terms.Bug %] aliases cannot be longer than 20 characters. + Please choose a shorter alias. + + [% 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. + + [% ELSIF error == "auth_failure" %] + [% title = "Authorization Required" %] + [% admindocslinks = {'groups.html' => 'Group Security'} %] + 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" %] + you don't have permissions to add or remove people from a group, + [% ELSIF reason == "not_visible" %] + there are visibility restrictions on certain user groups, + [% END %] + [% END %] + + [% IF group || reason %] and so [% END %] you are not authorized to + [% IF action == "access" %] + access + [% ELSIF action == "add" %] + add new + [% ELSIF action == "begin" %] + begin + [% ELSIF action == "modify" %] + modify + [% ELSIF action == "delete" %] + delete + [% ELSIF action == "edit" %] + add, modify or delete + [% ELSIF action == "move" %] + move + [% ELSIF action == "run" %] + run + [% ELSIF action == "schedule" %] + schedule + [% ELSIF action == "use" %] + use + [% ELSIF action == "approve" %] + approve + [% END %] + + [% IF object == "administrative_pages" %] + administrative pages + [% ELSIF object == "attachment" %] + [% IF attach_id %] + attachment #[% attach_id FILTER html %] + [% ELSE %] + this attachment + [% END %] + [% ELSIF object == "bugs" %] + [%+ terms.bugs %] + [% ELSIF object == "charts" %] + the "New Charts" feature + [% ELSIF object == "classifications" %] + classifications + [% ELSIF object == "components" %] + components + [% ELSIF object == "custom_fields" %] + custom fields + [% ELSIF object == "field_values" %] + field values + [% ELSIF object == "flagtypes" %] + flag types + [% ELSIF object == "group_access" %] + group access + [% ELSIF object == "groups" %] + groups + [% ELSIF object == "keywords" %] + keywords + [% ELSIF object == "milestones" %] + milestones + [% ELSIF object == "multiple_bugs" %] + multiple [% terms.bugs %] at once + [% ELSIF object == "parameters" %] + parameters + [% ELSIF object == "products" %] + products + [% ELSIF object == "quips" %] + quips + [% ELSIF object == "reports" %] + whine reports + [% ELSIF object == "sanity_check" %] + a sanity check + [% ELSIF object == "settings" %] + settings + [% ELSIF object == "sudo_session" %] + a sudo session + [% ELSIF object == "timetracking_summaries" %] + time-tracking summary reports + [% ELSIF object == "user" %] + the user [% IF userid %] with ID '[% userid FILTER html %]' + [% ELSE %]you specified [% END %] + [% ELSIF object == "users" %] + users + [% ELSIF object == "versions" %] + versions + [% ELSIF object == "workflow" %] + the workflow + [% END %]. + + [% Hook.process("auth_failure") %] + + [% ELSIF error == "attachment_deletion_disabled" %] + [% title = "Attachment Deletion Disabled" %] + Attachment deletion is disabled on this installation. + + [% ELSIF error == "attachment_illegal_url" %] + [% title = "Illegal Attachment URL" %] + <em>[% url FILTER html %]</em> is not a legal URL for attachments. + It must start either with http://, https:// or ftp://. + + [% ELSIF error == "attachment_removed" %] + [% title = "Attachment Removed" %] + The attachment you are attempting to access has been removed. + + [% ELSIF error == "bug_access_denied" %] + [% title = "Access Denied" %] + [% admindocslinks = {'groups.html' => 'Group Security'} %] + You are not authorized to access [% terms.bug %] #[% bug_id FILTER html %]. + + [% ELSIF error == "bug_access_query" %] + [% title = "Access Denied" %] + [% docslinks = {'myaccount.html' => 'Creating an account'} %] + 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 %]&GoAheadAndLogIn=1">log + in to an account</a> with the appropriate permissions. + + [% ELSIF error == "bug_url_invalid" %] + [% title = "Invalid $terms.Bug URL" %] + <code>[% url FILTER html %]</code> is not a valid URL to [% terms.abug %]. + [% IF reason == 'http' %] + URLs must start with "http" or "https". + [% ELSIF reason == 'show_bug' %] + [%+ terms.Bug %] URLs should point to <code>show_bug.cgi</code> + in a [% terms.Bugzilla %] installation. + [% ELSIF reason == 'id' %] + There is no valid [% terms.bug %] id in that URL. + [% END %] + + [% ELSIF error == "bug_url_too_long" %] + [% title = "Invalid $terms.Bug URL" %] + [% terms.Bug %] URLs can not be longer than + [%+ constants.MAX_BUG_URL_LENGTH FILTER none %] characters long. + <code>[% url FILTER html %]</code> is too long. + + [% ELSIF error == "buglist_parameters_required" %] + [% title = "Parameters Required" %] + [% docslinks = {'query.html' => "Searching for $terms.bugs", + 'query.html#list' => "$terms.Bug lists"} %] + You may not search, or create saved searches, without any search terms. + + [% ELSIF error == "chart_too_large" %] + [% title = "Chart Too Large" %] + Sorry, but 2000 x 2000 is the maximum size for a chart. + + [% ELSIF error == "comment_id_invalid" %] + [% id FILTER html %] is not a valid comment id. + + [% 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 %]. + + [% ELSIF error == "comment_is_private" %] + Comment id [% id FILTER html %] is private. + + [% ELSIF error == "comment_required" %] + [% title = "Comment Required" %] + 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 %]. + [% ELSE %] + <b>comment</b> on this change. + [% END %] + + [% ELSIF error == "comment_too_long" %] + [% title = "Comment Too Long" %] + Comments cannot be longer than + [%+ constants.MAX_COMMENT_LENGTH FILTER html %] characters. + + [% ELSIF error == "auth_classification_not_enabled" %] + [% title = "Classification Not Enabled" %] + Sorry, classification is not enabled. + + [% ELSIF error == "classification_name_too_long" %] + [% title = "Classification Name Too Long" %] + The name of a classification is limited to [% constants.MAX_CLASSIFICATION_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + +[% 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_invalid_sortkey" %] + [% title = "Invalid Sortkey for Classification" %] + The sortkey '[% sortkey FILTER html %]' is invalid. It must be an + integer between 0 and [% constants.MAX_SMALLINT FILTER html %]. + + [% 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. + + [% ELSIF error == "component_already_exists" %] + [% title = "Component Already Exists" %] + The <em>[% product.name FILTER html %]</em> product already has + a component named <em>[% name FILTER html %]</em>. + + [% ELSIF error == "component_blank_description" %] + [% title = "Blank Component Description Not Allowed" %] + You must enter a non-blank description for this component. + + [% ELSIF error == "component_blank_name" %] + [% title = "Blank Component Name Not Allowed" %] + You must enter a name for this new component. + + [% 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. + + [% ELSIF error == "component_name_too_long" %] + [% title = "Component Name Is Too Long" %] + The name of a component is limited to [% constants.MAX_COMPONENT_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + + [% ELSIF error == "component_need_initialowner" %] + [% title = "Component Requires Default Assignee" %] + A default assignee is required for this component. + + [% ELSIF error == "customfield_nonexistent" %] + [% title = "Unknown Custom Field" %] + There is no custom field with the name '[% name FILTER html %]'. + + [% 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. + + [% ELSIF error == "dependency_loop_multi" %] + [% title = "Dependency Loop Detected" %] + The following [% terms.bug %](s) would appear on both the "depends on" + and "blocks" parts of the dependency tree if these changes + are committed: + [% FOREACH dep = deps %] + [%+ dep FILTER bug_link(dep) FILTER none %] + [% END %]. + This would create a circular dependency, which is not allowed. + + [% ELSIF error == "dependency_loop_single" %] + [% title = "Dependency Loop Detected" %] + You can't make [% terms.abug %] block itself or depend on itself. + + [% ELSIF error == "dupe_id_required" %] + [% title = "Duplicate $terms.Bug Id Required" %] + You must specify [% terms.abug %] id to mark this [% terms.bug %] + as a duplicate of. + + [% 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 %]. + + [% ELSIF error == "email_change_in_progress" %] + [% title = "Email Change Already In Progress" %] + Email change already in progress; please check your email. + + [% ELSIF error == "email_confirmation_failed" %] + [% title = "Email Address Confirmation Failed" %] + Email address confirmation failed. + + [% 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. + + [% ELSIF error == "empty_group_description" %] + [% title = "The group description can not be empty" %] + You must enter a description for the group. + + [% ELSIF error == "empty_group_name" %] + [% title = "The group name can not be empty" %] + You must enter a name for the group. + + [% ELSIF error == "entry_access_denied" %] + [% title = "Permission Denied" %] + [% admindocslinks = {'groups.html' => 'Group Security'} %] + Sorry, either the product <em>[% product FILTER html %]</em> + does not exist or you aren't authorized to + enter [% terms.abug %] into it. + + [% ELSIF error == "extension_create_no_name" %] + You must specify a name for your extension, as an argument to this script. + + [% ELSIF error == "extension_first_letter_caps" %] + The first letter of your extension's name must be a capital letter. + (You specified '[% name FILTER html %]'.) + + [% 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_cant_control_self" %] + [% title = "Field Can't Control Itself" %] + The [% field.description FILTER html %] field can't be set to control + itself. + + [% ELSIF error == "field_control_must_be_select" %] + [% title = "Invalid Field Type Selected" %] + Only drop-down and multi-select fields can be used to control + the visibility/values of other fields. [% field.description FILTER html %] + is not the right type of field. + + [% 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. + + [% ELSIF error == "field_value_control_select_only" %] + [% title = "Invalid Value Control Field" %] + Only Drop-Down or Multi-Select fields can have a field that + controls their values. + + [% ELSIF error == "fieldname_invalid" %] + [% title = "Specified Field Does Not Exist" %] + The field '[% field.name FILTER html %]' does not exist or + cannot be edited with this interface. + + [% ELSIF error == "fieldvalue_already_exists" %] + [% title = "Field Value Already Exists" %] + The value '[% value.name FILTER html %]' already exists for the + [%+ field.description FILTER html %] field. + + [% ELSIF error == "fieldvalue_is_controller" %] + [% title = "Value Controls Other Fields" %] + You cannot delete the [% value.field.description FILTER html %] + '[% value.name FILTER html %]' because + [% IF fields.size %] + it controls the visibility of the following fields: + [%+ fields.join(', ') FILTER html %]. + [% END %] + [% ' and ' IF fields.size AND vals.size %] + [% IF vals.size %] + it controls the visibility of the following field values: + <ul> + [% FOREACH field_name = vals.keys %] + [% FOREACH val = vals.${field_name} %] + <li>[% val.field.name FILTER html %]: + '[% val.name FILTER html %]'</li> + [% END %] + [% END %] + </ul> + [% END %] + + [% ELSIF error == "fieldvalue_is_default" %] + [% title = "Specified Field Value Is Default" %] + '[% value.name FILTER html %]' is the default value for + the '[% field.description FILTER html %]' field and cannot be deleted. + [% IF user.in_group('tweakparams') %] + You have to <a href="editparams.cgi?section=bugfields# + [%- param_name FILTER url_quote %]">change</a> the default value first. + [% END %] + + [% ELSIF error == "fieldvalue_name_too_long" %] + [% title = "Field Value Is Too Long" %] + The value of a field is limited to + [%+ constants.FIELD_VALUE_MAX_SIZE FILTER none %] characters. + '[% value FILTER html %]' is too long ([% value.length %] characters). + + [% ELSIF error == "fieldvalue_not_editable" %] + [% title = "Field Value Not Editable" %] + The value '[% old_value.name FILTER html %]' cannot be renamed because + it plays some special role for the '[% field.description FILTER html %]' + field. + + [% ELSIF error == "fieldvalue_not_deletable" %] + [% title = "Field Value Not Deletable" %] + The value '[% value.name FILTER html %]' cannot be removed because + it plays some special role for the '[% field.description FILTER html %]' + field. + + [% ELSIF error == "fieldvalue_reserved_word" %] + [% title = "Reserved Word Not Allowed" %] + You cannot use the value '[% value FILTER html %]' for the + '[% field.description FILTER html %]' field. This value is used internally. + Please choose another one. + + [% ELSIF error == "fieldvalue_sortkey_invalid" %] + [% title = "Invalid Field Value Sortkey" %] + The sortkey '[% sortkey FILTER html %]' for the + [%+ field.description 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.name FILTER html %]' from the + [% field.description FILTER html %] field, because there are still + [%+ value.bug_count FILTER html %] [%+ terms.bugs %] using it. + + [% ELSIF error == "fieldvalue_undefined" %] + [% title = "Undefined Value Not Allowed" %] + You must specify a value. + + [% ELSIF error == "file_not_specified" %] + [% title = "No File Specified" %] + You did not specify a file to attach. + + [% ELSIF error == "file_too_large" %] + [% title = "File Too Large" %] + The file you are trying to attach is [% filesize FILTER html %] + kilobytes (KB) in size. Non-patch attachments cannot be more than + [%+ Param('maxattachmentsize') %] KB. <br> + We recommend that you store your attachment elsewhere + [% 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 %] + <br>Alternately, if your attachment is an image, you could convert + it to a compressible format like JPG or PNG and try again. + + [% 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. + + [% ELSIF error == "flag_requestee_unauthorized" %] + [% title = "Flag Requestee Not Authorized" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags', + 'groups.html' => 'Group Security'} %] + [% docslinks = {'flags-overview.html' => 'An overview on Flags', + 'flags.html' => 'Using Flags'} %] + + You asked [% requestee.identity FILTER html %] + for <code>[% flag_type.name FILTER html %]</code> on [% terms.bug %] + [%+ bug_id FILTER html -%] + [% IF attach_id && attach_id > 0 %], attachment [% attach_id FILTER html %][% END %], + 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. + 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. + + [% ELSIF error == "flag_requestee_unauthorized_attachment" %] + [% title = "Flag Requestee Not Authorized" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags', + 'groups.html' => 'Group Security'} %] + [% docslinks = {'flags-overview.html' => 'An overview on Flags', + 'flags.html' => 'Using Flags'} %] + + You asked [% requestee.identity FILTER html %] + for <code>[% flag_type.name FILTER html %]</code> on + [%+ terms.bug %] [%+ bug_id FILTER html %], + attachment [% attach_id FILTER html %], but that attachment + 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. + + [% ELSIF error == "flag_type_cc_list_invalid" %] + [% title = "Flag Type CC List Invalid" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags'} %] + The CC list [% cc_list FILTER html %] must be less than 200 characters long. + + [% ELSIF error == "flag_type_component_without_product" %] + [% title = "Product Missing" %] + A component was selected without a product being selected. + + [% ELSIF error == "flag_type_description_invalid" %] + [% title = "Flag Type Description Invalid" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags'} %] + The description must be less than 32K. + + [% ELSIF error == "flag_type_name_invalid" %] + [% title = "Flag Type Name Invalid" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags'} %] + The name <em>[% name FILTER html %]</em> must be 1-50 characters long + and must not contain any spaces or commas. + + [% ELSIF error == "flag_type_not_multiplicable" %] + [% docslinks = {'flags-overview.html' => 'An overview on Flags', + 'flags.html' => 'Using Flags'} %] + You cannot have several <em>[% type.name FILTER html %]</em> flags + for this [% IF attachment %] attachment [% ELSE %] [%+ terms.bug %] [% END %]. + + [% ELSIF error == "flag_update_denied" %] + [% title = "Flag Modification Denied" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags', + 'groups.html' => 'Group Security'} %] + [% docslinks = {'flags-overview.html' => 'An overview on Flags', + 'flags.html' => 'Using Flags'} %] + You tried to [% IF status == "+" %] grant [% ELSIF status == "-" %] deny + [% ELSIF status == "X" %] clear [% ELSE %] request [% END %] + <code>[% name FILTER html %] + [% IF status == "X" %][% old_status FILTER html %][% END %]</code>. + + Only a user with the required permissions may make this change. + + [% 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>. + + [% ELSIF error == "flag_type_sortkey_invalid" %] + [% title = "Flag Type Sort Key Invalid" %] + The sort key must be an integer between 0 and 32767 inclusive. + It cannot be <em>[% sortkey FILTER html %]</em>. + + [% 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> + + [% ELSIF error == "group_cannot_delete" %] + [% title = "Cannot Delete Group" %] + The <em>[% group.name FILTER html %]</em> group cannot be deleted because + there are + <a href="editgroups.cgi?action=del&group= + [%- group.id 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. + + [% 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. + + [% ELSIF error == "group_exists" %] + [% title = "The group already exists" %] + The group [% name FILTER html %] already exists. + + [% 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. + + + [% 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 + '[% product FILTER html %]' product can not be removed from that + 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 + '[% product FILTER html %]' product can not be restricted to + that group. + + [% ELSIF error == "group_not_specified" %] + [% title = "Group not specified" %] + No group was specified. + + [% 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. + + [% 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! + + [% ELSIF error == "illegal_at_least_x_votes" %] + [% title = "Your Search Makes No Sense" %] + The <em>At least ___ votes</em> field must be a simple number. + You entered <tt>[% value FILTER html %]</tt>, which isn't. + + [% ELSIF error == "illegal_attachment_edit" %] + [% title = "Unauthorized Action" %] + You are not authorized to edit attachment [% attach_id FILTER html %]. + + [% ELSIF error == "illegal_attachment_edit_bug" %] + [% title = "Unauthorized Action" %] + You are not authorized to edit attachments on [% terms.bug %] + [%+ bug_id FILTER html %]. + + [% ELSIF error == "illegal_attachment_is_patch" %] + [% title = "Your Search Makes No Sense" %] + The only legal values for the <em>Attachment is patch</em> field are + 0 and 1. + + [% ELSIF error == "illegal_bug_status_transition" %] + [% title = "Illegal $terms.Bug Status Change" %] + [% 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 %] + + [% ELSIF error == "illegal_change" %] + [% title = "Not allowed" %] + You tried to change the + <strong>[% field_descs.$field FILTER html %]</strong> field + [% IF oldvalue.defined %] + from <em>[% oldvalue.join(', ') FILTER html %]</em> + [% END %] + [% IF newvalue.defined %] + to <em>[% newvalue.join(', ') FILTER html %]</em> + [% END %] + , but only + [% IF privs < 3 %] + the assignee + [% IF privs < 2 %] or reporter [% END %] + of the [% terms.bug %], or + [% END %] + a user with the required permissions may change that field. + + [% 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 allowed to edit + both related [% terms.bugs %] may change that field. + + [% ELSIF error == "illegal_changed_in_last_x_days" %] + [% title = "Your Search Makes No Sense" %] + 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" %] + [% title = "Illegal Date" %] + '<tt>[% date FILTER html %]</tt>' is not a legal date. + [% IF format %] + Please use the format '<tt>[% format FILTER html %]</tt>'. + [% END %] + + [% ELSIF error == "illegal_email_address" %] + [% title = "Invalid Email Address" %] + The e-mail address you entered (<b>[% addr FILTER html %]</b>) + 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 %] + It must also not contain any of these special characters: + <tt>\ ( ) & < > , ; : " [ ]</tt>, or any whitespace. + + [% 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. + + [% ELSIF error == "illegal_group_control_combination" %] + [% title = "Your Group Control Combination Is Illegal" %] + [% admindocslinks = {'groups.html' => 'Assigning Group Controls to Products'} %] + Your group control combination for group " + [% groupname FILTER html %]" is illegal. + + [% ELSIF error == "illegal_is_obsolete" %] + [% title = "Your Search Makes No Sense" %] + The only legal values for the <em>Attachment is obsolete</em> field are + 0 and 1. + + [% ELSIF error == "illegal_query_name" %] + [% title = "Illegal Search Name" %] + The name of your search cannot contain any of the following characters: + <, >, &. + + [% ELSIF error == "illegal_series_creation" %] + [% admindocslinks = {'groups.html' => 'Group security'} %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You are not authorized to create series. + + [% ELSIF error == "illegal_series_edit" %] + [% admindocslinks = {'groups.html' => 'Group security'} %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You are not authorized to edit this series. To do this, you must either + be its creator, or an administrator. + + [% 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 %] + + [% ELSIF error == "illegal_regexp" %] + [% title = "Illegal Regular Expression" %] + The regular expression you provided [% value FILTER html %] is not valid. + The error was: [% dberror FILTER html %]. + + [% ELSIF error == "insufficient_data_points" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + We don't have enough data points to make a graph (yet). + + [% ELSIF error == "invalid_attach_id" %] + [% title = "Invalid Attachment ID" %] + The attachment id [% attach_id FILTER html %] is invalid. + + [% ELSIF error == "bug_id_does_not_exist" %] + [% title = BLOCK %]Invalid [% terms.Bug %] ID[% END %] + [% terms.Bug %] #[% bug_id FILTER html %] does not exist. + + [% ELSIF error == "improper_bug_id_field_value" %] + [% title = BLOCK %] + [% IF bug_id %]Invalid [% ELSE %]Missing [% END %] [% terms.Bug %] ID + [% END %] + [% IF bug_id %] + '[% bug_id FILTER html %]' is not a valid [% terms.bug %] number + [% IF Param("usebugaliases") %] + nor an alias to [% terms.abug %] + [% END %]. + [% ELSE %] + [% IF field %] + The '[% field_descs.$field FILTER html %]' field + cannot be empty. + [% END %] + You must enter a valid [% terms.bug %] number! + [% END %] + + [% ELSIF error == "invalid_changedsince" %] + [% title = "Invalid 'Changed Since'" %] + The 'changed since' value, '[% changedsince FILTER html %]', must be an + integer >= 0. + + [% ELSIF error == "invalid_content_type" %] + [% title = "Invalid Content-Type" %] + The content type <em>[% contenttype FILTER html %]</em> is invalid. + Valid types must be of the form <em>foo/bar</em> where <em>foo</em> + is one of <em>[% constants.LEGAL_CONTENT_TYPES.join(', ') FILTER html %]</em>. + + [% ELSIF error == "invalid_context" %] + [% title = "Invalid Context" %] + The context [% context FILTER html %] is invalid (must be a number, + "file" or "patch"). + + [% ELSIF error == "invalid_datasets" %] + [% title = "Invalid Datasets" %] + Invalid datasets <em>[% datasets FILTER html %]</em>. Only digits, + letters and colons are allowed. + + [% 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 %] + ). + + [% ELSIF error == "invalid_group_ID" %] + [% title = "Invalid group ID" %] + The group you specified doesn't exist. + + [% ELSIF error == "invalid_group_name" %] + [% title = "Invalid group name" %] + The group you specified, [% name FILTER html %], is not valid here. + + [% ELSIF error == "invalid_maxrows" %] + [% title = "Invalid Max Rows" %] + The maximum number of rows, '[% maxrows FILTER html %]', must be + a positive integer. + + [% ELSIF error == "invalid_parameter" %] + [% title = "Invalid Parameter" %] + The new value for [% name FILTER html %] is invalid: [% err FILTER html %]. + + [% ELSIF error == "invalid_product_name" %] + [% title = "Invalid Product Name" %] + The product name '[% product FILTER html %]' is invalid or does not exist. + + [% ELSIF error == "invalid_regexp" %] + [% title = "Invalid regular expression" %] + The regular expression you entered is invalid. + + [% ELSIF error == "invalid_user_group" %] + [% title = "Invalid User Group" %] + [% 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 %]'. + [% ELSIF new %] + and may not be included on a new [% terms.bug %]. + [% ELSE %] + for at least one [% terms.bug %] being changed. + [% END %] + + [% 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 + registered for a [% terms.Bugzilla %] account. + + [% ELSIF error == "invalid_username_or_password" %] + [% title = "Invalid Username Or Password" %] + The username or password you entered is not valid. + [%# People get two login attempts before being warned about + # being locked out. + #%] + [% IF remaining <= 2 %] + If you do not enter the correct password after + [%+ remaining FILTER html %] more attempt(s), you will be + locked out of this account for + [%+ constants.LOGIN_LOCKOUT_INTERVAL FILTER html %] minutes. + [% END %] + + [% ELSIF error == "json_rpc_post_only" %] + For security reasons, you may only use JSON-RPC with the POST + HTTP method. + + [% 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. + + [% ELSIF error == "local_file_too_large" %] + [% title = "Local File Too Large" %] + Local file uploads must not exceed + [% Param('maxlocalattachment') %] MB in size. + + [% ELSIF error == "login_needed_for_password_change" %] + [% title = "Login Name Required" %] + You must enter a login name when requesting to change your password. + + [% ELSIF error == "login_required_for_pronoun" %] + [% title = "Login Name Required" %] + You can't use %user% without being logged in, because %user% refers + to your login name, which we don't know. + + [% ELSIF error == "login_required" %] + [%# Used for non-web-based LOGIN_REQUIRED situations. %] + You must log in before using this part of [% terms.Bugzilla %]. + + [% ELSIF error == "migrate_config_created" %] + The file <kbd>[% file FILTER html %]</kbd> contains configuration + variables that must be set before continuing with the migration. + + [% ELSIF error == "migrate_from_invalid" %] + '[% from FILTER html %]' is not a valid type of [% terms.bug %]-tracker + to migrate from. See the contents of the <kbd>B[% %]ugzilla/Migrate/</kbd> + directory for a list of valid [% terms.bug %]-trackers. + + [% ELSIF error == "milestone_already_exists" %] + [% title = "Milestone Already Exists" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'milestones.html' => 'About Milestones'} %] + 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. + + [% ELSIF error == "milestone_is_default" %] + [% title = "Default milestone not deletable" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'milestones.html' => 'About Milestones'} %] + Sorry, but [% milestone.name FILTER html %] is the default milestone + for the '[% milestone.product.name FILTER html %]' product, and so + it cannot be deleted. + + [% ELSIF error == "milestone_name_too_long" %] + [% title = "Milestone Name Is Too Long" %] + The name of a milestone is limited to [% constants.MAX_MILESTONE_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + + [% ELSIF error == "milestone_required" %] + [% title = "Milestone Required" %] + You must select a target milestone for [% terms.bug %] + [%+ bug.id FILTER html %] + if you are going to accept it. Part of accepting + [%+ terms.abug %] is giving an estimate of when it will be fixed. + + [% ELSIF error == "milestone_sortkey_invalid" %] + [% title = "Invalid Milestone Sortkey" %] + The sortkey '[% sortkey FILTER html %]' is not in the range + [%+ constants.MIN_SMALLINT FILTER html %] ≤ sortkey ≤ + [%+ constants.MAX_SMALLINT FILTER html %]. + + [% ELSIF error == "misarranged_dates" %] + [% title = "Misarranged Dates" %] + Your start date ([% datefrom FILTER html %]) is after + your end date ([% dateto FILTER html %]). + + [% ELSIF error == "missing_attachment_description" %] + [% title = "Missing Attachment Description" %] + You must enter a description for the attachment. + + [% ELSIF error == "missing_category" %] + [% title = "Missing Category" %] + You did not specify a category for this series. + + [% ELSIF error == "missing_component" %] + [% title = "Missing Component" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'components.html' => 'Creating a component'} %] + Sorry, the product <em>[% product.name FILTER html %]</em> + has to have at least one component in order for you to + enter [% terms.abug %] into it.<br> + [% IF user.in_group("editcomponents", product.id) %] + <a href="editcomponents.cgi?action=add&product=[% product.name FILTER url_quote %]">Create + a new component</a>. + [% ELSE %] + Please contact [% Param("maintainer") %] and ask them + to add a component to this product. + [% END %] + + [% ELSIF error == "missing_content_type" %] + [% title = "Missing Content-Type" %] + You asked [% terms.Bugzilla %] to auto-detect the content type, but + 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>. + + [% 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 + again from the <a href="query.cgi">search page</a>. + + [% ELSIF error == "missing_datasets" %] + [% title = "No Datasets Selected" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You must specify one or more datasets to plot. + + [% ELSIF error == "missing_frequency" %] + [% title = "Missing Frequency" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You did not specify a valid frequency for this series. + + [% ELSIF error == "missing_name" %] + [% title = "Missing Name" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You did not specify a name for this series. + + [% ELSIF error == "missing_query" %] + [% title = "Missing Search" %] + [% docslinks = {'query.html' => "Searching for $terms.bugs", + 'query.html#list' => "$terms.Bug lists"} %] + The search named <em>[% queryname FILTER html %]</em> + [% IF sharer_id && sharer_id != user.id %] + has not been made visible to you. + [% ELSE %] + does not exist. + [% END %] + + [% ELSIF error == "missing_resolution" %] + [% title = "Resolution Required" %] + A valid resolution is required to mark [% terms.bugs %] as + [%+ status FILTER upper FILTER html %]. + + [% 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") %]. + + [% ELSIF error == "missing_subcategory" %] + [% title = "Missing Subcategory" %] + You did not specify a subcategory for this series. + + [% ELSIF error == "missing_version" %] + [% title = "Missing Version" %] + [% admindocslinks = {'versions.html' => 'Defining versions'} %] + Sorry, the product <em>[% product.name FILTER html %]</em> + has to have at least one version in order for you to + enter [% terms.abug %] into it.<br> + [% IF user.in_group("editcomponents", product.id) %] + <a href="editversions.cgi?action=add&product=[% product.name FILTER url_quote %]">Create + a new version</a>. + [% ELSE %] + Please contact [% Param("maintainer") %] and ask them + to add a version to this product. + [% END %] + + [% ELSIF error == "need_quip" %] + [% title = "Quip Required" %] + [% docslinks = {'quips.html' => 'About quips'} %] + Please enter a quip in the text field. + + [% ELSIF error == "new_password_missing" %] + [% title = "New Password Missing" %] + You must enter a new password. + + [% ELSIF error == "no_axes_defined" %] + [% title = "No Axes Defined" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You didn't define any axes to plot. + + [% ELSIF error == "no_bugs_chosen" %] + [% title = BLOCK %]No [% terms.Bugs %] Selected[% END %] + You apparently didn't choose any [% terms.bugs %] + [% IF action == "modify" %] + to modify. + [% ELSIF action == "view" %] + to view. + [% END %] + + [% ELSIF error == "no_bug_ids" %] + [% title = BLOCK %]No [% terms.Bugs %] Selected[% END %] + You didn't choose any [% terms.bugs %] to + [% IF action == "add" %] add to [% ELSE %] remove from [% END %] + the [% tag FILTER html %] tag. + + [% ELSIF error == "no_bugs_in_list" %] + [% title = "Delete Tag?" %] + This will remove all [% terms.bugs %] from the + <em>[% name FILTER html %]</em> tag. This will delete the tag completely. Click + <a href="buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd= + [%- name FILTER url_quote %]&token= + [%- issue_hash_token([query_id, name]) FILTER url_quote %]">here</a> + if you really want to delete it. + + [% ELSIF error == "no_bugs_to_remove" %] + [% title = "No Tag Selected" %] + You didn't select a tag from which to remove [% terms.bugs %]. + + [% 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") %]. + + [% ELSIF error == "no_new_quips" %] + [% title = "No New Quips" %] + [% admindocslinks = {'quips.html' => 'Controlling quip usage'} %] + This site does not permit the addition of new quips. + + [% ELSIF error == "no_page_specified" %] + [% title = "No Page Specified" %] + You did not specify the id of a page to display. + + [% ELSIF error == "no_products" %] + [% title = "No Products" %] + [% admindocslinks = {'products.html' => 'Setting up a product', + 'components.html' => 'Adding components to products', + 'groups.html' => 'Groups security'} %] + Either no products have been defined to enter [% terms.bugs %] against or you have not + been given access to any. + + [% ELSIF error == "no_valid_action" %] + [% title = "No valid action specified" %] + Cannot edit [% field_descs.$field FILTER html %]: no valid action was specified. + + [% 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 %]'. + + [% ELSIF error == "object_not_specified" %] + [% type = BLOCK %][% INCLUDE object_name class = class %][% 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 %][% INCLUDE object_name class = class %][% END %] + [% title = BLOCK %]Invalid [% type FILTER ucfirst FILTER html %][% END %] + There is no [% type FILTER html %] + [% IF id.defined %] + with the id '[% id FILTER html %]' + [% ELSE %] + named '[% name FILTER html %]' + [% END %] + [% 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 %] + + [% ELSIF error == "old_password_incorrect" %] + [% title = "Incorrect Old Password" %] + You did not enter your old password correctly. + + [% ELSIF error == "old_password_required" %] + [% title = "Old Password Required" %] + You must enter your old password to change your email address. + + [% ELSIF error == "password_change_requests_not_allowed" %] + [% title = "Password Change Requests Not Allowed" %] + Please go to: http://identity.mageia.org/ to change or recover your password. + + [% ELSIF error == "passwords_dont_match" %] + [% title = "Passwords Don't Match" %] + The two passwords you entered did not match. + + [% ELSIF error == "password_too_short" %] + [% title = "Password Too Short" %] + The password must be at least + [%+ constants.USER_PASSWORD_MIN_LENGTH FILTER html %] characters long. + + [% ELSIF error == "patch_too_large" %] + [% title = "File Too Large" %] + The file you are trying to attach is [% filesize FILTER html %] + kilobytes (KB) in size. + Patches cannot be more than [% Param('maxattachmentsize') %] KB in size. + Try splitting your patch into several pieces. + + [% ELSIF error == "product_access_denied" %] + Either the product + [%+ IF id.defined %] + with the id [% id FILTER html %] + [% ELSE %] + '[% name FILTER html %]' + [% END %] + does not exist or you don't have access to it. + + [% ELSIF error == "product_doesnt_exist" %] + [% title = "Specified Product Does Not Exist" %] + The product '[% product FILTER html %]' does not exist. + + [% ELSIF error == "product_illegal_group" %] + [% title = "Illegal Group" %] + [% group.name FILTER html %] is not an active [% terms.bug %] group + and so you cannot edit group controls for it. + + [% ELSIF error == "product_illegal_votes" %] + [% title = "Votes Must Be Non-negative" %] + [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] + '[% votes FILTER html %]' is an invalid value for the + <em> + [% IF field == "votesperuser" %] + Votes Per User + [% ELSIF field == "maxvotesperbug" %] + Maximum Votes Per [% terms.Bug %] + [% ELSIF field == "votestoconfirm" %] + Votes To Confirm + [% END %] + </em> field, which should contain a non-negative number. + + [% ELSIF error == "product_name_already_in_use" %] + [% title = "Product name already exists" %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + The product name '[% product FILTER html %]' already exists. + + [% ELSIF error == "product_name_diff_in_case" %] + [% title = "Product name differs only in case" %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + The product name '[% product FILTER html %]' differs from existing + product '[% existing_product FILTER html %]' only in case. + + [% ELSIF error == "product_name_too_long" %] + [% title = "Product name too long" %] + The name of a product is limited to [% constants.MAX_PRODUCT_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + + [% ELSIF error == "product_must_define_defaultmilestone" %] + [% title = "Must define new default milestone" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'milestones.html' => 'About Milestones'} %] + You must <a href="editmilestones.cgi?action=add&product=[% product FILTER url_quote %]"> + create the milestone '[% milestone FILTER html %]'</a> before + it can be made the default milestone for product '[% product FILTER html %]'. + + [% ELSIF error == "product_admin_denied" %] + [% title = "Product Access Denied" %] + You are not allowed to edit properties of product '[% product FILTER html %]'. + + [% ELSIF error == "product_blank_name" %] + [% title = "Blank Product Name Not Allowed" %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + You must enter a name for the product. + + [% ELSIF error == "product_disabled" %] + [% title = BLOCK %]Product closed for [% terms.Bug %] Entry[% END %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + Sorry, entering [% terms.abug %] into the + product <em>[% product.name FILTER html %]</em> has been disabled. + + [% ELSIF error == "product_edit_denied" %] + [% title = "Product Edit Access Denied" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'groups.html' => 'Group security'} %] + You are not permitted to edit [% terms.bugs %] in product + [%+ product FILTER html %]. + + [% ELSIF error == "product_has_bugs" %] + [% title = BLOCK %]Product has [% terms.Bugs %][% END %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + There are [% nb FILTER html %] [%+ terms.bugs %] entered for this product! + You must move those [% terms.bugs %] to another product before you + can delete this one. + + [% ELSIF error == "product_must_have_description" %] + [% title = "Product needs Description" %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + You must enter a description for this product. + + [% ELSIF error == "product_must_have_version" %] + [% title = "Product needs Version" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'versions.html' => 'Administering versions'} %] + You must enter a valid version to create a new product. + + [% ELSIF error == "product_not_specified" %] + [% title = "No Product Specified" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'components.html' => 'Administering components', + 'milestones.html' => 'Administering milestones', + 'versions.html' => 'Administering versions'} %] + No product specified when trying to edit components, milestones, versions + or product. + + [% 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&remaction=forget&namedcmd= + [%- name FILTER url_quote %]&token= + [% issue_hash_token([query_id, name]) FILTER url_quote %]">delete</a> + it if you really want to use this name. + + [% ELSIF error == "query_name_missing" %] + [% title = "No Search Name Specified" %] + [% docslinks = {'query.html#list' => "$terms.Bug lists"} %] + You must enter a name for your search. + + [% ELSIF error == "query_name_too_long" %] + [% title = "Query Name Too Long" %] + The name of the query must be less than [% constants.MAX_LEN_QUERY_NAME FILTER html %] + characters long. + + [% ELSIF error == "quicksearch_unknown_field" %] + [% title = "QuickSearch Error" %] + There is a problem with your search: + [% FOREACH field = unknown %] + <p><code>[% field FILTER html %]</code> is not a valid field name.</p> + [% END %] + [% FOREACH field = ambiguous.keys %] + <p><code>[% field FILTER html %]</code> matches more than one field: + [%+ ambiguous.${field}.join(', ') FILTER html %]</p> + [% END %] + + [% IF unknown.size %] + <p>The legal field names are + <a href="page.cgi?id=quicksearch.html#fields">listed here</a>.</p> + [% END %] + + [% ELSIF error == "reassign_to_empty" %] + [% title = "Illegal Reassignment" %] + To reassign [% terms.abug %], you must provide an address for + the new assignee. + + [% ELSIF error == "require_component" %] + [% title = "Component Needed" %] + To file this [% terms.bug %], you must first choose a component. + If necessary, just guess. + + [% ELSIF error == "require_new_password" %] + [% title = "New Password Needed" %] + You cannot change your password without choosing a new one. + + [% ELSIF error == "require_summary" %] + [% title = "Summary Needed" %] + You must enter a summary for this [% terms.bug %]. + + [% ELSIF error == "resolution_cant_clear" %] + [% terms.Bug %] [%+ bug_id FILTER bug_link(bug_id) FILTER none %] is + closed, so you cannot clear its resolution. + + [% ELSIF error == "resolution_not_allowed" %] + [% title = "Resolution Not Allowed" %] + You cannot set a resolution for open [% terms.bugs %]. + + [% ELSIF error == "saved_search_used_by_whines" %] + [% title = "Saved Search In Use" %] + [% docslinks = {'whining.html' => 'About Whining'} %] + 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 %] + + [% 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. + + [% ELSIF error == "series_already_exists" %] + [% title = "Series Already Exists" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + A series named <em>[% series.category FILTER html %] / + [%+ series.subcategory FILTER html %] / + [%+ series.name FILTER html %]</em> + already exists. + + [% ELSIF error == "sidebar_supports_mozilla_only" %] + Sorry - sidebar.cgi currently only supports Mozilla based web browsers. + <a href="http://www.mozilla.org">Upgrade today</a>. :-) + + [% ELSIF error == "still_unresolved_bugs" %] + [% IF dependency_count == 1 %] + [% terms.Bug %]# <a href="show_bug.cgi?id=[% dependencies.0.bug_id FILTER none %]">[% dependencies.0.bug_id FILTER none %]</a> + still has [% dependencies.0.dependencies FILTER html %] unresolved + [% IF dependencies.0.dependencies == 1 %] + dependency + [% ELSE %] + dependencies + [% END %]. Show + <a href="showdependencytree.cgi?id=[% dependencies.0.bug_id FILTER none %]&hide_resolved=1">Dependency + Tree</a>. + [% ELSE %] + There are [% dependency_count FILTER none %] open [% terms.bugs %] which + have unresolved dependencies. + <br> + [% FOREACH bug = dependencies %] + [% terms.Bug %]# <a href="show_bug.cgi?id=[% bug.bug_id FILTER none %]">[% bug.bug_id FILTER none %]</a> + has [% bug.dependencies FILTER html %] open + [% IF bug.dependencies == 1 %] + dependency. + [% ELSE %] + dependencies. + [% END %] + (<a href="showdependencytree.cgi?id=[% bug.bug_id FILTER none %]&hide_resolved=1">Dependency + Tree</a>)<br> + [% END %] + [% END %] + + [% ELSIF error == "sudo_invalid_cookie" %] + [% title = "Invalid Sudo Cookie" %] + Your sudo cookie is invalid. Either it expired or you didn't start + a sudo session correctly. Refresh the page or load another page + to continue what you are doing as yourself. + + [% ELSIF error == "sudo_illegal_action" %] + [% title = "Impersonation Not Authorized" %] + [% IF NOT sudoer.in_group("bz_sudoers") %] + You are not allowed to impersonate users. + [% ELSIF target_user AND target_user.in_group("bz_sudo_protect") %] + You are not allowed to impersonate [% target_user.identity FILTER html %]. + [% ELSE %] + The user you tried to impersonate doesn't exist. + [% END %] + + [% ELSIF error == "sudo_in_progress" %] + [% title = "Session In Progress" %] + A sudo session (impersonating [% target FILTER html %]) is in progress. + End that session (using the link in the footer) before starting a new one. + + [% 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= + [%- reason FILTER html %]">go back</a> and enter your password. + + [% 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>. + + [% ELSIF error == "sudo_protected" %] + [% title = "User Protected" %] + The user [% login FILTER html %] may not be impersonated by sudoers. + + [% ELSIF error == "too_many_votes_for_bug" %] + [% title = "Illegal Vote" %] + [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] + You may only use at most [% max FILTER html %] votes for a single + [%+ terms.bug %] in the + <tt>[% product FILTER html %]</tt> product, but you are trying to + use [% votes FILTER html %]. + + [% ELSIF error == "too_many_votes_for_product" %] + [% title = "Illegal Vote" %] + [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] + 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. + + [% ELSIF error == "token_does_not_exist" %] + [% title = "Token Does Not Exist" %] + The token you submitted does not exist, has expired, or has + been canceled. + + [% ELSIF error == "too_soon_for_new_token" %] + [% title = "Too Soon For New Token" %] + 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. + + [% ELSIF error == "unknown_keyword" %] + [% title = "Unknown Keyword" %] + <code>[% keyword FILTER html %]</code> is not a known keyword. + The legal keyword names are <a href="describekeywords.cgi">listed here</a>. + + [% ELSIF error == "unknown_tab" %] + [% title = "Unknown Tab" %] + <code>[% current_tab_name FILTER html %]</code> is not a legal tab name. + + [% ELSIF error == "version_already_exists" %] + [% title = "Version Already Exists" %] + [% admindocslinks = {'versions.html' => 'Administering versions'} %] + 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. + + [% 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. + + [% ELSIF error == "users_deletion_disabled" %] + [% title = "Deletion not activated" %] + [% admindocslinks = {'useradmin.html' => 'User administration'} %] + Sorry, the deletion of user accounts is not allowed. + + [% ELSIF error == "user_has_responsibility" %] + [% title = "Can't Delete User Account" %] + [% admindocslinks = {'useradmin.html' => 'User administration'} %] + 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. + For this reason, you cannot delete the account at this time. + + [% ELSIF error == "user_access_by_id_denied" %] + [% title = "User Access By Id Denied" %] + Logged-out users cannot use the "ids" argument to this function + to access any user information. + + [% ELSIF error == "user_access_by_match_denied" %] + [% title = "User-Matching Denied" %] + Logged-out users cannot use the "match" argument to this function + to access any user information. + + [% ELSIF error == "user_login_required" %] + [% title = "Login Name Required" %] + [% admindocslinks = {'useradmin.html' => 'User administration'} %] + You must enter a login name for the new user. + + [% 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. + + [% ELSIF error == "user_match_too_many" %] + [% title = "No Conclusive Match" %] + [% terms.Bugzilla %] cannot make a conclusive match for one or more + of the names and/or email addresses you entered for + the [% fields.join(', ') FILTER html %] field(s). + + [% ELSIF error == "user_not_insider" %] + [% title = "User Not In Insidergroup" %] + Sorry, but you are not allowed to (un)mark comments or attachments + as private. + + [% ELSIF error == "votes_must_be_nonnegative" %] + [% title = "Votes Must Be Non-negative" %] + [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] + Only use non-negative numbers for your [% terms.bug %] votes. + + [% 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. + + [% ELSIF error == "wrong_token_for_creating_account" %] + [% title = "Wrong Token" %] + That token cannot be used to create a user account. + + [% ELSIF error == "xmlrpc_invalid_value" %] + "[% value FILTER html %]" is not a valid value for a + <[% type FILTER html %]> field. (See the XML-RPC specification + for details.) + + [% ELSIF error == "zero_length_file" %] + [% title = "File Is Empty" %] + The file you are trying to attach is empty, does not exist, or you don't + have permission to read it. + + [% ELSIF error == "illegal_user_id" %] + [% title = "Illegal User ID" %] + User ID '[% userid FILTER html %]' is not valid integer. + + [% ELSE %] + + [%# 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 %] + [% END %] +[% END %] + +[%# We only want HTML error messages for ERROR_MODE_WEBPAGE %] +[% USE Bugzilla %] +[% IF Bugzilla.error_mode != constants.ERROR_MODE_WEBPAGE %] + [% IF Bugzilla.usage_mode == constants.USAGE_MODE_BROWSER %] + [% error_message FILTER none %] + [% ELSE %] + [% error_message FILTER txt %] + [% END %] + [% RETURN %] +[% END %] + +[% UNLESS header_done %] + [% PROCESS global/header.html.tmpl %] +[% END %] + +[% PROCESS global/docslinks.html.tmpl + docslinks = docslinks + admindocslinks = admindocslinks +%] + +<table cellpadding="20"> + <tr> + <td id="error_msg" class="throw_error"> + [% error_message FILTER none %] + </td> + </tr> +</table> + +<p> + Please press <b>Back</b> and try again. +</p> + +[%# 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. %] + +[% namedcmd = Bugzilla.cgi.param("namedcmd") %] +[% sharer_id = Bugzilla.cgi.param("sharer_id") %] +[% IF namedcmd AND error != "missing_query" + AND error != "saved_search_used_by_whines" + AND !sharer_id %] + <p> + Alternatively, you can + <a href="buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd= + [% namedcmd FILTER url_quote %]">forget</a> + + [% FOREACH q = Bugzilla.user.queries %] + [% IF q.name == namedcmd %] + or <a href="query.cgi?[% q.url FILTER html %]">edit</a> + [% END %] + [% END %] + + the saved search '[% namedcmd FILTER html %]'. + </p> +[% END %] + +[% PROCESS global/footer.html.tmpl %] + +[% BLOCK object_name %] + [% IF class == "Bugzilla::Attachment" %] + attachment + [% ELSIF class == "Bugzilla::User" %] + user + [% ELSIF class == "Bugzilla::Component" %] + component + [% ELSIF class == "Bugzilla::Version" %] + version + [% ELSIF class == "Bugzilla::Milestone" %] + milestone + [% ELSIF class == "Bugzilla::Status" %] + status + [% ELSIF class == "Bugzilla::Flag" %] + flag + [% ELSIF class == "Bugzilla::FlagType" %] + flagtype + [% ELSIF class == "Bugzilla::Field" %] + field + [% ELSIF class == "Bugzilla::Group" %] + group + [% ELSIF class == "Bugzilla::Product" %] + product + [% ELSIF class == "Bugzilla::Search::Saved" %] + saved search + [% ELSIF ( matches = class.match('^Bugzilla::Field::Choice::(.+)') ) %] + [% SET field_name = matches.0 %] + [% field_descs.$field_name FILTER html %] + [% END %] +[% END %] diff --git a/template/en/default/global/user.html.tmpl b/template/en/default/global/user.html.tmpl new file mode 100644 index 0000000..df902b4 --- /dev/null +++ b/template/en/default/global/user.html.tmpl @@ -0,0 +1,39 @@ +[%# 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 Daniel Brooks. + # Portions created by the Initial Developer are Copyright (C) 2007 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Daniel Brooks <db48x@db48x.net> + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # who: A Bugzilla::User object that we are going to represent. + #%] + +<span class="vcard"> + [% FILTER collapse %] + [% IF user.id %] + <a class="email" href="mailto:[% who.email FILTER html %]" + title="[% who.identity FILTER html %]"> + [%- END -%] + [% IF who.name %] + <span class="fn">[% who.name FILTER html %]</span> + [% ELSE %] + [% who.login FILTER email FILTER html %] + [% END %] + [% '</a>' IF user.id %] + [% END %] +</span> diff --git a/template/en/default/global/userselect.html.tmpl b/template/en/default/global/userselect.html.tmpl new file mode 100644 index 0000000..35075ef --- /dev/null +++ b/template/en/default/global/userselect.html.tmpl @@ -0,0 +1,83 @@ +[%# 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. + # + # Contributor(s): Byron Jones <bugzilla@glob.com.au> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # name: mandatory; field name + # id: optional; field id + # value: optional; default field value/selection + # onchange: optional; onchange attribute value + # disabled: optional; if true, the field is disabled + # accesskey: optional, input only; accesskey attribute value + # size: optional, input only; size attribute value + # emptyok: optional, select only; if true, prepend menu option to start of select + # multiple: optional, do multiselect box, value is size (height) of box + # custom_userlist: optional, specify a limited list of users to use + #%] + +[% IF Param("usemenuforusers") %] +<select name="[% name FILTER html %]" + [% IF id %] id="[% id FILTER html %]" [% END %] + [% IF onchange %] onchange="[% onchange FILTER html %]" [% END %] + [% IF disabled %] disabled="[% disabled FILTER html %]" [% END %] + [% IF accesskey %] accesskey="[% accesskey FILTER html %]" [% END %] + [% IF multiple %] multiple="multiple" size="[% multiple FILTER html %]" [% END %] +> + [% IF emptyok %] + <option value=""></option> + [% END %] + + [% UNLESS custom_userlist %] + [% custom_userlist = user.get_userlist %] + [% END %] + + [% SET selected = {} %] + [% IF value.defined %] + [% FOREACH selected_value IN value.split(', ') %] + [% SET selected.$selected_value = 1 %] + [% END %] + [% END %] + + [% FOREACH tmpuser = custom_userlist %] + [% IF tmpuser.visible OR selected.${tmpuser.login} == 1 %] + <option value="[% tmpuser.login FILTER html %]" + [% IF selected.${tmpuser.login} == 1 %] + selected="selected" + [%# A user account appears only once. Remove it from the list, so that + # we know if there are some selected accounts which have not been listed. %] + [% selected.delete(tmpuser.login) %] + [% END %] + >[% tmpuser.identity FILTER html %]</option> + [% END %] + [% END %] + + [%# If the list is not empty, this means some accounts have not been mentioned yet. %] + [% FOREACH selected_user = selected.keys %] + <option value="[% selected_user FILTER html %]" selected="selected">[% selected_user FILTER html %]</option> + [% END %] +</select> +[% ELSE %] +<input + name="[% name FILTER html %]" + value="[% value FILTER html %]" + [% IF onchange %] onchange="[% onchange FILTER html %]" [% END %] + [% IF disabled %] disabled="[% disabled FILTER html %]" [% END %] + [% IF accesskey %] accesskey="[% accesskey FILTER html %]" [% END %] + [% IF size %] size="[% size FILTER html %]" [% END %] + [% IF id %] id="[% id FILTER html %]" [% END %] +> +[% END %] + + diff --git a/template/en/default/global/variables.none.tmpl b/template/en/default/global/variables.none.tmpl new file mode 100644 index 0000000..dd7281e --- /dev/null +++ b/template/en/default/global/variables.none.tmpl @@ -0,0 +1,42 @@ +[%# 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): + #%] + +[%# This is a list of terms that may be changed to "brand" the Bugzilla + # instance (for example, referring to "bugs" as "issues".) When used, these + # strings are used in several different types of content, and are not + # protected with Template-Toolkit FILTERs. Consequently, no special + # characters are allowed. + # + # Remember to PROCESS rather than INCLUDE this template. + #%] + +[% terms = { + "bug" => "bug", + "Bug" => "Bug", + "abug" => "a bug", + "Abug" => "A bug", + "aBug" => "a Bug", + "ABug" => "A Bug", + "bugs" => "bugs", + "Bugs" => "Bugs", + "zeroSearchResults" => "Zarro Boogs found", + "Bugzilla" => "Bugzilla" + } +%] |