diff options
author | Dexter Morgan <dmorgan@mageia.org> | 2013-02-20 16:07:49 +0000 |
---|---|---|
committer | Colin Guthrie <colin@mageia.org> | 2014-09-15 20:44:40 +0100 |
commit | ba702dcd7ac9b2e6c4d46ad21c7bfacfd6883189 (patch) | |
tree | ece0d9c9d8fa1eff83f8527397da6b2c8c755dd6 /template/en/default/global | |
parent | 48a4cb57974b7f1932c3fe31825c02e4dc4ab30c (diff) | |
download | bugzilla-ba702dcd7ac9b2e6c4d46ad21c7bfacfd6883189.tar bugzilla-ba702dcd7ac9b2e6c4d46ad21c7bfacfd6883189.tar.gz bugzilla-ba702dcd7ac9b2e6c4d46ad21c7bfacfd6883189.tar.bz2 bugzilla-ba702dcd7ac9b2e6c4d46ad21c7bfacfd6883189.tar.xz bugzilla-ba702dcd7ac9b2e6c4d46ad21c7bfacfd6883189.zip |
Add 4.0 branch
Diffstat (limited to 'template/en/default/global')
19 files changed, 445 insertions, 342 deletions
diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl index 753695b..54e05f6 100644 --- a/template/en/default/global/code-error.html.tmpl +++ b/template/en/default/global/code-error.html.tmpl @@ -37,17 +37,7 @@ [% 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" %] + [% IF error == "attachment_local_storage_disabled" %] [% title = "Local Storage Disabled" %] You cannot store attachments locally. This feature is disabled. @@ -139,7 +129,7 @@ [% ELSIF error == "db_rename_conflict" %] Name conflict: Cannot rename [% old FILTER html %] to - [% new FILTER html %] because [% new FILTER html %] already exists. + [%+ new FILTER html %] because [% new FILTER html %] already exists. [% ELSIF error == "cookies_need_value" %] Every cookie must have a value. @@ -156,6 +146,11 @@ address. [% END %] + [% ELSIF error == "extension_disabled" %] + [% title = "Extension Disabled" %] + You cannot access this page because the extension '[% name FILTER html %]' + is disabled. + [% ELSIF error == "extension_must_be_subclass" %] <code>[% package FILTER html %]</code> from <code>[% filename FILTER html %]</code> is not a subclass of @@ -216,13 +211,9 @@ [% 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. + [%+ attach_id FILTER html %], is invalid. [% ELSIF error == "invalid_customfield_type" %] [% title = "Invalid Field Type" %] @@ -260,7 +251,7 @@ 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 %]. + [%+ terms.bug %] [%+ my_bug_id FILTER html %]. [% ELSIF error == "feature_disabled" %] The [% install_string("feature_$feature") FILTER html %] feature is not @@ -281,13 +272,6 @@ 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 @@ -356,7 +340,7 @@ [% 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 %] + [%+ msg FILTER html %] [% ELSIF error == "missing_bug_id" %] No [% terms.bug %] ID was given. @@ -370,14 +354,10 @@ [% 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 == "object_dep_sort_loop" %] + There is a loop in VALIDATOR_DEPENDENCIES involving + '[%+ field FILTER html %]'. Here are the fields we considered: + [%+ considered.join(', ') FILTER html %]. [% ELSIF error == "param_invalid" %] [% title = "Invalid Parameter" %] @@ -431,9 +411,6 @@ 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 @@ -443,7 +420,7 @@ [% 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. + value/sortindex pairs, and the default value. [% ELSIF error == "setting_name_invalid" %] The setting name <em>[% name FILTER html %]</em> is not a valid @@ -473,13 +450,6 @@ [% 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. @@ -562,6 +532,9 @@ </tr> </table> +<p>Traceback:</p> +<pre>[% traceback FILTER html %]</pre> + [% IF variables %] <pre> Variables: diff --git a/template/en/default/global/common-links.html.tmpl b/template/en/default/global/common-links.html.tmpl index a0d080a..6f99a64 100644 --- a/template/en/default/global/common-links.html.tmpl +++ b/template/en/default/global/common-links.html.tmpl @@ -24,7 +24,7 @@ <ul class="links"> <li><a href="./">Home</a></li> - <li><span class="separator">| </span><a href="enter_bug.cgi?format=guided&classification=__all">New</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> @@ -34,7 +34,8 @@ 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="txt" type="text" id="quicksearch[% qs_suffix FILTER html %]" name="quicksearch" + value="[% quicksearch FILTER html %]"> <input class="btn" type="submit" value="Search" id="find[% qs_suffix FILTER html %]"> [%-# Work around FF bug: keep this on one line %]</form> diff --git a/template/en/default/global/confirm-action.html.tmpl b/template/en/default/global/confirm-action.html.tmpl index e57a83c..9f9be31 100644 --- a/template/en/default/global/confirm-action.html.tmpl +++ b/template/en/default/global/confirm-action.html.tmpl @@ -27,6 +27,7 @@ style_urls = ['skins/standard/global.css'] %] <div class="throw_error"> +<!--reason=[%reason FILTER html %]--> [% 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 diff --git a/template/en/default/global/confirm-user-match.html.tmpl b/template/en/default/global/confirm-user-match.html.tmpl index 67a901f..5549b51 100644 --- a/template/en/default/global/confirm-user-match.html.tmpl +++ b/template/en/default/global/confirm-user-match.html.tmpl @@ -150,6 +150,8 @@ [% ELSE %] matched <b>[% query.value.users.0.identity FILTER html %]</b> + <input type="hidden" name="[% field.key FILTER html %]" + value="[% query.value.users.0.login FILTER html %]"> [% END %] [% ELSE %] [% IF (query.key.length < 3) && !Param('emailsuffix') %] @@ -174,7 +176,10 @@ [% IF matchsuccess == 1 %] - [% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %] + [% SET exclude_these = + matches.keys.merge(['Bugzilla_login', 'Bugzilla_password']) %] + [% SET exclude = '^' _ exclude_these.join('|') _ '$' %] + [% PROCESS "global/hidden-fields.html.tmpl" exclude = exclude %] <p> <input type="submit" id="continue" value="Continue"> diff --git a/template/en/default/global/field-descs.none.tmpl b/template/en/default/global/field-descs.none.tmpl index 0c17e57..57af42a 100644 --- a/template/en/default/global/field-descs.none.tmpl +++ b/template/en/default/global/field-descs.none.tmpl @@ -68,13 +68,13 @@ [% value_descs = { "bug_status" => { # "UNCONFIRMED" => "UNCO", - # "NEW" => "NEWISH", + # "CONFIRMED" => "ITSABUG", }, "resolution" => { "" => "---", - # "FIXED" => "NO LONGER AN ISSUE", - # "MOVED" => "BYE-BYE", + # "FIXED" => "NO LONGER AN ISSUE", + # "WORKSFORME" => "NOTMYPROBLEM!", }, } %] @@ -100,6 +100,7 @@ "actual_time" => "Actual Hours", "alias" => "Alias", "assigned_to" => "Assignee", + "assigned_to_realname" => "Assignee Real Name", "attach_data.thedata" => "Attachment data", "attachments.description" => "Attachment description", "attachments.filename" => "Attachment filename", @@ -124,6 +125,7 @@ "component" => "Component", "content" => "Content", "creation_ts" => "Creation date", + "days_elapsed" => "Days since $terms.bug changed", "deadline" => "Deadline", "delta_ts" => "Changed", "dependson" => "Depends on", @@ -143,10 +145,12 @@ "product_id" => "Product ID", "product" => "Product", "qa_contact" => "QA Contact", + "qa_contact_realname" => "QA Contact Real Name", "remaining_time" => "Hours Left", "rep_platform" => "Hardware", "reporter" => "Reporter", "reporter_accessible" => "Reporter accessible", + "reporter_realname" => "Reporter Real Name", "requestees.login_name" => "Flag Requestee", "resolution" => "Resolution", "see_also" => "See Also", @@ -157,7 +161,6 @@ "status_whiteboard" => "Whiteboard", "target_milestone" => "Target Milestone", "version" => "Version", - "votes" => "Votes" "work_time" => "Hours Worked", } %] @@ -171,6 +174,8 @@ IF !vars.field_descs.${bz_field.name}.defined %] [% END %] [% END %] + + [% PROCESS "bug/field-help.none.tmpl" %] [% END %] [% Hook.process("end") %] diff --git a/template/en/default/global/footer.html.tmpl b/template/en/default/global/footer.html.tmpl index 0379f02..661f8af 100644 --- a/template/en/default/global/footer.html.tmpl +++ b/template/en/default/global/footer.html.tmpl @@ -33,7 +33,7 @@ #%] <div id="footer"> - <div class="intro"></div> + <div class="intro">[% Hook.process('intro') %]</div> [%# Migration note: the old param 'blurbhtml' goes here %] @@ -41,9 +41,11 @@ [% PROCESS "global/useful-links.html.tmpl" %] - <div class="outro"></div> + <div class="outro">[% Hook.process('outro') %]</div> </div> +[% Hook.process("end") %] + </body> </html> diff --git a/template/en/default/global/header.html.tmpl b/template/en/default/global/header.html.tmpl index 017701f..4030435 100644 --- a/template/en/default/global/header.html.tmpl +++ b/template/en/default/global/header.html.tmpl @@ -46,8 +46,41 @@ header_addl_info = "" onload = "" style_urls = [] + yui = [] %] +[% SET yui_css = { + autocomplete => 1, + calendar => 1, + datatable => 1, + button => 1, +} %] + +[%# Note: This is simple dependency resolution--you can't have dependencies + # that depend on each other. You have to specify all of a module's deps, + # if that module is going to be specified in "yui". + #%] +[% SET yui_deps = { + autocomplete => ['json', 'connection', 'datasource'], + datatable => ['json', 'connection', 'datasource', 'element'], +} %] + +[%# When using certain YUI modules, we need to process certain + # extra JS templates. + #%] +[% SET yui_templates = { + datatable => ['global/value-descs.js.tmpl'], +} %] + +[%# These are JS URLs that are *always* on the page and come before + # every other JS URL. + #%] +[% SET starting_js_urls = [ + "js/yui/yahoo-dom-event/yahoo-dom-event.js", + "js/yui/cookie/cookie-min.js", +] %] + + [%# 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 @@ -70,96 +103,33 @@ [% 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') %] + [% SET yui = yui_resolve_deps(yui, yui_deps) %] + [% SET css_sets = css_files(style_urls, yui, yui_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"> + [%# This allows people to switch back to the "Classic" skin if they + # are in another skin. + #%] + <link href="[% 'skins/standard/global.css' FILTER mtime FILTER html %]" + rel="alternate stylesheet" + title="[% setting_descs.standard FILTER html %]"> + [% FOREACH style_url = css_sets.standard %] + [% PROCESS format_css_link css_set_name = 'standard' %] [% 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. + [%# CSS cascade, part 2 & 3: Third-party stylesheet set (selected and + # selectable). All third-party skins are present as alternate + # stylesheets, even if they are not currently in use. #%] - [% 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]--> + [% FOREACH style_url = css_sets.skin %] + [% PROCESS format_css_link css_set_name = user.settings.skin.value %] [% 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]--> + [% FOREACH alternate_skin = css_sets.alternate.keys %] + [% FOREACH style_url = css_sets.alternate.$alternate_skin %] + [% PROCESS format_css_link css_set_name = alternate_skin %] [% END %] [% END %] @@ -175,29 +145,29 @@ # 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 %] + [% FOREACH style_url = css_sets.custom %] + [% PROCESS format_css_link css_set_name = 'standard' %] [% 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> + + [%# YUI Scripts %] + [% FOREACH yui_name = yui %] + [% starting_js_urls.push("js/yui/$yui_name/${yui_name}-min.js") %] + [% END %] + [% starting_js_urls.push('js/global.js') %] + + [% FOREACH javascript_url = starting_js_urls %] + [% PROCESS format_js_link %] + [% END %] + <script type="text/javascript"> <!-- YAHOO.namespace('bugzilla'); - if (YAHOO.env.ua.gecko) { + YAHOO.util.Event.addListener = function (el, sType, fn, obj, overrideContext) { + if ( ("onpagehide" in window || YAHOO.env.ua.gecko) && sType === "unload") { sType = "pagehide"; }; + var capture = ((sType == "focusin" || sType == "focusout") && !YAHOO.env.ua.ie) ? true : false; + return this._addListener(el, this._getType(sType), fn, obj, overrideContext, capture); + }; + if ( "onpagehide" in window || YAHOO.env.ua.gecko) { YAHOO.util.Event._simpleRemove(window, "unload", YAHOO.util.Event._unload); } @@ -219,24 +189,39 @@ #%] var BUGZILLA = { param: { - cookiepath: '[% Param('cookiepath') FILTER js %]' + cookiepath: '[% Param('cookiepath') FILTER js %]', + maxusermatches: [% Param('maxusermatches') FILTER js %] }, string: { + [%# Please keep these in alphabetical order. %] + attach_desc_required: - 'You must enter a Description for this attachment.' + 'You must enter a Description for this attachment.', + component_required: + 'You must select a Component for this [% terms.bug %].', + description_required: + 'You must enter a Description for this [% terms.bug %].', + short_desc_required: + 'You must enter a Summary for this [% terms.bug %].', + version_required: + 'You must select a Version for this [% terms.bug %].' } }; + + [% FOREACH yui_name = yui %] + [% FOREACH yui_template = yui_templates.$yui_name %] + [% PROCESS $yui_template %] + [% END %] + [% END %] [% IF javascript %] [% javascript %] [% END %] // --> </script> - [% IF javascript_urls %] - [% FOREACH javascript_url = javascript_urls %] - <script src="[% javascript_url FILTER html %]" type="text/javascript"></script> - [% END %] + [% FOREACH javascript_url = javascript_urls %] + [% PROCESS format_js_link %] [% END %] [%# this puts the live bookmark up on firefox for the Atom feed %] @@ -251,7 +236,6 @@ title="[% terms.Bugzilla %]" href="./search_plugin.cgi"> <link rel="icon" type="image/png" href="https://www.mageia.org/g/favicon.png"> [% Hook.process("additional_header") %] - <meta name="google-site-verification" content="upEZjJeSjjjVNCMOM2xZNi5PmRgMOY9SCtW3xmGY6nQ"> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(["_setAccount", "UA-18603191-3"]); @@ -274,13 +258,11 @@ class="[% urlbase.replace('^https?://','').replace('/$','').replace('[-~@:/.]+','-') %] [% FOREACH class = bodyclasses %] [% ' ' %][% class FILTER css_class_quote %] - [% END %]"> + [% END %] yui-skin-sam"> [%# Migration note: the following file corresponds to the old Param # 'bannerhtml' #%] - - [% PROCESS "global/mageia-global-navigation.html.tmpl" %] <div id="header"> @@ -337,3 +319,41 @@ [% IF message %] <div id="message">[% message %]</div> [% END %] + +[% BLOCK format_css_link %] + [% IF style_url.match('/IE-fixes\.css') %] + <!--[if lte IE 7]> + [%# Internet Explorer treats [if IE] HTML comments as uncommented. + # We use it to import CSS fixes so that Bugzilla looks decent on IE 7 + # and below. + #%] + [% END %] + + [% IF css_set_name == 'standard' + OR css_set_name == user.settings.skin.value + %] + [% SET css_rel = 'stylesheet' %] + [% SET css_set_display_name = setting_descs.${user.settings.skin.value} + || user.settings.skin.value %] + [% ELSE %] + [% SET css_rel = 'alternate stylesheet' %] + [% SET css_set_display_name = setting_descs.$css_set_name || css_set_name %] + [% END %] + + [% IF css_set_name == 'standard' %] + [% SET css_title_link = '' %] + [% ELSE %] + [% css_title_link = BLOCK ~%] + title="[% css_set_display_name FILTER html %]" + [% END %] + [% END %] + + <link href="[% style_url FILTER html %]" rel="[% css_rel FILTER none %]" + type="text/css" [% css_title_link FILTER none %]> + + [% '<![endif]-->' IF style_url.match('/IE-fixes\.css') %] +[% END %] + +[% BLOCK format_js_link %] + <script type="text/javascript" src="[% javascript_url FILTER mtime FILTER html %]"></script> +[% END %] diff --git a/template/en/default/global/help.html.tmpl b/template/en/default/global/help.html.tmpl index 36439bc..c0ff819 100644 --- a/template/en/default/global/help.html.tmpl +++ b/template/en/default/global/help.html.tmpl @@ -23,8 +23,9 @@ [% IF cgi.param("help") %] <script type="text/javascript"> <!-- - [% FOREACH h = help_html %] - g_helpTexts["[% h.id FILTER js %]"] = "[%- h.html FILTER js -%]"; + [% FOREACH help_name = help_html.keys %] + g_helpTexts["[% help_name FILTER js %]"] = + "[%- help_html.$help_name FILTER js -%]"; [% END %] // --> </script> diff --git a/template/en/default/global/hidden-fields.html.tmpl b/template/en/default/global/hidden-fields.html.tmpl index 24f15c4..c141c64 100644 --- a/template/en/default/global/hidden-fields.html.tmpl +++ b/template/en/default/global/hidden-fields.html.tmpl @@ -52,7 +52,7 @@ [% ELSE %] [% FOREACH mvalue = cgi.param(field).slice(0) %] <input type="hidden" name="[% field FILTER html %]" - value="[% mvalue FILTER html FILTER html_linebreak %]"> + value="[% mvalue FILTER html_linebreak %]"> [% END %] [% END %] [% END %] diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl index 7351aa0..52502a1 100644 --- a/template/en/default/global/messages.html.tmpl +++ b/template/en/default/global/messages.html.tmpl @@ -144,7 +144,7 @@ [% ELSIF message_tag == "buglist_query_gone" %] [% title = "Search is gone" %] - [% link = "Go back to the search page." %] + [% link = "Un-forget the search" %] OK, the <b>[% namedcmd FILTER html %]</b> search is gone. [% ELSIF message_tag == "buglist_sorted_by_relevance" %] @@ -455,10 +455,6 @@ [% 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" %] @@ -467,13 +463,7 @@ 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> + <li>Keyword renamed to <em>[% keyword.name FILTER html %]</em>.</li> [% END %] [% IF changes.description.defined %] <li>Description updated to <em>[% keyword.description FILTER html %]</em></li> @@ -568,7 +558,7 @@ [% 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> + <strong>You must now re-run <kbd>checksetup.pl</kbd>.</strong><br> [% END %] [% END %] [% ELSE %] @@ -658,7 +648,7 @@ [% 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.) + [%+ 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 @@ -725,6 +715,9 @@ Verify that the file permissions in your [% terms.Bugzilla %] directory are suitable for your system. Avoid unnecessary write access. + [% ELSIF message_tag == "install_workflow_init" %] + Setting up the default status workflow... + [% ELSIF message_tag == "product_created" %] [% title = "Product Created" %] The product <em>[% product.name FILTER html %]</em> has been created. You will need to @@ -836,6 +829,10 @@ No changes made to version <em>[% version.name FILTER html %]</em>. [% END %] + [% ELSIF message_tag == "whine_query_failed" %] + The query '[% query_name FILTER html %]' from [% author.login FILTER html %] + failed: [% reason FILTER html %] + [% ELSIF message_tag == "workflow_updated" %] The workflow has been updated. [% END %] diff --git a/template/en/default/global/per-bug-queries.html.tmpl b/template/en/default/global/per-bug-queries.html.tmpl index 3c62e35..a7c073b 100644 --- a/template/en/default/global/per-bug-queries.html.tmpl +++ b/template/en/default/global/per-bug-queries.html.tmpl @@ -63,6 +63,7 @@ <input type="hidden" name="cmdtype" value="doit"> <input type="hidden" name="remtype" value="asnamed"> <input type="hidden" name="list_of_bugs" value="1"> + <input type="hidden" name="token" value="[% issue_hash_token(['savedsearch']) FILTER html %]"> <select id="lob_action" name="action" onchange="update_text();"> <option value="add">Add</option> [% IF lists_of_bugs.size %] diff --git a/template/en/default/global/reason-descs.none.tmpl b/template/en/default/global/reason-descs.none.tmpl new file mode 100644 index 0000000..426085f --- /dev/null +++ b/template/en/default/global/reason-descs.none.tmpl @@ -0,0 +1,40 @@ +[%# 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 Everything Solved, Inc. + # Portions created by the Initial Developer are Copyright (C) 2010 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[% SET reason_descs = { + ${constants.REL_ASSIGNEE} => "You are the assignee for the ${terms.bug}.", + ${constants.REL_REPORTER} => "You reported the ${terms.bug}.", + ${constants.REL_QA} => "You are the QA Contact for the ${terms.bug}.", + ${constants.REL_CC} => "You are on the CC list for the ${terms.bug}.", + ${constants.REL_GLOBAL_WATCHER} => "You are watching all $terms.bug changes.", +} %] + +[% SET watch_reason_descs => { + ${constants.REL_ASSIGNEE} => + "You are watching the assignee of the ${terms.bug}.", + ${constants.REL_REPORTER} => + "You are watching the reporter of the ${terms.bug}.", + ${constants.REL_QA} => + "You are watching the QA Contact of the ${terms.bug}.", + ${constants.REL_CC} => + "You are watching someone on the CC list of the ${terms.bug}.", +} %] + +[% Hook.process('end') %] diff --git a/template/en/default/global/setting-descs.none.tmpl b/template/en/default/global/setting-descs.none.tmpl index 661334c..e96e316 100644 --- a/template/en/default/global/setting-descs.none.tmpl +++ b/template/en/default/global/setting-descs.none.tmpl @@ -43,6 +43,9 @@ "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", + "comment_box_position" => "Position of the Additional Comments box", + "before_comments" => "Before other comments", + "after_comments" => "After other comments", "timezone" => "Timezone used to display dates and times", "local" => "Same as the server", } diff --git a/template/en/default/global/site-navigation.html.tmpl b/template/en/default/global/site-navigation.html.tmpl index df60b76..60a8ddf 100644 --- a/template/en/default/global/site-navigation.html.tmpl +++ b/template/en/default/global/site-navigation.html.tmpl @@ -37,7 +37,7 @@ [% END %] - [%# *** Dependencies, Votes, Activity, Print-version *** %] + [%# *** Dependencies, Activity, Print-version *** %] [% IF bug %] <link rel="Show" title="Dependency Tree" href="showdependencytree.cgi?id=[% bug.bug_id %]&hide_resolved=1"> @@ -46,11 +46,6 @@ 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" @@ -65,12 +60,6 @@ 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 %])" diff --git a/template/en/default/global/textarea.html.tmpl b/template/en/default/global/textarea.html.tmpl index d20422e..c158615 100644 --- a/template/en/default/global/textarea.html.tmpl +++ b/template/en/default/global/textarea.html.tmpl @@ -31,6 +31,8 @@ # minrows will be used. # cols: (required) Number of columns the textarea shall have. # defaultcontent: (optional) Default content for the textarea. + # mandatory: (optional) Boolean specifying whether or not the textarea + # is mandatory. #%] <textarea [% IF name %]name="[% name FILTER html %]"[% END %] @@ -39,6 +41,7 @@ [% IF style %] style="[% style FILTER html %]"[% END %] [% IF classes %] class="[% classes FILTER html %]"[% END %] [% IF wrap %] wrap="[% wrap FILTER html %]"[% END %] + [% IF disabled %] disabled="disabled"[% END %] [% IF defaultrows && user.settings.zoom_textareas.value == 'off' %] rows="[% defaultrows FILTER html %]" [% ELSE %] @@ -47,4 +50,7 @@ cols="[% cols FILTER html %]" [% IF maxrows && user.settings.zoom_textareas.value == 'on' %] onFocus="this.rows=[% maxrows FILTER html %]" + [% END %] + [% IF mandatory %] + aria-required="true" [% END %]>[% defaultcontent FILTER html %]</textarea> diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl index 4698c94..2001f77 100644 --- a/template/en/default/global/user-error.html.tmpl +++ b/template/en/default/global/user-error.html.tmpl @@ -109,6 +109,11 @@ [% terms.Bug %] aliases cannot be longer than 20 characters. Please choose a shorter alias. + [% ELSIF error == "attachment_bug_id_mismatch" %] + [% title = "Invalid Attachments" %] + You tried to perform an action on attachments from different [% terms.bugs %]. + This operation requires all attachments to be from the same [% terms.bug %]. + [% ELSIF error == "auth_cant_create_account" %] [% title = "Can't create accounts" %] This site is using an authentication scheme which does not permit @@ -145,8 +150,6 @@ delete [% ELSIF action == "edit" %] add, modify or delete - [% ELSIF action == "move" %] - move [% ELSIF action == "run" %] run [% ELSIF action == "schedule" %] @@ -155,6 +158,8 @@ use [% ELSIF action == "approve" %] approve + [% ELSE %] + [%+ Hook.process('auth_failure_action') %] [% END %] [% IF object == "administrative_pages" %] @@ -214,6 +219,8 @@ versions [% ELSIF object == "workflow" %] the workflow + [% ELSE %] + [%+ Hook.process('auth_failure_object') %] [% END %]. [% Hook.process("auth_failure") %] @@ -250,9 +257,17 @@ <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 == 'path_only' %] + You must specify a full URL. [% ELSIF reason == 'show_bug' %] - [%+ terms.Bug %] URLs should point to <code>show_bug.cgi</code> - in a [% terms.Bugzilla %] installation. + [%+ field_descs.see_also FILTER html %] URLs should point to one of: + <ul> + <li><code>show_bug.cgi</code> in a [% terms.Bugzilla %] + installation.</li> + <li>A b[% %]ug on launchpad.net</li> + <li>An issue on code.google.com.</li> + <li>A b[% %]ug on b[% %]ugs.debian.org.</li> + </ul> [% ELSIF reason == 'id' %] There is no valid [% terms.bug %] id in that URL. [% END %] @@ -505,7 +520,7 @@ it controls the visibility of the following fields: [%+ fields.join(', ') FILTER html %]. [% END %] - [% ' and ' IF fields.size AND vals.size %] + [% ' Also, ' IF fields.size AND vals.size %] [% IF vals.size %] it controls the visibility of the following field values: <ul> @@ -521,7 +536,8 @@ [% 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. + the '[% field.description FILTER html %]' field and cannot be deleted + or disabled. [% 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. @@ -541,9 +557,9 @@ [% 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. + The value '[% value.name FILTER html %]' cannot be removed or + disabled, because it plays some special role for the + '[% field.description FILTER html %]' field. [% ELSIF error == "fieldvalue_reserved_word" %] [% title = "Reserved Word Not Allowed" %] @@ -560,7 +576,7 @@ [% 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 + [%+ field.description FILTER html %] field, because there are still [%+ value.bug_count FILTER html %] [%+ terms.bugs %] using it. [% ELSIF error == "fieldvalue_undefined" %] @@ -574,7 +590,7 @@ [% 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 + kilobytes (KB) in size. Attachments cannot be more than [%+ Param('maxattachmentsize') %] KB. <br> We recommend that you store your attachment elsewhere [% IF Param("allow_attach_url") %] @@ -625,6 +641,14 @@ 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_status_invalid" %] + [% title = "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_cc_list_invalid" %] [% title = "Flag Type CC List Invalid" %] [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags'} %] @@ -676,10 +700,10 @@ [% 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> + The text you entered in the [% field_descs.$field FILTER html %] + field is too long ([% text.length FILTER html %] characters, + above the maximum length allowed of + [%+ constants.MAX_FREETEXT_LENGTH FILTER none %] characters). [% ELSIF error == "group_cannot_delete" %] [% title = "Cannot Delete Group" %] @@ -690,12 +714,6 @@ 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. @@ -716,16 +734,17 @@ [% 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. + You tried to remove [% terms.bug %] [%+ bug_id FILTER html %] + from the '[% name FILTER html %]' group, but either this group does not exist, + or you are not allowed to remove [% terms.bugs %] from this group in the + '[% product FILTER html %]' product. + + [% ELSIF error == "group_restriction_not_allowed" %] + [% title = "Group Restriction Not Allowed" %] + You tried to restrict [% bug_id ? "$terms.bug $bug_id" : terms.abug FILTER html %] + to the '[% name FILTER html %]' group, but either this group does not exist, + or you are not allowed to restrict [% terms.bugs %] to this group in the + '[% product FILTER html %]' product. [% ELSIF error == "group_not_specified" %] [% title = "Group not specified" %] @@ -741,11 +760,6 @@ 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 %]. @@ -781,9 +795,9 @@ to <em>[% newvalue.join(', ') FILTER html %]</em> [% END %] , but only - [% IF privs < 3 %] + [% IF privs < constants.PRIVILEGES_REQUIRED_EMPOWERED %] the assignee - [% IF privs < 2 %] or reporter [% END %] + [% IF privs < constants.PRIVILEGES_REQUIRED_ASSIGNEE %] or reporter [% END %] of the [% terms.bug %], or [% END %] a user with the required permissions may change that field. @@ -902,8 +916,9 @@ [% 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>. - + is one of <em>[% constants.LEGAL_CONTENT_TYPES.join(', ') FILTER html %]</em> + and <em>bar</em> must not contain any special characters (such as "=", "?", ...). + [% ELSIF error == "invalid_context" %] [% title = "Invalid Context" %] The context [% context FILTER html %] is invalid (must be a number, @@ -911,7 +926,7 @@ [% ELSIF error == "invalid_datasets" %] [% title = "Invalid Datasets" %] - Invalid datasets <em>[% datasets FILTER html %]</em>. Only digits, + Invalid datasets <em>[% datasets.join(":") FILTER html %]</em>. Only digits, letters and colons are allowed. [% ELSIF error == "invalid_format" %] @@ -984,9 +999,24 @@ [%+ constants.LOGIN_LOCKOUT_INTERVAL FILTER html %] minutes. [% END %] + [% ELSIF error == "json_rpc_get_method_required" %] + When using JSON-RPC over GET, you must specify a 'method' + parameter. See the documentation at + [%+ docs_urlbase FILTER html %]api/Bugzilla/WebService/Server/JSONRPC.html + + [% ELSIF error == "json_rpc_invalid_params" %] + Could not parse the 'params' argument as valid JSON. + Error: [% err_msg FILTER html %] + Value: [% params FILTER html %] + + [% ELSIF error == "json_rpc_invalid_callback" %] + You cannot use '[% callback FILTER html %]' as your 'callback' parameter. + For security reasons, only letters, numbers, and the following + characters are allowed in the 'callback' parameter: <code>[]._</code> + [% ELSIF error == "json_rpc_post_only" %] - For security reasons, you may only use JSON-RPC with the POST - HTTP method. + For security reasons, you must use HTTP POST to call the + '[% method FILTER html %]' method. [% ELSIF error == "keyword_already_exists" %] [% title = "Keyword Already Exists" %] @@ -1145,11 +1175,6 @@ 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. @@ -1168,6 +1193,10 @@ to add a version to this product. [% END %] + [% ELSIF error == "multiple_alias_not_allowed" %] + You cannot set aliases when modifying multiple [% terms.bugs %] + at once. + [% ELSIF error == "need_quip" %] [% title = "Quip Required" %] [% docslinks = {'quips.html' => 'About quips'} %] @@ -1232,10 +1261,6 @@ 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 @@ -1276,6 +1301,10 @@ Either you mis-typed the name or that user has not yet registered for a [% terms.Bugzilla %] account. [% END %] + [% IF class == "Bugzilla::Keyword" %] + The legal keyword names are <a href="describekeywords.cgi">listed + here</a>. + [% END %] [% ELSIF error == "old_password_incorrect" %] [% title = "Incorrect Old Password" %] @@ -1293,6 +1322,14 @@ [% title = "Passwords Don't Match" %] The two passwords you entered did not match. + [% ELSIF error == "password_current_too_short" %] + [% title = "New Password Required" %] + Your password is currently less than + [%+ constants.USER_PASSWORD_MIN_LENGTH FILTER html %] characters long, + which is the new minimum length required for passwords. + You must <a href="token.cgi?a=reqpw&loginname=[% locked_user.email FILTER url_quote %]"> + request a new password</a> in order to log in again. + [% ELSIF error == "password_too_short" %] [% title = "Password Too Short" %] The password must be at least @@ -1314,29 +1351,11 @@ [% 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'} %] @@ -1401,15 +1420,6 @@ '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 @@ -1455,10 +1465,24 @@ To file this [% terms.bug %], you must first choose a component. If necessary, just guess. + [% ELSIF error == "relationship_loop_single" %] + [% title = "Relationship Loop Detected" %] + [% field_descs.$field_name FILTER html %] + for [% terms.bug %] [%+ bug_id FILTER html %] + has a circular dependency on [% terms.bug %] [%+ dep_id FILTER html %]. + + [% ELSIF error == "request_queue_group_invalid" %] + The group field <em>[% group FILTER html %]</em> is invalid. + [% ELSIF error == "require_new_password" %] [% title = "New Password Needed" %] You cannot change your password without choosing a new one. + [% ELSIF error == "required_field" %] + [% title = "Field Must Be Set" %] + A value must be set for the '[% field_descs.${field.name} FILTER html %]' + field. + [% ELSIF error == "require_summary" %] [% title = "Summary Needed" %] You must enter a summary for this [% terms.bug %]. @@ -1497,32 +1521,17 @@ <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>. + [% title = "Unresolved Dependencies" %] + [% terms.Bug %] [%+ bug_id FILTER bug_link(bug_id) FILTER none %] + has [% dep_count FILTER none %] unresolved + [% IF dep_count == 1 %] + dependency [% 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 %] + dependencies + [% END %]. + They must either be resolved or removed from the + "[% field_descs.dependson FILTER html %]" field before you can resolve + this [% terms.bug %] as [% display_value("resolution", "FIXED") FILTER html %]. [% ELSIF error == "sudo_invalid_cookie" %] [% title = "Invalid Sudo Cookie" %] @@ -1548,36 +1557,21 @@ [% 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. + session. Please <a href="relogin.cgi?action=prepare-sudo&target_login= + [%- target_login FILTER url_quote %]&reason= + [%- reason FILTER url_quote %]">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>. + <a href="relogin.cgi?action=prepare-sudo&target_login= + [%- target_login FILTER url_quote %]&reason= + [%- reason FILTER url_quote %]">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 @@ -1593,10 +1587,12 @@ [% 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_action" %] + [% IF action %] + Unknown action [% action FILTER html %]! + [% ELSE %] + I could not figure out what you wanted to do. + [% END %] [% ELSIF error == "unknown_tab" %] [% title = "Unknown Tab" %] @@ -1665,11 +1661,6 @@ 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. @@ -1764,7 +1755,7 @@ [% FOREACH q = Bugzilla.user.queries %] [% IF q.name == namedcmd %] - or <a href="query.cgi?[% q.url FILTER html %]">edit</a> + or <a href="query.cgi?[% q.url FILTER url_quote %]">edit</a> [% END %] [% END %] @@ -1779,6 +1770,10 @@ attachment [% ELSIF class == "Bugzilla::User" %] user + [% ELSIF class == "Bugzilla::Classification" %] + classification + [% ELSIF class == "Bugzilla::Product" %] + product [% ELSIF class == "Bugzilla::Component" %] component [% ELSIF class == "Bugzilla::Version" %] @@ -1795,12 +1790,15 @@ field [% ELSIF class == "Bugzilla::Group" %] group - [% ELSIF class == "Bugzilla::Product" %] - product + [% ELSIF class == "Bugzilla::Keyword" %] + keyword + [% ELSIF class == "Bugzilla::Search::Recent" %] + recent search [% 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 %] + [% Hook.process('end_object_name', 'global/user-error.html.tmpl') %] [% END %] diff --git a/template/en/default/global/userselect.html.tmpl b/template/en/default/global/userselect.html.tmpl index 35075ef..1d03950 100644 --- a/template/en/default/global/userselect.html.tmpl +++ b/template/en/default/global/userselect.html.tmpl @@ -12,32 +12,42 @@ # # Contributor(s): Byron Jones <bugzilla@glob.com.au> # Frédéric Buclin <LpSolit@gmail.com> + # Guy Pyrzak <guy.pyrzak@gmail.com> + # Reed Loden <reed@reedloden.com> #%] [%# INTERFACE: # name: mandatory; field name # id: optional; field id # value: optional; default field value/selection + # classes: optional; an array of classes to be added # 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 + # emptyok: optional, select only; if true, prepend menu option for "" to start of select + # hyphenok: optional, select only; if true, prepend menu option for "-" 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 + # field_title: optional, extra information to display as a tooltip #%] [% IF Param("usemenuforusers") %] <select name="[% name FILTER html %]" [% IF id %] id="[% id FILTER html %]" [% END %] + [% IF classes %] class="[% classes.join(' ') 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 field_title %] title="[% field_title FILTER html %]" [% END %] > [% IF emptyok %] <option value=""></option> [% END %] + [% IF hyphenok %] + <option value="-">-</option> + [% END %] [% UNLESS custom_userlist %] [% custom_userlist = user.get_userlist %] @@ -69,15 +79,31 @@ [% 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 %] -> + [% IF feature_enabled('jsonrpc') && Param('ajax_user_autocompletion') && id %] + <div id="[% id FILTER html %]_autocomplete" + [% IF classes %] class="[% classes.join(' ') FILTER html %]" [% END %]> + [% END %] + <input + name="[% name FILTER html %]" + value="[% value FILTER html %]" + [% IF classes %] class="[% classes.join(' ') 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 field_title %] title="[% field_title FILTER html %]" [% END %] + [% IF size %] size="[% size FILTER html %]" [% END %] + [% IF id %] id="[% id FILTER html %]" [% END %] + > + [% IF feature_enabled('jsonrpc') && Param('ajax_user_autocompletion') && id %] + <div id="[% id FILTER html %]_autocomplete_container"></div> + </div> + <script type="text/javascript"> + if( typeof(YAHOO.bugzilla.userAutocomplete) !== 'undefined' + && YAHOO.bugzilla.userAutocomplete != null){ + YAHOO.bugzilla.userAutocomplete.init( "[% id FILTER js %]", + "[% id FILTER js %]_autocomplete_container" + [% IF multiple %], true[% END%]); + } + </script> + [% END %] [% END %] - - diff --git a/template/en/default/global/value-descs.js.tmpl b/template/en/default/global/value-descs.js.tmpl new file mode 100644 index 0000000..d432cf1 --- /dev/null +++ b/template/en/default/global/value-descs.js.tmpl @@ -0,0 +1,33 @@ +[%# 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 Everything Solved, Inc. + # Portions created by the Initial Developer are Copyright (C) 2010 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +BUGZILLA.value_descs = { + [% FOREACH vd_field = value_descs.keys %] + [% vd_field FILTER js %]: { + [% FOREACH vd_value = value_descs.${vd_field}.keys %] + '[% vd_value FILTER js %]': + '[% value_descs.${vd_field}.${vd_value} FILTER js %]' + [%~ ',' UNLESS loop.last %] + [% END %] + }[% ',' UNLESS loop.last %] + [% END %] +}; diff --git a/template/en/default/global/variables.none.tmpl b/template/en/default/global/variables.none.tmpl index dd7281e..faf1a54 100644 --- a/template/en/default/global/variables.none.tmpl +++ b/template/en/default/global/variables.none.tmpl @@ -40,3 +40,5 @@ "Bugzilla" => "Bugzilla" } %] + +[% Hook.process("end") %] |