diff options
Diffstat (limited to 'extensions/BMO/template')
85 files changed, 8984 insertions, 0 deletions
diff --git a/extensions/BMO/template/en/default/account/create.html.tmpl b/extensions/BMO/template/en/default/account/create.html.tmpl new file mode 100644 index 000000000..bb8d07d33 --- /dev/null +++ b/extensions/BMO/template/en/default/account/create.html.tmpl @@ -0,0 +1,178 @@ +[%# 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> + # Byron Jones <glob@mozilla.com> + #%] + +[%# INTERFACE + # none + # + # Param("maintainer") is used to display the maintainer's email. + # Param("emailsuffix") is used to pre-fill the email field. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Create a new [% terms.Bugzilla %] account +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = [ 'extensions/BMO/web/styles/create_account.css' ] +%] + +<script type="text/javascript"> +function onSubmit() { + var email = document.getElementById('login').value; + if (email == '') { + alert('You must enter your email address.'); + return false; + } + var isValid = + email.match(/@/) + && email.match(/@.+\./) + && !email.match(/\.$/) + && !email.match(/[\\()&<>,'"\[\]]/) + ; + if (!isValid) { + alert( + "The e-mail address doesn't pass our syntax checking for a legal " + + "email address.\n\nA legal address must contain exactly one '@', and " + + "at least one '.' after the @.\n\nIt must also not contain any of " + + "these special characters: \ ( ) & < > , ; : \" [ ], or any whitespace." + ); + return false; + } + return true; +} +</script> + +<table border="0" id="create-account"> +<tr> + +<td width="50%" id="create-account-left" valign="top"> + + <h2 class="column-header">I need help using a Mozilla Product</h2> + + <table border="0" id="product-list"> + [% INCLUDE product + icon = "firefox" + name = "Firefox Support" + url = "http://support.mozilla.com/" + desc = "Support for the Firefox web browser." + %] + [% INCLUDE product + icon = "firefox" + name = "Firefox for Mobile Support" + url = "http://support.mozilla.com/mobile" + desc = "Support for the Firefox Mobile web browser." + %] + [% INCLUDE product + icon = "thunderbird" + name = "Thunderbird Support" + url = "http://www.mozillamessaging.com/support/" + desc = "Support for Thunderbird email client." + %] + [% INCLUDE product + icon = "other" + name = "Support for other products" + url = "http://www.mozilla.org/projects/" + desc = "Support for products not listed here." + %] + [% INCLUDE product + icon = "input" + name = "Feedback" + url = "http://input.mozilla.com/feedback" + desc = "Report issues with web site you use, or provide quick feedback for Firefox." + %] + </table> + +</td> + +<td width="50%" id="create-account-right" valign="top"> + + <h2 class="column-header">I want to help</h2> + + <div id="right-blurb"> + <p> + Great! There are three things to know and do: + </p> + <ol> + <li> + Please consider reading our + <a href="https://developer.mozilla.org/en/Bug_writing_guidelines" target="_blank">[% terms.bug %] writing guidelines</a>. + </li> + <li> + [% terms.Bugzilla %] is a public place, so what you type and your email address will be visible + to all logged-in users. Some people use an + <a href="http://email.about.com/od/freeemailreviews/tp/free_email.htm" target="_blank">alternative email address</a> + for this reason. + </li> + <li> + Please give us an email address you want to use. Once we confirm that it works, + you'll be asked to set a password and then you can start filing [% terms.bugs %] and helping fix them. + </li> + </ol> + </div> + + <h2 class="column-header">Create an account</h2> + + <form method="post" action="createaccount.cgi" onsubmit="return onSubmit()"> + <table id="create-account-form"> + <tr> + <td class="label">Email Address:</td> + <td> + <input size="35" id="login" name="login" placeholder="you@example.com">[% Param('emailsuffix') FILTER html %]</td> + <td> + <input type="hidden" id="token" name="token" value="[% issue_hash_token(['create_account']) FILTER html %]"> + <input type="submit" value="Create Account"> + </td> + </tr> + </table> + </form> + + [% Hook.process('additional_methods') %] + +</td> + +</tr> +</table> + +<p id="bmo-admin"> + If you think there's something wrong with [% terms.Bugzilla %], you can + <a href="mailto:bugzilla-admin@mozilla.org">send an email to the admins</a>, but + remember, they can't file [% terms.bugs %] for you, or solve tech support problems. +</p> + +[% PROCESS global/footer.html.tmpl %] + +[% BLOCK product %] + <tr> + <td valign="top"> + <a href="[% url FILTER none %]"><img + src="extensions/BMO/web/producticons/[% icon FILTER uri %].png" + border="0" width="64" height="64"></a> + </td> + <td valign="top"> + <h2><a href="[% url FILTER none %]">[% name FILTER html %]</a></h2> + <div>[% desc FILTER html %]</div> + </td> + </tr> +[% END %] + diff --git a/extensions/BMO/template/en/default/bug/create/comment-bootgecko-partner.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-bootgecko-partner.txt.tmpl new file mode 100644 index 000000000..a718bdef6 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-bootgecko-partner.txt.tmpl @@ -0,0 +1,23 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +What are the steps to reproduce?: +[%+ cgi.param('steps_to_reproduce') %] + +What was the actual behavior?: +[%+ cgi.param('actual_behavior') %] + +What was the expected behavior?: +[%+ cgi.param('expected_behavior') %] + +What build were you using?: [% cgi.param('build') %] + +What are the requirements?: [% cgi.param('requirements') %] diff --git a/extensions/BMO/template/en/default/bug/create/comment-creative.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-creative.txt.tmpl new file mode 100644 index 000000000..bbfda3491 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-creative.txt.tmpl @@ -0,0 +1,30 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi +%] +>>Project/Request Title: +[%+ cgi.param('short_desc') %] + +>>Project Overview: +[%+ cgi.param('overview') %] + +>>Creative Specs & Deliverables: +[%+ cgi.param("specs") %] + +>>Launch Date: +[%+ cgi.param("cf_due_date") || 'Not provided' %] + +>>Creative Due Date: +[%+ cgi.param("creative_due_date") || 'Not provided' %] + +>>Mozilla Goal: +[%+ IF cgi.param("goal_other") %][% cgi.param("goal_other") %][% ELSE %][% cgi.param("goal") %][% END %] + +>>Points of Contact: +[%+ cgi.param('cc') || 'Not provided' %] diff --git a/extensions/BMO/template/en/default/bug/create/comment-doc.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-doc.txt.tmpl new file mode 100644 index 000000000..4c878a867 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-doc.txt.tmpl @@ -0,0 +1,20 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi +%] +:: Developer Documentation Request + + Request Type: [% cgi.param("type") %] + Gecko Version: [% cgi.param("gecko") %] + Technical Contact: [% cgi.param("cc") %] + +:: Details + +[%+ cgi.param("details") %] + diff --git a/extensions/BMO/template/en/default/bug/create/comment-employee-incident.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-employee-incident.txt.tmpl new file mode 100644 index 000000000..1b0902d64 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-employee-incident.txt.tmpl @@ -0,0 +1,57 @@ +[%# 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 BMO Bugzilla Extension. + # + # The Initial Developer of the Original Code is the Mozilla Foundation + # Portions created by the Initial Developers are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # David Lawrence <dkl@mozilla.com> + #%] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% IF cgi.param('incident_type') == 'stolen' %] +[% IF original_reporter -%] +Reporter: [% original_reporter.identity FILTER none %] +[%- END -%] + + [% IF cgi.param('display_action') %] + [% IF cgi.param('display_action') == 'ldap' %] +Action needed: Please immediately reset the LDAP password for this user. + [% ELSIF cgi.param('display_action') == 'ssh' %] +Action needed: Please immediately disable the SSH key for this user. + [% END %] + +The user reported that their mobile or laptop device has been lost or stolen. +This ticket was automatically generated from the employee incident reporting +form. An additional ticket has been filed (see blocker bugs) for InfraSec to +review the impact of this lost device. + [% END %] + +Type of device: [% cgi.param('device') %] +Was the device encrypted?: [% cgi.param('encrypted') %] +Any user data on the device?: [% cgi.param('userdata') %] + [% IF cgi.param('userdata') == 'Yes' %] +Sensitive data on the device: +[%+ cgi.param('sensitivedata') %] + [% END %] +Browser configured to remember passwords?: [% cgi.param('rememberpasswords') %] + [% IF cgi.param('rememberpasswords') == 'Yes' %] +Critical sites: +[%+ cgi.param('criticalsites') %] + [% END %] +[% END %] +[% IF cgi.param('comment') %] +Extra Notes: +[%+ cgi.param('comment') %] +[% END %] diff --git a/extensions/BMO/template/en/default/bug/create/comment-finance.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-finance.txt.tmpl new file mode 100644 index 000000000..f0427b4c5 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-finance.txt.tmpl @@ -0,0 +1,35 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +Request Type: [% cgi.param('component') %] +Summary: [% cgi.param('short_desc') %] +Priority to your Team: [% cgi.param('team_priority') %] +Timeframe for Signature: [% cgi.param('signature_time') %] + +Name of Other Party: +[%+ cgi.param('other_party') %] + +Business Objective: +[%+ cgi.param('business_obj') %] + +What is this purchase?: +[%+ cgi.param('what_purchase') %] + +Why is this purchase needed?: +[%+ cgi.param('why_purchase') %] + +What is the risk if this is not purchased?: +[%+ cgi.param('risk_purchase') %] + +What is the alternative?: +[%+ cgi.param('alternative_purchase') %] + +Total Cost: [% cgi.param('total_cost') %] diff --git a/extensions/BMO/template/en/default/bug/create/comment-ipp.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-ipp.txt.tmpl new file mode 100644 index 000000000..5c73587a9 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-ipp.txt.tmpl @@ -0,0 +1,30 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi +%] +:: Internet Public Policy Issue + +Region/Country: [% cgi.param("region") %] + +:: Description + +[%+ cgi.param("desc") %] + +:: Relevance + +[%+ cgi.param("relevance") %] + +Goal: [% cgi.param("goal") %] +When: [% cgi.param("when") %] + +[% IF cgi.param("additional") %] +:: Additional Information + +[%+ cgi.param("additional") %] +[% END %] diff --git a/extensions/BMO/template/en/default/bug/create/comment-legal.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-legal.txt.tmpl new file mode 100644 index 000000000..eb00a88d9 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-legal.txt.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 BMO Bugzilla Extension. + # + # The Initial Developer of the Original Code is the Mozilla Foundation + # Portions created by the Initial Developers are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # David Lawrence <dkl@mozilla.com> + #%] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +Priority for your Team: +[%+ cgi.param('teampriority') %] + +Timeframe for Completion: +[%+ cgi.param('timeframe') %] + +Goal: +[%+ cgi.param('goal') %] + +Business Objective: +[%+ cgi.param('busobj') %] + +Other Party: +[%+ cgi.param('otherparty') %] + +Description: +[%+ cgi.param("comment") %] diff --git a/extensions/BMO/template/en/default/bug/create/comment-mdn.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-mdn.txt.tmpl new file mode 100644 index 000000000..60a443d2b --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-mdn.txt.tmpl @@ -0,0 +1,66 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi +%] + +[% IF cgi.param('request_type') == 'Bug' %] +What did you do? +================ +[%+ cgi.param('bug_actions') %] + +What happened? +============== +[%+ cgi.param('bug_actual_results') %] + +What should have happened? +========================== +[%+ cgi.param('bug_expected_results') %] + +[% ELSIF cgi.param('request_type') == 'Feature' %] +What problems would this solve? +=============================== +[%+ cgi.param('feature_problem_solving') %] + +Who would use this? +=================== +[%+ cgi.param('feature_audience') %] + +What would users see? +===================== +[%+ cgi.param('feature_interface') %] + +What would users do? What would happen as a result? +=================================================== +[%+ cgi.param('feature_process') %] + +[% ELSIF cgi.param('request_type') == 'Change' %] +What feature should be changed? Please provide the URL of the feature if possible. +================================================================================== +[%+ cgi.param('change_feature') %] + +What problems would this solve? +=============================== +[%+ cgi.param('change_problem_solving') %] + +Who would use this? +=================== +[%+ cgi.param('change_audience') %] + +What would users see? +===================== +[%+ cgi.param('change_interface') %] + +What would users do? What would happen as a result? +=================================================== +[%+ cgi.param('change_process') %] + +[% END %] +Is there anything else we should know? +====================================== +[%+ cgi.param("description") %] diff --git a/extensions/BMO/template/en/default/bug/create/comment-mozlist.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-mozlist.txt.tmpl new file mode 100644 index 000000000..c62461d42 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-mozlist.txt.tmpl @@ -0,0 +1,44 @@ +[%# 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: + # This template has no interface. + # + # Form variables from a bug submission (i.e. the fields on a template from + # enter_bug.cgi) can be access via Bugzilla.cgi.param. It can be used to + # pull out various custom fields and format an initial Description entry + # from them. + #%] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] +List Name: [% cgi.param("listName") %] +List Admin: [% cgi.param("listAdmin") %] + +Short Description: +[%+ cgi.param("listShortDesc") %] + +[% IF cgi.param("listType") != "mozilla.com" %] +Long Description: +[%+ cgi.param("listLongDesc") %] +[% END %] + +Justification / Special Instructions: + +[%+ cgi.param("comment") IF cgi.param("comment") %] + diff --git a/extensions/BMO/template/en/default/bug/create/comment-privacy-data.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-privacy-data.txt.tmpl new file mode 100644 index 000000000..279d59b6b --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-privacy-data.txt.tmpl @@ -0,0 +1,30 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +Where does this data come from: + +[%+ cgi.param('source') %] + +What people and things does this data describe, and what fields does it contain: + +[%+ cgi.param('data_desc') %] + +What parts of this data do you want to release: + +[%+ cgi.param('release') %] + +Why are we releasing this data, and what do we hope people will do with it: + +[%+ cgi.param('why') %] + +Is there a particular time by which you would like to release this data: + +[%+ cgi.param('when') %] diff --git a/extensions/BMO/template/en/default/bug/create/comment-recoverykey.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-recoverykey.txt.tmpl new file mode 100644 index 000000000..9a38af7cc --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-recoverykey.txt.tmpl @@ -0,0 +1,28 @@ +[%# 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 BMO Bugzilla Extension. + # + # The Initial Developer of the Original Code is the Mozilla Foundation + # Portions created by the Initial Developers are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # David Lawrence <dkl@mozilla.com> + #%] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +Recovery Key: [% cgi.param('recoverykey') %] +Asset Tag Number: [% cgi.param('assettag') %] + +[% IF cgi.param('comment') %] +[%+ cgi.param('comment') %] +[% END %] diff --git a/extensions/BMO/template/en/default/bug/create/comment-swag.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-swag.txt.tmpl new file mode 100644 index 000000000..920d392da --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-swag.txt.tmpl @@ -0,0 +1,50 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi +%] +[% PROCESS global/variables.none.tmpl +%] +:: Gear Requested + + Purpose of Gear: [% cgi.param("purpose") %] [%+ cgi.param("purpose_other") %] + Date Required: [% cgi.param("date_required") || "-" %] + +[%+ cgi.param("items") %] + +:: Requester + + Name: [% cgi.param('firstname') %] [% cgi.param('lastname') %] + Email: [% cgi.param('email') %] + Mozilla Space: [% cgi.param('mozspace') || "-" %] + Team/Department: [% cgi.param('teamcode') %] + +:: Recipient + +[% IF cgi.param("purpose") == "Mozillian Recognition" %] +This [% terms.bug %] needs recipient shipping information: [% cgi.param("recognition_shipping") ? "Yes" : "No" %] +This [% terms.bug %] needs recipient size information: [% cgi.param("recognition_sizing") ? "Yes" : "No" %] +[% END %] + + Name: [%+ cgi.param("shiptofirstname") +%] [%+ cgi.param("shiptolastname") +%] + Email: [%+ cgi.param("shiptoemail") +%] +[% IF cgi.param("shiptoaddress1") %] + Address: + [%+ cgi.param("shiptoaddress1") +%] + [%+ cgi.param("shiptoaddress2") +%] + [%+ cgi.param("shiptocity") +%] [%+ cgi.param("shiptostate") +%] [%+ cgi.param("shiptopostcode") +%] + [%+ cgi.param("shiptocountry") %] + Phone: [% cgi.param("shiptophone") %] + Personal ID/RUT: [% cgi.param("shiptoidrut") || "-" %] +[% END %] + +[% IF cgi.param("comment") %] +:: Comments + +[%+ cgi.param("comment") %] +[% END %] + diff --git a/extensions/BMO/template/en/default/bug/create/create-bootgecko-partner.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-bootgecko-partner.html.tmpl new file mode 100644 index 000000000..6e2778de0 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-bootgecko-partner.html.tmpl @@ -0,0 +1,239 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% inline_js = BLOCK %] + var compdesc = new Array(); + compdesc[""] = 'Please select a component from the list above.'; + [% FOREACH comp = product.components %] + compdesc['[% comp.name FILTER js %]'] = '[% comp.description FILTER js %]'; + [% END %] + function showCompDesc(component) { + var value = component.value; + document.getElementById('comp_description').innerHTML = compdesc[value]; + } + function onSubmit() { + var alert_text = ''; + var status_whiteboard = ''; + + if (!isFilledOut('component')) + alert_text += "Please select a value for component.\n"; + if (!isFilledOut('short_desc')) + alert_text += "Please enter a value for the summary.\n"; + if (!isFilledOut('steps_to_reproduce')) + alert_text += "Please enter the steps to reproduce.\n"; + if (!isFilledOut('actual_behavior')) + alert_text += "Please enter the actual behavior.\n"; + if (!isFilledOut('expected_behavior')) + alert_text += "Please enter the expected behavior.\n"; + if (!isFilledOut('build')) + alert_text += "Please enter a value for the build.\n"; + if (!isFilledOut('requirements')) + alert_text += "Please enter a value for the requirements.\n"; + + var device_values = new Array(); + var device_select = document.getElementById("b2g_device"); + for (var i = 0, l = device_select.options.length; i < l; i++) { + if (device_select.options[i].selected) + device_values.push(device_select.options[i].value); + } + + if (device_values.length == 0) + alert_text += "Please select one or more devices.\n"; + + if (alert_text != '') { + alert(alert_text); + return false; + } + + for (var i = 0, l = device_values.length; i < l; i++) + status_whiteboard += '[device:' + device_values[i] + '] '; + + if (document.getElementById('third_party_app').checked) + status_whiteboard += '[apps watch list]'; + + document.getElementById('status_whiteboard').value = status_whiteboard; + + return true; + } +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Boot2Gecko Partner $terms.Bug Submission" + style_urls = [ 'skins/standard/enter_bug.css' ] + javascript = inline_js + javascript_urls = [ 'extensions/BMO/web/js/form_validate.js', + 'js/attachment.js', 'js/field.js', 'js/util.js' ] + onload = "showCompDesc(document.getElementById('component'));" +%] + +<h2>Boot2Gecko Partner [% terms.Bug %] Submission</h2> + +<p>All fields are mandatory</p> + +<form method="post" action="post_bug.cgi" id="bug_form" class="enter_bug_form" + enctype="multipart/form-data" onsubmit="return onSubmit();"> +<input type="hidden" name="format" value="bootgecko-partner"> +<input type="hidden" name="product" value="Boot2Gecko"> +<input type="hidden" name="rep_platform" value="ARM"> +<input type="hidden" name="op_sys" value="Gonk (Firefox OS)"> +<input type="hidden" name="priority" value="--"> +<input type="hidden" name="version" value="unspecified"> +<input type="hidden" name="bug_severity" id="bug_severity" value="normal"> +<input type="hidden" name="comment" id="comment" value=""> +<input type="hidden" name="keywords" id="keywords" value="unagi"> +<input type="hidden" name="status_whiteboard" id="status_whiteboard" value=""> +<input type="hidden" name="token" value="[% token FILTER html %]"> + +<table> + +<tr> + <th> + <label for="short_desc">Summary:</label> + </th> + <td> + <input name="short_desc" id="short_desc" size="60" + value="[% short_desc FILTER html %]"> + </td> +</tr> + +<tr> + <th> + <label for="component">Component:</label> + </th> + <td> + <select name="component" id="component" onchange="showCompDesc(this);"> + <option value="">Select One</option> + [%- FOREACH c = product.components %] + [% NEXT IF NOT c.is_active %] + <option value="[% c.name FILTER html %]" + id="v[% c.id FILTER html %]_component" + [% IF c.name == default.component_ %] + selected="selected" + [% END %]> + [% c.name FILTER html -%] + </option> + [%- END %] + </select + </td> +</tr> + +<tr> + <td></td> + <td id="comp_description" align="left" style="color: green; padding-left: 1em"></td> +</tr> + +<tr> + <th> + <label for="b2g_device">B2G Device:</label> + </th> + <td> + <select name="b2g_device" id="b2g_device" + size="5" multiple="multiple"> + <option name="Otoro">Otoro</option> + <option name="Unagi">Unagi</option> + <option name="Inari">Inari</option> + <option name="Ikura">Ikura</option> + <option name="Hamachi">Hamachi</option> + <option name="Buri">Buri</option> + <option name="Toro">Toro</option> + <option name="Leo">Leo</option> + <option name="Twist">Twist</option> + <option name="Zero">Zero</option> + <option name="Tara">Tara</option> + </select> + </td> +</tr> + +<tr> + <th> + <label for="other_party">What are the steps to reproduce?:</label> + </th> + <td> + <textarea id="steps_to_reproduce" name="steps_to_reproduce" rows="5" cols="60">1. +2. +3.</textarea> + </td> +<tr> + +<tr> + <th> + <label for="actual_behavior">What was the actual behavior?:</label> + </th> + <td> + <textarea id="actual_behavior" name="actual_behavior" rows="5" cols="60"></textarea> + </td> +<tr> + +<tr> + <th> + <label for="expected_behavior">What was the expected behavior?:</label> + </th> + <td> + <textarea name="expected_behavior" id="expected_behavior" rows="5" cols="60"></textarea> + </td> +</tr> + +<tr> + <th> + <label for="build">What build were you using?:</label> + </th> + <td> + <input type="text" name="build" id="build" value="" size="60"> + </td> +</tr> + +<tr> + <th> + <label for="requirements">What are the requirements?:</label> + </th> + <td> + <input type="text" name="requirements" id="requirements" value="" size="60"> + </td> +</tr> + +<tr> + <th> + <label for="requirements">Third party app content?:</label> + </th> + <td> + <input type="checkbox" name="third_party_app" id="third_party_app"> + </td> +</tr> + +<tr> + <th>Security:</th> + <td> + <input type="checkbox" name="groups" id="default_security_group" + value="[% product.default_security_group FILTER html %]" + [% FOREACH g = group %] + [% IF g.name == name %] + [% ' checked="checked"' IF g.checked %] + [% LAST %] + [% END %] + [% END %] + > + <label for="default_security_group"> + Many users could be harmed by this security problem: + it should be kept hidden from the public until it is resolved. + </label> + </td> +</tr> + +<tr> + <td> </td> + <td> + <input type="submit" id="commit" value="Submit Request"> + </td> +</tr> +</table> + +</form> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-creative.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-creative.html.tmpl new file mode 100644 index 000000000..130e232e5 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-creative.html.tmpl @@ -0,0 +1,219 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% inline_style = BLOCK %] +#creative_form { + padding: 10px; +} +#creative_form .required:after { + content: " *"; + color: red; +} +#creative_form .field_label { + font-weight: bold; +} +#creative_form .field_desc { + padding-bottom: 3px; +} +#creative_form .field_desc, +#creative_form .head_desc { + width: 600px; + word-wrap: normal; +} +#creative_form .head_desc { + padding-top: 5px; + padding-bottom: 12px; +} +#creative_form .form_section { + margin-bottom: 10px; +} +#creative_form textarea { + font-family: inherit; + font-size: inherit; +} +#creative_form em { + font-size: 1em; +} +.yui-calcontainer { + z-index: 2; +} +[% END %] + +[% inline_javascript = BLOCK %] +function validateAndSubmit() { + var alert_text = ''; + if (!isFilledOut('overview')) alert_text += 'Please enter a value for Project Overview.\n'; + if (!isFilledOut('short_desc')) alert_text += 'Please enter a value for Request Title.\n'; + if (!isFilledOut('specs')) alert_text += 'Please enter a value for Creative Specs.\n'; + if (!isFilledOut('goal')) alert_text += 'Please select a value for Mozilla Goal.\n'; + if (YAHOO.util.Dom.get('goal').value == 'Other') { + if (!isFilledOut('goal_other')) alert_text += 'Please select a value for Mozilla Goal Other.\n'; + } + if (alert_text != '') { + alert(alert_text); + return false; + } + return true; +} +function toggleGoalOther() { + var goal_select = YAHOO.util.Dom.get('goal'); + if (goal_select.options[goal_select.selectedIndex].value == 'Other') { + YAHOO.util.Dom.removeClass('goal_other','bz_default_hidden'); + } + else { + YAHOO.util.Dom.addClass('goal_other','bz_default_hidden'); + } +} +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Creative Initiation Form" + style = inline_style + javascript = inline_javascript + javascript_urls = [ 'extensions/BMO/web/js/form_validate.js', + 'js/field.js', 'js/util.js' ] + yui = [ "autocomplete", "calendar" ] +%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +<form id="creative_form" method="post" action="post_bug.cgi" enctype="multipart/form-data" + onSubmit="return validateAndSubmit();"> + <input type="hidden" name="format" value="creative"> + <input type="hidden" name="product" value="Marketing"> + <input type="hidden" name="component" value="Design"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="op_sys" value="Other"> + <input type="hidden" name="version" value="unspecified"> + <input type="hidden" name="bug_severity" id="bug_severity" value="normal"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + +<img title="Creative Initiation Form" src="extensions/BMO/web/images/creative.png"> + +<div class="head_desc"> + Have a new project or campaign that requires copy, design, video or other awesomeness + from your friendly neighborhood Brand Team? Please use this form to tell us about it + and we'll get back to you with next steps as soon as possible. +</div> + +<div class="form_section"> + <label for="short_desc" class="field_label required">Project / Request Title</label> + <div class="field_desc"> + Describe your project or request in a few words or a short phrase. + </div> + <input type="text" name="short_desc" id="short_desc" size="80"> +</div> + +<div class="form_section"> + <label for="overview" class="field_label required">Project Overview</label> + <div class="field_desc"> + Briefly describe the background, goals and objectives for this project. + </div> + <textarea id="overview" name="overview" cols="80" rows="5"></textarea> +</div> + +<div class="form_section"> + <label for="specs" class="field_label required">Creative Specs and Deliverables</label> + <div class="field_desc"> + What is the final deliverable (e.g. copy, snippet graphic, email template, website design, video, etc.) + and what format should it be delivered in? (e.g. PSD file, 403x403 transparent PNG/JPG, etc.) Be as + specific as you can. We like details. + </div> + <textarea id="specs" name="specs" cols="80" rows="5"></textarea> +</div> + +<div class="form_section"> + <label for="cf_due_date" class="field_label">Launch Date</label> + <div class="field_desc"> + When will your project go forth into the world? + </div> + <input name="cf_due_date" size="20" id="cf_due_date" value="" + onchange="updateCalendarFromField(this)"> + <button type="button" class="calendar_button" + id="button_calendar_cf_due_date" + onclick="showCalendar('cf_due_date')"> + <span>Calendar</span> + </button> + <div id="con_calendar_cf_due_date"></div> + <script type="text/javascript"> + createCalendar('cf_due_date') + </script> +</div> + +<div class="form_section"> + <label for="creative_due_date" class="field_label">Creative Due Date</label> + <div class="field_desc"> + Working backwards from your launch/go-live date, when do you need final assets? + </div> + <input name="creative_due_date" size="20" id="creative_due_date" value="" + onchange="updateCalendarFromField(this)"> + <button type="button" class="calendar_button" + id="button_calendar_creative_due_date" + onclick="showCalendar('creative_due_date')"> + <span>Calendar</span> + </button> + <div id="con_calendar_creative_due_date"></div> + <script type="text/javascript"> + createCalendar('creative_due_date') + </script> +</div> + +<div class="form_section"> + <label for="goal" class="field_label required">Mozilla Goal</label> + <div class="field_desc"> + Which high-level Mozilla goal does this project support? + </div> + <select id="goal" name="goal" + onchange="toggleGoalOther();"> + <option value="">Please select..</option> + <option value="Firefox Deskop">Firefox Desktop</option> + <option value="Firefox OS">Firefox OS</option> + <option value="Firefox Android">Firefox Android</option> + <option value="Firefox Marketplace">Firefox Marketplace</option> + <option value="Corporate Support">Corporate Support</option> + <option value="All">All</option> + <option value="Other">Other</option> + </select> + <br> + <input type="text" name="goal_other" id="goal_other" size="40" + class="bz_default_hidden" value=""> +</div> + +<div class="form_section"> + <label for="cc" class="field_label">Points of Contact</label> + <div class="field_desc"> + Who should be kept in the loop and informed of updates (and CC'd on the [% terms.bug %])? + </div> + [% INCLUDE global/userselect.html.tmpl + id => "cc" + name => "cc" + value => "" + size => 80 + classes => ["bz_userfield"] + multiple => 5 + %] +</div> + +<div class="head_desc"> + Thanks! Once you hit submit, your request will go off into the vortex of creative magic. + (Actually, it goes to [% terms.Bugzilla %], but that doesn't sound as cool.) We'll be in touch soon + with next steps and to let you know if we need any additional info. +</div> + +<input type="submit" id="commit" value="Submit"> + +<p> + [ <span class="required_star">*</span> <span class="required_explanation">Required Field</span> ] +</p> + +</form> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-doc.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-doc.html.tmpl new file mode 100644 index 000000000..0ff01c50c --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-doc.html.tmpl @@ -0,0 +1,244 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% inline_style = BLOCK %] +#doc_form th { + text-align: right; +} + +#short_desc, #details { + width: 100%; +} +[% END %] + +[% inline_javascript = BLOCK %] +var whiteboard_map = { + 'Accessibility': 'c=Accessibility u=webdev p=0', + 'Add-ons': 'c=Addons u=mozdev p=0', + 'API': 'c=API u=webdev p=0', + 'Apps': 'c=Apps u=appdev p=0', + 'CSS': 'c=CSS u=webdev p=0', + 'Developer Tools': 'c=DevTools u=webdev p=0', + 'DOM': 'c=DOM u=webdev p=0', + 'Firefox OS': 'c=FirefoxOS u=mozdev p=0', + 'General': 'c=General u=webdev p=0', + 'HTML': 'c=HTML u=webdev p=0', + 'JavaScript': 'c=JavaScript u=webdev p=0', + 'Localization': 'c=Localization u=webdev p=0', + 'MathML': 'c=MathML u=webdev p=0', + 'Mozilla Platform': 'c=Platform u=mozdev p=0', + 'Protocols': 'c=Protocols u=webdev p=0', + 'Security': 'c=Security u=webdev p=0', + 'SVG': 'c=SVG u=webdev p=0' +}; +function validateAndSubmit() { + var alert_text = ''; + if (!isFilledOut('type')) alert_text += 'Please select the "Request Type".\n'; + if (!isFilledOut('short_desc')) alert_text += 'Please enter a "Summary".\n'; + if (!isFilledOut('gecko')) alert_text += 'Please select the "Gecko Version".\n'; + if (!isFilledOut('details')) alert_text += 'Please enter some "Details".\n'; + if (alert_text != '') { + alert(alert_text); + return false; + } + var component = YAHOO.util.Dom.get('component').value; + if (whiteboard_map[component]) { + YAHOO.util.Dom.get('status_whiteboard').value = whiteboard_map[component]; + } + return true; +} +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Developer Documentation Request" + style = inline_style + javascript = inline_javascript + javascript_urls = [ 'extensions/BMO/web/js/form_validate.js', + 'js/field.js', 'js/util.js', 'js/bug.js' ] + yui = [ 'autocomplete', 'datatable', 'button' ] +%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +<h1>Developer Documentation Request</h1> + +<p> + Use this form to request <b>new documentation</b> or <b>corrections</b> to existing documentation.<br> + [ <span class="required_star">*</span> <span class="required_explanation">Required Fields</span> ] +</p> + +<form method="post" action="post_bug.cgi" enctype="multipart/form-data" + onSubmit="return validateAndSubmit();"> + <input type="hidden" name="format" value="doc"> + <input type="hidden" name="product" value="Developer Documentation"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="op_sys" value="Other"> + <input type="hidden" name="version" value="unspecified"> + <input type="hidden" name="bug_severity" id="bug_severity" value="normal"> + <input type="hidden" name="status_whiteboard" id="status_whiteboard" value=""> + <input type="hidden" name="token" value="[% token FILTER html %]"> + +<table id="doc_form"> + +<tr> + <th class="required">Request Type</th> + <td> + <select name="type" id="type"> + <option value="">Please select..</option> + <option value="New Documentation">New Documentation</option> + <option value="Correction" [% "selected" IF cgi.param('bug_file_loc') %]>Correction</option> + </select> + </td> +</tr> + +<tr> + <th class="required">Topic</th> + <td> + <select name="component" id="component"> + [% FOREACH component = product.components %] + <option value="[% component.name FILTER html %]" + [% " selected" IF component.name == "General" %]> + [% component.name FILTER html %] + </option> + [% END %] + </select> + </td> +</tr> + +<tr> + <th class="required">Summary</th> + <td> + Please provide a brief summary of what documentation you're requesting, or + what problem you're reporting in existing documentation:<br> + <input type="text" name="short_desc" id="short_desc" size="60"> + </td> +</tr> + +[% IF feature_enabled('jsonrpc') AND !cloned_bug_id %] + <tr id="possible_duplicates_container" class="bz_default_hidden"> + <th>Possible<br>Duplicates:</th> + <td colspan="3"> + <div id="possible_duplicates"></div> + <script type="text/javascript"> + var dt_columns = [ + { key: "id", label: "[% field_descs.bug_id FILTER js %]", + formatter: YAHOO.bugzilla.dupTable.formatBugLink }, + { key: "summary", + label: "[% field_descs.short_desc FILTER js %]", + formatter: "text" }, + { key: "status", + label: "[% field_descs.bug_status FILTER js %]", + formatter: YAHOO.bugzilla.dupTable.formatStatus }, + { key: "update_token", label: '', + formatter: YAHOO.bugzilla.dupTable.formatCcButton } + ]; + YAHOO.bugzilla.dupTable.addCcMessage = "Add Me to the CC List"; + YAHOO.bugzilla.dupTable.init({ + container: 'possible_duplicates', + columns: dt_columns, + product_name: '[% product.name FILTER js %]', + summary_field: 'short_desc', + options: { + MSG_LOADING: 'Searching for possible duplicates...', + MSG_EMPTY: 'No possible duplicates found.', + SUMMARY: 'Possible Duplicates' + } + }); + </script> + </td> + </tr> +[% END %] + +<tr> + <th>Page to Update</th> + <td> + <input type="text" name="bug_file_loc" id="short_desc" size="60" + value="[% bug_file_loc FILTER html %]"> + </td> +</tr> + +<tr> + <th>Technical Contact</th> + <td> + [% INCLUDE global/userselect.html.tmpl + id => "cc" + name => "cc" + value => "" + size => 60 + classes => ["bz_userfield"] + multiple => 5 + %] + <br> + <a href="https://developer.mozilla.org/en-US/docs/Project:Subject-matter_experts" + target="_blank" id="common_topic_experts"> + List of common topic experts</a> + </td> +</tr> + +<tr> + <th class="required">Gecko Version</th> + <td> + <select name="gecko" id="gecko"> + [% FOREACH version = versions %] + <option value="[% version.name FILTER html %]" + [% " selected" IF version.name == "unspecified" %]> + [% version.name FILTER html %] + </option> + [% END %] + </select> + </td> +</tr> + +<tr> + <th class="required">Details</th> + <td> + <textarea id="details" name="details" cols="50" rows="10"></textarea> + </td> +</tr> + +<tr> + <th>Development [% terms.Bug %]</th> + <td> + <input type="text" id="blocked" name="blocked" size="10"> + <i>Corresponding development [% terms.bug %].</i> + </td> +</tr> + +<tr> + <th class="required">Urgency</th> + <td> + <select name="priority" id="priority"> + <option value="P1">Immediately</option> + <option value="P2">Before Release</option> + <option value="P3">Before Aurora</option> + <option value="P4">Before Beta</option> + <option value="P5" selected>No Rush</option> + </select> + <br> + Due to the volume of requests, the documentation team can't commit to + meeting specific deadlines for given documentation requests, but we will do + our best. + </td> +</tr> + +<tr> + <td> </td> +</tr> + +<tr> + <td> </td> + <td><input type="submit" id="commit" value="Submit Request"></td> +</tr> + +</table> +</form> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-employee-incident.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-employee-incident.html.tmpl new file mode 100644 index 000000000..2bbacdb12 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-employee-incident.html.tmpl @@ -0,0 +1,288 @@ +[%# 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 BMO Bugzilla Extension. + # + # The Initial Developer of the Original Code is the Mozilla Foundation + # Portions created by the Initial Developers are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # David Lawrence <dkl@mozilla.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Mozilla Corporation/Foundation Employee Incident" +%] + +[% USE Bugzilla %] + +<script type="text/javascript"> + var type_desc = new Array(); + type_desc['safety'] = "If this is an emergency please immediately call your local police or emergency number."; + type_desc['stolen'] = "Please report a lost Mozilla laptop or any mobile device that was used to access<br> " + + "Mozilla email or contained passwords for Mozilla servers, devices, applications, etc."; + + function validateAndSubmit() { + var alert_text = ''; + var typeSelect = YAHOO.util.Dom.get('incident_type'); + var typeValue = typeSelect.options[typeSelect.selectedIndex].value; + + if (typeValue != 'stolen' && !isFilledOut('short_desc')) { + alert_text += "Please enter a summary.\n"; + } + + var select = YAHOO.util.Dom.get('incident_type'); + var selectValue = select.options[select.selectedIndex].value; + if (selectValue == 'stolen') { + if (!isFilledOut('device')) { + alert_text += "Please provide the type of device.\n"; + } + if (!isFilledOut('encrypted')) { + alert_text += "Please answer whether the device was encrypted.\n"; + } + if (!isFilledOut('userdata')) { + alert_text += "Please answer whether the device had user data.\n"; + } + if (!isFilledOut('rememberpasswords')) { + alert_text += "Please answer whether the browser was configured to remember passwords.\n"; + } + } + + if (alert_text) { + alert(alert_text); + return false; + } + + // Hard code summary if stolen type was chosen + if (typeValue == 'stolen') { + document.getElementById('short_desc').value = '[Lost Device] Change LDAP Password for [% user.name FILTER js %]'; + } + + return true; + } + + function setType (select) { + var selectValue = select.options[select.selectedIndex].value; + + // Set the current description displayed. + document.getElementById('type_desc').innerHTML = type_desc[selectValue]; + + // Display/hide some additional fields based on type selected + if (selectValue == 'stolen') { + YAHOO.util.Dom.removeClass('stolen', 'bz_default_hidden'); + YAHOO.util.Dom.addClass('safety', 'bz_default_hidden'); + } + else { + YAHOO.util.Dom.removeClass('safety', 'bz_default_hidden'); + YAHOO.util.Dom.addClass('stolen', 'bz_default_hidden'); + } + + // Alter the product/component/group based on type selected + if (selectValue == 'stolen') { + document.getElementById('product').value = 'mozilla.org'; + document.getElementById('component').value = 'Server Operations: Desktop Issues'; + document.getElementById('groups').value = 'infra'; + document.getElementById('cc').value = 'mcoates@mozilla.com, jstevensen@mozilla.com, afowler@mozilla.com'; + document.getElementById('bug_severity').value = 'critical'; + document.getElementById('display_action').value = 'ldap'; + } + else { + document.getElementById('product').value = 'Mozilla Corporation'; + document.getElementById('component').value = 'Facilities Management'; + document.getElementById('groups').value = 'hr'; + document.getElementById('cc').value = 'dcohen@mozilla.com, mcoates@mozilla.com, jill@mozilla.com'; + document.getElementById('bug_severity').value = 'normal'; + document.getElementById('display_action').value = ''; + } + } + + function toggleEnabled (source, value, target) { + var sourceElement = YAHOO.util.Dom.get(source); + var targetElement = YAHOO.util.Dom.get(target); + if (sourceElement[sourceElement.selectedIndex].value == value) { + targetElement.disabled = false; + targetElement.focus(); + } + else { + targetElement.disabled = true; + } + } + + function isFilledOut(elem_id) { + var str = document.getElementById(elem_id).value; + return str.length > 0 && str != "noneselected"; + } + + YAHOO.util.Event.onDOMReady(function () { + setType(document.getElementById('incident_type')); + toggleEnabled('userdata', 'Yes', 'sensitivedata'); + toggleEnabled('rememberpasswords', 'Yes', 'criticalsites'); + }); +</script> + +<p><strong>Please use this form for employee incidents only!</strong></p> +<p>If you have a [% terms.bug %] to file, go <a href="enter_bug.cgi">here</a>.</p> +<p><span style="color: red;">*</span> Required Fields</p> +<form method="post" action="post_bug.cgi" id="incidentForm" enctype="multipart/form-data" + onSubmit="return validateAndSubmit();"> + <input type="hidden" id="product" name="product" value=""> + <input type="hidden" id="component" name="component" value=""> + <input type="hidden" id="rep_platform" name="rep_platform" value="All"> + <input type="hidden" id="op_sys" name="op_sys" value="All"> + <input type="hidden" id="priority" name="priority" value="--"> + <input type="hidden" id="version" name="version" value="other"> + <input type="hidden" id="cc" name="cc" value=""> + <input type="hidden" id="groups" name="groups" value=""> + <input type="hidden" id="format" name="format" value="employee-incident"> + <input type="hidden" id="bug_severity" name="bug_severity" value=""> + <input type="hidden" id="display_action" name="display_action" value=""> + <input type="hidden" id="token" name="token" value="[% token FILTER html %]"> + + <table> + <tr> + <td align="right" valign="top"><strong>Incident Type:</strong></td> + <td> + <select id="incident_type" name="incident_type" onchange="setType(this);"> + <option value="safety" selected>Report a Safety Concern</option> + <option value="stolen">My laptop or phone was lost/stolen</option> + </select> + <div id="type_desc" style="color:red;"></div> + </td> + </tr> + <tbody id="safety" class="bz_default_hidden"> + <tr class="safety"> + <td align="right"> + <strong><span style="color: red;">*</span> Summary:</strong> + </td> + <td> + <input name="short_desc" id="short_desc" size="60" + value="[% short_desc FILTER html %]"> + </td> + </tr> + </tbody> + <tbody id="stolen" class="bz_default_hidden"> + <tr> + <td align="right" valign="top"><strong>Stolen Details:</strong></td> + <td> + <table> + <tr> + <td> + <label for="device"> + <strong><span style="color: red;">*</span></strong> + Type of device lost: + </label> + </td> + <td> + <select name="device" id="device"> + <option value="">---</option> + <option value="Mobile Phone">Mobile Phone</option> + <option value="Tablet">Tablet</option> + <option value="Laptop">Laptop</option> + <option value="WorkStation">WorkStation</option> + <option value="Portable Storage Device">Portable Storage Device</option> + <option value="Other">Other (describe in 'Extra Notes')</option> + </select> + </td> + </tr> + <tr> + <td> + <label for="encrypted"> + <strong><span style="color: red;">*</span></strong> + To your knowledge, was your device encrypted? + </label> + </td> + <td> + <select name="encrypted" id="encrypted"> + <option value="">---</option> + <option value="No">No</option> + <option value="Yes">Yes</option> + </select> + </td> + </tr> + <tr> + <td> + <label for="userdata"> + <strong><span style="color: red;">*</span></strong> + Did you have any user data on your device? + </label> + </td> + <td> + <select name="userdata" id="userdata" + onchange="toggleEnabled('userdata', 'Yes', 'sensitivedata');"> + <option value="">---</option> + <option value="No">No</option> + <option value="Yes">Yes</option> + </select> + </td> + </tr> + </table> + </td> + </tr> + <tr> + <td> </td> + <td>If yes, what sensitive data was stored on your device?</td> + </tr> + <tr> + <td> </td> + <td> + <textarea name="sensitivedata" id="sensitivedata" rows="10" cols="80"></textarea> + </td> + </tr> + <tr> + <td> </td> + <td> + <label for="rememberpasswords"> + <strong><span style="color: red;">*</span></strong> + Was your browser configured to remember passwords + (<a href="http://support.mozilla.com/en-US/kb/make-firefox-remember-usernames-and-passwords">more info</a>)? + </label> + <select name="rememberpasswords" id="rememberpasswords" + onchange="toggleEnabled('rememberpasswords', 'Yes', 'criticalsites');"> + <option value="">---</option> + <option value="No">No</option> + <option value="Yes">Yes</option> + </select> + </td> + </tr> + <tr> + <td> </td> + <td>If yes, which critical sites were included?</td> + </tr> + <tr> + <td> </td> + <td> + <textarea name="criticalsites" id="criticalsites" rows="10" cols="80"></textarea> + </td> + </tr> + </tbody> + <tr> + <td align="right" valign="top"><strong>Extra Notes:</strong></td> + <td> + <textarea name="comment" rows="10" cols="80"> + [% comment FILTER html %]</textarea> + </td> + </tr> + <tr> + <td> </td> + <td> + <input type="submit" id="commit" value="Submit Request"> + </td> + </tr> + </table> +</form> + +<p> + Thanks for contacting us. You will be notified by email of any progress made in resolving your request. +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-finance.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-finance.html.tmpl new file mode 100644 index 000000000..fa8dc5f5b --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-finance.html.tmpl @@ -0,0 +1,257 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% inline_style = BLOCK %] + #bug_form input[type=text], #bug_form input[type=file], #cc_autocomplete, #bug_form textarea { + width: 100%; + } +[% END %] + +[% inline_js = BLOCK %] + var compdesc = new Array(); + [% FOREACH comp = product.components %] + compdesc['[% comp.name FILTER js %]'] = '[% comp.description FILTER js %]'; + [% END %] + function showCompDesc(component) { + var value = component.value; + document.getElementById('comp_description').innerHTML = compdesc[value]; + } + + function onSubmit() { + var alert_text = ''; + if (!isFilledOut('component')) + alert_text += "Please select a value for request type.\n"; + if (!isFilledOut('short_desc')) + alert_text += "Please enter a value for the summary.\n"; + if (!isFilledOut('team_priority')) + alert_text += "Please select a value for team priority.\n"; + if (!isFilledOut('signature_time')) + alert_text += "Please enter a value for signture timeframe.\n"; + if (!isFilledOut('other_party')) + alert_text += "Please enter a value for the name of other party.\n"; + if (!isFilledOut('business_obj')) + alert_text += "Please enter a value for business objective.\n"; + if (!isFilledOut('what_purchase')) + alert_text += "Please enter a value for what you are purchasing.\n"; + if (!isFilledOut('why_purchase')) + alert_text += "Please enter a value for why the purchase is needed.\n"; + if (!isFilledOut('risk_purchase')) + alert_text += "Please enter a value for the risk if not purchased.\n"; + if (!isFilledOut('alternative_purchase')) + alert_text += "Please enter a value for the purchase alternative.\n"; + if (!isFilledOut('total_cost')) + alert_text += "Please enter a value for total cost.\n"; + if (!isFilledOut('attachment')) + alert_text += "Please enter an attachment.\n"; + + if (alert_text != '') { + alert(alert_text); + return false; + } + + return true; + } +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Finance" + style = inline_style + style_urls = [ 'skins/standard/enter_bug.css' ] + javascript = inline_js + javascript_urls = [ 'extensions/BMO/web/js/form_validate.js', + 'js/attachment.js', 'js/field.js', 'js/util.js' ] + onload = "showCompDesc(document.getElementById('component'));" +%] + +<h2>Finance</h2> + +<p>All fields are mandatory</p> + +<form method="post" action="post_bug.cgi" id="bug_form" class="enter_bug_form" + enctype="multipart/form-data" onsubmit="return onSubmit();"> +<input type="hidden" name="format" value="finance"> +<input type="hidden" name="product" value="Finance"> +<input type="hidden" name="rep_platform" value="All"> +<input type="hidden" name="op_sys" value="Other"> +<input type="hidden" name="priority" value="--"> +<input type="hidden" name="version" value="unspecified"> +<input type="hidden" name="bug_severity" id="bug_severity" value="normal"> +<input type="hidden" name="comment" id="comment" value=""> +<input type="hidden" name="groups" id="groups" value="finance"> +<input type="hidden" name="token" value="[% token FILTER html %]"> + +<table> + +<tr> + <th> + <label for="component">Request Type:</label> + </th> + <td> + <select name="component" id="component" onchange="showCompDesc(this);"> + [%- FOREACH c = product.components %] + [% NEXT IF NOT c.is_active %] + <option value="[% c.name FILTER html %]" + id="v[% c.id FILTER html %]_component" + [% IF c.name == default.component_ %] + selected="selected" + [% END %]> + [% c.name FILTER html -%] + </option> + [%- END %] + </select + </td> +</tr> + +<tr> + <td></td> + <td id="comp_description" align="left" style="color: green; padding-left: 1em"></td> +</tr> + +<tr> + <th> + <label for="short_desc">Description:</label> + </th> + <td> + <i>Short description of what is being asked to sign</i><br> + <input name="short_desc" id="short_desc" size="60" + value="[% short_desc FILTER html %]"> + </td> +</tr> + +<tr> + <th> + <label for="team_priority">Priority to your Team:</label> + </th> + <td> + <select id="team_priority" name="team_priority"> + <option value="Low">Low</option> + <option value="Medium">Medium</option> + <option value="High">High</option> + </select> + </td> +</tr> + +<tr> + <th> + <label for="signature_time">Timeframe for Signature:</label> + </th> + <td> + <select id="signature_time" name="signature_time"> + <option value="24 hours">Within 24 hours</option> + <option value="2 days">2 days</option> + <option value="A week">A week</option> + <option value="2 - 4 weeks" selected>2 -4 weeks</option> + </select> + </td> +</tr> + +<tr> + <th> + <label for="other_party">Name of Other Party:</label> + </th> + <td> + <i>Include full legal entity name and any other relevant contact information</i><br> + <textarea id="other_party" name="other_party" + rows="5" cols="40"></textarea> + </td> +<tr> + +<tr> + <th> + <label for="business_obj">Business Objective:</label> + </th> + <td> + <i> + Which Initiative or Overall goal this purchase is for. i.e. B2G, Data Center, Network, etc.</i><br> + <textarea id="business_obj" name="business_obj" rows="5" cols="40"></textarea> + </td> +<tr> + +<tr> + <th> + <label for="what_purchase">If this is a purchase order,<br>what are we purchasing?</label> + </th> + <td> + <i> + Describe your request, what items are we purchasing, including number of + units if available.<br>Also provide context and background. Enter No if not + a purchase order.</i><br> + <textarea name="what_purchase" id="what_purchase" rows="5" cols="40"></textarea> + </td> +</tr> + +<tr> + <th> + <label for="why_purchase">Why is this purchase needed?</label> + </th> + <td> + <i> + Why do we need this? What is the work around if this is not approved?</i><br> + <textarea name="why_purchase" id="why_purchase" rows="5" cols="40"></textarea> + </td> +</tr> + +<tr> + <th> + <label for="risk_purchase">What is the risk if<br>this is not purchased?</label> + </th> + <td> + <i> + What will happen if this is not purchased?</i><br> + <textarea name="risk_purchase" id="risk_purchase" rows="5" cols="40"></textarea> + </td> +</tr> + +<tr> + <th> + <label for="alternative_purchase">What is the alternative?</label> + </th> + <td> + <i> + How did the team come to this recommendation? Did we get other bids, if so, how many?</i><br> + <textarea name="alternative_purchase" id="alternative_purchase" rows="5" cols="40"></textarea> + </td> +</tr> + +<tr> + <th> + <label for="total_cost">Total Cost</label> + </th> + <td> + <input type="text" name="total_cost" id="total_cost" value="" size="60"> + </td> +</tr> + +<tr> + <th> + <label for="attachment">Attachment:</label> + </th> + <td> + <i>Upload document that needs to be signed. If this is a Purchase Request form,<br> + also upload any supporting document such as draft SOW, quote, order form, etc.</i> + <div> + <input type="file" id="attachment" name="data" size="50"> + <input type="hidden" name="contenttypemethod" value="autodetect"> + <input type="hidden" name="description" value="Finance Document"> + </div> + </td> +</tr> + +<tr> + <td> </td> + <td> + <input type="submit" id="commit" value="Submit Request"> + </td> +</tr> +</table> + +</form> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-ipp.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-ipp.html.tmpl new file mode 100644 index 000000000..fb59cfeb3 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-ipp.html.tmpl @@ -0,0 +1,183 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% inline_style = BLOCK %] +#ipp_form th { + text-align: right; +} + +#ipp_form input[type="text"], #ipp_form textarea { + width: 100%; +} + +#ipp_form textarea { + font-family: inherit; + font-size: inherit; +} + +#standard_link { + margin-top: 2em; +} + +#standard_link img { + vertical-align: middle; +} + +#standard_link a { + cursor: pointer; +} + +[% END %] + +[% inline_javascript = BLOCK %] +function validateAndSubmit() { + var alert_text = ''; + if (!isFilledOut('component')) alert_text += 'Please select the "Area".\n'; + if (!isFilledOut('short_desc')) alert_text += 'Please enter a "Summary".\n'; + if (!isFilledOut('region')) alert_text += 'Please enter the "Region/Country".\n'; + if (!isFilledOut('desc')) alert_text += 'Please provide a "Description".\n'; + if (!isFilledOut('relevance')) alert_text += 'Please provide some "Relevance".\n'; + if (!isFilledOut('goal')) alert_text += 'Please enter the "Goal".\n'; + if (!isFilledOut('when')) alert_text += 'Please enter data for the "When" field.\n'; + if (alert_text != '') { + alert(alert_text); + return false; + } + return true; +} +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Internet Public Policy Issue" + style = inline_style + javascript = inline_javascript + javascript_urls = [ 'extensions/BMO/web/js/form_validate.js', + 'js/field.js', 'js/util.js', 'js/bug.js' ] +%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +<h1>Internet Public Policy Issue</h1> + +<form method="post" action="post_bug.cgi" enctype="multipart/form-data" + onSubmit="return validateAndSubmit();"> + <input type="hidden" name="format" value="ipp"> + <input type="hidden" name="product" value="Internet Public Policy"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="op_sys" value="Other"> + <input type="hidden" name="version" value="unspecified"> + <input type="hidden" name="bug_severity" id="bug_severity" value="normal"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + +<table id="ipp_form"> + +<tr> + <th class="required">Area</th> + <td> + <select name="component" id="component"> + <option value="">Please select..</option> + [% FOREACH component = product.components %] + <option value="[% component.name FILTER html %]"> + [% component.name FILTER html %] + </option> + [% END %] + </select> + </td> +</tr> + +<tr> + <th class="required">Summary</th> + <td> + <input type="text" name="short_desc" id="short_desc" size="60" + placeholder="(Describe issue in one sentence)"> + </td> +</tr> + +<tr> + <th class="required">Region/Country</th> + <td> + <input type="text" name="region" id="region" size="60"> + </td> +</tr> + +<tr> + <th class="required">Description</th> + <td> + <textarea id="desc" name="desc" cols="50" rows="5" + placeholder="(Explain the legislative or policy activity which is happening)"></textarea> + </td> +</tr> + +<tr> + <th class="required">Relevance</th> + <td> + <textarea id="relevance" name="relevance" cols="50" rows="5" + placeholder="(Why should Mozilla care? What’s the impact on the open internet?)"></textarea> + </td> +</tr> + +<tr> + <th class="required">Goal</th> + <td> + <input type="text" name="goal" id="goal" size="60" + placeholder="(What would success look like for Mozilla?)"> + </td> +</tr> + +<tr> + <th class="required">When</th> + <td> + <input type="text" name="when" id="when" size="60" + placeholder="(Describe the timeline or due date)"> + </td> +</tr> + +<tr> + <th class="required">Urgency</th> + <td> + <select name="priority" id="priority"> + <option value="P1">Urgent</option> + <option value="P3">Needs Attention Soon</option> + <option value="P5" selected>When You Get To It</option> + </select> + </td> +</tr> + +<tr> + <th>Additional Information</th> + <td> + <textarea id="additional" name="additional" cols="50" rows="5" + placeholder="(Please supply links to relevant articles/websites/organizations)"></textarea> + </td> +</tr> + +<tr> + <td> </td> +</tr> + +<tr> + <td> </td> + <td><input type="submit" id="commit" value="Submit Issue"></td> +</tr> + +</table> +</form> + +[ <span class="required_star">*</span> <span class="required_explanation">Required Field</span> ] + +<div id="standard_link"> + <a href="enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]"> + <img src="extensions/BMO/web/images/advanced.png" width="16" height="16" border="0"></a> + <a href="enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]"> + Switch to the standard [% terms.bug %] entry form</a> +</div> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-itrequest.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-itrequest.html.tmpl new file mode 100644 index 000000000..5fd0b0473 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-itrequest.html.tmpl @@ -0,0 +1,230 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% inline_javascript = BLOCK %] + function setsevdesc(theSelect) { + var theValue = theSelect.options[theSelect.selectedIndex].value; + if (theValue == 'blocker') { + document.getElementById('blockerdesc').style.display = 'block'; + document.getElementById('critdesc').style.display = 'none'; + } else if (theValue == 'critical') { + document.getElementById('blockerdesc').style.display = 'none'; + document.getElementById('critdesc').style.display = 'block'; + } else { + document.getElementById('blockerdesc').style.display = 'none'; + document.getElementById('critdesc').style.display = 'none'; + } + } + + var compdesc = new Array(); + [% FOREACH comp IN product.components %] + compdesc['[% comp.name FILTER js %]'] = '[% comp.description FILTER js %]'; + [% END %] + compdesc['invalid'] = ''; + + var serviceNowText = 'Use <a href="https://mozilla.service-now.com/">Service Now</a> to:<br>' + + 'Request an LDAP/E-mail/etc. account<br>' + + 'Desktop/Laptop/Printer/Phone/Tablet/License problem/order/request'; + + function setcompdesc(theRadio) { + if (theRadio.id == 'componentmvd') { + [%# helpdesk issue/request %] + document.getElementById('main_form').style.display = 'none'; + document.getElementById('service_now_form').style.display = ''; + document.getElementById('compdescription').innerHTML = serviceNowText; + } else { + document.getElementById('main_form').style.display = ''; + document.getElementById('service_now_form').style.display = 'none'; + var theValue = theRadio.value; + var compDescText = compdesc[theValue]; + if (theRadio.id == 'componentso') { + compDescText = compDescText + '<br><br>' + serviceNowText; + } + document.getElementById('compdescription').innerHTML = compDescText; + } + } + + function on_submit() { + if (document.getElementById('componentmvd').checked) { + [%# redirect desktop issues to service-now #%] + document.location.href = 'https://mozilla.service-now.com/'; + return false; + } + return true; + } + + YAHOO.util.Event.onDOMReady(function() { + var comps = document.getElementsByName('component'); + for (var i = 0, l = comps.length; i < l; i++) { + if (comps[i].checked) { + setcompdesc(comps[i]); + break; + } + } + }); +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Mozilla Corporation/Foundation IT Requests" + javascript = inline_javascript + javascript_urls = [ 'js/field.js' ] + yui = [ 'autocomplete' ] +%] + +[% USE Bugzilla %] + +<p><strong>Please use this form for IT requests only!</strong></p> +<p>If you have a [% terms.bug %] to file, go <a href="enter_bug.cgi">here</a>.</p> + +<form method="post" action="post_bug.cgi" id="itRequestForm" enctype="multipart/form-data" + onsubmit="return on_submit()"> + <input type="hidden" name="product" value="mozilla.org"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="op_sys" value="Other"> + <input type="hidden" name="priority" value="--"> + <input type="hidden" name="version" value="other"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <table> + <tr> + + <td align="right"> + <strong>Urgency:</strong> + </td> + + <td> + <select id="bug_severity" name="bug_severity" onchange="setsevdesc(this)"> + <option value="blocker">All work for IT stops until this is done</option> + <option value="critical">IT should work on it soon as possible (urgent)</option> + <option value="major">IT should get to it within 24 hours</option> + <option value="normal">IT should get to it within the next week</option> + <option value="minor" selected="selected">No rush, but hopefully IT can get to it soon</option> + <option value="trivial">Whenever IT can get around to it</option> + <option value="enhancement">This is just an idea, filing it so we don't forget</option> + </select> + </td> + <td> + <div id="blockerdesc" style="color:red;display:none">This will page the on-call sysadmin if not handled within 30 minutes.</div> + <div id="critdesc" style="color:red;display:none">This will page the on-call sysadmin if not handled within 8 hours.</div> + </td> + + </tr> + <tr> + <td align="right"><strong>Request Type:</strong></td> + <td style="white-space: nowrap;"> + <input type="radio" name="component" id="componentmvd" onclick="setcompdesc(this)" value="Server Operations: Desktop Issues"> + <label for="componentmvd">Service Desk issue/request</label><br> + <input type="radio" name="component" id="componenttbm" onclick="setcompdesc(this)" value="Server Operations: RelEng"> + <label for="componenttbm">Report a problem with a tinderbox machine</label><br> + <input type="radio" name="component" id="componentwcp" onclick="setcompdesc(this)" value="Server Operations: Web Operations"> + <label for="componentwcp">Report a problem with a Mozilla website, or to request a change or push</label><br> + <input type="radio" name="component" id="componentacl" onclick="setcompdesc(this)" value="Server Operations: ACL Request"> + <label for="componentacl">Request a firewall change</label><br> + <input type="radio" name="component" id="componentso" onclick="setcompdesc(this)" value="Server Operations"> + <label for="componentso">Any other issue</label><br> + Mailing list requests should be filed <a href="[% ulrbase FILTER none %]enter_bug.cgi?product=mozilla.org&format=mozlist">here</a> instead. + </td> + <td id="compdescription" align="left" style="color: green; padding-left: 1em"> + </td> + </tr> + + <tbody id="main_form"> + + <tr> + <td align="right"><strong>Summary:</strong></td> + <td colspan="3"> + <input name="short_desc" size="60" value="[% short_desc FILTER html %]"> + </td> + </tr> + + <tr> + <td align="right"><strong>CC (optional):</strong></td> + <td colspan="3"> + [% INCLUDE global/userselect.html.tmpl + id => "cc" + name => "cc" + value => cc + size => 60 + multiple => 5 + %] + </td> + </tr> + + <tr><td align="right" valign="top"><strong>Description:</strong></td> + <td colspan="3"> + <textarea name="comment" rows="10" cols="80"> + [% comment FILTER html %]</textarea> + <br> + </td> + </tr> + + <tr> + <td align="right"><strong>URL (optional):</strong></td> + <td colspan="3"> + <input name="bug_file_loc" size="60" + value="[% bug_file_loc FILTER html %]"> + </td> + </tr> + + <tr><td colspan="4"> </td></tr> + + <tr> + <td colspan="4"> + <strong>Attachment (optional):</strong> + </td> + </tr> + + <tr> + <td align="right">File:</td> + <td colspan="3"> + <em>Enter the path to the file on your computer.</em><br> + <input type="file" id="data" name="data" size="50"> + <input type="hidden" name="contenttypemethod" value="autodetect" /> + </td> + </tr> + + <tr> + <td align="right">Description:</td> + <td colspan="3"> + <em>Describe the attachment briefly.</em><br> + <input type="text" id="description" name="description" size="60" maxlength="200"> + </td> + </tr> + + <tr> + <td> </td> + <td> + <br> + <!-- infra --> + <input type="checkbox" name="groups" id="groups" value="infra" checked="checked"> + <label for="groups"><strong>This is an internal issue which should not be publicly visible.</strong></label><br> + (please uncheck this box if it isn't)<br> + <br> + <input type="submit" id="commit" value="Submit Request"><br> + <br> + Thanks for contacting us. You will be notified by email of any progress made in resolving your request. + </td> + </tr> + + </tbody> + + <tbody id="service_now_form" style="display:none"> + <tr> + <td> </td> + <td> + <br> + <input type="submit" value="Go to Service Now"> + </td> + </tr> + </tbody> + </table> +</form> + + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-legal.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-legal.html.tmpl new file mode 100644 index 000000000..fdb92c11b --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-legal.html.tmpl @@ -0,0 +1,226 @@ +[%# 1.0@bugzilla.org %] +[%# 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 Mozilla Corporation. + # Portions created by Mozilla are Copyright (C) 2008 Mozilla + # Corporation. All Rights Reserved. + # + # Contributor(s): Mark Smith <mark@mozilla.com> + # Reed Loden <reed@mozilla.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Mozilla Corporation Legal Requests" + style_urls = [ 'skins/standard/attachment.css' ] + javascript_urls = [ 'js/attachment.js', 'js/field.js' ] + yui = [ 'autocomplete' ] +%] + +[% IF user.in_group("mozilla-corporation-confidential") + OR user.in_group("mozilla-messaging-confidential") + OR user.in_group("mozilla-foundation-confidential") %] + +<div style='text-align: center; width: 98%; font-size: 2em; font-weight: bold; margin: 10px;'>MoLegal</div> + +<p><strong>Welcome to MoLegal.</strong> For legal help please fill in the form below completely.</p> + +<p>Legal [% terms.bugs %] are only visible to the reporter, members of the legal team, and those on the +CC list. This is necessary to maintain attorney-client privilege. Please do not add non- +employees to the cc list.</p> + +<p><strong>All Submissions, And Information Provided In Response To This Request, +Are Confidential And Subject To The Attorney-Client Privilege And Work Product Doctrine.</strong></p> + +<p>If you are requesting legal review of a new product or service, a new feature of an existing product + or service, or any type of contract, please go + <a href="[% urlbase FILTER none %]enter_bug.cgi?product=mozilla.org&format=moz-project-review">here</a> + to kick-off review of your project. If you are requesting another type of legal action, e.g patent analysis, + trademark misuse investigation, HR issue, or standards work, please use this form.</p> + +<form method="post" action="post_bug.cgi" id="legalRequestForm" enctype="multipart/form-data"> + <input type="hidden" name="product" value="Legal"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="op_sys" value="Other"> + <input type="hidden" name="version" value="unspecified"> + <input type="hidden" name="priority" value="--"> + <input type="hidden" name="bug_severity" value="normal"> + <input type="hidden" name="format" value="legal"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + [% IF user.in_group('canconfirm') %] + <input type="hidden" name="bug_status" value="NEW"> + [% END %] + +<table> + +<tr> + <td align="right" width="170px"><strong>Request Type:</strong></td> + <td> + <select name="component"> + [%- FOREACH c = product.components %] + [% NEXT IF NOT c.is_active %] + <option value="[% c.name FILTER html %]" + [% " selected=\"selected\"" IF c.name == "General" %]> + [% c.name FILTER html -%] + </option> + [%- END %] + </select> + </td> +</tr> + +<tr> + <td align="right" valign="top"> + <strong>Goal:</strong> + </td> + <td colspan="3"> + <em>Identify the company goal this request maps to.</em><br> + <input name="goal" id="goal" size="60" value="[% goal FILTER html %]"> + </td> +</tr> + +<tr> + <td align="right"> + <strong>Priority to your Team:</strong> + </td> + <td> + <select id="teampriority" name="teampriority"> + <option value="High">High</option> + <option value="Medium">Medium</option> + <option value="Low" selected="selected">Low</option> + </select> + </td> +</tr> + +<tr> + <td align="right"> + <strong>Timeframe for Completion:</strong> + </td> + <td> + <select id="timeframe" name="timeframe"> + <option value="2 days">2 days</option> + <option value="a week">a week</option> + <option value="2-4 weeks">2-4 weeks</option> + <option value="this will take a while, but please get started soon"> + this will take a while, but please get started soon</option> + <option value="no rush" selected="selected">no rush</option> + </select> + </td> +</tr> + +<tr> + <td align="right" valign="top"> + <strong>Summary:</strong> + </td> + <td colspan="3"> + <em>Include the name of the vendor, partner, product, or other identifier.</em><br> + <input name="short_desc" size="60" value="[% short_desc FILTER html %]"> + </td> +</tr> + +<tr> + <td align="right"> + <strong>CC (optional):</strong> + </td> + <td colspan="3"> + [% INCLUDE global/userselect.html.tmpl + id => "cc" + name => "cc" + value => cc + size => 60 + multiple => 5 + %] + </td> +</tr> + +<tr> + <td align="right" valign="top"> + <strong>Name of Other Party:</strong> + </td> + <td> + <em>If applicable, include full legal entity name, address, and any other relevant contact information.</em><br> + <textarea id="otherparty" name="otherparty" rows="3" cols="80"></textarea> + </td> +</tr> + +<tr> + <td align="right"> + <strong>Business Objective:</strong> + </td> + <td> + <input type="text" name="busobj" id="busobj" value="" size="60" /> + </td> +</tr> + +<tr> + <td align="right" valign="top"> + <strong>Description:</strong> + </td> + <td colspan="3"> + <em>Describe your question, what you want and/or provide any relevant deal terms, restrictions,<br> + or provisions that are applicable. Also provide context and background.</em><br> + <textarea id="comment" name="comment" rows="10" cols="80"> + [% comment FILTER html %]</textarea> + </td> +</tr> + +<tr> + <td align="right"><strong>URL (optional):</strong></td> + <td colspan="3"> + <input name="bug_file_loc" size="60" + value="[% bug_file_loc FILTER html %]"> + </td> +</tr> + +<tr> + <td></td> + <td colspan=2><strong>Attachment (this is optional)</strong></td> +</tr> + +<tr> + <td align="right" valign="top"> + <strong><label for="data">File:</label></strong> + </td> + <td> + <em>Enter the path to the file on your computer.</em><br> + <input type="file" id="data" name="data" size="50"> + <input type="hidden" name="contenttypemethod" value="autodetect" /> + </td> +</tr> + +<tr> + <td align="right" valign="top"> + <strong><label for="description">Description:</label></strong> + </td> + <td> + <em>Describe the attachment briefly.</em><br> + <input type="text" id="description" name="description" size="60" maxlength="200"> + </td> +</tr> + +</table> + +<br> + + <input type="submit" id="commit" value="Submit Request"> +</form> + +<p>Thanks for contacting us. You will be notified by email of any progress made in resolving your request.</p> + +[% ELSE %] + +<p>Sorry, you do not have access to this page.</p> + +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-mdn.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-mdn.html.tmpl new file mode 100644 index 000000000..f79363c99 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-mdn.html.tmpl @@ -0,0 +1,279 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% inline_style = BLOCK %] +strong.required:before { + content: "* "; + color: red; +} +#yui-history-iframe { + position: absolute; + top: 0; + left: 0; + width: 1px; + height: 1px; + visibility: hidden; +} +#standard { + margin-top: 2em; +} +#standard img { + vertical-align: middle; +} +#standard a { + cursor: pointer; +} +[% END %] +[% inline_javascript = BLOCK %] + var Dom = YAHOO.util.Dom; + var Event = YAHOO.util.Event; + var History = YAHOO.util.History; + var mdn = { + _initial_state: 'initial', + _current_state: 'initial', + _current_type: 'Bug', + _required_fields: { + 'Bug': { + 'bug_actions': 'Please enter some text for "What did you do?"', + 'bug_actual_results': 'Please enter some text for "What happened?"', + 'bug_expected_results': 'Please enter some text for "What should have happened?"', + }, + 'Feature': { + 'feature_problem_solving': 'Please enter some text for "What problems would this solve?"', + 'feature_audience': 'Please enter some text for "Who would use this?"', + 'feature_interface': 'Please enter some text for "What would users see?"', + 'feature_process': 'Please enter some text for "What would users do? What would happen as a result?"', + }, + 'Change': { + 'change_feature': 'Please enter some text for "What feature should be changed? Please provide the URL of the feature if possible"', + 'change_problem_solving': 'Please enter some text for "What problems would this solve?"', + 'change_audience': 'Please enter some text for "Who would use this?"', + 'change_interface': 'Please enter some text for "What would users see?"', + 'change_process': 'Please enter some text for "What would users do? What would happen as a result?"', + } + }, + setState: function(state, request_type, no_set_history) { + if (state == 'detail') { + request_type = request_type || this._getRadioValueByClass('request_type'); + request_type = request_type.toLowerCase(); + if (request_type == 'bug') { + Dom.get('detail_header').innerHTML = '<h2>[% terms.Bug %] Report</h2>'; + Dom.get('secure_type').innerHTML = 'report'; + } + if (request_type == 'feature') { + Dom.get('detail_header').innerHTML = '<h2>Feature Request</h2>'; + Dom.get('secure_type').innerHTML = 'request'; + } + if (request_type == 'change') { + Dom.get('detail_header').innerHTML = '<h2>Change Request</h2>'; + Dom.get('secure_type').innerHTML = 'request'; + } + Dom.addClass('detail_' + this._current_type, 'bz_default_hidden'); + Dom.removeClass('detail_' + request_type, 'bz_default_hidden'); + this._current_type = request_type; + } + Dom.addClass(this._current_state + '_form', 'bz_default_hidden'); + Dom.removeClass(state + '_form', 'bz_default_hidden'); + this._current_state = state; + if (History && !no_set_history) { + History.navigate('h', state + + (request_type ? '|' + request_type : '')); + } + return true; + }, + validateAndSubmit: function() { + var request_type = this._getRadioValueByClass('request_type'); + var alert_text = ''; + if (!isFilledOut('short_desc')) alert_text += 'Please enter a "Summary".\n'; + for (require_type in this._required_fields) { + if (require_type == request_type) { + for (field in this._required_fields[require_type]) { + if (!isFilledOut(field)) + alert_text += this._required_fields[require_type][field] + "\n"; + } + } + } + if (alert_text != '') { + alert(alert_text); + return false; + } + var whiteboard = Dom.get('status_whiteboard'); + whiteboard.value = "[specification][type:" + request_type.toLowerCase() + "]"; + return true; + }, + _getRadioValueByClass: function(class_name) { + var elements = Dom.getElementsByClassName(class_name); + for (var i = 0, l = elements.length; i < l; i++) { + if (elements[i].checked) return elements[i].value; + } + }, + init: function() { + var bookmarked_state = History.getBookmarkedState('h'); + this._initial_state = bookmarked_state || 'initial'; + try { + History.register('h', this._initial_state, mdn.onStateChange); + History.initialize('yui-history-field', 'yui-history-iframe'); + History.onReady(function () { + mdn.onStateChange(History.getCurrentState('h'), true); + }); + } + catch(e) { + console.log('error initializing history: ' + e); + History = false; + } + }, + onStateChange: function(state, no_set_history) { + var state_data = state.split('|'); + mdn.setState(state_data[0], state_data[1], no_set_history); + } + }; + Event.on('show_detail', 'click', function() { mdn.setState('detail'); }); +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Mozilla Developer Network Feedback" + style = inline_style + javascript = inline_javascript + yui = [ 'history' ] + javascript_urls = [ 'extensions/BMO/web/js/form_validate.js' ] +%] + +<iframe id="yui-history-iframe" src="extensions/BMO/web/yui-history-iframe.txt"></iframe> +<input id="yui-history-field" type="hidden"> + +<h1>Mozilla Developer Network Feedback</h1> + +<form method="post" action="post_bug.cgi" enctype="multipart/form-data" + onSubmit="return mdn.validateAndSubmit();"> + <input type="hidden" name="format" value="mdn"> + <input type="hidden" name="product" value="Mozilla Developer Network"> + <input type="hidden" name="component" value="General"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="op_sys" value="Other"> + <input type="hidden" name="version" value="unspecified"> + <input type="hidden" name="bug_severity" id="bug_severity" value="normal"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="hidden" name="status_whiteboard" id="status_whiteboard" value=""> + + <div id="initial_form"> + <p> + <input type="radio" name="request_type" class="request_type" + id="request_type_bug" value="Bug" checked="checked"> + <label for="request_type_bug">Report a [% terms.bug %]</label><br> + <input type="radio" name="request_type" class="request_type" + id="request_type_feature" value="Feature"> + <label for="request_type_feature">Request a new feature</label><br> + <input type="radio" name="request_type" class="request_type" + id="request_type_change" value="Change"> + <label for="request_type_change">Request a change to an existing feature</label><br> + <br> + <input id="show_detail" type="button" value="Next"> + </p> + </div> + + <div id="detail_form" class="bz_default_hidden"> + <p id="detail_header"></p> + + <p id="detail_summary"> + <strong class="required">Summary</strong><br> + <input type="text" name="short_desc" id="short_desc" size="60"> + </p> + + <div id="detail_bug" class="bz_default_hidden"> + <p> + <strong class="required">What did you do?</strong><br> + <textarea name="bug_actions" id="bug_actions" rows="5" cols="60"> +1. +2. +3. </textarea> + </p> + <p> + <strong class="required">What happened?</strong><br> + <textarea name="bug_actual_results" id="bug_actual_results" rows="5" cols="60"></textarea> + </p> + <p> + <strong class="required">What should have happened?</strong><br> + <textarea name="bug_expected_results" id="bug_expected_results" rows="5" cols="60"></textarea> + </p> + </div> + + <div id="detail_feature" class="bz_default_hidden"> + <p> + <strong class="required">What problems would this solve?</strong><br> + <textarea name="feature_problem_solving" id="feature_problem_solving" rows="5" cols="60"></textarea> + </p> + <p> + <strong class="required">Who would use this?</strong><br> + <textarea name="feature_audience" id="feature_audience" rows="5" cols="60"></textarea> + </p> + <p> + <strong class="required">What would users see?</strong><br> + <textarea name="feature_interface" id="feature_interface" rows="5" cols="60"></textarea> + </p> + <p> + <strong class="required">What would users do? What would happen as a result?</strong><br> + <textarea name="feature_process" id="feature_process" rows="5" cols="60"></textarea> + </p> + </div> + + <div id="detail_change" class="bz_default_hidden"> + <p> + <strong class="required">What feature should be changed? Please provide the URL of the feature if possible.</strong><br> + <textarea name="change_feature" id="change_feature" rows="5" cols="60"></textarea> + </p> + <p> + <strong class="required">What problems would this solve?</strong><br> + <textarea name="change_problem_solving" id="change_problem_solving" rows="5" cols="60"></textarea> + </p> + <p> + <strong class="required">Who would use this?</strong><br> + <textarea name="change_audience" id="change_audience" rows="5" cols="60"></textarea> + </p> + <p> + <strong class="required">What would users see?</strong><br> + <textarea name="change_interface" id="change_interface" rows="5" cols="60"></textarea> + </p> + <p> + <strong class="required">What would users do? What would happen as a result?</strong><br> + <textarea name="change_process" id="change_process" rows="5" cols="60"></textarea> + </p> + </div> + + <p id="detail_description"> + <strong>Is there anything else we should know?</strong><br> + <textarea name="description" id="description" rows="5" cols="60"></textarea> + </p> + + <p id="detail_secure"> + <input type="checkbox" name="groups" id="groups" + value="[% product.default_security_group FILTER html %]"> + <label for="groups"> + <strong>This <span id="secure_type">report</span> is about a problem + that is putting users at risk. It should be kept hidden from the public + until it is resolved.</strong> + </label> + </p> + + <input type="submit" id="commit" value="Submit"></td> + </div> +</form> + +<div id="standard"> + <a href="enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]"> + <img src="extensions/BMO/web/images/advanced.png" width="16" height="16" border="0"></a> + <a href="enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]"> + Switch to the standard [% terms.bug %] entry form</a> +</div> + +<script> + mdn.init(); +</script> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-mozlist.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-mozlist.html.tmpl new file mode 100644 index 000000000..38c08c72f --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-mozlist.html.tmpl @@ -0,0 +1,177 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Mozilla Discussion Forum" + javascript_urls = [ 'extensions/BMO/web/js/form_validate.js', + 'js/field.js' ] + yui = [ 'autocomplete' ] + style = ".mandatory{color:red;font-size:80%;}" +%] + +<script type="text/javascript"> +<!-- + function trySubmit() { + var alert_text = ""; + + if (!isFilledOut('listName')) { + alert_text += "Please enter the list name\n"; + } + + if (!isValidEmail(document.getElementById('listAdmin').value)) { + alert_text += "Please enter a valid email address for the list administrator\n"; + } + + if (alert_text) { + alert(alert_text); + return false; + } + + var listName = document.getElementById('listName').value; + document.getElementById('short_desc').value = "Discussion Forum: " + listName; + + return true; + } +// --> +</script> + +<p> + <b>Create a Mozilla Discussion Forum</b><br> + This option gives you a Mozilla <a + href="https://www.mozilla.org/about/forums/">Discussion Forum</a>. + These are the normal mechanism for public discussion in the Mozilla + project. They are made up of a mailing list on + <b>lists.mozilla.org</b>, a newsgroup on <b>news.mozilla.org</b> and + a <b>Google Group</b> (which maintains the list archives), all linked + together. Users can add and remove themselves. +</p> + +<div id="message"> + <b>Note:</b> + You must use <a href="https://mozilla.service-now.com/"><b>Service Now</b></a> + to request a distribution list or a standard mailing list. +</div> +<br> + +<form method="post" action="post_bug.cgi" id="mozListRequestForm" + enctype="multipart/form-data" onSubmit="return trySubmit();"> + <input type="hidden" id="format" name="format" value="mozlist"> + <input type="hidden" id="product" name="product" value="mozilla.org"> + <input type="hidden" id="rep_platform" name="rep_platform" value="All"> + <input type="hidden" id="op_sys" name="op_sys" value="Other"> + <input type="hidden" id="priority" name="priority" value="--"> + <input type="hidden" id="version" name="version" value="other"> + <input type="hidden" id="short_desc" name="short_desc" value=""> + <input type="hidden" id="component" name="component" value="Discussion Forums"> + <input type="hidden" id="bug_severity" name="bug_severity" value="normal"> + <input type="hidden" id="token" name="token" value="[% token FILTER html %]"> + + <table> + <tr> + <th class="field_label"> + <span class="mandatory" title="Required">*</span> List Name: + </th> + <td> + The desired name for the newsgroup. Should start with 'mozilla.' and fit somewhere + in the hierarchy described <a href="https://www.mozilla.org/about/forums/">here</a>.<br> + <input name="listName" id="listName" size="60" value="[% listName FILTER html %]"> + </td> + </tr> + <tr> + <th class="field_label"> + <span class="mandatory" title="Required">*</span> List Administrator: + </th> + <td> + <b>Note:</b>The list administrator is also initially considered to be the list moderator + and will be responsible for moderation tasks unless delegated to someone else. For + convenience, [% terms.Bugzilla %] user accounts will autocomplete but it does not have + to be a [% terms.Bugzilla %] account.<br> + [% INCLUDE global/userselect.html.tmpl + id => "listAdmin" + name => "listAdmin" + value => "" + size => 60 + multiple => 5 + %] + </td> + </tr> + <tr> + <td class="field_label">Short Description:</th> + <td> + This will be shown to users on the index of lists on the server.<br> + <input name="listShortDesc" id="listShortDesc" size="60" value="[% listShortDesc FILTER html %]"> + </td> + </tr> + <tr> + <td class="field_label">Long Description:</th> + <td> + This will be shown at the top of the list's listinfo page.<br> + [% INCLUDE global/textarea.html.tmpl + name = 'listLongDesc' + id = 'listLongDesc' + minrows = 10 + maxrows = 25 + cols = constants.COMMENT_COLS + defaultcontent = listLongDesc + %] + </td> + </tr> + <tr> + <th class="field_label">Additional Comments:</th> + <td> + Justification for the list, special instructions, etc.<br> + [% INCLUDE global/textarea.html.tmpl + name = 'comment' + id = 'comment' + minrows = 10 + maxrows = 25 + cols = constants.COMMENT_COLS + defaultcontent = comment + %] + </td> + </tr> + <tr> + <th class="field_label">CC:</th> + <td> + [% INCLUDE global/userselect.html.tmpl + id => "cc" + name => "cc" + value => cc + size => 60 + multiple => 5 + %] + </td> + </tr> + <tr> + <th class="field_label">URL:</th> + <td colspan="3"> + <input name="bug_file_loc" size="60" + value="[% bug_file_loc FILTER html %]"> + </td> + </tr> + <tr> + <td align="right"> + <input type="checkbox" name="groups" id="group_35" value="infra"> + </td> + <td> + <label for="group_35"><b>This is an internal issue which should not be publicly visible.</b></label> + </td> + </tr> + </table> + + <input type="submit" id="commit" value="Submit Request"> + + <p> + Thanks for contacting us. You will be notified by email of any progress made + in resolving your request. + </p> +</form> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-mozpr.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-mozpr.html.tmpl new file mode 100644 index 000000000..06336d63f --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-mozpr.html.tmpl @@ -0,0 +1,655 @@ +[%# 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> + # Ville Skyttä <ville.skytta@iki.fi> + # Shane H. W. Travis <travis@sedsystems.ca> + # Marc Schumann <wurblzap@gmail.com> + # Akamai Technologies <bugzilla-dev@akamai.com> + # Max Kanat-Alexander <mkanat@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% title = BLOCK %]Create a PR Request[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = [ 'skins/standard/attachment.css' ] + javascript_urls = [ "js/attachment.js", "js/util.js", + "js/field.js", "js/TUI.js" ] + onload = 'set_assign_to();' + yui = [ 'autocomplete' ] +%] + +<script type="text/javascript"> +<!-- + +var initialowners = new Array([% product.components.size %]); +var last_initialowner; +var initialccs = new Array([% product.components.size %]); +var components = new Array([% product.components.size %]); +var comp_desc = new Array([% product.components.size %]); +var flags = new Array([% product.components.size %]); +[% IF Param("useqacontact") %] + var initialqacontacts = new Array([% product.components.size %]); + var last_initialqacontact; +[% END %] +[% count = 0 %] +[%- FOREACH c = product.components %] + [% NEXT IF NOT c.is_active %] + components[[% count %]] = "[% c.name FILTER js %]"; + comp_desc[[% count %]] = "[% c.description FILTER html_light FILTER js %]"; + initialowners[[% count %]] = "[% c.default_assignee.login FILTER js %]"; + [% flag_list = [] %] + [% FOREACH f = c.flag_types(is_active=>1).bug %] + [% flag_list.push(f.id) %] + [% END %] + [% FOREACH f = c.flag_types(is_active=>1).attachment %] + [% flag_list.push(f.id) %] + [% END %] + flags[[% count %]] = [[% flag_list.join(",") FILTER js %]]; + [% IF Param("useqacontact") %] + initialqacontacts[[% count %]] = "[% c.default_qa_contact.login FILTER js %]"; + [% END %] + + [% SET initial_cc_list = [] %] + [% FOREACH cc_user = c.initial_cc %] + [% initial_cc_list.push(cc_user.login) %] + [% END %] + initialccs[[% count %]] = "[% initial_cc_list.join(', ') FILTER js %]"; + + [% count = count + 1 %] +[%- END %] + +function set_assign_to() { + // Based on the selected component, fill the "Assign To:" field + // with the default component owner, and the "QA Contact:" field + // with the default QA Contact. It also selectively enables flags. + var form = document.Create; + var assigned_to = form.assigned_to.value; + +[% IF Param("useqacontact") %] + var qa_contact = form.qa_contact.value; +[% END %] + + var index = -1; + if (form.component.type == 'select-one') { + index = form.component.selectedIndex; + } else if (form.component.type == 'hidden') { + // Assume there is only one component in the list + index = 0; + } + if (index != -1) { + var owner = initialowners[index]; + var component = components[index]; + if (assigned_to == last_initialowner + || assigned_to == owner + || assigned_to == '') { + form.assigned_to.value = owner; + last_initialowner = owner; + } + + document.getElementById('initial_cc').innerHTML = initialccs[index]; + document.getElementById('comp_desc').innerHTML = comp_desc[index]; + + [% IF Param("useqacontact") %] + var contact = initialqacontacts[index]; + if (qa_contact == last_initialqacontact + || qa_contact == contact + || qa_contact == '') { + form.qa_contact.value = contact; + last_initialqacontact = contact; + } + [% END %] + + // First, we disable all flags. Then we re-enable those + // which are available for the selected component. + var inputElements = document.getElementsByTagName("select"); + var inputElement, flagField; + for ( var i=0 ; i<inputElements.length ; i++ ) { + inputElement = inputElements.item(i); + if (inputElement.name.search(/^flag_type-(\d+)$/) != -1) { + var id = inputElement.name.replace(/^flag_type-(\d+)$/, "$1"); + inputElement.disabled = true; + // Also disable the requestee field, if it exists. + inputElement = document.getElementById("requestee_type-" + id); + if (inputElement) inputElement.disabled = true; + } + } + // Now enable flags available for the selected component. + for (var i = 0; i < flags[index].length; i++) { + flagField = document.getElementById("flag_type-" + flags[index][i]); + // Do not enable flags the user cannot set nor request. + if (flagField && flagField.options.length > 1) { + flagField.disabled = false; + // Re-enabling the requestee field depends on the status + // of the flag. + toggleRequesteeField(flagField, 1); + } + } + } +} + +function fix_component() { + var form = document.Create; + var location = form.location.options[form.location.selectedIndex].value; + var fakecomp = form.fakecomp.options[form.fakecomp.selectedIndex].value; + var newcomp = location + " - " + fakecomp; + form.component.value = newcomp; + set_assign_to(); +} + +function handleWantsAttachment(wants_attachment) { + if (wants_attachment) { + document.getElementById('attachment_false').style.display = 'none'; + document.getElementById('attachment_true').style.display = 'block'; + } + else { + document.getElementById('attachment_false').style.display = 'block'; + document.getElementById('attachment_true').style.display = 'none'; + clearAttachmentFields(); + } +} + + +TUI_alternates['expert_fields'] = 'Show Advanced Fields'; +// Hide the Advanced Fields by default, unless the user has a cookie +// that specifies otherwise. +TUI_hide_default('expert_fields'); + +--> +</script> + +[% IF user.in_group("mozilla-confidential") %] + +[% USE Bugzilla %] + +<form name="Create" id="Create" method="post" action="post_bug.cgi" + enctype="multipart/form-data"> +<input type="hidden" name="product" value="[% product.name FILTER html %]"> +<input type="hidden" name="token" value="[% token FILTER html %]"> + +<table cellspacing="4" cellpadding="2" border="0" style="background: url(extensions/BMO/web/images/presshat.png) top right no-repeat"> +<tbody> + <tr> + <td colspan="2"> + <a id="expert_fields_controller" class="controller bz_default_hidden" + href="javascript:TUI_toggle_class('expert_fields')">Hide + Advanced Fields</a> + [%# Show the link if the browser supports JS %] + <script type="text/javascript"> + YAHOO.util.Dom.removeClass('expert_fields_controller', + 'bz_default_hidden'); + </script> + </td> + <td colspan="2"> + (<span class="required_star">*</span> = + <span class="required_explanation">Required Field</span>) + </td> + </tr> + + <tr> + <th>Product:</th> + <td width="10%">[% product.name FILTER html %]</td> + + <th>Reporter:</th> + <td width="100%">[% user.login FILTER html %]</td> + </tr> + + [%# We can't use the select block in these two cases for various reasons. %] +[% matches = default.component_.matches('^(.*) - (.*)$') %] +[% default.location = matches.0 %] +[% default.fakecomp = matches.1 %] +[% IF default.location == '' %] + [% default.location = 'US' %] +[% END %] +[% locations = [] %] +[% fakecomps = [] %] +[% FOREACH c = product.components %] + [% matches = c.name.match('^(.*) - (.*)$') %] + [% locations.push(matches.0) %] + [% fakecomps.push(matches.1) %] +[% END %] +[% locations = locations.unique %] +[% fakecomps = fakecomps.unique %] + <tr> + <th class="required"> + Location: + </th> + <td> + + <select name="location" onchange="fix_component();" size="7"> + [% FOREACH l = locations %] + <option value="[% l FILTER html %]" [% " selected=\"selected\"" IF l == default.location %]> + [% l FILTER html %] + </option> + [% END %] + </select> + <select name="component" onchange="set_assign_to();" size="7" + aria-required="true" class="required" style="display: none;"> + [%# Build the lists of assignees and QA contacts if "usemenuforusers" is enabled. %] + [% IF Param("usemenuforusers") %] + [% assignees_list = user.get_userlist.clone %] + [% qa_contacts_list = user.get_userlist.clone %] + [% END %] + + [%- FOREACH c = product.components %] + [% NEXT IF NOT c.is_active %] + <option value="[% c.name FILTER html %]" + [% " selected=\"selected\"" IF c.name == default.component_ %]> + [% c.name FILTER html -%] + </option> + [% IF Param("usemenuforusers") %] + [% INCLUDE build_userlist default_user = c.default_assignee, + userlist = assignees_list %] + [% INCLUDE build_userlist default_user = c.default_qa_contact, + userlist = qa_contacts_list %] + [% END %] + [%- END %] + </select> + </td> + + </tr> + <tr> + <th> + Request type: + </th> + <td> + + <select name="fakecomp" onchange="fix_component();" size="7"> + [% FOREACH f = fakecomps %] + <option value="[% f FILTER html %]" [% " selected=\"selected\"" IF f == default.fakecomp %]> + [% f FILTER html %] + </option> + [% END %] + </select> + </td> + <td colspan="2"> + [%# Enclose the fieldset in a nested table so that its width changes based + # on the length on the component description. %] + <table> + <tr> + <td> + <fieldset> + <legend>Request Description</legend> + <div id="comp_desc" class="comment">Select a request type to read its description.</div> + </fieldset> + </td> + </tr> + </table> + <input type="hidden" name="bug_severity" value="[% default.bug_severity FILTER html %]"> + <input type="hidden" name="rep_platform" value="[% default.rep_platform FILTER html %]"> + <input type="hidden" name="op_sys" value="[% default.op_sys FILTER html %]"> + <input type="hidden" name="version" value="unspecified"> + </td> + </tr> +</tbody> + +<tbody class="expert_fields"> + <tr> + <td colspan="4"> </td> + </tr> + + <tr> +[% IF bug_status.size <= 1 %] + <input type="hidden" name="bug_status" + value="[% default.bug_status FILTER html %]"> + <th>Initial State:</th> + <td>[% display_value("bug_status", default.bug_status) FILTER html %]</td> +[% ELSE %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.bug_status, + editable = (bug_status.size > 1), value = default.bug_status + override_legal_values = bug_status %] +[% END %] + + <td> </td> + [%# Calculate the number of rows we can use for flags %] + [% num_rows = 6 + (Param("useqacontact") ? 1 : 0) + + (user.is_timetracker ? 3 : 0) + + (Param("usebugaliases") ? 1 : 0) + %] + + <td rowspan="[% num_rows FILTER html %]"> + [% IF product.flag_types(is_active=>1).bug.size > 0 %] + [% display_flag_headers = 0 %] + [% any_flags_requesteeble = 0 %] + + [% FOREACH flag_type = product.flag_types(is_active=>1).bug %] + [% display_flag_headers = 1 %] + [% SET any_flags_requesteeble = 1 IF flag_type.is_requestable && flag_type.is_requesteeble %] + [% END %] + + [% IF display_flag_headers %] + [% PROCESS "flag/list.html.tmpl" flag_types = product.flag_types(is_active=>1).bug + any_flags_requesteeble = any_flags_requesteeble + flag_table_id = "bug_flags" + %] + [% END %] + [% END %] + </td> + </tr> + + <tr> + <th><a href="page.cgi?id=fields.html#assigned_to">Assign To</a>:</th> + <td colspan="2"> + [% INCLUDE global/userselect.html.tmpl + id => "assigned_to" + name => "assigned_to" + value => assigned_to + disabled => assigned_to_disabled + size => 30 + emptyok => 1 + custom_userlist => assignees_list + %] + <noscript>(Leave blank to assign to component's default assignee)</noscript> + </td> + </tr> + +[% IF Param("useqacontact") %] + <tr> + <th>QA Contact:</th> + <td colspan="2"> + [% INCLUDE global/userselect.html.tmpl + id => "qa_contact" + name => "qa_contact" + value => qa_contact + disabled => qa_contact_disabled + size => 30 + emptyok => 1 + custom_userlist => qa_contacts_list + %] + <noscript>(Leave blank to assign to default qa contact)</noscript> + </td> + </tr> +[% END %] + + <tr> + <th>CC:</th> + <td colspan="2"> + [% INCLUDE global/userselect.html.tmpl + id => "cc" + name => "cc" + value => cc + disabled => cc_disabled + size => 30 + multiple => 5 + %] + </td> + </tr> + + <tr> + <th>Default CC:</th> + <td colspan="2"> + <div id="initial_cc"> + </div> + </td> + </tr> + + <tr> + <td colspan="3"> </td> + </tr> + +[% IF user.is_timetracker %] + <tr> + <th>Estimated Hours:</th> + <td colspan="2"> + <input name="estimated_time" size="6" maxlength="6" value="[% estimated_time FILTER html %]"> + </td> + </tr> + <tr> + <th>Deadline:</th> + <td colspan="2"> + <input name="deadline" size="10" maxlength="10" value="[% deadline FILTER html %]"> + <small>(YYYY-MM-DD)</small> + </td> + </tr> + + <tr> + <td colspan="3"> </td> + </tr> +[% END %] + +[% IF Param("usebugaliases") %] + <tr> + <th>Alias:</th> + <td colspan="2"> + <input name="alias" size="20" value="[% alias FILTER html %]"> + </td> + </tr> +[% END %] + + <tr> + <th>URL:</th> + <td colspan="2"> + <input name="bug_file_loc" size="40" + value="[% bug_file_loc FILTER html %]"> + </td> + </tr> +</tbody> + +<tbody> + + <tr> + <th class="required">Summary:</th> + <td colspan="3"> + <input name="short_desc" size="70" value="[% short_desc FILTER html %]" + maxlength="255" spellcheck="true" aria-required="true" + class="required"> + </td> + </tr> + + <tr> + <th>Description:</th> + <td colspan="3"> + [% defaultcontent = BLOCK %] + [% IF cloned_bug_id %] ++++ This [% terms.bug %] was initially created as a clone of [% terms.Bug %] #[% cloned_bug_id FILTER html %] +++ + + + [% END %] + [%-# We are within a BLOCK. The comment will be correctly HTML-escaped + # by global/textarea.html.tmpl. So we must not escape the comment here. %] + [% comment FILTER none %] + [%- END %] + [% INCLUDE global/textarea.html.tmpl + name = 'comment' + id = 'comment' + minrows = 10 + maxrows = 25 + cols = constants.COMMENT_COLS + defaultcontent = defaultcontent + %] + <br> + </td> + </tr> + + [% IF user.is_insider %] + <tr class="expert_fields"> + <th> </th> + <td colspan="3"> + + <input type="checkbox" id="commentprivacy" name="commentprivacy" + [% " checked=\"checked\"" IF commentprivacy %]> + <label for="commentprivacy"> + Make description private (visible only to members of the + <strong>[% Param('insidergroup') FILTER html %]</strong> group) + </label> + </td> + </tr> + [% END %] + + <tr> + <th>Attachment:</th> + <td colspan="3"> + <script type="text/javascript"> + <!-- + document.write( '<div id="attachment_false">' + + '<input type="button" value="Add an attachment" ' + + 'onClick="handleWantsAttachment(true)"> ' + + '<em style="display: none">This button has no ' + + 'functionality for you because your browser does ' + + 'not support CSS or does not use it.<\/em>' + + '<\/div>' + + '<div id="attachment_true" style="display: none">' + + '<input type="button" ' + + 'value="Don\'t add an attachment " ' + + 'onClick="handleWantsAttachment(false)">'); + //--> + </script> + <fieldset> + <legend>Add an attachment</legend> + <table class="attachment_entry"> + [% PROCESS attachment/createformcontents.html.tmpl + flag_types = product.flag_types(is_active=>1).attachment + any_flags_requesteeble = 1 + flag_table_id ="attachment_flags" %] + </table> + </fieldset> + <script type="text/javascript"> + <!-- + document.write('<\/div>'); + //--> + </script> + </td> + </tr> +</tbody> + +<tbody class="expert_fields"> + [% IF user.in_group('editbugs', product.id) %] + [% IF use_keywords %] + <tr> + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.keywords, editable = 1, + value = keywords, desc_url = "describekeywords.cgi", + value_span = 3 %] + </tr> + [% END %] + + <tr> + <th>Status Whiteboard:</th> + <td colspan="3"> + <input id="status_whiteboard" name="status_whiteboard" size="70" + value="[% status_whiteboard FILTER html %]"> + </td> + </tr> + <tr> + <th>Depends on:</th> + <td colspan="3"> + <input name="dependson" accesskey="d" value="[% dependson FILTER html %]"> + </td> + </tr> + <tr> + <th>Blocks:</th> + <td colspan="3"> + <input name="blocked" accesskey="b" value="[% blocked FILTER html %]"> + </td> + </tr> + [% END %] +</tbody> + +<tbody class="expert_fields"> + [%# exclude the default security from from the groups_available %] + [%# list, as it will be added by the BMO extension %] + [% groups_available = [] %] + [% FOREACH group = product.groups_available %] + [% NEXT IF group.name == product.default_security_group %] + [% groups_available.push(group) %] + [% END %] + [% IF groups_available.size %] + <tr> + <th> </th> + <td colspan="3"> + <br> + <strong> + Only users in all of the selected groups can view this + [%+ terms.bug %]: + </strong> + <br> + <font size="-1"> + (Leave all boxes unchecked to make this a public [% terms.bug %].) + </font> + <br> + <br> + + <!-- Checkboxes --> + <input type="hidden" name="defined_groups" value="1"> + [% FOREACH group = groups_available %] + <input type="checkbox" id="group_[% group.id FILTER html %]" + name="groups" value="[% group.name FILTER html %]" + [% ' checked="checked"' IF default.groups.contains(group.name) + OR group.is_default %]> + <label for="group_[% group.id FILTER html %]"> + [%- group.description FILTER html_light %]</label><br> + [% END %] + </td> + </tr> + [% END %] +</tbody> + +<tbody> + [%# Form controls for entering additional data about the bug being created. %] + [% Hook.process("form") %] + + <tr> + <th> </th> + <td colspan="3"> + <input type="submit" id="commit" value="Submit [% terms.Bug %]" + onclick="if (this.form.short_desc.value == '') + { alert('Please enter a summary sentence for this [% terms.bug %].'); + return false; } return true;"> + + <input type="submit" name="maketemplate" id="maketemplate" + value="Remember values as bookmarkable template" + class="expert_fields"> + </td> + </tr> +</tbody> + </table> + <input type="hidden" name="form_name" value="enter_bug"> +</form> + +[%# Links or content with more information about the bug being created. %] +[% Hook.process("end") %] + +[% ELSE %] + +<p>Sorry, you do not have access to this page.</p> + +[% END %] + +[% PROCESS global/footer.html.tmpl %] + +[% BLOCK build_userlist %] + [% user_found = 0 %] + [% default_login = default_user.login %] + [% RETURN UNLESS default_login %] + + [% FOREACH user = userlist %] + [% IF user.login == default_login %] + [% user_found = 1 %] + [% LAST %] + [% END %] + [% END %] + + [% userlist.push({login => default_login, + identity => default_user.identity, + visible => 1}) + UNLESS user_found %] +[% END %] diff --git a/extensions/BMO/template/en/default/bug/create/create-poweredby.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-poweredby.html.tmpl new file mode 100644 index 000000000..e231cd9d5 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-poweredby.html.tmpl @@ -0,0 +1,87 @@ +[%# 1.0@bugzilla.org %] +[%# 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> + # Ville SkyttŠ <ville.skytta@iki.fi> + # John Hoogstrate <hoogstrate@zeelandnet.nl> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Powered by Mozilla Logo Requests" +%] + +[% USE Bugzilla %] + +<p>If you are interested in using the <a href="http://www.mozilla.org/poweredby">Powered by Mozilla logo</a>, +please provide some information about your application or product.</p> + +<p><strong>Please use this form for Powered by Mozilla logo requests only.</strong></p> + +<form method="post" action="post_bug.cgi" id="tmRequestForm"> + + <input type="hidden" name="product" value="Marketing"> + <input type="hidden" name="component" value="Trademark Permissions"> + <input type="hidden" name="bug_severity" value="enhancement"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="priority" value="--"> + <input type="hidden" name="op_sys" value="Other"> + <input type="hidden" name="version" value="unspecified"> + <input type="hidden" name="assigned_to" value="dboswell@mozilla.com"> + <input type="hidden" name="cc" value="liz@mozilla.com"> + <input type="hidden" name="groups" value="marketing-private"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + + <table> + <tr> + <td align="right"><strong>Application or Product Name:</strong></td> + <td colspan="3"> + <input name="short_desc" size="60" value="Powered by Mozilla request for: [% short_desc FILTER html %]"> + </td> + </tr> + + <tr> + <td align="right"><strong>URL (optional):</strong></td> + <td colspan="3"> + <input name="bug_file_loc" size="60" + value="[% bug_file_loc FILTER html %]"> + </td> + </tr> + + <tr><td align="right" valign="top"><strong>Comments (optional):</strong></td> + <td colspan="3"> + <textarea name="comment" rows="10" cols="80"> + [% comment FILTER html %]</textarea> + <br> + </td> + </tr> + + </table> + + <br> + + <input type="submit" id="commit" value="Submit Request"> +</form> + +<p>Thanks for contacting us. + You will be notified by email of any progress made in resolving your + request. +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-presentation.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-presentation.html.tmpl new file mode 100644 index 000000000..fd8d3c655 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-presentation.html.tmpl @@ -0,0 +1,219 @@ +[%# 1.0@bugzilla.org %] +[%# 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 Mozilla Corporation. + # Portions created by Mozilla are Copyright (C) 2008 Mozilla + # Corporation. All Rights Reserved. + # + # Contributor(s): Reed Loden <reed@mozilla.com> + # David Tran <dtran@mozilla.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Mozilla Corporation Mountain View Presentation Request" + javascript_urls = [ 'js/field.js', 'js/util.js' ] + style = ".yui-skin-sam .yui-calcontainer { z-index: 1; }" + yui = [ 'autocomplete', 'calendar' ] +%] + +<div style='text-align: center; width: 98%; font-size: 2em; font-weight: bold; margin: 10px;'>Mountain View Presentation Request</div> + +<p><strong>Mountain View Presentation Request:</strong> Please use this form if you plan on hosting a presentation so that IT will be able to properly provide support. </p> + +<p>Process:</p> + +<ol><li>Complete and submit request below.</li> + <li>Your request will be reviewed and assigned to the appropriate person in IT.</li> +</ol> + +<p>These requests will only be visible internally in all cases and only to the +person who submitted the request and any persons designated in the CC line.</p> + +<script type="text/javascript"> +function trySubmit() { + var out = 'Topic: the_topic\r\nPresenter: the_presenter\r\nDate: the_date\r\nTime: the_time\r\nAudience: the_audience\r\nAir Mozilla: air_mozilla\r\nDial-in: dial_in\r\nArchive: to_archive\r\nMember of IT to help with A/V: it_help\r\nDescription: the_description'; + + var topic = document.getElementById('topic').value; + var presenter = document.getElementById('presenter').value; + var date = document.getElementById('date').value; + var time = document.getElementById('time_hour').value + ':' + document.getElementById('time_minute').value + document.getElementById('ampm').value; + var shortdesc = 'Mountain View Presentation Request - ' + topic + ' (' + date + ' ' + time + ')'; + var airmozilla = document.getElementById('airmozilla').checked? 'yes' : 'no'; + var dialin = document.getElementById('dialin').checked? 'yes' : 'no'; + var archive = document.getElementById('archive').checked? 'yes' : 'no'; + var ithelp = document.getElementById('ithelp').checked? 'yes' : 'no'; + + out = out.replace( /the_topic/, topic ); + out = out.replace( /the_presenter/, presenter ); + out = out.replace( /the_date/, date); + out = out.replace( /the_time/, time); + out = out.replace( /the_audience/, document.getElementById('audience').value ); + out = out.replace( /air_mozilla/, airmozilla); + out = out.replace( /dial_in/, dialin); + out = out.replace( /the_description/, document.getElementById('description').value ); + out = out.replace( /to_archive/, archive); + out = out.replace( /it_help/, ithelp); + + document.getElementById('comment').value = out; + document.getElementById('short_desc').value = shortdesc; + + return true; +} + +</script> + +<form method="post" action="post_bug.cgi" id="presentationRequestForm" enctype="multipart/form-data" + onSubmit="return trySubmit();"> + + <input type="hidden" name="product" value="mozilla.org"> + <input type="hidden" name="component" value="Server Operations: Desktop Issues"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="op_sys" value="Other"> + <input type="hidden" name="priority" value="--"> + <input type="hidden" name="version" value="other"> + <input type="hidden" name="bug_severity" id="bug_severity" value="normal"> + <input type="hidden" name="comment" id="comment" value=""> + <input type="hidden" name="short_desc" id="short_desc" value=""> + <input type="hidden" name="groups" value="mozilla-corporation-confidential"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + +<table> + +<tr> + <td align="right"><strong>Presenter:</strong></td> + <td> + <input type="text" name="presenter" id="presenter" value="" size="60" /> + </td> + +</tr> + +<tr> + <td align="right"><strong>Topic:</strong></td> + <td> + <input type="text" name="topic" id="topic" value="" size="60" /> + </td> +</tr> + +<tr> + <td align="right"><strong>Date:</strong></td> + <td> + <input type="text" id="date" name="date" size="10" + onchange="updateCalendarFromField(this)"> + <button type="button" class="calendar_button" id="button_calendar_date" + onclick="showCalendar('date')"><span>Calendar</span> + </button> + <div id="con_calendar_date"></div> + </td> +</tr> + +<tr> + <td align="right"><strong>Start Time:</strong></td> + <td> + <select name="time_hour" id="time_hour"> + <option value="12" selected>12</option> + <option value="1">1</option> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + <option value="7">7</option> + <option value="8">8</option> + <option value="9">9</option> + <option value="10">10</option> + <option value="11">11</option> + </select>:<select name="time_minute" id="time_minute"> + <option value="00" selected>00</option> + <option value="15">15</option> + <option value="30">30</option> + <option value="45">45</option> + </select> + <select name="ampm" id="ampm"> + <option value="AM" selected>AM</option> + <option value="PM">PM</option> + </select> + </td> +</tr> + +<tr> + <td align="right"><strong>Intended Audience:</strong></td> + <td> + <select name="audience" id="audience"> + <option value="Public" selected>Open to Public</option> + <option value="Employees Only">Employees Only</option> + <option value="Interns">Interns</option> + </select> + </td> +</tr> + +<tr> + <td align="right"><strong>Air Mozilla Broadcasting?</strong></td> + <td align="left"><input type="checkbox" name="airmozilla" id="airmozilla"></td> +</tr> + +<tr> + <td align="right"><strong>Dial In?</strong></td> + <td align="left"><input type="checkbox" name="dialin" id="dialin"></td> +</tr> + +<tr> +<td align="right"><strong>Archive this?</strong></td> +<td align="left"><input type="checkbox" name="archive" id="archive" value="yes"></td> +</tr> + + +<tr> +<td align="right"><strong>Need IT to help run A/V?</strong></td> +<td align="left"><input type="checkbox" name="ithelp" id="ithelp" value="yes" checked></td> +</tr> + +<tr> + <td align="right"><strong>CC (optional):</strong></td> + <td colspan="3"> + [% INCLUDE global/userselect.html.tmpl + id => "cc" + name => "cc" + value => cc + size => 60 + multiple => 5 + %] + </td> +</tr> + +<tr> + <th><label for="description">Description</label>:</th> + <td> + <em>Please briefly describe the presentation and any specific needs you might have.</em><br> + + <textarea id="description" name="description" rows="10" cols="80"></textarea> + </td> +</tr> + + </table> + + <br> + <input type="submit" id="commit" value="Submit Request"> +</form> + +<p>Thanks for contacting us. + You will be notified by email of any progress made in resolving your request. + +</p> + +<script type="text/javascript"> + createCalendar('date'); +</script> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-privacy-data.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-privacy-data.html.tmpl new file mode 100644 index 000000000..fbf3bed55 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-privacy-data.html.tmpl @@ -0,0 +1,219 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% inline_style = BLOCK %] + #bug_form input[type=text], #bug_form input[type=file], #cc_autocomplete, #bug_form textarea { + width: 100%; + } +[% END %] + +[% inline_js = BLOCK %] + function onSubmit() { + var error = ''; + if (!isFilledOut('short_desc')) error += 'Please enter a summary.\n'; + if (!isFilledOut('attachment')) error += 'Please attach the data set/representative sample.\n'; + if (!isFilledOut('source')) error += 'Please enter the data source.\n'; + if (!isFilledOut('data_desc')) error += 'Please enter the data description.\n'; + if (!isFilledOut('release')) error += 'Please enter the parts of data you want released.\n'; + if (!isFilledOut('why')) error += 'Please enter why you want to release this data.\n'; + if (!isFilledOut('when')) error += 'Please enter when you would like to release this data.\n'; + + if (error) { + alert(error); + return false; + } + + return true; + } +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Privacy - Data Release Proposal" + style = inline_style + style_urls = [ 'skins/standard/enter_bug.css' ] + javascript = inline_js + javascript_urls = [ 'extensions/BMO/web/js/form_validate.js', + 'js/attachment.js', 'js/field.js', 'js/util.js' ] + yui = [ 'autocomplete' ] +%] + +<h2>Privacy - Data Release Proposal</h2> + +<p> + Before filling out this form, please look at the + <a href="https://wiki.mozilla.org/Privacy/How_To/Deidentify" target="_blank">guide</a> + for releasing info about people. +</p> + +<p> + All fields except for CC are required. +</p> + +<form method="post" action="post_bug.cgi" id="bug_form" class="enter_bug_form" + enctype="multipart/form-data" onSubmit="return onSubmit()"> +<input type="hidden" name="format" value="privacy-data"> +<input type="hidden" name="product" value="Privacy"> +<input type="hidden" name="component" value="Data Release Proposal"> +<input type="hidden" name="rep_platform" value="All"> +<input type="hidden" name="op_sys" value="Other"> +<input type="hidden" name="priority" value="--"> +<input type="hidden" name="version" value="unspecified"> +<input type="hidden" name="bug_severity" id="bug_severity" value="normal"> +<input type="hidden" name="comment" id="comment" value=""> +<input type="hidden" name="groups" id="groups" value="privacy"> +<input type="hidden" name="token" value="[% token FILTER html %]"> + +<table> + +<tr> + <th> + <label for="short_desc">Summary:</label> + </th> + <td> + <input type="text" name="short_desc" id="short_desc" value="" size="60"> + </td> +</tr> + +<tr> + <th> + <label for="cc">CC:</label> + </th> + <td> + [% INCLUDE global/userselect.html.tmpl + id => "cc" + name => "cc" + value => cc + size => 60 + multiple => 5 + %] + </td> + <td> + <i> Optional</i> + </td> +</tr> + +<tr> + <th> + <label for="attachment">Data Set:</label> + </th> + <td> + <i>Please attach the data set, or a representative sample.</i> + <div> + <input type="file" id="attachment" name="data" size="50"> + <input type="hidden" name="contenttypemethod" value="autodetect"> + <input type="hidden" name="description" value="Data Set"> + </div> + </td> +</tr> + +<tr> + <th> + <label for="source">Source:</label> + </th> + <td> + <i>Where does this data come from?</i> + <div> + <textarea name="source" id="source" rows="5" cols="40"></textarea> + </div> + </td> +</tr> + +<tr> + <th> + <label for="data_desc">Data Description:</label> + </th> + <td> + <i>What people and things does this data describe, and what fields does it contain?</i> + <div> + <textarea name="data_desc" id="data_desc" rows="5" cols="40"></textarea> + </div> + </td> +</tr> + +<tr> + <th> + <label for="release">Release:</label> + </th> + <td> + <i>What parts of this data do you want to release?</i> + <div> + <textarea name="release" id="release" rows="5" cols="40"></textarea> + </div> + </td> +</tr> + +<tr> + <th> + <label for="why">Why:</label> + </th> + <td> + <i>Why are we releasing this data, and what do we hope people will do with it?</i> + <div> + <textarea name="why" id="why" rows="5" cols="40"></textarea> + </div> + </td> +</tr> + +<tr> + <th> + <label for="when">Release Time:</label> + </th> + <td> + <i>Is there a particular time by which you would like to release this data?</i> + <div> + <input type="text" name="when" id="when" value="" size="60"> + </div> + </td> +</tr> + +<tr> + <td colspan="2"> + Expect to discover that you've missed a few of things, so plan for a couple weeks to get them corrected. + </td> +</tr> + +<tr> + <td> </td> + <td> + <input type="submit" id="commit" value="Submit Request"> + </td> +</tr> +</table> + +</form> + +<script type="text/javascript"> +function trySubmit() { + var topic = document.getElementById('topic').value; + var date = document.getElementById('date').value; + var time = document.getElementById('time_hour').value + ':' + + document.getElementById('time_minute').value + + document.getElementById('ampm').value + " " + + document.getElementById('time_zone').value; + var location = document.getElementById('location').value; + var shortdesc = 'Event - (' + date + ' ' + time + ') - ' + location + ' - ' + topic; + document.getElementById('short_desc').value = shortdesc; + + // If intended audience is employees only, add mozilla-corporation-confidential group + var audience = document.getElementById('audience').value; + if (audience == 'Employees Only') { + var brownbagRequestForm = document.getElementById('brownbagRequestForm'); + var groups = document.createElement('input'); + groups.type = 'hidden'; + groups.name = 'groups'; + groups.value = 'mozilla-corporation-confidential'; + brownbagRequestForm.appendChild(groups); + } + + return true; +} +</script> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-recoverykey.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-recoverykey.html.tmpl new file mode 100644 index 000000000..a75959abb --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-recoverykey.html.tmpl @@ -0,0 +1,70 @@ +[%# 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 BMO Bugzilla Extension. + # + # The Initial Developer of the Original Code is the Mozilla Foundation + # Portions created by the Initial Developers are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # David Lawrence <dkl@mozilla.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Mozilla Corporation/Foundation Encryption Recovery Key" +%] + +<p>Please complete the following information as you are encrypting your laptop.</p> + +<ul> + <li>The Recovery Key will be displayed during the encryption process + (<a href="https://mana.mozilla.org/wiki/display/INFRASEC/Desktop+Security#DesktopSecurity-DiskencryptionFileVault">more info</a>) + </li> + <li>The asset tag number is located on a sticker typically on the bottom of the device.</li> +</ul> + +<form method="post" action="post_bug.cgi" id="recoveryKeyForm" enctype="multipart/form-data"> + <input type="hidden" name="product" value="mozilla.org"> + <input type="hidden" name="component" value="Server Operations: Desktop Issues"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="op_sys" value="All"> + <input type="hidden" name="priority" value="--"> + <input type="hidden" name="version" value="other"> + <input type="hidden" name="bug_severity" value="normal"> + <input type="hidden" name="groups" value="mozilla-corporation-confidential"> + <input type="hidden" name="groups" value="infra"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="hidden" name="cc" value="tfairfield@mozilla.com, ghuerta@mozilla.com"> + <input type="hidden" name="short_desc" value="Encryption Recovery Key for [% user.name || user.login FILTER html %]"> + <input type="hidden" name="format" value="recoverykey"> + <table> + <tr> + <td align="right"><strong>Recovery Key:</strong></td> + <td> + <input name="recoverykey" size="60" value="[% recoverykey FILTER html %]"> + </td> + </tr> + <tr> + <td align="right"><strong>Asset Tag Number:</strong></td> + <td> + <input name="assettag" size="60" value="[% assettag FILTER html %]"> + </td> + </tr> + <tr> + <td></td> + <td><input type="submit" id="commit" value="Submit"></td> + </tr> + </table> +</form> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-swag.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-swag.html.tmpl new file mode 100644 index 000000000..3772120a0 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-swag.html.tmpl @@ -0,0 +1,751 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% +items = [ + { id => '', name => 'splendidest gear', }, + { id => '#157454S', name => 'very splendid package, men, s' }, + { id => '#157454M', name => 'very splendid package, men, m' }, + { id => '#157454L', name => 'very splendid package, men, l' }, + { id => '#157454X', name => 'very splendid package, men, xl' }, + { id => '#157452S', name => 'very splendid package, women, s' }, + { id => '#157452M', name => 'very splendid package, women, m' }, + { id => '#157452L', name => 'very splendid package, women, l' }, + { id => '#157452X', name => 'very splendid package, women, xl' }, + { id => '#157451S', name => 'most splendid package, s' }, + { id => '#157451M', name => 'most splendid package, m ' }, + { id => '#157451L', name => 'most splendid package, l' }, + { id => '#157451X', name => 'most splendid package, xl' }, + { id => '#155415S', name => 'sweatshirt, s' }, + { id => '#155415M', name => 'sweatshirt, m' }, + { id => '#155415L', name => 'sweatshirt, l' }, + { id => '#155415X', name => 'sweatshirt, xl' }, + { id => '#1554152', name => 'sweatshirt, 2x' }, + { id => '#155749', name => 'rickshaw messenger bag' }, + { id => '#155752', name => 'moleskine notebook (black)' }, + { id => '', name => 'splendider gear', }, + { id => '#155341S', name => 'unisex t, poppy, s' }, + { id => '#155341M', name => 'unisex t, poppy, m' }, + { id => '#155341L', name => 'unisex t, poppy, l' }, + { id => '#155341X', name => 'unisex t, poppy, xl' }, + { id => '#1553412', name => 'unisex t, poppy, 2x' }, + { id => '#155344S', name => 'ladies t, poppy, s' }, + { id => '#155344M', name => 'ladies t, poppy, m' }, + { id => '#155344L', name => 'ladies t, poppy, l' }, + { id => '#155342S', name => 'unisex t, navy, s' }, + { id => '#155342M', name => 'unisex t, navy, m' }, + { id => '#155342L', name => 'unisex t, navy, l' }, + { id => '#155342X', name => 'unisex t, navy, xl' }, + { id => '#1553422', name => 'unisex t, navy, 2x' }, + { id => '#1553423', name => 'unisex t, navy, 3x' }, + { id => '#155413S', name => 'ladies t, navy, s' }, + { id => '#155413M', name => 'ladies t, navy, m' }, + { id => '#155413L', name => 'ladies t, navy, l' }, + { id => '#155413X', name => 'ladies t, navy, xl' }, + { id => '#155343M', name => 'unisex t, lapis, m' }, + { id => '#155343L', name => 'unisex t, lapis, l' }, + { id => '#155343X', name => 'unisex t, lapis, xl' }, + { id => '#155414S', name => 'ladies t, lapis, s' }, + { id => '#155414M', name => 'ladies t, lapis, m' }, + { id => '#155414L', name => 'ladies t, lapis, l' }, + { id => '#155339', name => 'black cap w/tote' }, + { id => '#155340', name => 'beanie' }, + { id => '#155751', name => 'drawstring tote' }, + { id => '#155758', name => 'glossy finish ceramic mug' }, + { id => '', name => 'splendid gear', }, + { id => '#155755', name => 'vertical laminated badge' }, + { id => '#155754', name => 'lanyard w/bulldog clip' }, + { id => '#155756', name => 'silicone wristband' }, + { id => '#155753', name => '3" round stickers (single)' }, + { id => '#155757', name => 'mozilla tattoos (pkg 50)' }, +] +%] + +[% +mozspaces = [ + { + name => 'Mountain View', + address1 => 'Mozilla', + address2 => '650 Castro St., Suite 300', + city => 'Mountain View', + state => 'CA', + country => 'USA', + postcode => '94041-2072', + }, + { + name => 'San Francisco', + address1 => 'Mozilla', + address2 => '2 Harrison Street, 7th Floor', + city => 'San Francisco', + state => 'CA', + country => 'USA', + postcode => '94105', + }, + { + name => 'Toronto', + address1 => 'Mozilla Canada', + address2 => '366 Adelaide Street W, Suite 500', + city => 'Toronto', + state => 'Ontario', + country => 'Canada', + postcode => 'M5V 1R9', + }, + { + name => 'Vancouver', + address1 => 'Mozilla Canada', + address2 => '163 West Hastings Street, Suite 209', + city => 'Vancouver', + state => 'BC', + country => 'Canada', + postcode => 'V6B 1H5', + }, + { + name => 'London', + address1 => 'Mozilla London', + address2 => '101 St. Martin\'s Lane, 3rd Floor', + city => 'London', + state => 'Greater London', + country => 'UK', + postcode => 'WC2N 4AZ', + }, + { + name => 'Paris', + address1 => 'Mozilla', + address2 => '28 Boulevard Poissonnière', + city => 'Paris', + state => 'Paris', + country => 'France', + postcode => '75009', + }, + { + name => 'Berlin', + address1 => 'MZ Denmark ApS - Germany', + address2 => 'Rungestrasse 22 - 24', + city => 'Berlin', + state => 'Germany', + country => 'Germany', + postcode => '10179', + }, +] +%] + +[% inline_style = BLOCK %] +#gear_form th { + text-align: right; + font-weight: normal; +} + +#gear_form .heading { + text-align: left; + font-weight: bold; + border-top: 2px dotted #969696; +} + +.mandatory { + color: red; +} +[% END %] + +[% inline_javascript = BLOCK %] +var Dom = YAHOO.util.Dom; +var needed = { +[% FOREACH item = items %] + [% NEXT UNLESS item.id %] + '[% item.id FILTER js %]': 0[% ',' UNLESS loop.last %] +[% END %] +}; + +var gear = [ +[% FOREACH item = items %] + { id: '[% item.id FILTER js %]', name: '[% item.name FILTER js %]' } + [% ',' UNLESS loop.last %] +[% END %] +]; + +var mozspaces = { +[% FOREACH space = mozspaces %] + '[% space.name FILTER js %]': { + [% FOREACH key = space.keys.sort %] + '[% key FILTER js %]': '[% space.$key FILTER js %]'[% ',' UNLESS loop.last %] + [% END %] + }[% ',' UNLESS loop.last %] +[% END %] +}; + +[%# implemented this way to allow for dynamic updating of mandatory fields #%] +var fields = [ + { id: 'firstname', mandatory: true }, + { id: 'lastname', mandatory: true }, + { id: 'email', mandatory: true }, + { id: 'mozspace', mandatory: false }, + { id: 'teamcode', mandatory: true }, + { id: 'purpose', mandatory: true }, + { id: 'purpose_other', mandatory: false }, + { id: 'date_required', mandatory: false }, + { id: 'items', mandatory: true }, + { id: 'shiptofirstname', mandatory: true }, + { id: 'shiptolastname', mandatory: true }, + { id: 'shiptoemail', mandatory: true }, + { id: 'shiptoaddress1', mandatory: true }, + { id: 'shiptoaddress2', mandatory: false }, + { id: 'shiptocity', mandatory: true }, + { id: 'shiptostate', mandatory: true }, + { id: 'shiptocountry', mandatory: true }, + { id: 'shiptopostcode', mandatory: true }, + { id: 'shiptophone', mandatory: true }, + { id: 'shiptoidrut', mandatory: false }, + { id: 'comment', mandatory: false } +]; + +function initFields() { + [%# find fields in the form, and update the fields array #%] + var rows = Dom.get('gear_form').getElementsByTagName('TR'); + for (var i = 0, l = rows.length; i < l; i++) { + var row = rows[i]; + var field = firstChild(row, 'INPUT') || firstChild(row, 'SELECT') || firstChild(row, 'TEXTAREA'); + if (!field || field.type == 'submit') continue; + var id = field.id; + var label = firstChild(row, 'TH'); + for (var j = 0, m = fields.length; j < m; j++) { + if (fields[j].id == id) { + fields[j].field = field; + fields[j].label = label; + fields[j].caption = label.textContent; + break; + } + } + } + createCalendar('date_required'); +} + +function tagMandatoryFields() { + [%# add or remove the "* mandatory" marker from fields #%] + for (var i = 0, l = fields.length; i < l; i++) { + var f = fields[i]; + if (!f.label) continue; + var caption = f.caption; + if (f.mandatory) + caption = caption + ' <span class="mandatory">*</span>'; + f.label.innerHTML = caption; + } +} + +function validateAndSubmit() { + var alert_text = ''; + for(var i = 0, l = fields.length; i < l; i++) { + var f = fields[i]; + if (f.mandatory && !isFilledOut(f.id)) + if (f.field.nodeName == 'SELECT') { + alert_text += 'Please select the ' + f.caption + ".\n"; + } else { + alert_text += 'Please enter the ' + f.caption + ".\n"; + } + } + if (isFilledOut('email') && !isValidEmail(Dom.get('email').value)) + alert_text += "Please enter a valid Email Address.\n"; + if (isFilledOut('shiptoemail') && !isValidEmail(Dom.get('shiptoemail').value)) + alert_text += "Please enter a valid Shipping Email Address.\n"; + + if (alert_text != '') { + alert(alert_text); + return false; + } + + Dom.get('short_desc').value = 'Mozilla Gear - ' + Dom.get('firstname').value + ' ' + Dom.get('lastname').value; + return true; +} + +function onPurposeChange() { + var value = Dom.get('purpose').value; + var other = Dom.get('purpose_other'); + + if (value == 'Event') { + getField('purpose_other').mandatory = true; + other.placeholder = 'link to wiki' + Dom.removeClass('purpose_other_row', 'bz_default_hidden'); + Dom.addClass('recognition_row', 'bz_default_hidden'); + + } else if (value == 'Gear Space Stock') { + getField('purpose_other').mandatory = true; + other.placeholder = 'indicate space' + Dom.removeClass('purpose_other_row', 'bz_default_hidden'); + Dom.addClass('recognition_row', 'bz_default_hidden'); + + } else if (value == 'Other') { + getField('purpose_other').mandatory = true; + other.placeholder = 'more information'; + Dom.removeClass('purpose_other_row', 'bz_default_hidden'); + Dom.addClass('recognition_row', 'bz_default_hidden'); + + } else if (value == 'Mozillian Recognition') { + getField('purpose_other').mandatory = false; + Dom.addClass('purpose_other_row', 'bz_default_hidden'); + Dom.removeClass('recognition_row', 'bz_default_hidden'); + onRecognitionChange(); + + } else { + getField('purpose_other').mandatory = false; + Dom.addClass('purpose_other_row', 'bz_default_hidden'); + Dom.addClass('recognition_row', 'bz_default_hidden'); + } + + onRecognitionChange(); +} + +function onRecognitionChange() { + var mandatory = Dom.get('purpose').value != 'Mozillian Recognition' + || !Dom.get('recognition_shipping').checked; + getField('shiptoaddress1').mandatory = mandatory; + getField('shiptocity').mandatory = mandatory; + getField('shiptostate').mandatory = mandatory; + getField('shiptocountry').mandatory = mandatory; + getField('shiptopostcode').mandatory = mandatory; + getField('shiptophone').mandatory = mandatory && !Dom.get('shipto_mozspace').checked; + tagMandatoryFields(); +} + +function onMozSpaceChange() { + if (Dom.get('mozspace').value) { + Dom.removeClass('shipto_mozspace_container', 'bz_default_hidden'); + } else { + Dom.addClass('shipto_mozspace_container', 'bz_default_hidden'); + } + onShipToMozSpaceClick(); +} + +function onShipToMozSpaceClick() { + var address1 = address2 = city = state = country = postcode = ''; + if (Dom.get('shipto_mozspace').checked) { + var space = Dom.get('mozspace').value; + address1 = mozspaces[space].address1; + address2 = mozspaces[space].address2; + city = mozspaces[space].city; + state = mozspaces[space].state; + country = mozspaces[space].country; + postcode = mozspaces[space].postcode; + } + Dom.get('shiptoaddress1').value = address1; + Dom.get('shiptoaddress2').value = address2; + Dom.get('shiptocity').value = city; + Dom.get('shiptostate').value = state; + Dom.get('shiptocountry').value = country; + Dom.get('shiptopostcode').value = postcode; + Dom.get('shiptophone').value = ''; + Dom.get('shiptoidrut').value = ''; + onRecognitionChange(); +} + +function firstChild(parent, name) { + var a = parent.getElementsByTagName(name); + return a.length == 0 ? false : a[0]; +} + +function getField(id) { + for(var i = 0, l = fields.length; i < l; i++) { + if (fields[i].id == id) + return fields[i]; + } + return false; +} + +function addGear() { + var quantity = parseInt(Dom.get('quantity').value, 10); + var id = Dom.get('add_gear').value; + if (!quantity || !id) return; + needed[id] += quantity; + showGear(); +} + +function removeGear(id) { + if (!id) return; + needed[id] = 0; + showGear(); +} + +function showGear() { + var html = '<table border="0" cellpadding="2" cellspacing="0">'; + var text = ''; + var count = 0; + for (var i = 0, l = gear.length; i < l; i++) { + var item = gear[i]; + var id = item.id; + if (!id) continue; + if (!needed[id]) continue; + count += needed[id]; + html += '<tr>' + + '<td>' + needed[id] + ' x </td>' + + '<td>' + YAHOO.lang.escapeHTML(item.name) + '</td>' + + '<td><button onclick="removeGear(\'' + id + '\');return false">Remove</button></td>' + + '</tr>'; + text += needed[id] + ' x ' + id + ' ' + item.name + "\n"; + } + if (!count) + html += '<tr><td><i>No gear selected.</i></td></tr>'; + html += '</table>'; + Dom.get('gear_container').innerHTML = html; + Dom.get('items').value = text; +} + +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Mozilla Gear" + style = inline_style + javascript = inline_javascript + javascript_urls = [ 'extensions/BMO/web/js/form_validate.js', + 'js/field.js', 'js/util.js' ] + yui = [ 'autocomplete', 'calendar' ] +%] + +<h1>Mozilla Gear</h1> + +<p> + Want gear? Here's what to do: +</p> +<ul> + <li> + Follow the steps below and click Submit Request. + </li> + <li> + Requests are reviewed every Monday. If approved, we'll let you know. Then + your order will either be filled from your Mozilla space for pick-up or + sent to our gear partner, Staples, for processing and shipment. If it can't + be approved, we'll email you with details (or possibly ask for more + information). + </li> +</ul> + +<p> + Check <a href="https://wiki.mozilla.org/GearStore" target="_blank">the gear + wiki</a> for more information about gear, including approved uses and the + list of available gear. +</p> + +<p> + Gear requests for Rep-driven events and campaigns should continue to be + submitted through <a href="https://wiki.mozilla.org/ReMo/Tools_and_Resources" + target="_blank">their existing process</a>. +</p> + +<form method="post" action="post_bug.cgi" id="swagRequestForm" enctype="multipart/form-data" + onSubmit="return validateAndSubmit();"> + <input type="hidden" name="format" value="swag"> + <input type="hidden" name="product" value="Marketing"> + <input type="hidden" name="component" value="Swag Requests"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="op_sys" value="Other"> + <input type="hidden" name="priority" value="--"> + <input type="hidden" name="version" value="unspecified"> + <input type="hidden" name="bug_severity" id="bug_severity" value="normal"> + <input type="hidden" name="short_desc" id="short_desc" value=""> + <input type="hidden" name="groups" value="mozilla-engagement"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + +<table id="gear_form"> + +<tr> + <td> </td> +</tr> +<tr> + <th class="heading" colspan="2">Tell Us What You Want</th> +</tr> + +<tr> + <th>Purpose of Gear</th> + <td> + <select name="purpose" id="purpose" onchange="onPurposeChange()"> + <option value="">Please select..</option> + <option value="Campaign">Campaign</option> + <option value="Event">Event</option> + <option value="Gear Space Stock">Gear Space Stock</option> + <option value="Mozillian Recognition">Mozillian Recognition</option> + <option value="Onboarding">Onboarding</option> + <option value="Press">Press</option> + <option value="Recruiting">Recruiting</option> + <option value="VIP">VIP</option> + <option value="Other">Other</option> + </select> + </td> +</tr> + +<tr id="purpose_other_row" class="bz_default_hidden"> + <th>Purpose Text</th> + <td> + <input name="purpose_other" id="purpose_other" size="50"> + </td> +</tr> + +<tr id="recognition_row" class="bz_default_hidden"> + <th> </th> + <td> + <input type="checkbox" name="recognition_shipping" id="recognition_shipping" value="Yes" + onclick="onRecognitionChange()"> + <label for="recognition_shipping"> + This [% terms.bug %] needs recipient shipping information + </label><br> + <input type="checkbox" name="recognition_sizing" id="recognition_sizing" value="Yes"> + <label for="recognition_sizing"> + This [% terms.bug %] needs recipient size information + </label><br> + </td> +</tr> + +<tr> + <th>Date Required</th> + <td> + <input name="date_required" id="date_required" size="25" + onchange="updateCalendarFromField(this)"> + <button type="button" class="calendar_button" id="button_calendar_date_required" + onclick="showCalendar('date_required')"><span>cal</span></button> + <div id="con_calendar_date_required"></div> + </td> +</tr> + +<tr> + <th>Gear Needed</th> + <td> + <input type="hidden" name="items" id="items" value=""> + <a href="https://wiki.mozilla.org/GearStore/Gearavailable" target="_blank"> + View the current inventory</a>, then add your selection(s):<br> + + <input type="text" size="2" id="quantity" value="1" + onblur="this.value = parseInt(this.value, 10) ? Math.floor(parseInt(this.value, 10)) : 1"> + <select id="add_gear"> + <option value="">Please select..</option> + [% first_group = 1 %] + [% FOREACH item = items %] + [% IF item.id == "" %] + [% "</optgroup>" UNLESS first_group %] + [% first_group = 0 %] + <optgroup label="[% item.name FILTER html %]"> + [% ELSE %] + <option value="[% item.id FILTER html %]">[% item.name FILTER html %]</option> + [% END %] + [% END %] + [% "</optgroup>" UNLESS first_group %] + </select> + <button onclick="addGear();return false">Add</button> + <br> + + <div id="gear_container"></div> + </td> +</tr> + +<tr> + <td> </td> +</tr> +<tr> + <th class="heading" colspan="2">Tell Us About You</th> +</tr> + +<tr> + <th>First Name</th> + <td><input name="firsrname" id="firstname" size="50" maxlength="30"></td> +</tr> + +<tr> + <th>Last Name</th> + <td><input name="lastname" id="lastname" size="50" maxlength="30"></td> +</tr> + +<tr> + <th>Email Address</th> + <td><input name="email" id="email" size="50" maxlength="50"></td> +</tr> + +<tr> + <th>My Mozilla Space</th> + <td> + <select name="mozspace" id="mozspace" onchange="onMozSpaceChange()"> + <option value="">Please select..</option> + [% FOREACH space = mozspaces %] + <option value="[% space.name FILTER html %]">[% space.name FILTER html %]</option> + [% END %] + </select> + <i>(if applicable)</i> + <div id="shipto_mozspace_container" class="bz_default_hidden"> + <input type="checkbox" id="shipto_mozspace" onclick="onShipToMozSpaceClick()"> + <label for="shipto_mozspace">Ship to this address</label> + </div> +</tr> + +<tr> + <th>Team + Department Code</th> + <td> + <select name="teamcode" id="teamcode"> + <option value="">Please select..</option> + <option value="Applications (350)">Applications (350)</option> + <option value="Business Affairs (110)">Business Affairs (110)</option> + <option value="Engagement Brand Management (240)">Engagement Brand Management (240)</option> + <option value="Engagement Contributor (230)">Engagement Contributor (230)</option> + <option value="Engagement General (200)">Engagement General (200)</option> + <option value="Engagement PR (220)">Engagement PR (220)</option> + <option value="Engagement Product Mktg (210)">Engagement Product Mktg (210)</option> + <option value="Engagement Product Strategy (250)">Engagement Product Strategy (250)</option> + <option value="Engagement User (232)">Engagement User (232)</option> + <option value="Engagement Websites & Developer (235)">Engagement Websites & Developer (235)</option> + <option value="Engr B2G (720)">Engr B2G (720)</option> + <option value="Engr Development Tools & Auto (769)">Engr Development Tools & Auto (769)</option> + <option value="Engr Firefox (770)">Engr Firefox (770)</option> + <option value="Engr Firefox Dev Tools (775)">Engr Firefox Dev Tools (775)</option> + <option value="Engr General Admin (700)">Engr General Admin (700)</option> + <option value="Engr Jetpack (780)">Engr Jetpack (780)</option> + <option value="Engr Localization - L10N (740)">Engr Localization - L10N (740)</option> + <option value="Engr Ops Build & Release (440)">Engr Ops Build & Release (440)</option> + <option value="Engr Ops Network & IT (410)">Engr Ops Network & IT (410)</option> + <option value="Engr Ops Stats & Metrics (420)">Engr Ops Stats & Metrics (420)</option> + <option value="Engr Ops Support/SUMO (450)">Engr Ops Support/SUMO (450)</option> + <option value="Engr Ops Weave & Services (460)">Engr Ops Weave & Services (460)</option> + <option value="Engr Ops Web Dev (430)">Engr Ops Web Dev (430)</option> + <option value="Engr Platform Content (810)">Engr Platform Content (810)</option> + <option value="Engr Platform General (800)">Engr Platform General (800)</option> + <option value="Engr Platform Graphics (820)">Engr Platform Graphics (820)</option> + <option value="Engr Platform Integration (880)">Engr Platform Integration (880)</option> + <option value="Engr Platform JS (830)">Engr Platform JS (830)</option> + <option value="Engr Platform Layout (840)">Engr Platform Layout (840)</option> + <option value="Engr Platform Network (855)">Engr Platform Network (855)</option> + <option value="Engr Platform Performance (870)">Engr Platform Performance (870)</option> + <option value="Engr Platform Stability Plugins (850)">Engr Platform Stability Plugins (850)</option> + <option value="Engr Project Mgmt (710)">Engr Project Mgmt (710)</option> + <option value="Engr QA Automation (760)">Engr QA Automation (760)</option> + <option value="Engr QA Browser Technologies (767)">Engr QA Browser Technologies (767)</option> + <option value="Engr QA Firefox Desktop (755)">Engr QA Firefox Desktop (755)</option> + <option value="Engr QA Services (750)">Engr QA Services (750)</option> + <option value="Engr QA Web (765)">Engr QA Web (765)</option> + <option value="Engr Research (860)">Engr Research (860)</option> + <option value="Engr Security (730)">Engr Security (730)</option> + <option value="Facility (150)">Facility (150)</option> + <option value="Finance (120)">Finance (120)</option> + <option value="G&A (100)">G&A (100)</option> + <option value="Innovations (300)">Innovations (300)</option> + <option value="Mobile (600)">Mobile (600)</option> + <option value="Mobile UI (610)">Mobile UI (610)</option> + <option value="Pancake (530)">Pancake (530)</option> + <option value="People (140)">People (140)</option> + <option value="People Ops (130)">People Ops (130)</option> + <option value="Product Add-Ons (550)">Product Add-Ons (550)</option> + <option value="Product UX (510)">Product UX (510)</option> + <option value="Products General (500)">Products General (500)</option> + <option value="Products User Research (520)">Products User Research (520)</option> + <option value="Security Assurance (470)">Security Assurance (470)</option> + <option value="Thunderbird (320)">Thunderbird (320)</option> + </select> + </td> +</tr> + +<tr> + <td> </td> +</tr> +<tr> + <th class="heading" colspan="2">Tell Us Where To Send It</th> +</tr> + +<tr> + <td colspan="2"> + Please be aware that shipping can cost as much as, if not more than, your + item. And, items shipped internationally incur customs fees that can be + 100%+ the cost of the package. When possible, requests will be filled from + gear at your Mozilla space. + </td> +</tr> + +<tr> + <th>First Name</th> + <td><input name="shiptofirstname" id="shiptofirstname" size="50" maxlength="50"></td> +</tr> +<tr> + <th>Last Name</th> + <td><input name="shiptolastname" id="shiptolastname" size="50" maxlength="50"></td> +</tr> +<tr> + <th>Email Address</th> + <td><input name="shiptoemail" id="shiptoemail" size="50" maxlength="50"></td> +</tr> +<tr> + <th>Address</th> + <td><input name="shiptoaddress1" id="shiptoaddress1" size="50" maxlength="50"></td> +</tr> +<tr> + <th>Address 2</th> + <td><input name="shiptoaddress2" id="shiptoaddress2" size="50" maxlength="50"></td> +</tr> +<tr> + <th>City</th> + <td><input name="shiptocity" id="shiptocity" size="50" maxlength="50"></td> +</tr> +<tr> + <th>State</th> + <td><input name="shiptostate" id="shiptostate" size="50" maxlength="50"></td> +</tr> +<tr> + <th>Country</th> + <td><input name="shiptocountry" id="shiptocountry" size="50" maxlength="50"></td> +</tr> +<tr> + <th>Postal Code</th> + <td><input name="shiptopostcode" id="shiptopostcode" size="50" maxlength="50"></td> +</tr> +<tr> + <th>Recipient Telephone</th> + <td> + <input name="shiptophone" id="shiptophone" size="50" maxlength="50"> + <i>(include country code if outside of the US)</i> + </td> +</tr> +<tr> + <th>Personal ID/RUT</th> + <td> + <input name="shiptoidrut" id="shiptoidrut" size="50" maxlength="50"> + <i>(if your country requires this)</i> + </td> +</tr> + +<tr> + <td> </td> +</tr> +<tr> + <th class="heading" colspan="2">Tell Us Anything Else</th> +</tr> + +<tr> + <th>Additional Comments</th> + <td><textarea id="comment" name="comment" rows="5" cols="50"></textarea></td> +</tr> + +<tr> + <td> </td> +</tr> + +<tr> + <td> </td> + <td><input type="submit" id="commit" value="Submit Request"></td> +</tr> + +</table> +</form> + +<p> + <span class="mandatory">*</span> Required Field +</p> + +<p> + Requests will only be visible to the person who submitted it, authorized + members of the Mozilla Engagement team, and our Staples Customer Service rep. + We do this to help protect the personal identifying information in this [% terms.bugs %]. +</p> + +<script> + initFields(); + onPurposeChange(); + tagMandatoryFields(); + showGear(); +</script> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-trademark.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-trademark.html.tmpl new file mode 100644 index 000000000..977ad00d4 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-trademark.html.tmpl @@ -0,0 +1,87 @@ +[%# 1.0@bugzilla.org %] +[%# 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> + # Ville Skyttä <ville.skytta@iki.fi> + # John Hoogstrate <hoogstrate@zeelandnet.nl> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Trademark Usage Requests" +%] + +[% USE Bugzilla %] + +<p> + If, after reading + <a href="http://www.mozilla.org/foundation/trademarks/">the trademark policy + documents</a>, you know you need permission to use a certain trademark, this + is the place to be. +</p> + +<p><strong>Please use this form for trademark requests only!</strong></p> + +<form method="post" action="post_bug.cgi" id="tmRequestForm"> + + <input type="hidden" name="product" value="Marketing"> + <input type="hidden" name="component" value="Trademark Permissions"> + <input type="hidden" name="bug_severity" value="enhancement"> + <input type="hidden" name="rep_platform" value="All"> + <input type="hidden" name="priority" value="P3"> + <input type="hidden" name="op_sys" value="Other"> + <input type="hidden" name="version" value="unspecified"> + <input type="hidden" name="groups" value="marketing-private"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + + <table> + <tr> + <td align="right"><strong>Summary:</strong></td> + <td colspan="3"> + <input name="short_desc" size="60" value="[% short_desc FILTER html %]"> + </td> + </tr> + + <tr><td align="right" valign="top"><strong>Description:</strong></td> + <td colspan="3"> + <textarea name="comment" rows="10" cols="80"> + [% comment FILTER html %]</textarea> + <br> + </td> + </tr> + <tr> + <td align="right"><strong>URL (optional):</strong></td> + <td colspan="3"> + <input name="bug_file_loc" size="60" + value="[% bug_file_loc FILTER html %]"> + </td> + </tr> + </table> + + <br> + + <input type="submit" id="commit" value="Submit Request"> +</form> + +<p>Thanks for contacting us. + You will be notified by email of any progress made in resolving your + request. +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/create-winqual.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-winqual.html.tmpl new file mode 100644 index 000000000..d14cca810 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-winqual.html.tmpl @@ -0,0 +1,800 @@ +[%# 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> + # Ville Skyttä <ville.skytta@iki.fi> + # Shane H. W. Travis <travis@sedsystems.ca> + # Marc Schumann <wurblzap@gmail.com> + # Akamai Technologies <bugzilla-dev@akamai.com> + # Max Kanat-Alexander <mkanat@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% title = BLOCK %]Enter [% terms.Bug %]: [% product.name FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + yui = [ 'autocomplete', 'calendar', 'datatable', 'button' ] + style_urls = [ 'skins/standard/attachment.css', + 'skins/standard/enter_bug.css', + 'skins/custom/create_bug.css' ] + javascript_urls = [ "js/attachment.js", "js/util.js", + "js/field.js", "js/TUI.js", "js/bug.js", + "js/create_bug.js" ] + onload = "init();" +%] + +<script type="text/javascript"> +<!-- + +function init() { + set_assign_to(); + hideElementById('attachment_true'); + showElementById('attachment_false'); + showElementById('btn_no_attachment'); + initCrashSignatureField(); + init_take_handler('[% user.login FILTER js %]'); +} + +function initCrashSignatureField() { + var el = document.getElementById('cf_crash_signature'); + if (!el) return; + [% IF cf_crash_signature.length %] + YAHOO.util.Dom.addClass('cf_crash_signature_container', 'bz_default_hidden'); + [% ELSE %] + hideEditableField('cf_crash_signature_container','cf_crash_signature_input', + 'cf_crash_signature_action', 'cf_crash_signature'); + [% END %] +} + +var initialowners = new Array(); +var last_initialowner; +var initialccs = new Array(); +var components = new Array(); +var comp_desc = new Array(); +var flags = new Array(); +[% IF Param("useqacontact") %] + var initialqacontacts = new Array([% product.components.size %]); + var last_initialqacontact; +[% END %] +[% count = 0 %] +[%- FOREACH c = product.components %] + [% NEXT IF NOT c.is_active %] + [% NEXT IF c.name != 'WinQual Reports' %] + components[[% count %]] = "[% c.name FILTER js %]"; + comp_desc[[% count %]] = "[% c.description FILTER html_light FILTER js %]"; + initialowners[[% count %]] = "[% c.default_assignee.login FILTER js %]"; + [% flag_list = [] %] + [% FOREACH f = c.flag_types(is_active=>1).bug %] + [% flag_list.push(f.id) %] + [% END %] + [% FOREACH f = c.flag_types(is_active=>1).attachment %] + [% flag_list.push(f.id) %] + [% END %] + flags[[% count %]] = [[% flag_list.join(",") FILTER js %]]; + [% IF Param("useqacontact") %] + initialqacontacts[[% count %]] = "[% c.default_qa_contact.login FILTER js %]"; + [% END %] + + [% SET initial_cc_list = [] %] + [% FOREACH cc_user = c.initial_cc %] + [% initial_cc_list.push(cc_user.login) %] + [% END %] + initialccs[[% count %]] = "[% initial_cc_list.join(', ') FILTER js %]"; + + [% count = count + 1 %] +[%- END %] + +function set_assign_to() { + // Based on the selected component, fill the "Assign To:" field + // with the default component owner, and the "QA Contact:" field + // with the default QA Contact. It also selectively enables flags. + var form = document.Create; + var assigned_to = form.assigned_to.value; + +[% IF Param("useqacontact") %] + var qa_contact = form.qa_contact.value; +[% END %] + + var index = -1; + if (form.component.type == 'select-one') { + index = form.component.selectedIndex; + } else if (form.component.type == 'hidden') { + // Assume there is only one component in the list + index = 0; + } + if (index != -1) { + var owner = initialowners[index]; + var component = components[index]; + if (assigned_to == last_initialowner + || assigned_to == owner + || assigned_to == '') { + form.assigned_to.value = owner; + last_initialowner = owner; + } + + document.getElementById('initial_cc').innerHTML = initialccs[index]; + document.getElementById('comp_desc').innerHTML = comp_desc[index]; + + if (initialccs[index]) { + showElementById('initial_cc_label'); + showElementById('initial_cc'); + } else { + hideElementById('initial_cc_label'); + hideElementById('initial_cc'); + } + + [% IF Param("useqacontact") %] + var contact = initialqacontacts[index]; + if (qa_contact == last_initialqacontact + || qa_contact == contact + || qa_contact == '') { + form.qa_contact.value = contact; + last_initialqacontact = contact; + } + [% END %] + + // First, we disable all flags. Then we re-enable those + // which are available for the selected component. + var inputElements = document.getElementsByTagName("select"); + var inputElement, flagField; + for ( var i=0 ; i<inputElements.length ; i++ ) { + inputElement = inputElements.item(i); + if (inputElement.name.search(/^flag_type-(\d+)$/) != -1) { + var id = inputElement.name.replace(/^flag_type-(\d+)$/, "$1"); + inputElement.disabled = true; + // Also hide the requestee field, if it exists. + inputElement = document.getElementById("requestee_type-" + id); + if (inputElement) + YAHOO.util.Dom.addClass(inputElement.parentNode, 'bz_default_hidden'); + } + } + // Now enable flags available for the selected component. + for (var i = 0; i < flags[index].length; i++) { + flagField = document.getElementById("flag_type-" + flags[index][i]); + // Do not enable flags the user cannot set nor request. + if (flagField && flagField.options.length > 1) { + flagField.disabled = false; + // Re-enabling the requestee field depends on the status + // of the flag. + toggleRequesteeField(flagField, 1); + } + } + } +} + +var status_comment_required = new Array(); +[% FOREACH status = bug_status %] + status_comment_required['[% status.name FILTER js %]'] = + [% status.comment_required_on_change_from() ? 'true' : 'false' %] +[% END %] + +TUI_alternates['expert_fields'] = 'Show Advanced Fields'; +// Hide the Advanced Fields by default, unless the user has a cookie +// that specifies otherwise. +TUI_hide_default('expert_fields'); + +--> +</script> + +<form name="Create" id="Create" method="post" action="post_bug.cgi" + class="enter_bug_form" enctype="multipart/form-data" + onsubmit="return validateEnterBug(this)"> + <input type="hidden" name="product" value="Firefox"> + <input type="hidden" name="component" value="WinQual Reports"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="hidden" name="groups" value="winqual-data"> + +<table> +<tbody> + <tr> + <td colspan="4"> + [%# Migration note: The following file corresponds to the old Param + # 'entryheaderhtml' + #%] + [% PROCESS 'bug/create/user-message.html.tmpl' %] + </td> + </tr> + + <tr> + <td colspan="2"> + <input type="button" id="expert_fields_controller" + value="Hide Advanced Fields" onClick="toggleAdvancedFields()"> + [%# Show the link if the browser supports JS %] + <script type="text/javascript"> + YAHOO.util.Dom.removeClass('expert_fields_controller', + 'bz_default_hidden'); + </script> + </td> + <td colspan="2"> + (<span class="required_star">*</span> = + <span class="required_explanation">Required Field</span>) + </td> + </tr> + + <tr> + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.product, editable = 0, + value = product.name %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.reporter, editable = 0, + value = user.login %] + </tr> + + [%# We can't use the select block in these two cases for various reasons. %] + <tr> + [% component_desc_url = BLOCK -%] + describecomponents.cgi?product=[% product.name FILTER uri %] + [% END %] + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.component editable = 1 + desc_url = component_desc_url + %] + <td id="field_container_component"> + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.component, editable = 0, + value = "WinQual Reports", no_tds = 1 %] + <script type="text/javascript"> + <!-- + [%+ INCLUDE "bug/field-events.js.tmpl" + field = bug_fields.component %] + YAHOO.util.Event.onDOMReady(set_assign_to); + //--> + </script> + </td> + + <td colspan="2" id="comp_desc_container"> + [%# Enclose the fieldset in a nested table so that its width changes based + # on the length on the component description. %] + <table> + <tr> + <td> + <fieldset> + <legend>Component Description</legend> + <div id="comp_desc" class="comment"></div> + </fieldset> + </td> + </tr> + </table> + </td> + </tr> + + <tr> + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.version editable = 1 rowspan = 3 + %] + <td rowspan="3"> + <select name="version" id="version" size="5"> + [%- FOREACH v = version %] + [% NEXT IF NOT v.is_active %] + <option value="[% v.name FILTER html %]" + [% ' selected="selected"' IF v.name == default.version %]>[% v.name FILTER html -%] + </option> + [%- END %] + </select> + </td> + + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.bug_severity, editable = 1, + value = default.bug_severity %] + </tr> + + <tr> + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.rep_platform, editable = 1, + value = default.rep_platform %] + </tr> + + <tr> + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.op_sys, editable = 1, + value = default.op_sys %] + </tr> + [% IF !Param('defaultplatform') || !Param('defaultopsys') %] + <tr> + <th colspan="3"> </th> + <td id="os_guess_note" class="comment"> + <div>We've made a guess at your + [% IF Param('defaultplatform') %] + operating system. Please check it + [% ELSIF Param('defaultopsys') %] + platform. Please check it + [% ELSE %] + operating system and platform. Please check them + [% END %] + and make any corrections if necessary.</div> + </td> + </tr> + [% END %] +</tbody> + +<tbody class="expert_fields"> + <tr> + [% IF Param('usetargetmilestone') && Param('letsubmitterchoosemilestone') %] + [% INCLUDE select field = bug_fields.target_milestone %] + [% ELSE %] + <td colspan="2"> </td> + [% END %] + + [% IF Param('letsubmitterchoosepriority') %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.priority, editable = 1, + value = default.priority %] + [% ELSE %] + <td colspan="2"> </td> + [% END %] + </tr> +</tbody> + +<tbody class="expert_fields"> + <tr> + <td colspan="4"> </td> + </tr> + + <tr> + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.bug_status, + editable = (bug_status.size > 1), value = default.bug_status + override_legal_values = bug_status %] + </tr> + + <tr> + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.assigned_to editable = 1 + %] + <td> + [% INCLUDE global/userselect.html.tmpl + id => "assigned_to" + name => "assigned_to" + value => assigned_to + disabled => assigned_to_disabled + size => 30 + emptyok => 1 + custom_userlist => assignees_list + %] + [% UNLESS assigned_to_disabled %] + <span id="take_bug"> + (<a title="Assign to yourself" href="#" + onclick="return take_bug('[% user.login FILTER js %]')">take</a>) + </span> + [% END %] + <noscript>(Leave blank to assign to component's default assignee)</noscript> + </td> + +[% IF Param("useqacontact") %] + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.qa_contact editable = 1 + %] + <td> + [% INCLUDE global/userselect.html.tmpl + id => "qa_contact" + name => "qa_contact" + value => qa_contact + disabled => qa_contact_disabled + size => 30 + emptyok => 1 + custom_userlist => qa_contacts_list + %] + <noscript>(Leave blank to assign to default qa contact)</noscript> + </td> + </tr> +[% END %] + + <tr> + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.cc editable = 1 + %] + <td> + [% INCLUDE global/userselect.html.tmpl + id => "cc" + name => "cc" + value => cc + disabled => cc_disabled + size => 30 + multiple => 5 + %] + </td> + <th> + <span id="initial_cc_label" class="bz_default_hidden"> + Default [% field_descs.cc FILTER html %]: + </span> + </th> + <td> + <span id="initial_cc"></span> + </td> + </tr> + + <tr> + <td colspan="3"> </td> + </tr> + +[% IF Param("usebugaliases") %] + <tr> + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.alias editable = 1 + %] + <td colspan="2"> + <input name="alias" size="20" value="[% alias FILTER html %]"> + </td> + </tr> +[% END %] +</tbody> + +<tbody> + <tr> + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.short_desc editable = 1 + %] + <td colspan="3" class="field_value"> + <input name="short_desc" size="70" value="[% short_desc FILTER html %]" + maxlength="255" spellcheck="true" aria-required="true" + class="required text_input" id="short_desc"> + </td> + </tr> + + [% IF feature_enabled('jsonrpc') AND !cloned_bug_id %] + <tr id="possible_duplicates_container" class="bz_default_hidden"> + <th>Possible<br>Duplicates:</th> + <td colspan="3"> + <div id="possible_duplicates"></div> + <script type="text/javascript"> + var dt_columns = [ + { key: "id", label: "[% field_descs.bug_id FILTER js %]", + formatter: YAHOO.bugzilla.dupTable.formatBugLink }, + { key: "summary", + label: "[% field_descs.short_desc FILTER js %]", + formatter: "text" }, + { key: "status", + label: "[% field_descs.bug_status FILTER js %]", + formatter: YAHOO.bugzilla.dupTable.formatStatus }, + { key: "update_token", label: '', + formatter: YAHOO.bugzilla.dupTable.formatCcButton } + ]; + YAHOO.bugzilla.dupTable.addCcMessage = "Add Me to the CC List"; + YAHOO.bugzilla.dupTable.init({ + container: 'possible_duplicates', + columns: dt_columns, + product_name: '[% product.name FILTER js %]', + summary_field: 'short_desc', + options: { + MSG_LOADING: 'Searching for possible duplicates...', + MSG_EMPTY: 'No possible duplicates found.', + SUMMARY: 'Possible Duplicates' + } + }); + </script> + </td> + </tr> + [% END %] + + <tr> + <th>Description:</th> + <td colspan="3"> + + [% defaultcontent = BLOCK %] + [% IF cloned_bug_id %] ++++ This [% terms.bug %] was initially created as a clone of [% terms.Bug %] #[% cloned_bug_id FILTER html %] +++ + + + [% END %] + [%-# We are within a BLOCK. The comment will be correctly HTML-escaped + # by global/textarea.html.tmpl. So we must not escape the comment here. %] + [% comment FILTER none %] + [%- END %] + [% INCLUDE global/textarea.html.tmpl + name = 'comment' + id = 'comment' + minrows = 10 + maxrows = 25 + cols = constants.COMMENT_COLS + defaultcontent = defaultcontent + %] + <br> + </td> + </tr> + +<tbody class="expert_fields"> + <tr> + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.bug_file_loc editable = 1 + %] + <td colspan="3" class="field_value"> + <input name="bug_file_loc" id="bug_file_loc" class="text_input" + size="40" value="[% bug_file_loc FILTER html %]"> + </td> + </tr> +</tbody> + +<tbody> + [% IF Param("maxattachmentsize") %] + <tr> + <th>Attachment:</th> + <td colspan="3"> + <div id="attachment_false" class="bz_default_hidden"> + <input type="button" value="Add an attachment" onClick="handleWantsAttachment(true)"> + </div> + + <div id="attachment_true"> + <input type="button" id="btn_no_attachment" value="Don't add an attachment" + class="bz_default_hidden" onClick="handleWantsAttachment(false)"> + <fieldset> + <legend>Add an attachment</legend> + <table class="attachment_entry"> + [% PROCESS attachment/createformcontents.html.tmpl + flag_types = product.flag_types(is_active=>1).attachment + any_flags_requesteeble = 1 + flag_table_id ="attachment_flags" %] + </table> + + [% IF user.is_insider %] + <input type="checkbox" id="comment_is_private" name="comment_is_private" + [% ' checked="checked"' IF comment_is_private %] + onClick="updateCommentTagControl(this, 'comment')"> + <label for="comment_is_private"> + Make this attachment and [% terms.bug %] description private (visible only + to members of the <strong>[% Param('insidergroup') FILTER html %]</strong> group) + </label> + [% END %] + </fieldset> + </div> + </td> + </tr> + [% END %] +</tbody> + +<tbody class="expert_fields"> + [% IF user.in_group('editbugs', product.id) %] + <tr> + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.dependson editable = 1 + %] + <td> + <input name="dependson" accesskey="d" value="[% dependson FILTER html %]" size="30"> + </td> + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.blocked editable = 1 + %] + <td> + <input name="blocked" accesskey="b" value="[% blocked FILTER html %]" size="30"> + </td> + </tr> + + [% IF use_keywords %] + <tr> + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.keywords, editable = 1, + value = keywords, desc_url = "describekeywords.cgi", + value_span = 3 + %] + </tr> + [% END %] + + <tr> + <th>Status Whiteboard:</th> + <td colspan="3" class="field_value"> + <input id="status_whiteboard" name="status_whiteboard" size="70" + value="[% status_whiteboard FILTER html %]" class="text_input"> + </td> + </tr> + [% END %] + + [% IF user.is_timetracker %] + <tr> + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.estimated_time editable = 1 + %] + <td> + <input name="estimated_time" size="6" maxlength="6" value="[% estimated_time FILTER html %]"> + </td> + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.deadline, value = deadline, editable = 1 + %] + </tr> + [% END %] +</tbody> + +<tbody> +[%# non-tracking flags custom fields %] +[% FOREACH field = Bugzilla.active_custom_fields %] + [% NEXT UNLESS field.enter_bug %] + [% NEXT IF cf_hidden_in_product(field.name, product.name, component.name, 1) %] + [%# crash-signature gets custom handling %] + [% NEXT IF field.name == 'cf_crash_signature' %] + + [% SET value = ${field.name}.defined ? ${field.name} : "" %] + <tr [% 'class="expert_fields"' IF !field.is_mandatory %]> + [% INCLUDE bug/field.html.tmpl + bug = default, field = field, value = value, editable = 1, + value_span = 3 %] + </tr> +[% END %] +</tbody> + +[%# crash-signature handling %] +[% UNLESS cf_hidden_in_product('cf_crash_signature', product.name, component.name, 1) %] +<tbody class="expert_fields"> + <tr> + <th id="field_label_cf_crash_signature" class="field_label"> + <label for="cf_crash_signature"> Crash Signature: </label> + </th> + <td colspan="3"> + <span id="cf_crash_signature_container"> + <span id="cf_crash_signature_nonedit_display"><i>None</i></span> + (<a id="cf_crash_signature_action" href="#">edit</a>) + </span> + <span id="cf_crash_signature_input"> + <textarea id="cf_crash_signature" name="cf_crash_signature" rows="4" cols="60" + >[% cf_crash_signature FILTER html %]</textarea> + </span> + </td> + </tr> +</tbody> +[% END %] + +[% display_bug_flags = 0 %] +[% FOREACH field = Bugzilla.active_custom_fields %] + [% NEXT UNLESS field.enter_bug %] + [% NEXT IF cf_hidden_in_product(field.name, product.name, component.name, 2) %] + [% display_bug_flags = 1 %] + [% LAST %] +[% END %] + +[% display_flags = 0 %] +[% any_flags_requesteeble = 0 %] +[% FOREACH flag_type = product.flag_types(is_active=>1).bug %] + [% display_flags = 1 %] + [% SET any_flags_requesteeble = 1 IF flag_type.is_requestable && flag_type.is_requesteeble %] + [% LAST IF display_flags && any_flags_requesteeable %] +[% END %] + +[% IF display_bug_flags || display_flags %] + <tbody class="expert_fields"> + <tr> + <th>Flags:</th> + <td colspan="3"> + <div id="bug_flags_false" class="bz_default_hidden"> + <input type="button" value="Set [% terms.bug FILTER html %] flags" onClick="handleWantsBugFlags(true)"> + </div> + + <div id="bug_flags_true"> + <input type="button" id="btn_no_bug_flags" value="Don't set [% terms.bug %] flags" + class="bz_default_hidden" onClick="handleWantsBugFlags(false)"> + + <fieldset> + <legend>Set [% terms.bug %] flags</legend> + + <table cellpadding="0" cellspacing="0"> + <tr> + [% IF display_bug_flags %] + <td> + <table id="bug_tracking_flags"> + <tr> + <th colspan="2" style="text-align:left">Tracking Flags:</th> + </tr> + <tr> + [% FOREACH field = Bugzilla.active_custom_fields %] + [% NEXT UNLESS field.enter_bug %] + [% NEXT IF cf_hidden_in_product(field.name, product.name, component.name, 2) %] + + [% SET value = ${field.name}.defined ? ${field.name} : "" %] + <tr> + [% INCLUDE bug/field.html.tmpl + bug = default, field = field, value = value, editable = 1, + value_span = 3 %] + </tr> + [% END %] + </tr> + </table> + </td> + [% END %] + [% IF display_flags %] + <td> + [% PROCESS "flag/list.html.tmpl" flag_types = product.flag_types(is_active=>1).bug + any_flags_requesteeble = any_flags_requesteeble + flag_table_id = "bug_flags" + %] + </td> + [% END %] + </tr> + </table> + </fieldset> + </div> + </td> + </tr> + </tbody> +[% END %] + +<tbody> + [%# Form controls for entering additional data about the bug being created. %] + [% Hook.process("form") %] + + <tr> + <th> </th> + <td colspan="3"> + <input type="submit" id="commit" value="Submit [% terms.Bug %]"> + + <input type="submit" name="maketemplate" id="maketemplate" + value="Remember values as bookmarkable template" + onclick="bz_no_validate_enter_bug=true" class="expert_fields"> + </td> + </tr> +</tbody> + [%# "status whiteboard" and "qa contact" are the longest labels + # add them here to avoid shifting the page when toggling advanced fields %] + <tr> + <th class="hidden_text">Status Whiteboard:</th> + <td> </td> + <th class="hidden_text">QA Contact:</th> + </tr> + </table> + <input type="hidden" name="form_name" value="enter_bug"> +</form> + +[%# Links or content with more information about the bug being created. %] +[% Hook.process("end") %] + +<div id="guided"> + <a id="guided_img" href="enter_bug.cgi?format=guided&product=[% product.name FILTER uri %]"><img + src="extensions/BMO/web/images/guided.png" width="16" height="16" border="0" align="absmiddle"></a> + <a id="guided_link" href="enter_bug.cgi?format=guided&product=[% product.name FILTER uri %]" + >Switch to the [% terms.Bugzilla %] Helper</a> +</div> + +[% PROCESS global/footer.html.tmpl %] + +[%############################################################################%] +[%# Block for SELECT fields #%] +[%############################################################################%] + +[% BLOCK select %] + + [% INCLUDE "bug/field-label.html.tmpl" + field = field editable = 1 + %] + <td> + <select name="[% field.name FILTER html %]" + id="[% field.name FILTER html %]"> + [%- FOREACH x = ${field.name} %] + [% NEXT IF NOT x.is_active %] + <option value="[% x.name FILTER html %]" + [% " selected=\"selected\"" IF x.name == default.${field.name} %]> + [% display_value(field.name, x.name) FILTER html %] + </option> + [% END %] + </select> + </td> +[% END %] + +[% BLOCK build_userlist %] + [% user_found = 0 %] + [% default_login = default_user.login %] + [% RETURN UNLESS default_login %] + + [% FOREACH user = userlist %] + [% IF user.login == default_login %] + [% user_found = 1 %] + [% LAST %] + [% END %] + [% END %] + + [% userlist.push({login => default_login, + identity => default_user.identity, + visible => 1}) + UNLESS user_found %] +[% END %] diff --git a/extensions/BMO/template/en/default/bug/create/created-mozreps.html.tmpl b/extensions/BMO/template/en/default/bug/create/created-mozreps.html.tmpl new file mode 100644 index 000000000..e9a480090 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/created-mozreps.html.tmpl @@ -0,0 +1,38 @@ +[%# 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 BMO Bugzilla Extension. + # + # The Initial Developer of the Original Code is the Mozilla Foundation + # Portions created by the Initial Developers are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): Byron Jones <glob@mozilla.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Mozilla Reps - Application Form" + +%] + +<h1>Thank you!</h1> + +<p> +Thank you for submitting your Mozilla Reps Application Form. A Mozilla Rep +mentor will contact you shortly at your bugzilla email address. +</p> + +<p style="font-size: x-small"> +Reference: <a href="show_bug.cgi?id=[% id FILTER uri %]">#[% id FILTER html %]</a> +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/bug/create/user-message.html.tmpl b/extensions/BMO/template/en/default/bug/create/user-message.html.tmpl new file mode 100644 index 000000000..8e33caec5 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/user-message.html.tmpl @@ -0,0 +1,54 @@ +<!-- 1.0@bugzilla.org --> +[%# 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): Matthew Tuck <matty@chariot.net.au> + #%] + +[% PROCESS global/variables.none.tmpl %] + +<p> + [% UNLESS cloned_bug_id %] + Consider using the + <a href="enter_bug.cgi?product=[% product.name FILTER html %]&format=guided" + ><img src="extensions/BMO/web/images/guided.png" width="16" height="16" align="absmiddle" border="0"> + [%+ terms.Bugzilla %] Helper</a> instead of this form. + [% END +%] + Before reporting a [% terms.bug %], make sure you've read our + <a href="http://www.mozilla.org/quality/bug-writing-guidelines.html"> + [% terms.bug %] writing guidelines</a> and double checked that your [% terms.bug %] hasn't already + been reported. Consult our list of <a href="https://bugzilla.mozilla.org/duplicates.cgi"> + most frequently reported [% terms.bugs %]</a> and <a href="https://bugzilla.mozilla.org/query.cgi"> + search through descriptions</a> of previously reported [% terms.bugs %]. +</p> + +[% IF product.name == 'Bugzilla' && + (user.in_group('mozilla-corporation') || user.in_group('mozilla-foundation')) %] + <div id="bug_create_warning"> + <div id="bug_create_warning_image"> + <img src="extensions/BMO/web/images/sign_warning.png" width="32" height="32"> + </div> + <div id="bug_create_warning_text"> + <b>Mozilla employees</b><br> + This is not the place to request configuration, permission, or + account changes to this installation of [% terms.Bugzilla %] (bugzilla.mozilla.org).<br> + File such changes under the appropriate component in the + <a href="enter_bug.cgi?product=bugzilla.mozilla.org;component=Administration"><b>bugzilla.mozilla.org</b></a> + product. + </div> + </div> +[% END %] diff --git a/extensions/BMO/template/en/default/email/bugmail.html.tmpl b/extensions/BMO/template/en/default/email/bugmail.html.tmpl new file mode 100644 index 000000000..1b5be1adc --- /dev/null +++ b/extensions/BMO/template/en/default/email/bugmail.html.tmpl @@ -0,0 +1,204 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] +[% PROCESS "global/reason-descs.none.tmpl" %] + +[% isnew = bug.lastdiffed ? 0 : 1 %] +<html> +<head> + <base href="[% urlbase FILTER html %]"> + <style> + pre { font-size: 100% !important; } + </style> +</head> +<body style="font-family: sans-serif"> + + [% IF !to_user.in_group('editbugs') %] + <div id="noreply" style="font-size: 90%; color: #666666"> + Do not reply to this email. You can add comments to this [% terms.bug %] at + [%# using the bug_link filter here causes a weird template error %] + <a href="[% urlbase FILTER html %]show_bug.cgi?id=[% bug.id FILTER none %]"> + [% urlbase FILTER html %]show_bug.cgi?id=[% bug.id FILTER none %]</a> + </div> + <br> + [% END %] + + [% IF isnew %] + [% PROCESS generate_new %] + [% ELSE %] + [% PROCESS generate_diffs %] + [% END %] + + [% IF new_comments.size %] + <div id="comments"> + [% FOREACH comment = new_comments.reverse %] + <div> + [% IF comment.count %] + <b> + [% "Comment # ${comment.count}" + FILTER bug_link(bug, { comment_num => comment.count, full_url => 1 }) FILTER none %] + on [% "$terms.Bug $bug.id" FILTER bug_link(bug, { full_url => 1 }) FILTER none %] + from [% INCLUDE global/user.html.tmpl who = comment.author %] + at [% comment.creation_ts FILTER time(undef, to_user.timezone) %] + </b> + [% END %] + <pre style="font-size: 120%">[% comment.body_full({ wrap => 1 }) FILTER quoteUrls(bug, comment) %]</pre> + </div> + [% END %] + </div> + <br> + [% END %] + + [% IF referenced_bugs.size %] + <div id="referenced"> + <hr style="border: 1px dashed #969696"> + <b>Referenced [% terms.Bugs %]:</b> + <ul> + [% FOREACH ref = referenced_bugs %] + <li> + [<a href="[% urlbase FILTER html %]show_bug.cgi?id=[% ref.id FILTER none %]"> + [% terms.Bug %] [% ref.id FILTER none %]</a>] [% ref.short_desc FILTER html %] + </li> + [% END %] + </ul> + </div> + <br> + [% END %] + + <div id="bug_details" style="font-size: 90%; color: #666666"> + <hr style="border: 1px dashed #969696"> + Product/Component: [% bug.product FILTER html %] :: [% bug.component FILTER html %] + </div> + +[% USE Bugzilla %] +[% tracking_flags = [] %] +[% FOREACH field = Bugzilla.active_custom_fields(product => bug.product_obj, component => bug.component_obj, type => 2) %] + [% NEXT IF cf_flag_disabled(field.name, bug) %] + [% NEXT IF bug.${field.name} == "---" %] + [% tracking_flags.push(field) %] +[% END %] +[% IF tracking_flags.size %] + <div id="tracking" style="font-size: 90%; color: #666666"> + <hr style="border: 1px dashed #969696"> + <b>Tracking Flags:</b> + <ul> + [% FOREACH field = tracking_flags %] + <li>[% field.description FILTER html %]:[% bug.${field.name} FILTER html %]</li> + [% END %] + </ul> + </div> +[% END %] + + <div id="reason" style="font-size: 90%; color: #666666"> + <hr style="border: 1px dashed #969696"> + <b>You are receiving this mail because:</b> + <ul> + [% FOREACH reason = reasons %] + [% IF reason_descs.$reason %] + <li>[% reason_descs.$reason FILTER html %]</li> + [% END %] + [% END %] + [% FOREACH reason = reasons_watch %] + [% IF watch_reason_descs.$reason %] + <li>[% watch_reason_descs.$reason FILTER html %]</li> + [% END %] + [% END %] + </ul> + </div> + +</body> +</html> + +[% BLOCK generate_new %] + <div class="new"> + <table border="0" cellspacing="0" cellpadding="3"> + [% FOREACH change = diffs %] + [% PROCESS "email/bugmail-common.txt.tmpl" %] + <tr> + <td class="c1" style="border-right: 1px solid #969696" nowrap><b>[% field_label FILTER html %]</b></td> + <td class="c2"> + [% IF change.field_name == "bug_id" %] + [% new_value FILTER bug_link(bug, full_url => 1) FILTER none %] + [% ELSE %] + [% new_value FILTER html %] + [% END %] + </td> + </tr> + [% END %] + </table> + </div> + <br> +[% END %] + +[% BLOCK generate_diffs %] + [% SET in_table = 0 %] + [% last_changer = 0 %] + [% FOREACH change = diffs %] + [% PROCESS "email/bugmail-common.txt.tmpl" %] + [% IF changer.id != last_changer %] + [% last_changer = changer.id %] + [% IF in_table == 1 %] + </table> + </div> + <br> + [% SET in_table = 0 %] + [% END %] + + <b> + [% IF change.blocker %] + [% "${terms.Bug} ${bug.id}" FILTER bug_link(bug, full_url => 1) FILTER none %] + depends on + <a href="[% urlbase FILTER html %]show_bug.cgi?id=[% change.blocker.id FILTER none %]"> + [% terms.Bug %] [% change.blocker.id FILTER none %]</a>, + which changed state.<br> + [% ELSE %] + [% INCLUDE global/user.html.tmpl who = change.who %] changed + [%+ "${terms.Bug} ${bug.id}" FILTER bug_link(bug, full_url => 1) FILTER none %] + at [% change.bug_when FILTER time(undef, to_user.timezone) %]</b>:<br> + [% END %] + </b> + + [% IF in_table == 0 %] + <br> + <div class="diffs"> + <table border="0" cellspacing="0" cellpadding="5"> + [% SET in_table = 1 %] + [% END %] + <tr class="head"> + <td class="c1" style="border-bottom: 1px solid #969696; border-right: 1px solid #969696"><b>What</b></td> + <td class="c2" style="border-bottom: 1px solid #969696; border-right: 1px solid #969696"><b>Removed</b></td> + <td class="c3" style="border-bottom: 1px solid #969696"><b>Added</b></td> + </tr> + [% END %] + + <tr> + <td class="c1" style="border-right: 1px solid #969696" nowrap>[% field_label FILTER html %]</td> + <td class="c2" style="border-right: 1px solid #969696"> + [% IF old_value %] + [% old_value FILTER html %] + [% ELSE %] + + [% END %] + </td> + <td> + [% IF new_value %] + [% new_value FILTER html %] + [% ELSE %] + + [% END %] + </td> + </tr> + [% END %] + [% IF in_table %] + </table> + </div> + <br> + [% END %] +[% END %] + diff --git a/extensions/BMO/template/en/default/email/bugmail.txt.tmpl b/extensions/BMO/template/en/default/email/bugmail.txt.tmpl new file mode 100644 index 000000000..76fa492ee --- /dev/null +++ b/extensions/BMO/template/en/default/email/bugmail.txt.tmpl @@ -0,0 +1,93 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] +[% PROCESS "global/reason-descs.none.tmpl" %] + +[% isnew = bug.lastdiffed ? 0 : 1 %] + +[% IF !to_user.in_group('editbugs') %] +Do not reply to this email. You can add comments to this [% terms.bug %] at +[% END %] +[%+ PROCESS generate_diffs -%] + +[% FOREACH comment = new_comments %] + +[%- IF comment.count %] +--- Comment #[% comment.count %] from [% comment.author.identity %] [%+ comment.creation_ts FILTER time(undef, to_user.timezone) %] --- +[% END %] +[%+ comment.body_full({ is_bugmail => 1, wrap => 1 }) %] +[% END %] +[% IF referenced_bugs.size %] + +Referenced [% terms.Bugs %]: + +[% FOREACH ref = referenced_bugs %] +[%+ urlbase %]show_bug.cgi?id=[% ref.id %] +[%+ "[" _ terms.Bug _ " " _ ref.id _ "] " _ ref.short_desc FILTER wrap_comment(76) %] +[% END %] +[% END %] + +-- [%# Protect the trailing space of the signature marker %] +Configure [% terms.bug %]mail: [% urlbase %]userprefs.cgi?tab=email + +------------------------------- +Product/Component: [%+ bug.product +%] :: [%+ bug.component %] + +[% USE Bugzilla %] +[% tracking_flags = [] %] +[% FOREACH field = Bugzilla.active_custom_fields(product => bug.product_obj, component => bug.component_obj, type => 2) %] + [% NEXT IF cf_flag_disabled(field.name, bug) %] + [% NEXT IF bug.${field.name} == "---" %] + [% tracking_flags.push(field) %] +[% END %] +[% IF tracking_flags.size %] +------- Tracking Flags: ------- +[% FOREACH field = tracking_flags %] +[%+ field.description %]:[% bug.${field.name} %] +[% END %] +[% END %] + +------- You are receiving this mail because: ------- +[% SET reason_lines = [] %] +[% FOREACH reason = reasons %] + [% reason_lines.push(reason_descs.$reason) IF reason_descs.$reason %] +[% END %] +[% FOREACH reason = reasons_watch %] + [% reason_lines.push(watch_reason_descs.$reason) + IF watch_reason_descs.$reason %] +[% END %] +[%+ reason_lines.join("\n") %] + +[% BLOCK generate_diffs %] + [% urlbase %]show_bug.cgi?id=[% bug.id %] + +[%+ last_changer = 0 %] + [% FOREACH change = diffs %] + [% IF !isnew && changer.id != last_changer %] + [% last_changer = changer.id %] + [% IF change.blocker %] + [% terms.Bug %] [%+ bug.id %] depends on [% terms.bug %] [%+ change.blocker.id %], which changed state. + +[%+ terms.Bug %] [%+ change.blocker.id %] Summary: [% change.blocker.short_desc %] +[%+ urlbase %]show_bug.cgi?id=[% change.blocker.id %] + [% ELSE %] + [%~ changer.identity %] changed: + [% END %] + + What |Removed |Added +---------------------------------------------------------------------------- +[%+ END %][%# End of IF. This indentation is intentional! ~%] + [% PROCESS "email/bugmail-common.txt.tmpl"%] + [%~ IF isnew %] + [% format_columns(2, field_label _ ":", new_value) -%] + [% ELSE %] + [% format_columns(3, field_label, old_value, new_value) -%] + [% END %] + [% END -%] +[% END %] diff --git a/extensions/BMO/template/en/default/global/choose-product.html.tmpl b/extensions/BMO/template/en/default/global/choose-product.html.tmpl new file mode 100644 index 000000000..38a43cd12 --- /dev/null +++ b/extensions/BMO/template/en/default/global/choose-product.html.tmpl @@ -0,0 +1,228 @@ +[%# 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 %] + +[% style_urls = [ "extensions/BMO/web/styles/choose_product.css" ] %] + +[% IF target == "enter_bug.cgi" %] + [% title = "Enter $terms.Bug" %] + [% h2 = "Which product is affected by the problem you would like to report?" %] +[% ELSIF target == "describecomponents.cgi" %] + [% title = "Browse" %] + [% h2 = "Which product would you like to have described?" %] +[% END %] + +[% javascript_urls = [ "js/yui3/yui/yui-min.js", + "extensions/ProdCompSearch/web/js/prod_comp_search.js" ] +%] +[% onload = "document.getElementById('prod_comp_search').focus();" %] +[% style_urls.push("extensions/ProdCompSearch/web/styles/prod_comp_search.css") %] + +[% DEFAULT title = "Choose a Product" %] +[% PROCESS global/header.html.tmpl %] + +<div id="choose_product"> + +<hr> +<p> + Looking for technical support or help getting your site to work with Mozilla? + <a href="http://www.mozilla.org/support/">Visit the mozilla.org support page</a> + before filing [% terms.bugs %]. +</p> +<hr> + +<h2>[% h2 FILTER html %]</h2> + +<div id="prod_comp_search_main"> + [% PROCESS prodcompsearch/form.html.tmpl + input_label = "Find product:" + format = format + cloned_bug_id = cloned_bug_id + script_name = target %] +</div> + +<h2>or choose from the following selections</h2> + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] +[% SET classification = cgi.param('classification') %] +[% IF NOT ((cgi.param("full")) OR (user.settings.product_chooser.value == 'full_product_chooser')) %] + +<table align="center" border="0" width="600" cellpadding="5" cellspacing="0"> +[% INCLUDE easyproduct + name="Core" + icon="dino.png" +%] +[% INCLUDE easyproduct + name="Firefox" + icon="firefox.png" +%] +[% INCLUDE easyproduct + name="Boot2Gecko" + icon="firefox.png" + caption="Firefox OS" +%] +[% INCLUDE easyproduct + name="Firefox for Android" + icon="firefox.png" +%] +[% INCLUDE easyproduct + name="Firefox for Metro" + icon="firefox.png" +%] +[% INCLUDE easyproduct + name="Toolkit" + icon="dino.png" +%] +[% INCLUDE easyproduct + name="Marketplace" + icon="marketplace.png" +%] +[% INCLUDE easyproduct + name="Thunderbird" + icon="thunderbird.png" +%] +[% INCLUDE easyproduct + name="SeaMonkey" + icon="seamonkey.png" +%] +[% INCLUDE easyproduct + name="Mozilla Localizations" + icon="dino.png" +%] +[% INCLUDE easyproduct + name="Mozilla Services" + icon="dino.png" +%] +<tr> + <td><a href="[% target FILTER uri %]?full=1 + [%- IF cloned_bug_id %]&cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%] + [%- IF classification %]&classification=[% classification FILTER uri %][% END -%] + [%- IF format %]&format=[% format FILTER uri %][% END %]"> + <img src="extensions/BMO/web/producticons/other.png" height="64" width="64" border="0"></a></td> + <td><h2 align="left" style="margin-bottom: 0px;"><a href="[% target FILTER uri %]?full=1 + [%- IF cloned_bug_id %]&cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%] + [%- IF classification %]&classification=[% classification FILTER uri %][% END -%] + [%- IF format %]&format=[% format FILTER uri %][% END %]"> + Other Products</a></h2> + <p style="margin-top: 0px;">Other Mozilla products which aren't listed here</p> + </td> +</tr> +</table> +[% ELSE %] + +<table> + +[% FOREACH c = classifications %] + [% IF c.object %] + <tr> + <td align="right"><h2>[% c.object.name FILTER html %]</h2></td> + <td><strong>[%+ c.object.description FILTER html_light %]</strong></td> + </tr> + [% END %] + + [% FOREACH p = c.products %] + [% class = "" %] + [% has_entry_groups = 0 %] + [% FOREACH gid = p.group_controls.keys %] + [% IF p.group_controls.$gid.entry %] + [% has_entry_groups = 1 %] + [% class = class _ " group_$gid" %] + [% END %] + [% END %] + <tr class="[% "group_secure" IF has_entry_groups +%] [% class FILTER html %]" + [%- IF has_entry_groups %] title="This product requires one or more + group memberships in order to enter [% terms.bugs %] in it. You have them, but be + aware not everyone else does."[% END %]> + <th align="right" valign="top"> + [% IF p.name == "Mozilla PR" AND target == "enter_bug.cgi" AND NOT format AND NOT cgi.param("debug") %] + <a href="[% target FILTER uri %]?product=[% p.name FILTER uri -%] + [%- IF cloned_bug_id %]&cloned_bug_id=[% cloned_bug_id FILTER uri %][% END %]&format=mozpr"> + [% p.name FILTER html FILTER no_break %]</a>: + [% ELSE %] + <a href="[% target FILTER uri %]?product=[% p.name FILTER uri -%] + [%- IF cloned_bug_id %]&cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%] + [%- IF format %]&format=[% format FILTER uri %][% END %]"> + [% p.name FILTER html FILTER no_break %]</a>: + [% END %] + </th> + <td valign="top">[% p.description FILTER html_light %]</td> + </tr> + [% END %] +[% END %] + +</table> + +<br> +[% IF target == "enter_bug.cgi" AND user.settings.product_chooser.value != 'full_product_chooser' %] +<p>You can choose to get this screen by default when you click "New [% terms.Bug %]" +by changing your <a href="userprefs.cgi?tab=settings">preferences</a>.</p> +[% END %] +[% END %] +<br> + +</div> + +<div id="guided"> + <a id="guided_img" href="enter_bug.cgi?format=guided"><img + src="extensions/BMO/web/images/guided.png" width="16" height="16" border="0" align="absmiddle"></a> + <a id="guided_link" href="enter_bug.cgi?format=guided" + >Switch to the [% terms.Bugzilla %] Helper</a> +</div> + +[% PROCESS global/footer.html.tmpl %] + +[%###########################################################################%] +[%# Block for "easy" product sections #%] +[%###########################################################################%] + +[% BLOCK easyproduct %] + [% FOREACH c = classifications %] + [% FOREACH p = c.products %] + [% IF p.name == name %] + <tr> + <td><a href="[% target FILTER uri %]?product=[% p.name FILTER uri %] + [%- IF cloned_bug_id %]&cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%] + [%- IF format %]&format=[% format FILTER uri %][% END %]"> + <img src="extensions/BMO/web/producticons/[% icon FILTER uri %]" height="64" width="64" border="0"></a></td> + <td><h2 align="left" style="margin-bottom: 0px"><a href="[% target FILTER uri %]?product=[% p.name FILTER uri %] + [%- IF cloned_bug_id %]&cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%] + [%- IF format %]&format=[% format FILTER uri %][% END %]"> + [% caption || name FILTER html FILTER no_break %]</a>:</h2> + [% IF p.description %] + <p style="margin-top: 0px;">[% p.description FILTER html_light %]</p> + [% END %] + </td> + </tr> + [% LAST %] + [% END %] + [% END %] + [% END %] +[% END %] diff --git a/extensions/BMO/template/en/default/global/prod-comp-search.html.tmpl b/extensions/BMO/template/en/default/global/prod-comp-search.html.tmpl new file mode 100644 index 000000000..2f1d67bec --- /dev/null +++ b/extensions/BMO/template/en/default/global/prod-comp-search.html.tmpl @@ -0,0 +1,43 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +<div id="prod_comp_search_main"> + <div id="prod_comp_search_autocomplete"> + <div id="prod_comp_search_label"> + Type to find product and component by name or description: + <img id="prod_comp_throbber" src="extensions/BMO/web/images/throbber.gif" + class="hidden" width="16" height="11"> + </div> + <input id="prod_comp_search" type="text" size="60"> + <div id="prod_comp_search_autocomplete_container"></div> + </div> +</div> +<script type="text/javascript"> + if(typeof(YAHOO.bugzilla.prodCompSearch) !== 'undefined' + && YAHOO.bugzilla.prodCompSearch != null) + { + YAHOO.bugzilla.prodCompSearch.init( + "prod_comp_search", + "prod_comp_search_autocomplete_container", + "[% format FILTER js %]", + "[% cloned_bug_id FILTER js %]"); + [% IF target == "describecomponents.cgi" %] + YAHOO.bugzilla.prodCompSearch.autoComplete.itemSelectEvent.subscribe(function (e, args) { + var oData = args[2]; + var url = "describecomponents.cgi?product=" + encodeURIComponent(oData[0]) + + "&component=" + encodeURIComponent(oData[1]) + + "#" + encodeURIComponent(oData[1]); + var format = YAHOO.bugzilla.prodCompSearch.format; + if (format) { + url += "&format=" + encodeURIComponent(format); + } + window.location.href = url; + }); + [% END %] + } +</script> diff --git a/extensions/BMO/template/en/default/hook/attachment/createformcontents-mimetypes.html.tmpl b/extensions/BMO/template/en/default/hook/attachment/createformcontents-mimetypes.html.tmpl new file mode 100644 index 000000000..3dc727b87 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/attachment/createformcontents-mimetypes.html.tmpl @@ -0,0 +1,2 @@ +[% mimetypes.push({type => "image/svg+xml", desc => "SVG image"}) %] +[% mimetypes.push({type => "application/vnd.mozilla.xul+xml", desc => "XUL"}) %]
\ No newline at end of file diff --git a/extensions/BMO/template/en/default/hook/attachment/createformcontents-patch_notes.html.tmpl b/extensions/BMO/template/en/default/hook/attachment/createformcontents-patch_notes.html.tmpl new file mode 100644 index 000000000..ea80fdc5e --- /dev/null +++ b/extensions/BMO/template/en/default/hook/attachment/createformcontents-patch_notes.html.tmpl @@ -0,0 +1 @@ +<em>You can <a href="http://developer.mozilla.org/en/docs/Getting_your_patch_in_the_tree">read about the patch submission and approval process</a>.</em><br> diff --git a/extensions/BMO/template/en/default/hook/bug/comments-a_comment-end.html.tmpl b/extensions/BMO/template/en/default/hook/bug/comments-a_comment-end.html.tmpl new file mode 100644 index 000000000..caf7acca7 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/bug/comments-a_comment-end.html.tmpl @@ -0,0 +1,19 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% IF user.id && comment.author.login_name == 'tbplbot@gmail.com' %] + [% has_tbpl_comment = 1 %] + <script> + var id = [% count FILTER none %]; + tbpl_comment_ids.push(id); + collapse_comment( + document.getElementById('comment_link_' + id), + document.getElementById('comment_text_' + id) + ); + </script> +[% END %] diff --git a/extensions/BMO/template/en/default/hook/bug/comments-aftercomments.html.tmpl b/extensions/BMO/template/en/default/hook/bug/comments-aftercomments.html.tmpl new file mode 100644 index 000000000..d8dc5bba0 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/bug/comments-aftercomments.html.tmpl @@ -0,0 +1,42 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% IF has_tbpl_comment %] + [% expand_caption = 'Expand TinderboxPushlog Comments' %] + [% collapse_caption = 'Collapse TinderboxPushlog Comments' %] + <script> + YAHOO.util.Event.onDOMReady(function () { + var ul = document.getElementsByClassName('bz_collapse_expand_comments'); + if (ul.length == 0) + return; + var li = document.createElement('li'); + var a = document.createElement('a'); + Dom.setAttribute(a, 'href', 'javascript:void(0)'); + Dom.setAttribute(a, 'id', 'toggle_tbplbot_comments'); + a.innerHTML = '[% expand_caption FILTER js %]'; + YAHOO.util.Event.on(a, 'click', function() { + var do_expand = a.innerHTML == '[% expand_caption FILTER js %]'; + for (var i = 0, n = tbpl_comment_ids.length; i < n; i++) { + var id = tbpl_comment_ids[i]; + var link = document.getElementById('comment_link_' + id); + var text = document.getElementById('comment_text_' + id); + if (do_expand) { + expand_comment(link, text); + } else { + collapse_comment(link, text); + } + } + a.innerHTML = do_expand + ? '[% collapse_caption FILTER js %]' + : '[% expand_caption FILTER js %]'; + }); + li.appendChild(a); + ul[0].appendChild(li); + }); + </script> +[% END %] diff --git a/extensions/BMO/template/en/default/hook/bug/comments-comment_banner.html.tmpl b/extensions/BMO/template/en/default/hook/bug/comments-comment_banner.html.tmpl new file mode 100644 index 000000000..2ae367456 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/bug/comments-comment_banner.html.tmpl @@ -0,0 +1,13 @@ +[%# *** Disclaimer for Legal bugs *** %] +[% IF bug.product == "Legal" %] + <div id="legal_disclaimer"> + The material and information contained herein is Confidential and + subject to Attorney-Client Privilege and Work Product Doctrine. + </div> +[% END %] + +[%# Needed for collapsing TinderboxPushlog comments %] +[% has_tbpl_comment = 0 %] +<script> + var tbpl_comment_ids = new Array(); +</script> diff --git a/extensions/BMO/template/en/default/hook/bug/comments-end.html.tmpl b/extensions/BMO/template/en/default/hook/bug/comments-end.html.tmpl new file mode 100644 index 000000000..3bf18a515 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/bug/comments-end.html.tmpl @@ -0,0 +1,20 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% IF user.id && comment.author.login_name == 'tbplbot@gmail.com' %] + [% has_tbpl_comment = 1 %] + <script> + var id = [% count FILTER none %]; + tbpl_comment_ids.push(id); + YAHOO.util.Dom.addClass(comment, 'collapsed'); + collapse_comment( + document.getElementById('comment_link_' + id), + document.getElementById('comment_text_' + id) + ); + </script> +[% END %] diff --git a/extensions/BMO/template/en/default/hook/bug/create/create-form.html.tmpl b/extensions/BMO/template/en/default/hook/bug/create/create-form.html.tmpl new file mode 100644 index 000000000..ed09886bc --- /dev/null +++ b/extensions/BMO/template/en/default/hook/bug/create/create-form.html.tmpl @@ -0,0 +1,47 @@ + <tr> + <th>Security:</th> + <td colspan="3"> + [% IF user.in_group(product.default_security_group) %] + [% PROCESS group_checkbox + name = product.default_security_group + desc = "Restrict access to this " _ terms.bug _ " to members of " _ + "the \"" _ product.default_security_group_obj.description _ "\" group." + %] + [% ELSE %] + [% PROCESS group_checkbox + name = product.default_security_group + desc = "Many users could be harmed by this security problem: " _ + "it should be kept hidden from the public until it is resolved." + %] + [% END %] + [% IF user.in_group('partner-confidential-visible') %] + [% PROCESS group_checkbox + name = 'partner-confidential' + desc = "Restrict the visibility of this " _ terms.bug _ " to " _ + "the assignee, QA contact, and CC list only." + %] + [% END %] + [% IF user.in_group('mozilla-corporation-confidential-visible') + && !user.in_group('mozilla-corporation-confidential') %] + [% PROCESS group_checkbox + name = 'mozilla-corporation-confidential' + desc = "Restrict the visibility of this " _ terms.bug _ " to " _ + "Mozilla Employees and Contractors only." + %] + [% END %] + <br> + </td> + </tr> + +[% BLOCK group_checkbox %] + <input type="checkbox" name="groups" + value="[% name FILTER none %]" id="group_[% name FILTER html %]" + [% FOREACH group = product.groups_available %] + [% IF group.name == name %] + [% ' checked="checked"' IF default.groups.contains(group.name) OR group.is_default %] + [% LAST %] + [% END %] + [% END %] + > + <label for="group_[% name FILTER html %]">[% desc FILTER html %]</label><br> +[% END %] diff --git a/extensions/BMO/template/en/default/hook/bug/edit-after_custom_fields.html.tmpl b/extensions/BMO/template/en/default/hook/bug/edit-after_custom_fields.html.tmpl new file mode 100644 index 000000000..f72267246 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/bug/edit-after_custom_fields.html.tmpl @@ -0,0 +1,128 @@ +[%# ***** BEGIN LICENSE BLOCK ***** + # Version: MPL 1.1 + # + # 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 BMO Bugzilla Extension; + # + # The Initial Developer of the Original Code is the Mozilla Foundation. + # Portions created by the Initial Developer are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Byron Jones <glob@mozilla.com> + # + # ***** END LICENSE BLOCK ***** + #%] + +[% tracking_flags = [] %] +[% project_flags = [] %] +[% FOREACH field = Bugzilla.active_custom_fields(product=>bug.product_obj,component=>bug.component_obj,type=>2) %] + [% NEXT IF NOT user.id AND bug.${field.name} == "---" %] + [% NEXT IF cf_flag_disabled(field.name, bug) %] + [% IF cf_is_project_flag(field.name) %] + [% project_flags.push(field) %] + [% ELSE %] + [% tracking_flags.push(field) %] + [% END %] +[% END %] + +[% IF project_flags.size %] + <tr> + <th class="field_label"> + <label>Project Flags:</label> + </td> + <td> + [% IF bug.check_can_change_field('flagtypes.name', 0, 1) %] + <table id="project-flags"> + [% FOREACH field = project_flags %] + [% NEXT IF NOT user.id AND field.value == "---" %] + <tr id="row_[% field.name FILTER js %]"> + <td> </td> + <td> + <label for="[% field.name FILTER html %]"> + [% field_descs.${field.name} FILTER html %]: + </label> + </td> + <td> + [% PROCESS bug/field.html.tmpl value = bug.${field.name} + editable = user.id + no_tds = 1 %] + [% IF user.id %] + <span id="ro_[% field.name FILTER html %]" class="bz_hidden"> + [% bug.${field.name} FILTER html %] + </span> + [% END %] + </td> + </tr> + [% END %] + </table> + [% ELSE %] + [% FOREACH field = project_flags %] + [% NEXT IF bug.${field.name} == "---" %] + [% field_descs.${field.name} FILTER html %]: [% bug.${field.name} FILTER html %]<br> + [% END %] + [% END %] + </td> + </tr> +[% END %] + +[% IF tracking_flags.size %] + <tr> + <th class="field_label"> + <label>Tracking Flags:</label> + </td> + <td> + [% IF bug.check_can_change_field('flagtypes.name', 0, 1) %] + [% IF user.id %] + <span id="edit_tracking_fields_action"> + (<a onclick="bmo_show_tracking_flags()" href="javascript:void(0)">edit</a>) + </span> + [% END %] + <table id="custom-flags"> + [% FOREACH field = tracking_flags %] + [% NEXT IF NOT user.id AND field.value == "---" %] + <tr id="row_[% field.name FILTER js %]"> + <td> </td> + <td> + <label for="[% field.name FILTER html %]"> + [% field_descs.${field.name} FILTER html %]: + </label> + </td> + <td> + [% PROCESS bug/field.html.tmpl value = bug.${field.name} + editable = user.id + no_tds = 1 %] + [% IF user.id %] + <span id="ro_[% field.name FILTER html %]" class="bz_hidden"> + [% bug.${field.name} FILTER html %] + </span> + [% END %] + </td> + </tr> + [% END %] + </table> + [% ELSE %] + [% FOREACH field = tracking_flags %] + [% NEXT IF bug.${field.name} == "---" %] + [% field_descs.${field.name} FILTER html %]: [% bug.${field.name} FILTER html %]<br> + [% END %] + [% END %] + </td> + </tr> + <script type="text/javascript"> + var bmo_custom_flags = new Array([% tracking_flags.size FILTER none %]); + [% FOREACH field = tracking_flags %] + bmo_custom_flags['[% field.name FILTER js %]'] = '[% bug.${field.name} FILTER js %]'; + [% END %] + bmo_hide_tracking_flags(); + </script> +[% END %] diff --git a/extensions/BMO/template/en/default/hook/bug/edit-after_importance.html.tmpl b/extensions/BMO/template/en/default/hook/bug/edit-after_importance.html.tmpl new file mode 100644 index 000000000..d7c0d58a8 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/bug/edit-after_importance.html.tmpl @@ -0,0 +1,76 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[%# Display product and component descriptions after their respective fields %] +<script type="text/javascript"> + var Event = YAHOO.util.Event; + var Dom = YAHOO.util.Dom; + Event.onDOMReady(function() { + // Display product description if user requests it + var prod_desc = '[% bug.product_obj.description FILTER html_light FILTER js %]'; + if (prod_desc) { + var field_container = Dom.get('field_container_product'); + var toggle_container = document.createElement('span'); + Dom.setAttribute(toggle_container, 'id', 'toggle_prod_desc'); + toggle_container.appendChild(document.createTextNode(' (')); + var toggle_link = document.createElement('a'); + Dom.setAttribute(toggle_link, 'id', 'toggle_prod_desc_link'); + Dom.setAttribute(toggle_link, 'href', 'javascript:void(0);') + toggle_link.appendChild(document.createTextNode('show info')); + toggle_container.appendChild(toggle_link); + toggle_container.appendChild(document.createTextNode(')')); + field_container.appendChild(toggle_container); + var desc_container = document.createElement('div'); + Dom.setAttribute(desc_container, 'id', 'prod_desc_container'); + Dom.addClass(desc_container, 'bz_default_hidden'); + desc_container.innerHTML = prod_desc; + field_container.appendChild(desc_container); + Event.addListener(toggle_link, 'click', function () { + if (Dom.hasClass('prod_desc_container', 'bz_default_hidden')) { + Dom.get('toggle_prod_desc_link').innerHTML = 'hide info'; + Dom.removeClass('prod_desc_container', 'bz_default_hidden'); + } + else { + Dom.get('toggle_prod_desc_link').innerHTML = 'show info'; + Dom.addClass('prod_desc_container', 'bz_default_hidden'); + } + }); + } + + // Display component description if user requests it + var comp_desc = '[% bug.component_obj.description FILTER html_light FILTER js %]'; + if (comp_desc) { + var field_container = Dom.get('field_container_component'); + var toggle_container = document.createElement('span'); + Dom.setAttribute(toggle_container, 'id', 'toggle_comp_desc'); + toggle_container.appendChild(document.createTextNode(' (')); + var toggle_link = document.createElement('a'); + Dom.setAttribute(toggle_link, 'id', 'toggle_comp_desc_link'); + Dom.setAttribute(toggle_link, 'href', 'javascript:void(0);') + toggle_link.appendChild(document.createTextNode('show info')); + toggle_container.appendChild(toggle_link); + toggle_container.appendChild(document.createTextNode(')')); + field_container.appendChild(toggle_container); + var desc_container = document.createElement('div'); + Dom.setAttribute(desc_container, 'id', 'comp_desc_container'); + Dom.addClass(desc_container, 'bz_default_hidden'); + desc_container.innerHTML = comp_desc; + field_container.appendChild(desc_container); + Event.addListener(toggle_link, 'click', function () { + if (Dom.hasClass('comp_desc_container', 'bz_default_hidden')) { + Dom.get('toggle_comp_desc_link').innerHTML = 'hide info'; + Dom.removeClass('comp_desc_container', 'bz_default_hidden'); + } + else { + Dom.get('toggle_comp_desc_link').innerHTML = 'show info'; + Dom.addClass('comp_desc_container', 'bz_default_hidden'); + } + }); + } + }); +</script> diff --git a/extensions/BMO/template/en/default/hook/bug/field-help-end.none.tmpl b/extensions/BMO/template/en/default/hook/bug/field-help-end.none.tmpl new file mode 100644 index 000000000..dda75a9c6 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/bug/field-help-end.none.tmpl @@ -0,0 +1,96 @@ +[%# 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 BMO Extension + # + # The Initial Developer of the Original Code is the Mozilla Foundation + # Portions created by the Initial Developers are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Dave Lawrence <dkl@mozilla.com> + #%] + +[% USE Bugzilla %] +[% IF Bugzilla.request_cache.bmo_fields_page %] + [% + vars.help_html.priority = + "This field describes the importance and order in which $terms.abug + should be fixed compared to other ${terms.bugs}. This field is utilized + by the programmers/engineers to prioritize their work to be done where + P1 is considered the highest and P5 is the lowest." + + vars.help_html.bug_severity = + "This field describes the impact of ${terms.abug}. + <table> + <tr> + <th>blocker</th> + <td>Blocks development and/or testing work</td> + </tr> + <tr> + <th>critical</th> + <td>crashes, loss of data, severe memory leak</td> + </tr> + <tr> + <th>major</th> + <td>major loss of function</td> + </tr> + <tr> + <th>normal</th> + <td>regular issue, some loss of functionality under specific circumstances</td> + </tr> + <tr> + <th>minor</th> + <td>minor loss of function, or other problem where easy + workaround is present</td> + </tr> + <tr> + <th>trivial</th> + <td>cosmetic problem like misspelled words or misaligned + text</td> + </tr> + <tr> + <th>enhancement</th> + <td>Request for enhancement</td> + </table>" + + vars.help_html.rep_platform = + "This is the hardware platform against which the $terms.bug was reported. + Legal platforms include: + <ul> + <li>All (happens on all platforms; cross-platform ${terms.bug})</li> + <li>x86_64</li> + <li>ARM</li> + </ul> + <b>Note:</b> When searching, selecting the option + <em>All</em> does not + select $terms.bugs assigned against any platform. It merely selects + $terms.bugs that are marked as occurring on all platforms, i.e. are + designated <em>All</em>.", + + vars.help_html.op_sys = + "This is the operating system against which the $terms.bug was + reported. Legal operating systems include: + <ul> + <li>All (happens on all operating systems; cross-platform ${terms.bug})</li> + <li>Windows 7</li> + <li>Mac OS X</li> + <li>Linux</li> + </ul> + Sometimes the operating system implies the platform, but not + always. For example, Linux can run on x86_64, ARM, and others.", + + vars.help_html.assigned_to = + "This is the person in charge of resolving the ${terms.bug}. Every time + this field changes, the status changes to + <b>NEW</b> to make it + easy to see which new $terms.bugs have appeared on a person's list.</p>", + %] +[% END %] diff --git a/extensions/BMO/template/en/default/hook/bug/process/header-title.html.tmpl b/extensions/BMO/template/en/default/hook/bug/process/header-title.html.tmpl new file mode 100644 index 000000000..a99b4f9f6 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/bug/process/header-title.html.tmpl @@ -0,0 +1,9 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% title = title.replace('^' _ terms.Bug _ ' ', '') %] diff --git a/extensions/BMO/template/en/default/hook/bug/show-header-end.html.tmpl b/extensions/BMO/template/en/default/hook/bug/show-header-end.html.tmpl new file mode 100644 index 000000000..5ab189045 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/bug/show-header-end.html.tmpl @@ -0,0 +1,18 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% style_urls.push('extensions/BMO/web/styles/edit_bug.css') %] +[% javascript_urls.push('extensions/BMO/web/js/edit_bug.js') %] +[% title = "$bug.bug_id – " %] +[% IF bug.alias != '' %] + [% title = title _ "($bug.alias) " %] +[% END %] +[% title = title _ filtered_desc %] +[% javascript = javascript _ + "document.title = document.title.replace(/^" _ terms.Bug _ " /, '');" +%] diff --git a/extensions/BMO/template/en/default/hook/global/field-descs-end.none.tmpl b/extensions/BMO/template/en/default/hook/global/field-descs-end.none.tmpl new file mode 100644 index 000000000..8c543b35d --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/field-descs-end.none.tmpl @@ -0,0 +1,12 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% IF in_template_var %] + [% vars.field_descs.cc_count = "CC Count" %] + [% vars.field_descs.dupe_count = "Duplicate Count" %] +[% END %] diff --git a/extensions/BMO/template/en/default/hook/global/footer-end.html.tmpl b/extensions/BMO/template/en/default/hook/global/footer-end.html.tmpl new file mode 100644 index 000000000..12957c3c1 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/footer-end.html.tmpl @@ -0,0 +1,11 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +<div id="privacy-policy"> + <a href="https://www.mozilla.org/about/policies/privacy-policy.html" target="_blank">Privacy Policy</a> +</div> diff --git a/extensions/BMO/template/en/default/hook/global/header-additional_header.html.tmpl b/extensions/BMO/template/en/default/hook/global/header-additional_header.html.tmpl new file mode 100644 index 000000000..ddfa03e72 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/header-additional_header.html.tmpl @@ -0,0 +1,70 @@ +[%# + # 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 BMOHeader Bugzilla Extension. + # + # The Initial Developer of the Original Code is Reed Loden. + # Portions created by the Initial Developer are Copyright (C) 2010 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Reed Loden <reed@reedloden.com> + #%] + +<link rel="shortcut icon" href="extensions/BMO/web/images/favicon.ico"> +[% IF bug %] +<link id="shorturl" rev="canonical" href="https://bugzil.la/[% bug.bug_id FILTER uri %]"> +[% END %] + +[%# *** Bug List Navigation *** %] +[% IF bug %] + [% SET my_search = user.recent_search_for(bug) %] + [% IF my_search %] + [% SET last_bug_list = my_search.bug_list %] + [% SET this_bug_idx = lsearch(last_bug_list, bug.id) %] + <link rel="Up" href="buglist.cgi?regetlastlist= + [%- my_search.id FILTER uri %]"> + <link rel="First" href="show_bug.cgi?id= + [%- last_bug_list.first FILTER uri %]&list_id= + [%- my_search.id FILTER uri %]"> + <link rel="Last" href="show_bug.cgi?id= + [%- last_bug_list.last FILTER uri %]&list_id= + [%- my_search.id FILTER uri %]"> + [% IF this_bug_idx > 0 %] + [% prev_bug = this_bug_idx - 1 %] + <link rel="Prev" href="show_bug.cgi?id= + [%- last_bug_list.$prev_bug FILTER uri %]&list_id= + [%- my_search.id FILTER uri %]"> + [% END %] + [% IF this_bug_idx + 1 < last_bug_list.size %] + [% next_bug = this_bug_idx + 1 %] + <link rel="Next" href="show_bug.cgi?id= + [%- last_bug_list.$next_bug FILTER uri %]&list_id= + [%- my_search.id FILTER uri %]"> + [% END %] + [% END %] +[% END %] + +[% IF urlbase == 'https://bugzilla.mozilla.org/' %] + <script type="text/javascript"> + var _gaq = _gaq || []; + [% IF bug.defined && bug.groups_in.size %] + _gaq.push(["_set", "title", "[%+ bug.id FILTER none %] – (private bug)"]); + [% END %] + _gaq.push(['_setAccount', 'UA-36116321-3']); + _gaq.push(['_trackPageview']); + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + </script> +[% END %] diff --git a/extensions/BMO/template/en/default/hook/global/header-start.html.tmpl b/extensions/BMO/template/en/default/hook/global/header-start.html.tmpl new file mode 100644 index 000000000..e265d0bb6 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/header-start.html.tmpl @@ -0,0 +1,40 @@ +[% IF !javascript_urls %] + [% javascript_urls = [] %] +[% END %] + +[% IF template.name == 'list/list.html.tmpl' %] + [% javascript_urls.push('extensions/BMO/web/js/sorttable.js') %] +[% END %] + +[% IF !bodyclasses %] + [% bodyclasses = [] %] +[% END %] + +[%# Change the background/border for bugs/attachments in certain bug groups %] +[% IF template.name == 'attachment/edit.html.tmpl' + || template.name == 'attachment/create.html.tmpl' + || template.name == 'attachment/diff-header.html.tmpl' %] + [% style_urls.push("skins/custom/bug_groups.css") %] + + [% IF template.name == 'attachment/edit.html.tmpl' + || template.name == 'attachment/diff-header.html.tmpl' %] + [% IF bodyclasses == 'no_javascript' %] + [% bodyclasses = ['no_javascript'] %] + [% END %] + [% FOREACH group = attachment.bug.groups_in %] + [% bodyclasses.push("bz_group_$group.name") %] + [% END %] + [% END %] + + [% IF template.name == 'attachment/create.html.tmpl' %] + [% FOREACH group = bug.groups_in %] + [% bodyclasses.push("bz_group_$group.name") %] + [% END %] + [% END %] +[% END %] + +[% IF user.in_group('canconfirm') %] + [% yui.push('container', 'menu') %] + [% style_urls.push('js/yui/assets/skins/sam/menu.css') %] + [% javascript_urls.push('extensions/BMO/web/js/edituser_menu.js') %] +[% END %] diff --git a/extensions/BMO/template/en/default/hook/global/messages-messages.html.tmpl b/extensions/BMO/template/en/default/hook/global/messages-messages.html.tmpl new file mode 100644 index 000000000..0c90b97b9 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/messages-messages.html.tmpl @@ -0,0 +1,5 @@ +[% IF message_tag == "employee_incident_creation_failed" %] + The [% terms.bug %] was created successfully, but the dependent + Employee Incident [% terms.bug %] creation failed. The error has + been logged and no further action is required at this time. +[% END %] diff --git a/extensions/BMO/template/en/default/hook/global/setting-descs-settings.none.tmpl b/extensions/BMO/template/en/default/hook/global/setting-descs-settings.none.tmpl new file mode 100644 index 000000000..666621d8b --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/setting-descs-settings.none.tmpl @@ -0,0 +1,5 @@ +[% + setting_descs.product_chooser = "Product chooser to use when entering bugs", + setting_descs.pretty_product_chooser = "Pretty chooser with common products and icons", + setting_descs.full_product_chooser = "Full chooser with all products", +%] diff --git a/extensions/BMO/template/en/default/hook/global/user-error-auth_failure_object.html.tmpl b/extensions/BMO/template/en/default/hook/global/user-error-auth_failure_object.html.tmpl new file mode 100644 index 000000000..ce855ad97 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/user-error-auth_failure_object.html.tmpl @@ -0,0 +1,7 @@ +[% IF object == 'group_admins' %] + the group administrators report +[% ELSIF object == 'email_queue' %] + the email queue status report +[% ELSIF object == 'product_security' %] + the product security report +[% END %] diff --git a/extensions/BMO/template/en/default/hook/global/user-error-error_message.html.tmpl b/extensions/BMO/template/en/default/hook/global/user-error-error_message.html.tmpl new file mode 100644 index 000000000..de1848495 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/user-error-error_message.html.tmpl @@ -0,0 +1,15 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% IF error == 'illegal_change' || error == 'illegal_change_deps' %] + <p> + If you are attempting to confirm an unconfirmed [% terms.bug %] or edit the + fields of a [% terms.bug %], <a href="page.cgi?id=get_permissions.html">find + out how to get the necessary permissions</a>. + </p> +[% END %] diff --git a/extensions/BMO/template/en/default/hook/global/user-error-errors.html.tmpl b/extensions/BMO/template/en/default/hook/global/user-error-errors.html.tmpl new file mode 100644 index 000000000..aaf23fff5 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/user-error-errors.html.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 BMO Extension + # + # The Initial Developer of the Original Code is the Mozilla Foundation + # Portions created by the Initial Developers are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Byron Jones <bjones@mozilla.com> + #%] + +[% IF error == "user_activity_missing_username" %] + [% title = "Missing Username" %] + You must provide at least one email address to report on. + +[% ELSIF error == "report_invalid_date" %] + [% title = "Invalid Date" %] + The date '[% date FILTER html %]' is invalid. + +[% ELSIF error == "report_invalid_parameter" %] + [% title = "Invalid Parameter" %] + The value for parameter [% name FILTER html %] is invalid. + +[% ELSIF error == "invalid_object" %] + Invalid [% object FILTER html %]: "[% value FILTER html %]" + +[% ELSIF error == "report_too_many_bugs" %] + [% title = "Too Many Bugs" %] + Too many [% terms.bugs %] matched your selection criteria. + +[% END %] diff --git a/extensions/BMO/template/en/default/hook/global/user-error.html.tmpl/auth_failure/permissions.html.tmpl b/extensions/BMO/template/en/default/hook/global/user-error.html.tmpl/auth_failure/permissions.html.tmpl new file mode 100644 index 000000000..346e02373 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/user-error.html.tmpl/auth_failure/permissions.html.tmpl @@ -0,0 +1,29 @@ +<!-- 1.0@bugzilla.org --> +[%# 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> + # Reed Loden <reed@reedloden.com> + #%] + +[% IF (group == "canconfirm" OR group == "editbugs") AND !reason %] + <p> + If you are attempting to confirm an unconfirmed [% terms.bug %] or edit the fields of a [% terms.bug %], + <a href="http://www.gerv.net/hacking/before-you-mail-gerv.html#bugzilla-permissions">find + out how to get the necessary permissions</a>. + </p> +[% END %] diff --git a/extensions/BMO/template/en/default/hook/global/variables-end.none.tmpl b/extensions/BMO/template/en/default/hook/global/variables-end.none.tmpl new file mode 100644 index 000000000..89eef6fc4 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/global/variables-end.none.tmpl @@ -0,0 +1,3 @@ +[% + terms.BugzillaTitle = "Bugzilla@Mozilla" +%] diff --git a/extensions/BMO/template/en/default/hook/index-additional_links.html.tmpl b/extensions/BMO/template/en/default/hook/index-additional_links.html.tmpl new file mode 100644 index 000000000..3ca61b7b1 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/index-additional_links.html.tmpl @@ -0,0 +1,15 @@ +<li> +| +<a href="page.cgi?id=etiquette.html"> + [%- terms.Bugzilla %] Etiquette</a> +</li> +<li> +| +<a href="https://developer.mozilla.org/en/Bug_writing_guidelines"> + [%- terms.Bug %] Writing Guidelines</a> +</li> +<li> +| +<a href="page.cgi?id=researchers.html"> + Data for Researchers</a> +</li> diff --git a/extensions/BMO/template/en/default/hook/index-intro.html.tmpl b/extensions/BMO/template/en/default/hook/index-intro.html.tmpl new file mode 100644 index 000000000..d81d91491 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/index-intro.html.tmpl @@ -0,0 +1,2 @@ +<a id="get_help" class="bz_common_actions" + href="page.cgi?id=get_help.html"><span>Get Help</span></a>
\ No newline at end of file diff --git a/extensions/BMO/template/en/default/hook/pages/fields-open-status.html.tmpl b/extensions/BMO/template/en/default/hook/pages/fields-open-status.html.tmpl new file mode 100644 index 000000000..8f3407aa7 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/pages/fields-open-status.html.tmpl @@ -0,0 +1,11 @@ +<dt> + <b>[% display_value("bug_status", "READY") FILTER html %]</b> +</dt> +<dd> + This [% terms.bug %] has enough information so that the developer can + start working on a fix. The [% terms.bug %] has the required testcases, + crash data, detailed specs, etc. [% terms.Bugs %] in this state may be + accepted, and become <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b>, + passed on to someone else, and remain <b>[% display_value("bug_status", "READY") FILTER html %]</b>, + or resolved and marked <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>. +</dd> diff --git a/extensions/BMO/template/en/default/hook/pages/fields-resolution.html.tmpl b/extensions/BMO/template/en/default/hook/pages/fields-resolution.html.tmpl new file mode 100644 index 000000000..4d12ab345 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/pages/fields-resolution.html.tmpl @@ -0,0 +1,13 @@ +<dt> + [% display_value("resolution", "INCOMPLETE") FILTER html %] +</dt> +<dd> + The problem is vaguely described with no steps to reproduce, + or is a support request. The reporter should be directed to the + product's support page for help diagnosing the issue. If there + are only a few comments in the [% terms.bug %], it may be reopened only if + the original reporter provides more info, or confirms someone + else's steps to reproduce. If the [% terms.bug %] is long, when enough info + is provided a new [% terms.bug %] should be filed and the original [% terms.bug %] + marked as a duplicate of it. +</dd> diff --git a/extensions/BMO/template/en/default/hook/reports/menu-end.html.tmpl b/extensions/BMO/template/en/default/hook/reports/menu-end.html.tmpl new file mode 100644 index 000000000..93f04c4fa --- /dev/null +++ b/extensions/BMO/template/en/default/hook/reports/menu-end.html.tmpl @@ -0,0 +1,59 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +<h2>Other Reports</h2> + +<ul> + <li> + <strong> + <a href="[% urlbase FILTER none %]page.cgi?id=user_activity.html">User Changes</a> + </strong> - Show changes made by an individual user. + </li> + <li> + <strong> + <a href="[% urlbase FILTER none %]page.cgi?id=triage_reports.html">Triage Report</a> + </strong> - Report on UNCONFIRMED [% terms.bugs %] to assist triage. + </li> + <li> + <strong> + <a href="[% urlbase FILTER none %]page.cgi?id=release_tracking_report.html">Release Tracking Report</a> + </strong> - For triaging release-train flag information. + </li> + [% IF user.in_group('editusers') || user.in_group('infrasec') %] + <li> + <strong> + <a href="[% urlbase FILTER none %]page.cgi?id=group_admins.html">Group Admins</a> + </strong> - Lists the administrators of each group. + </li> + <li> + <strong> + <a href="[% urlbase FILTER none %]page.cgi?id=group_membership.html">Group Membership Report</a> + </strong> - Lists the groups a user is a member of. + </li> + <li> + <strong> + <a href="[% urlbase FILTER none %]page.cgi?id=group_members.html">Group Members Report</a> + </strong> - Lists the users of groups. + </li> + [% END %] + [% IF user.in_group('admin') || user.in_group('infrasec') %] + <li> + <strong> + <a href="[% urlbase FILTER none %]page.cgi?id=product_security_report.html">Product Security Report</a> + </strong> - Show each product's default security group and visibility. + </li> + [% END %] + [% IF user.in_group('admin') || user.in_group('infra') %] + <li> + <strong> + <a href="[% urlbase FILTER none %]page.cgi?id=email_queue.html">Email Queue</a> + </strong> - TheSchwartz queue + </li> + [% END %] +</ul> + diff --git a/extensions/BMO/template/en/default/list/list.microsummary.tmpl b/extensions/BMO/template/en/default/list/list.microsummary.tmpl new file mode 100644 index 000000000..8925db8dd --- /dev/null +++ b/extensions/BMO/template/en/default/list/list.microsummary.tmpl @@ -0,0 +1,29 @@ +[%# 1.0@bugzilla.org %] +[%# 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): Ronaldo Maia <rmaia@everythingsolved.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + + +[% IF searchname %] + [% searchname FILTER html %] ([% bugs.size %]) +[% ELSE %] + [% terms.Bug %] List ([% bugs.size %]) +[% END %] diff --git a/extensions/BMO/template/en/default/list/server-push.html.tmpl b/extensions/BMO/template/en/default/list/server-push.html.tmpl new file mode 100644 index 000000000..1c1f3cf36 --- /dev/null +++ b/extensions/BMO/template/en/default/list/server-push.html.tmpl @@ -0,0 +1,52 @@ +[%# 1.0@bugzilla.org %] +[%# 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: + # debug: boolean. True if we want the search displayed while we wait. + # query: string. The SQL query which makes the buglist. + #%] + +[% PROCESS global/variables.none.tmpl %] + +<html> + <head> + <title>[% terms.Bugzilla %] is pondering your search</title> + </head> + <body> + <div style="margin-top: 15%; text-align: center;"> + <center><img src="extensions/BMO/web/images/mozchomp.gif" alt="" + width="160" height="87"></center> + <h1>Please wait while your [% terms.bugs %] are retrieved.</h1> + </div> + + [% IF debug %] + <p> + [% FOREACH debugline = debugdata %] + <code>[% debugline FILTER html %]</code><br> + [% END %] + </p> + <p> + <code>[% query FILTER html %]</code> + </p> + [% END %] + + </body> +</html> diff --git a/extensions/BMO/template/en/default/pages/bug-writing.html.tmpl b/extensions/BMO/template/en/default/pages/bug-writing.html.tmpl new file mode 100644 index 000000000..f326d1821 --- /dev/null +++ b/extensions/BMO/template/en/default/pages/bug-writing.html.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 Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): David Lawrence <dkl@mozilla.com> + #%] + +<html> + <head> + <meta http-equiv="refresh" content="0;url=https://developer.mozilla.org/en/Bug_writing_guidelines"> + </head> +</html> diff --git a/extensions/BMO/template/en/default/pages/email_queue.html.tmpl b/extensions/BMO/template/en/default/pages/email_queue.html.tmpl new file mode 100644 index 000000000..f0c750129 --- /dev/null +++ b/extensions/BMO/template/en/default/pages/email_queue.html.tmpl @@ -0,0 +1,67 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% INCLUDE global/header.html.tmpl + title = "Job Queue Status" + style_urls = [ "extensions/BMO/web/styles/reports.css" ] +%] + +[% IF jobs.size %] + + <p><i>[% jobs.size FILTER none %] email(s) in the queue.</i></p> + + <table id="report" class="hover" cellspacing="0" border="0" width="100%"> + <tr id="report-header"> + <th>Insert Time</th> + <th>Run Time</th> + <th>Age</th> + <th>Error Count</th> + <th>Last Error</th> + <th>Error Message</th> + </tr> + [% FOREACH job IN jobs %] + <tr class="report item [% loop.count % 2 == 1 ? "report_row_odd" : "report_row_even" %]"> + <td nowrap>[% time2str("%Y-%m-%d %H:%M:%S %Z", job.insert_time) FILTER html %]</td> + <td nowrap>[% time2str("%Y-%m-%d %H:%M:%S %Z", job.run_time) FILTER html %]</td> + <td nowrap> + [% age = now - job.insert_time %] + [% IF age < 60 %] + [% age FILTER none %]s + [% ELSIF age < 60 * 60 %] + [% age / 60 FILTER format('%.0f') %]m + [% ELSE %] + [% age / (60 * 60) FILTER format('%.0f') %]h + [% END %] + </td> + <td nowrap>[% job.error_count FILTER html %]</td> + <td nowrap> + [% IF job.error_count %] + [% time2str("%Y-%m-%d %H:%M:%S %Z", job.error_time) FILTER html %] + [% ELSE %] + - + [% END %] + </td> + <td> + [% job.error_count ? job.error_message : '-' FILTER html %] + </td> + </tr> + [% IF job.subject %] + <tr class="report item [% loop.count % 2 == 1 ? "report_row_odd" : "report_row_even" %]"> + <td colspan="6"> [% job.subject FILTER html %]</td> + </tr> + [% END %] + [% END %] + </table> + +[% ELSE %] + +<p><i>The email queue is empty.</i></p> + +[% END %] + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/etiquette.html.tmpl b/extensions/BMO/template/en/default/pages/etiquette.html.tmpl new file mode 100644 index 000000000..78cc0bad7 --- /dev/null +++ b/extensions/BMO/template/en/default/pages/etiquette.html.tmpl @@ -0,0 +1,146 @@ +<!-- 1.0@bugzilla.org --> +[%# 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): Stefan Seifert <nine@detonation.org> + # Gervase Markham <gerv@gerv.net> + #%] + +[% PROCESS global/header.html.tmpl + title = "Bugzilla Etiquette" + style = "li { margin: 5px } .heading { font-weight: bold }" %] + +<p> + There's a number of <i lang="fr">faux pas</i> you can commit when using + [%+ terms.Bugzilla %]. At the very + least, these will make Mozilla contributors upset at you; if committed enough + times they will cause those contributors to demand the disabling of your + [%+ terms.Bugzilla %] account. So, ignore this advice at your peril. +</p> + +<p> + That said, Mozilla developers are generally a friendly bunch, and will be + friendly towards you as long as you follow these guidelines. +</p> + +<h3>1. Commenting</h3> + +<p> + This is the most important section. +</p> + +<ol> + <li> + <span class="heading">No pointless comments</span>. + Unless you have something constructive and helpful to say, do not add a + comment to a [% terms.bug %]. In [% terms.bugs %] where there is a heated debate going on, you + should be even more + inclined not to add a comment. Unless you have something new to contribute, + then the [% terms.bug %] owner is aware of all the issues, and will make a judgement + as to what to do. If you agree the [% terms.bug %] should be fixed, vote for it. + Additional "I see this too" or "It works for me" comments are unnecessary + unless they are on a different platform or a significantly different build. + Constructive and helpful thoughts unrelated to the topic of the [% terms.bug %] + should go in the appropriate + <a href="http://www.mozilla.org/about/forums/">newsgroup</a>. + </li> + + <li> + <span class="heading">No obligation</span>. + "Open Source" is not the same as "the developers must do my bidding." + Everyone here wants to help, but no one else has any <i>obligation</i> to fix + the [% terms.bugs %] you want fixed. Therefore, you should not act as if you + expect someone to fix a [% terms.bug %] by a particular date or release. + Aggressive or repeated demands will not be received well and will almost + certainly diminish the impact and interest in your suggestions. + </li> + + <li> + <span class="heading">No abusing people</span>. + Constant and intense critique is one of the reasons we build great products. + It's harder to fall into group-think if there is always a healthy amount of + dissent. We want to encourage vibrant debate inside of the Mozilla + community, we want you to disagree with us, and we want you to effectively + argue your case. However, we require that in the process, you attack + <i>things</i>, not <i>people</i>. Examples of things include: interfaces, + algorithms, and schedules. Examples of people include: developers, + designers and users. <b>Attacking a person may result in you being banned + from [% terms.Bugzilla %].</b> + </li> + + <li> + <span class="heading">No private email</span>. + Unless the [% terms.bug %] owner or another respected project contributor has asked you + to email them with specific information, please place all information + relating to [% terms.bugs %] + in the [% terms.bug %] itself. Do not send them by private email; no-one else can read + them if you do that, and they'll probably just get ignored. If a file + is too big for [% terms.Bugzilla %], add a comment giving the file size and contents + and ask what to do. + </li> +</ol> + +<h3>2. Changing Fields</h3> + +<ol> + <li> + <span class="heading">No messing with other people's [% terms.bugs %]</span>. + Unless you are the [% terms.bug %] assignee, or have some say over the use of their + time, never change the Priority or Target Milestone fields. If in doubt, + do not change the fields of [% terms.bugs %] you do not own - add a comment + instead, suggesting the change. + </li> + + <li> + <span class="heading">No whining about decisions</span>. + If a respected project contributor has marked a [% terms.bug %] as INVALID, then it is + invalid. Someone filing another duplicate of it does not change this. Unless + you have further important evidence, do not post a comment arguing that an + INVALID or WONTFIX [% terms.bug %] should be reopened. + </li> + +</ol> + +<h3>3. Applicability</h3> + +<ol> + <li> + Some of these rules may not apply to you. If they do not, you will know + exactly which ones do not, and why they do not apply. If you are not + sure, then they definitely all apply to you. + </li> +</ol> + +<p> + If you see someone not following these rules, the first step is, as an exception + to guideline 1.4, to make them aware of this document by <em>private</em> mail. + Flaming people publically in [% terms.bugs %] violates guidelines 1.1 and 1.3. In the case of + persistent offending you should ping an administrator on Mozilla IRC in channel #bmo and ask them + to look into it. +</p> + +<p> + This entire document can be summed up in one sentence: + do unto others as you would have them do unto you. +</p> + +<p> + Other useful documents: + <a href="page.cgi?id=bug-writing.html">The [% terms.Bug %] Writing Guidelines</a>. +</p> + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/get_help.html.tmpl b/extensions/BMO/template/en/default/pages/get_help.html.tmpl new file mode 100644 index 000000000..70ff0a12b --- /dev/null +++ b/extensions/BMO/template/en/default/pages/get_help.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): David Miller <justdave@bugzilla.org> + #%] + +[% PROCESS global/variables.none.tmpl %] +[% INCLUDE global/header.html.tmpl title = "Get Help with Mozilla Products" %] + +<div id="steps"> +<h2>Got a problem?</h2> + +<ul> +<li><a href="http://www.mozilla.org/support/">Get help with your mozilla.org product</a></li> +<li><a href="http://hendrix.mozilla.org/">Leave quick feedback</a></li> +<li><a href="http://input.mozilla.com/feedback">Report a broken website</a></li> +<li><a href="enter_bug.cgi">Report a [% terms.bug %]</a> - latest release only + [% IF NOT user.id %] + (you'll need an + <a href="createaccount.cgi">account</a>) + [% END %] +</li> +</ul> +</div> + +<br> + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/get_permissions.html.tmpl b/extensions/BMO/template/en/default/pages/get_permissions.html.tmpl new file mode 100644 index 000000000..b70aa488f --- /dev/null +++ b/extensions/BMO/template/en/default/pages/get_permissions.html.tmpl @@ -0,0 +1,44 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/header.html.tmpl + title = "Upgrade Permissions" +%] + +<h3>How to apply for upgraded permissions</h3> + +<p> + If you want <kbd>canconfirm</kbd>, email <a href="mailto:bmo-perms@mozilla.org"> + bmo-perms@mozilla.org</a> the URLs of three good [% terms.bug %] reports you have filed. +</p> + +<p> + If you want <kbd>editbugs</kbd>, email <a href="mailto:bmo-perms@mozilla.org"> + bmo-perms@mozilla.org</a> either: + <ul> + <li> + The URLs of two [% terms.bugs %] to which you have attached patches + or testcases; or + </li> + <li> + The URLs of the relevant comment on three [% terms.bugs %] which you + wanted to change, but couldn't, and so added a comment instead. + </li> + </ul> +</p> + +<p> + <kbd>editbugs</kbd> implies <kbd>canconfirm</kbd>; there's no need to apply for both. +</p> + +<p> + Don't forget to include your [% terms.Bugzilla %] ID if it's not the email address + you are emailing from. +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/group_admins.html.tmpl b/extensions/BMO/template/en/default/pages/group_admins.html.tmpl new file mode 100644 index 000000000..01bb744c4 --- /dev/null +++ b/extensions/BMO/template/en/default/pages/group_admins.html.tmpl @@ -0,0 +1,54 @@ +[%# 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 BMO Extension + # + # The Initial Developer of the Original Code is the Mozilla Foundation + # Portions created by the Initial Developers are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # David Lawrence <dkl@mozilla.com> + #%] + +[% INCLUDE global/header.html.tmpl + title = "Group Admins Report" + style_urls = [ "extensions/BMO/web/styles/reports.css" ] + yui = [ "datasource" ] +%] + +[% IF groups.size > 0 %] + <table border="0" cellspacing="0" id="report" class="hover" width="100%"> + <tr id="report-header"> + <th align="left">Name</th> + <th align="left">Admins</th> + </tr> + + [% FOREACH group = groups %] + [% count = loop.count() %] + <tr class="report_item [% count % 2 == 1 ? "report_row_odd" : "report_row_even" %]"> + <td> + [% group.name FILTER html %] + </td> + <td> + [% FOREACH admin = group.admins %] + [% INCLUDE global/user.html.tmpl who = admin %][% ", " UNLESS loop.last %] + [% END %] + </td> + </tr> + [% END %] + </table> +[% ELSE %] + <p> + No groups found. + </p> +[% END %] + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/group_members.html.tmpl b/extensions/BMO/template/en/default/pages/group_members.html.tmpl new file mode 100644 index 000000000..daf4d5b0d --- /dev/null +++ b/extensions/BMO/template/en/default/pages/group_members.html.tmpl @@ -0,0 +1,97 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% INCLUDE global/header.html.tmpl + title = "Group Members Report" + style_urls = [ "extensions/BMO/web/styles/reports.css" ] +%] + +<form method="GET" action="page.cgi"> + <input type="hidden" name="id" value="group_members.html"> + + <table id="parameters"> + <tr> + <th>Group</th> + <td> + <select name="group"> + [% FOREACH group_name = groups %] + <option value="[% group_name FILTER html %]" + [% "selected" IF group_name == group %]> + [% group_name FILTER html %]</option> + [% END %] + </select> + <input type="checkbox" name="include_disabled" id="include_disabled" + value="1" [% "checked" IF include_disabled %]> + <label for="include_disabled"> + Include disabled users + </label> + <input type="submit" value="Generate"> + </td> + </tr> + </table> +</form> + +[% IF group != '' %] + + <p> + Members of the <b>[% group FILTER html %]</b> group: + </p> + + [% IF types.size > 0 %] + <table border="0" cellspacing="0" id="report" class="nohover" width="100%"> + <tr id="report-header"> + <th>Type</th> + <th>Count</th> + <th>Members</th> + <th class="right">Last Seen (days ago)</th> + </tr> + + [% FOREACH type = types %] + [% count = loop.count() %] + <tr class="report_item [% count % 2 == 1 ? "report_row_odd" : "report_row_even" %]"> + <td valign="top"> + [% "via " UNLESS type.name == 'direct' %] + [% type.name FILTER html %] + </td> + <td valign="top" align="right"> + [% type.members.size FILTER html %] + </td> + <td valign="top" width="100%" colspan="2"> + <table cellspacing="0" class="hoverrow"> + [% FOREACH member = type.members %] + <tr> + <td width="100%"> + <a href="editusers.cgi?action=edit&userid=[% member.id FILTER none %]" + target="_blank"> + <span [% 'class="bz_inactive"' UNLESS member.is_enabled %]> + [% member.name FILTER html %] <[% member.email FILTER email FILTER html %]> + </span> + </a> + </td> + <td align="right" nowrap> + [% member.lastseen FILTER html %] + </td> + </tr> + [% END %] + </table> + </td> + </tr> + [% END %] + </table> + + <a href="page.cgi?id=group_members.json&group=[% group FILTER uri %] + [% IF include_disabled %]&include_disabled=1[% END %]">JSON</a> + [% ELSE %] + <p> + <i>This group is empty.</i> + </p> + [% END %] + +[% END %] + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/group_members.json.tmpl b/extensions/BMO/template/en/default/pages/group_members.json.tmpl new file mode 100644 index 000000000..f80fc8c5f --- /dev/null +++ b/extensions/BMO/template/en/default/pages/group_members.json.tmpl @@ -0,0 +1,32 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[ + [% SET count = 0 %] + [% FOREACH type = types %] + [% SET count = count + type.members.size %] + [% END %] + [% SET i = 0 %] + [% FOREACH type = types %] + [% FOREACH member = type.members %] + [% SET i = i + 1 %] + { "login": "[% member.login FILTER email FILTER js %]", + [% IF type.name == "direct" %] + "membership": "direct", + [% ELSE %] + "membership": "indirect", + "group": [% type.name FILTER js %]", + [% END %] + [% IF include_disabled %] + "disabled": "[% member.is_enabled ? "false" : "true" %]", + [% END %] + "lastseen": "[% member.lastseen FILTER js %]" + }[% "," UNLESS i == count %] + [% END %] + [% END %] +] diff --git a/extensions/BMO/template/en/default/pages/group_membership.html.tmpl b/extensions/BMO/template/en/default/pages/group_membership.html.tmpl new file mode 100644 index 000000000..32484b13f --- /dev/null +++ b/extensions/BMO/template/en/default/pages/group_membership.html.tmpl @@ -0,0 +1,75 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/header.html.tmpl + title = "Group Membership Report" + yui = [ 'autocomplete' ] + style_urls = [ "extensions/BMO/web/styles/reports.css" ] + javascript_urls = [ "js/field.js" ] +%] + +<form method="GET" action="page.cgi"> +<input type="hidden" name="id" id="id" value="group_membership.html"> + +<table id="parameters"> +<tr> + <th>User(s):</th> + <td> + [% INCLUDE global/userselect.html.tmpl + id => "who" + name => "who" + value => who.join(', ') + size => 40 + classes => ["bz_userfield"] + multiple => 5 + field_title => "One or more email address (comma delimited)" + %] + </td> + <td> </td> + <td> + <select name="output" + onchange="document.getElementById('id').value = 'group_membership.' + this.value"> + <option value="html" [% 'selected' IF output == 'html' %]>HTML</option> + <option value="txt" [% 'selected' IF output == 'txt' %]>Text</option> + </select> + </td> + <td> + <input type="submit" value="Generate"> + </td> +</tr> +</table> + +</form> + +[% IF users.size %] + + <table border="0" cellspacing="0" id="report" class="hover" width="100%"> + [% FOREACH u = users %] + <tr> + <th colspan="3">[% u.user.identity FILTER html %]</th> + </tr> + [% FOREACH g = u.groups %] + <tr> + <td> </td> + <td>[% g.name FILTER html %]</td> + <td>[% g.desc FILTER html %]</td> + <td> + [% IF g.via == '' %] + direct + [% ELSE %] + <i>[% g.via FILTER html %]</i> + [% END %] + </td> + </tr> + [% END %] + [% END %] + </table> + +[% END %] + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/group_membership.txt.tmpl b/extensions/BMO/template/en/default/pages/group_membership.txt.tmpl new file mode 100644 index 000000000..9958f0877 --- /dev/null +++ b/extensions/BMO/template/en/default/pages/group_membership.txt.tmpl @@ -0,0 +1,16 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% FOREACH u = users %] +[% u.user.login FILTER none%]: + [% FOREACH g = u.groups %] + [% g.name FILTER none %] + [% ',' UNLESS loop.last %] + [% END %] + [% "\n" %] +[% END %] diff --git a/extensions/BMO/template/en/default/pages/product_security_report.html.tmpl b/extensions/BMO/template/en/default/pages/product_security_report.html.tmpl new file mode 100644 index 000000000..c87f6a418 --- /dev/null +++ b/extensions/BMO/template/en/default/pages/product_security_report.html.tmpl @@ -0,0 +1,60 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% INCLUDE global/header.html.tmpl + title = "Product Security Report" + style_urls = [ "extensions/BMO/web/styles/reports.css" ] +%] + +<table border="0" cellspacing="0" id="report" class="nohover" width="100%"> + <tr id="report-header"> + <th>Product</th> + <th>Default Security Group</th> + <th>Default Group Visibility</th> + <th>Mozilla-Confidential</th> + </tr> + + [% count = 0 %] + [% FOREACH product = products %] + [% count = count + 1 %] + <tr class="report_item [% count % 2 == 1 ? "report_row_odd" : "report_row_even" %]"> + <td> + <a href="editproducts.cgi?action=editgroupcontrols&product=[% product.name FILTER uri %]" target="_blank"> + [% product.name FILTER html %] + </a> + </td> + [% IF product.group_problem %] + <td class="problem"> + <span title="[% product.group_problem FILTER html %]"> + [% product.default_security_group FILTER html %] + </span> + </td> + [% ELSE %] + <td> + [% product.default_security_group FILTER html %] + </td> + [% END %] + [% IF product.visibility_problem %] + <td class="problem"> + <span title="[% product.visibility_problem FILTER html %]"> + [% product.group_visibility FILTER html %] + </span> + </td> + [% ELSE %] + <td> + [% product.group_visibility FILTER html %] + </td> + [% END %] + <td> + [% product.moco ? 'Yes' : 'No' FILTER none %] + </td> + </tr> + [% END %] +</table> + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/query_database.html.tmpl b/extensions/BMO/template/en/default/pages/query_database.html.tmpl new file mode 100644 index 000000000..97f5c0a25 --- /dev/null +++ b/extensions/BMO/template/en/default/pages/query_database.html.tmpl @@ -0,0 +1,47 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% INCLUDE global/header.html.tmpl + title = "Query Database" + style_urls = [ "extensions/BMO/web/styles/reports.css" ] +%] + +<form method="post" action="page.cgi"> +<input type="hidden" name="id" value="query_database.html"> +<textarea cols="80" rows="10" name="query">[% query FILTER html %]</textarea><br> +<input type="submit" value="Execute"> +</form> + +[% IF executed %] + <hr> + + [% IF sql_error %] + <b>[% sql_error FILTER html %]</b> + [% ELSIF rows.size %] + <table border="0" cellspacing="0" id="report"> + <tr> + [% FOREACH column = columns %] + <th>[% column FILTER html %]</th> + [% END %] + </tr> + [% FOREACH row = rows %] + [% tr_class = loop.count % 2 ? 'report_row_even' : 'report_row_odd' %] + <tr class="[% tr_class FILTER html %]"> + [% FOREACH field = row %] + <td>[% field FILTER html %]</td> + [% END %] + </tr> + [% END %] + </table> + [% ELSE %] + <i>no results</i> + [% END %] + +[% END %] + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/release_tracking_report.html.tmpl b/extensions/BMO/template/en/default/pages/release_tracking_report.html.tmpl new file mode 100644 index 000000000..71228014a --- /dev/null +++ b/extensions/BMO/template/en/default/pages/release_tracking_report.html.tmpl @@ -0,0 +1,103 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% INCLUDE global/header.html.tmpl + title = "Release Tracking Report" + style_urls = [ "extensions/BMO/web/styles/reports.css" ] + javascript_urls = [ "extensions/BMO/web/js/release_tracking_report.js" ] +%] + +<noscript> +<h1>JavaScript is required to use this report.</h1> +</noscript> + +<script> +var flags_data = [% flags_json FILTER none %]; +var products_data = [% products_json FILTER none %]; +var fields_data = [% fields_json FILTER none %]; +var default_query = '[% default_query FILTER js %]'; +</script> + +<form action="page.cgi" method="get" onSubmit="return onFormSubmit()"> +<input type="hidden" name="id" value="release_tracking_report.html"> +<input type="hidden" name="q" id="q" value=""> +<table> + +<tr> + <th>Approval:</th> + <td> + Show [% terms.bugs %] where + <select id="flag" onChange="onFlagChange()"> + [% FOREACH flag_name = flag_names %] + <option value="[% flag_name FILTER html %]">[% flag_name FILTER html %]</option> + [% END %] + </select> + + was changed to (and is currently) + <select id="flag_value"> + <option value="?">?</option> + <option value="-">-</option> + <option value="+">+</option> + </select> + + between + <select id="range" onChange="serialiseForm()"> + [% FOREACH range = ranges %] + <option value="[% range.value FILTER html %]"> + [% range.label FILTER html %] + </option> + [% END %] + </select> + </td> +</tr> + +<tr> + <th>Status:</th> + <td> + for the product + <select id="product" onChange="onProductChange()"> + </select> + </td> +</tr> + +<tr> + <td> </td> + <td> + <select id="op" onChange="serialiseForm()"> + <option value="and">All selected tracking fields (AND)</option> + <option value="or">Any selected tracking fields (OR)</option> + </select> + [ + <a href="javascript:void(0)" onClick="selectAllFields()">All</a> | + <a href="javascript:void(0)" onClick="selectNoFields()">None</a> + ] + [ + <a href="javascript:void(0)" onClick="invertFields()">Invert</a> + ] + <br> + <span id="tracking_span"> + </span> + </td> +</tr> + +<tr> + <td> </td> + <td colspan="2"> + <input type="submit" value="Search"> + <input type="submit" value="Reset" onClick="onFormReset(); return false"> + <a href="?" id="bookmark">Bookmarkable Link</a> + </td> +</tr> +</table> +</form> + +<p> + <i>"fixed" in the status field checks for the "verified" status as well as "fixed".</i> +</p> + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/researchers.html.tmpl b/extensions/BMO/template/en/default/pages/researchers.html.tmpl new file mode 100644 index 000000000..5f63bae62 --- /dev/null +++ b/extensions/BMO/template/en/default/pages/researchers.html.tmpl @@ -0,0 +1,21 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] +[% INCLUDE global/header.html.tmpl + title = "$terms.Bugzilla Data For Researchers" +%] + +<h2>[% terms.Bugzilla %] Data For Researchers</h2> + +<p>Sanitized dumps of the contents of [% terms.Bugzilla %] (with protected classes of [% terms.bugs %] including,<br> + but not limited to, security, legal and HR removed) are available to interested researchers.<br> + Please contact Mike Hoye - <a href="mailto:mhoye@mozilla.com">mhoye@mozilla.com</a> + - for information.</p> + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/triage_reports.html.tmpl b/extensions/BMO/template/en/default/pages/triage_reports.html.tmpl new file mode 100644 index 000000000..a7f26e86d --- /dev/null +++ b/extensions/BMO/template/en/default/pages/triage_reports.html.tmpl @@ -0,0 +1,199 @@ +[%# 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 BMO Extension + # + # The Initial Developer of the Original Code is the Mozilla Foundation + # Portions created by the Initial Developers are Copyright (C) 2011 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Byron Jones <bjones@mozilla.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% js_data = BLOCK %] +var useclassification = false; +var first_load = true; +var last_sel = []; +var cpts = new Array(); +[% n = 1 %] +[% FOREACH p = user.get_selectable_products %] + cpts['[% n FILTER js %]'] = [ + [%- FOREACH c = p.components %]'[% c.name FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ]; + [% n = n+1 %] +[% END %] + +var selected_components = [ + [%- FOREACH c = input.component %]'[% c FILTER js %]' + [%- ',' UNLESS loop.last %] [%- END ~%] ]; + +[% END %] + +[% INCLUDE global/header.html.tmpl + title = "Triage Reports" + yui = [ 'autocomplete', 'calendar' ] + javascript = js_data + javascript_urls = [ "js/util.js", "js/field.js", "js/productform.js", + "extensions/BMO/web/js/triage_reports.js" ] + style_urls = [ "skins/standard/buglist.css", + "extensions/BMO/web/styles/triage_reports.css" ] +%] + +<noscript> +<h2>Javascript is required to use this report.</h2> +</noscript> + +[% PROCESS "global/field-descs.none.tmpl" %] + +<form id="activity_form" name="activity_form" action="page.cgi" method="get" + onSubmit="return onGenerateReport()"> +<input type="hidden" name="id" value="triage_reports.html"> +<input type="hidden" name="action" value="run"> + +Show UNCONFIRMED [% terms.bugs %] with: +<table id="triage_form"> + +<tr> + <th>Product:</th> + <td> + <select name="product" id="product" onChange="onSelectProduct()"> + <option value=""></option> + [% FOREACH p = user.get_selectable_products %] + <option value="[% p.name FILTER html %]" + [% " selected" IF input.product == p.name %]> + [% p.name FILTER html %] + </option> + [% END %] + </select> + </td> + <td rowspan="2" valign="top"> + <b>Comment:</b><br> + + <input type="checkbox" name="filter_commenter" id="filter_commenter" value="1" + [% 'checked' IF input.filter_commenter %]> + <label for="filter_commenter">where the last commenter</label> + <select name="commenter" id="commenter" onChange="onCommenterChange()"> + <option value="reporter" [% 'selected' IF input.commenter == 'reporter' %]>is the reporter</option> + <option value="noconfirm" [% 'selected' IF input.commenter == 'noconfirm' %]>does not have canconfirm</option> + <option value="is" [% 'selected' IF input.commenter == 'is' %]>is</option> + </select> + [%+ INCLUDE global/userselect.html.tmpl + id => "commenter_is" + name => "commenter_is" + value => input.commenter_is + size => 20 + emptyok => 0 + classes = input.commenter == "is" ? "" : "hidden" + %] + <br> + + <input type="checkbox" name="filter_last" id="filter_last" value="1" + [% 'checked' IF input.filter_last %]> + <label for="filter_last">where the last comment is older than</label> + <select name="last" id="last" onChange="onLastChange()"> + <option value="30" [% 'selected' IF input.last == '30' %]>30 days</option> + <option value="60" [% 'selected' IF input.last == '60' %]>60 days</option> + <option value="90" [% 'selected' IF input.last == '90' %]>90 days</option> + <option value="365" [% 'selected' IF input.last == '365' %]>one year</option> + <option value="is" [% 'selected' IF input.last == 'is' %]>the date</option> + </select> + <span id="last_is_span" class="[% 'hidden' IF input.last != 'is' %]"> + <input type="text" id="last_is" name="last_is" size="11" maxlength="10" + value="[% input.last_is FILTER html %]" + onChange="updateCalendarLastIs(this)"> + <button type="button" class="calendar_button" id="button_calendar_last_is" + onClick="showCalendar('last_is')"><span>Calendar</span> + </button> + <div id="con_calendar_last_is"></div> + </span> + <br> + </td> +</tr> + +<tr> + <th>Component:</th> + <td> + <select name="component" id="component" multiple size="5"> + </select> + </td> +</tr> + +<tr> + <td> </td> + <td> + <input type="submit" value="Generate Report"> + </td> +</tr> + +</table> + +</form> +<script> + createCalendar('last_is'); +</script> + +[% IF input.action == 'run' %] +<hr> +[% IF bugs.size > 0 %] + <p> + Found [% bugs.size %] [%+ terms.bug %][% 's' IF bugs.size != 1 %]: + </p> + <table border="0" cellspacing="0" id="report" width="100%"> + <tr id="report-header"> + <th>[% terms.Bug %] / Date</th> + <th>Summary</th> + <th>Reporter / Commenter</th> + <th>Comment Date</th> + <th>Last Comment</th> + </tr> + + [% FOREACH bug = bugs %] + [% count = loop.count() %] + <tr class="bz_bugitem [% count % 2 == 1 ? "bz_row_odd" : "bz_row_even" %]"> + <td> + [% bug.id FILTER bug_link(bug.id) FILTER none %]<br> + [% bug.creation_ts.replace(' .*' '') FILTER html FILTER no_break %] + </td> + <td> + [% bug.summary FILTER html %] + </td> + <td> + [% INCLUDE global/user.html.tmpl who = bug.reporter %] + [% IF bug.commenter.id != bug.reporter.id %] + <br>[% INCLUDE global/user.html.tmpl who = bug.commenter %] + [% END %] + </td> + <td> + [% bug.comment_ts FILTER html FILTER no_break %] + </td> + <td> + [% bug.comment FILTER html %] + </td> + </tr> + [% END %] + </table> + + <p> + <a href="buglist.cgi?bug_id= + [%- FOREACH bug = bugs %][% bug.id FILTER uri %],[% END -%] + ">Show as a [% terms.Bug %] List</a> + </p> + +[% ELSE %] + <p> + No [% terms.bugs %] found. + </p> +[% END %] + +[% END %] + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/upgrade-3.6.html.tmpl b/extensions/BMO/template/en/default/pages/upgrade-3.6.html.tmpl new file mode 100644 index 000000000..8fa944ae6 --- /dev/null +++ b/extensions/BMO/template/en/default/pages/upgrade-3.6.html.tmpl @@ -0,0 +1,304 @@ +[%# 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): David Miller <justdave@bugzilla.org> + # Reed Loden <reed@reedloden.com> + #%] + +[% PROCESS global/variables.none.tmpl %] +[% INCLUDE global/header.html.tmpl + title = "Bugzilla 3.6 Upgrade" +%] +[% USE date %] + +<p><b>Last Updated:</b> [% date.format(template.modtime, "%d-%b-%Y %H:%M %Z") %]</p> + +<p>On Friday, July 9, 2010, at 11:40pm PDT (0640 UTC), bugzilla.mozilla.org was + <a href="show_bug.cgi?id=558044">upgraded</a> to Bugzilla 3.6.1+. Please + <a href="enter_bug.cgi?product=mozilla.org&component=Bugzilla:+Other+b.m.o+Issues&blocked=bmo-regressions">file + any regressions</a> for tracking purposes.</p> + +<h3>Known Issues</h3> + +<p>The following is a list of issues which are known to be broken or incomplete with this upgrade so far.</p> + +<ul> + +<li>The <a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=577801&hide_resolved=1">stuff filed in Bugzilla</a>.</li> + +</ul> + +<h3>What's New</h3> + +<h4>Custom bugzilla.mozilla.org Changes</h4> + +<ul> + <li>Addition of autocomplete support for all user-related fields (assignee, + QA contact, and CC list) and the keywords field.</li> + <li>New attachment details UI.</li> + <li>New icons for the front page.</li> + <li>Removal of unused "Patches" column from buglist.</li> + <li>Initial support for <a href="http://en.wikipedia.org/wiki/Strict_Transport_Security">Strict-Transport-Security</a> (STS) header.</li> +</ul> + +<h4>General Usability Improvements</h4> + +<p>A <a href="https://wiki.mozilla.org/Bugzilla:CMU_HCI_Research_2008">scientific + usability study</a> was done on [% terms.Bugzilla %] by researchers + from Carnegie-Mellon University. As a result of this study, + <a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=490786&hide_resolved=0">several + usability issues</a> were prioritized to be fixed, based on specific data + from the study.</p> + +<p>As a result, you will see many small improvements in [% terms.Bugzilla %]'s + usability, such as using Javascript to validate certain forms before + they are submitted, standardizing the words that we use in the user interface, + being clearer about what [% terms.Bugzilla %] needs from the user, + and other changes, all of which are also listed individually in this New + Features section.</p> + +<p>Work continues on improving usability for the next release of + [%+ terms.Bugzilla %], but the results of the research have already + had an impact on this 3.6 release.</p> + +<h4>Improved Quicksearch</h4> + +<p>The "quicksearch" box that appears on the front page of + [%+ terms.Bugzilla %] and in the header/footer of every page + is now simplified and made more powerful. There is a + <kbd>[?]</kbd> link next to the box that will take you to + the simplified <a href="page.cgi?id=quicksearch.html">Quicksearch Help</a>, + which describes every single feature of the system in a simple layout, + including new features such as the ability to use partial field names + when searching.</p> + +<p>Quicksearch should also be much faster than it was before, particularly + on large installations.</p> + +<p>Note that in order to implement the new quicksearch, certain old + and rarely-used features had to be removed: + +<ul> + <li><b>+</b> as a prefix to mean "search additional resolutions", and + <b>+</b> as a prefix to mean "search just the summary". You can + instead use <kbd>summary:</kbd> to explicitly search summaries.</li> + <li>Searching the Severity field if you type something that matches + the first few characters of a severity. You can explicitly search + the Severity field if you want to find [% terms.bugs %] by severity.</li> + <li>Searching the Priority field if you typed something that exactly + matched the name of a priority. You can explicitly search the + Priority field if you want to find [% terms.bugs %] by priority.</li> + <li>Searching the Platform and OS fields if you typed in one of a + certain hard-coded list of strings (like "pc", "windows", etc.). + You can explicitly search these fields, instead, if you want to + find [% terms.bugs %] with a specific Platform or OS set.</li> +</ul> + +<h4>Simple "Browse" Interface</h4> + +<p>There is now a "Browse" link in the header of each [% terms.Bugzilla %] + page that presents a very basic interface that allows users to simply + browse through all open [% terms.bugs %] in particular components.</p> + +<h4>JSON-RPC Interface</h4> + +<p>[% terms.Bugzilla %] now has support for the + <a href="http://json-rpc.org/">JSON-RPC</a> WebServices protocol via + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Server/JSONRPC.html">jsonrpc.cgi</a>. + The JSON-RPC interface is experimental in this release--if you want any + fundamental changes in how it works, + <a href="http://www.bugzilla.org/developers/reporting_bugs.html">let us + know</a>, for the next release of [% terms.Bugzilla %].</p> + +<h3>New Features</h3> + +<h4>Enhancements for Users</h4> + +<ul> + <li><b>[% terms.Bug %] Filing:</b> When filing [% terms.abug %], + [%+ terms.Bugzilla %] now visually indicates which fields are + mandatory.</li> + <li><b>[% terms.Bug %] Filing:</b> "Bookmarkable templates" now + support the "alias" and "estimated hours" fields.</li> + + <li><b>[% terms.Bug %] Editing:</b> In previous versions of + [%+ terms.Bugzilla %], if you added a private comment to [% terms.abug %], + then <em>none</em> of the changes that you made at that time were + sent to users who couldn't see the private comment. Now, for users + who can't see private comments, public changes are sent, but the private + comment is excluded from their email notification.</li> + <li><b>[% terms.Bug %] Editing:</b> The controls for groups now + appear to the right of the attachment and time-tracking tables, + when editing [% terms.abug %].</li> + <li><b>[% terms.Bug %] Editing:</b> The "Collapse All Comments" + and "Expand All Comments" links now appear to the right of the + comment list instead of above it.</li> + <li><b>[% terms.Bug %] Editing:</b> The See Also field now supports + URLs for Google Code Issues and the Debian B[% %]ug-Tracking System.</li> + <li><b>[% terms.Bug %] Editing:</b> There have been significant performance + improvements in <kbd>show_bug.cgi</kbd> (the script that displays the + [% terms.bug %]-editing form), particularly for [% terms.bugs %] that + have lots of comments or attachments.</li> + + <li><b>Attachments:</b> The "Details" page of an attachment + now displays itself as uneditable if you can't edit the fields + there.</li> + <li><b>Attachments:</b> We now make sure that there is + a Description specified for an attachment, using JavaScript, before + the form is submitted.</li> + <li><b>Attachments:</b> There is now a link back to the [% terms.bug %] + at the bottom of the "Details" page for an attachment.</li> + <li><b>Attachments:</b> When you click on an "attachment 12345" link + in a comment, if the attachment is a patch, you will now see the + formatted "Diff" view instead of the raw patch.</li> + <li><b>Attachments</b>: For text attachments, we now let the browser + auto-detect the character encoding, instead of forcing the browser to + always assume the attachment is in UTF-8.</li> + + <li><b>Search:</b> You can now display [% terms.bug %] flags as a column + in search results.</li> + <li><b>Search:</b> When viewing search results, you can see which columns are + being sorted on, and which direction the sort is on, as indicated + by arrows next to the column headers.</li> + <li><b>Search:</b> You can now search the Deadline field using relative + dates (like "1d", "2w", etc.).</li> + <li><b>Search:</b> The iCalendar format of search results now includes + a PRIORITY field.</li> + <li><b>Search:</b> It is no longer an error to enter an invalid search + order in a search URL--[% terms.Bugzilla %] will simply warn you that + some of your order options are invalid.</li> + <li><b>Search:</b> When there are no search results, some helpful + links are displayed, offering actions you might want to take.</li> + <li><b>Search:</b> For those who like to make their own + <kbd>buglist.cgi</kbd> URLs (and for people working on customizations), + <kbd>buglist.cgi</kbd> now accepts nearly every valid field in + [%+ terms.Bugzilla %] as a direct URL parameter, like + <kbd>&field=value</kbd>.</li> + + <li><b>Requests:</b> When viewing the "My Requests" page, you can now + see the lists as a normal search result by clicking a link at the + bottom of each table.</li> + <li><b>Requests:</b> When viewing the "My Requests" page, if you are + using Classifications, the Product drop-down will be grouped by + Classification.</li> + + <li>If there are multiple languages available for your + [%+ terms.Bugzilla %], you can now select what language you want + [%+ terms.Bugzilla %] displayed in using links at the top of every + page.</li> + <li>When creating a new account, you will be automatically logged in + after setting your password.</li> + <li>There is no longer a maximum password length for accounts.</li> + <li>In the Dusk skin, it's now easier to see links.</li> + <li>In the Whining system, you can now choose to receive emails even + if there are no [% terms.bugs %] that match your searches.</li> + <li>The arrows in dependency graphs now point the other way, so that + [%+ terms.bugs %] point at their dependencies.</li> + + <li><b>New Charts:</b> You can now convert an existing Saved Search + into a data series for New Charts.</li> + <li><b>New Charts:</b> There is now an interface that allows you to + delete data series.</li> + <li><b>New Charts:</b> When deleting a product, you now have the option + to delete the data series that are associated with that product.</li> +</ul> + +<h4>Enhancements for Administrators and Developers</h4> + +<ul> + <li>Depending on how your workflow is set up, it is now possible to + have both UNCONFIRMED and REOPENED show up as status choices for + a closed [% terms.bug %]. If you only want one or the other to + show up, you should edit your status workflow appropriately + (possibly by removing or disabling the REOPENED status).</li> + <li>You can now "disable" field values so that they don't show + up as choices on [% terms.abug %] unless they are already set as + the value for that [% terms.bug %]. This doesn't work for the + per-product field values (component, target_milestone, and version) + yet, though.</li> + <li>Users are now locked out of their accounts for 30 minutes after + trying five bad passwords in a row during login. Every time a + user is locked out like this, the user in the "maintainer" parameter + will get an email.</li> + <li>The minimum length allowed for a password is now 6 characters.</li> + <li>The <kbd>UNCONFIRMED</kbd> status being enabled in a product + is now unrelated to the voting parameters. Instead, there is a checkbox + to enable the <kbd>UNCONFIRMED</kbd> status in a product.</li> + <li>Information about duplicates is now stored in the database instead + of being stored in the <kbd>data/</kbd> directory. On large installations + this could save several hundred megabytes of disk space.</li> + + <li>When editing a group, you can now specify that members of a group + are allowed to grant others membership in that group itself.</li> + <li>The ability to compress BMP attachments to PNGs is now an Extension. + To enable the feature, remove the file + <kbd>extensions/BmpConvert/disabled</kbd> and then run checksetup.pl.</li> + <li>The default list of values for the Priority field are now clear English + words instead of P1, P2, etc.</li> + <li><kbd>config.cgi</kbd> now returns an ETag header and understands + the If-None-Match header in HTTP requests.</li> + <li>The XML format of <kbd>show_bug.cgi</kbd> now returns more information: + the numeric id of each comment, whether an attachment is a URL, + the modification time of an attachment, the numeric id of a flag, + and the numeric id of a flag's type.</li> +</ul> + +<h4>WebService Changes</h4> + +<ul> + <li>The WebService now returns all dates and times in the UTC timezone. + <kbd>B[% %]ugzilla.time</kbd> now acts as though the [% terms.Bugzilla %] + server were in the UTC timezone, always. If you want to write clients + that are compatible across all [% terms.Bugzilla %] versions, + check the timezone from <kbd>B[% %]ugzilla.timezone</kbd> or + <kbd>B[% %]ugzilla.time</kbd>, and always input times in that timezone + and expect times to be returned in that format.</li> + <li>You can now log in by passing <kbd>Bugzilla_login</kbd> and + <kbd>Bugzilla_password</kbd> as arguments to any WebService function. + See the + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService.html#LOGGING_IN">Bugzilla::WebService</a> + documentation for details.</li> + <li>New Method: + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#attachments">B[% %]ug.attachments</a> + which allows getting information about attachments.</li> + <li>New Method: + <a href="[% docs_urlbase FILTER html %]api/Bugzilla/WebService/Bug.html#fields">B[% %]ug.fields</a>, + which gets information about all the fields that [% terms.abug %] can have + in [% terms.Bugzilla %], include custom fields and legal values for + all fields. The <kbd>B[% %]ug.legal_values</kbd> method is now deprecated.</li> + <li>In the <kbd>B[% %]ug.add_comment</kbd> method, the "private" parameter + has been renamed to "is_private" (for consistency with other methods). + You can still use "private", though, for backwards-compatibility.</li> + <li>The WebService now has Perl's "taint mode" turned on. This means that + it validates all data passed in before sending it to the database. + Also, all parameter names are validated, and if you pass in a parameter + whose name contains anything other than letters, numbers, or underscores, + that parameter will be ignored. Mostly this just affects + customizers--[% terms.Bugzilla %]'s WebService is not functionally + affected by these changes.</li> + <li>In previous versions of [% terms.Bugzilla %], error messages were + sent word-wrapped to the client, from the WebService. Error messages + are now sent as one unbroken line.</li> +</ul> + +<h3>Last Ten Commits</h3> + +<pre>[% bzr_history.join('') FILTER html %]</pre> + +<br> + +[% INCLUDE global/footer.html.tmpl %] diff --git a/extensions/BMO/template/en/default/pages/user_activity.html.tmpl b/extensions/BMO/template/en/default/pages/user_activity.html.tmpl new file mode 100644 index 000000000..f299b862b --- /dev/null +++ b/extensions/BMO/template/en/default/pages/user_activity.html.tmpl @@ -0,0 +1,226 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% IF who %] +[% who_title = ' (' _ who _ ')' %] +[% ELSE %] +[% who_title = '' %] +[% END %] + +[% INCLUDE global/header.html.tmpl + title = "User Activity Report" _ who_title + yui = [ 'autocomplete', 'calendar' ] + javascript_urls = [ "js/util.js", "js/field.js" ] + style_urls = [ "extensions/BMO/web/styles/reports.css" ] + +%] + +[% PROCESS "global/field-descs.none.tmpl" %] +[% PROCESS bug/time.html.tmpl %] + +<form id="activity_form" name="activity_form" action="page.cgi" method="get"> +<input type="hidden" name="id" value="user_activity.html"> +<input type="hidden" name="action" value="run"> +<table id="parameters"> + +<tr> + <th> + Who: + </th> + <td> + [% INCLUDE global/userselect.html.tmpl + id => "who" + name => "who" + value => who + size => 40 + emptyok => 0 + title => "One or more email address (comma delimited)" + %] + + </td> + <th> + Period: + </th> + <td> + <input type="text" id="from" name="from" size="11" + align="right" value="[% from FILTER html %]" maxlength="10" + onchange="updateCalendarFromField(this)"> + <button type="button" class="calendar_button" id="button_calendar_from" + onclick="showCalendar('from')"><span>Calendar</span> + </button> + <div id="con_calendar_from"></div> + to + <input type="text" name="to" size="11" id="to" + align="right" value ="[% to FILTER html %]" maxlength="10" + onchange="updateCalendarFromField(this)"> + <button type="button" class="calendar_button" id="button_calendar_to" + onclick="showCalendar('to')"><span>Calendar</span> + </button> + <div id="con_calendar_to"></div> + </td> + <th> + Sort: + </th> + <td> + <select name="sort"> + <option value="when" [% 'selected' IF sort == 'when' %]>When</option> + <option value="bug" [% 'selected' IF sort == 'bug' %]>[% terms.Bug %]</option> + </select> + </td> + <td> + <input type="submit" id="run" value="Generate Report"> + </td> +</tr> + +</table> +[% IF debug_sql %] + <input type="hidden" name="debug" value="1"> +[% END %] +</form> + +<script type="text/javascript"> + createCalendar('from'); + createCalendar('to'); +</script> + +[% IF action == 'run' %] + +[% IF debug_sql %] + <pre>[% debug_sql FILTER html %]</pre> +[% END %] + +[% IF incomplete_data %] + <p> + There used to be an issue in <a href="http://www.bugzilla.org/">Bugzilla</a> + which caused activity data to be lost if there were a large number of cc's + or dependencies. That has been fixed, but some data was already lost in + your activity table that could not be regenerated. The changes that + could not reliably determine are prefixed by '?'. + </p> +[% END %] + +[% IF operations.size > 0 %] + <br> + <table border="1" cellpadding="4" cellspacing="0" id="report" class="hover"> + <tr id="report-header"> + [% IF who_count > 1 %] + <th>Who</th> + [% END %] + [% IF sort == 'when' %] + <th class="sorted">[% INCLUDE sort_when_link %]</th> + <th>[% INCLUDE sort_bug_link %]</th> + [% ELSE %] + <th class="sorted">[% INCLUDE sort_bug_link %]</th> + <th>[% INCLUDE sort_when_link %]</th> + [% END %] + <th>What</th> + <th>Removed</th> + <th>Added</th> + </tr> + + [% FOREACH operation = operations %] + [% tr_class = loop.count % 2 ? 'report_row_even' : 'report_row_odd' %] + [% FOREACH change = operation.changes %] + <tr class="[% tr_class FILTER none %]"> + [% IF loop.count == 1 %] + [% IF who_count > 1 %] + <td>[% operation.who FILTER email FILTER html %]</td> + [% END %] + [% IF sort == 'when' %] + <td>[% change.when FILTER time FILTER no_break %]</td> + <td>[% operation.bug FILTER bug_link(operation.bug) FILTER none %]</td> + [% ELSE %] + <td>[% operation.bug FILTER bug_link(operation.bug) FILTER none %]</td> + <td>[% change.when FILTER time FILTER no_break %]</td> + [% END %] + [% ELSE %] + [% IF who_count > 1 %] + <td> </td> + [% END %] + <td> </td> + [% IF sort == 'when' %] + <td> </td> + [% ELSE %] + <td>[% change.when FILTER time FILTER no_break %]</td> + [% END %] + [% END %] + <td> + [% IF change.attachid %] + <a href="attachment.cgi?id=[% change.attachid FILTER uri %]" + title="[% change.attach.description FILTER html %] + [%- %] - [% change.attach.filename FILTER html %]" + >Attachment #[% change.attachid FILTER html %]</a> + [% END %] + [%IF change.comment.defined && change.fieldname == 'longdesc' %] + [% "Comment $change.comment.count" + FILTER bug_link(operation.bug, comment_num => change.comment.count) + FILTER none %] + [% ELSE %] + [%+ field_descs.${change.fieldname} FILTER html %] + [% END %] + </td> + [% PROCESS change_column change_type = change.removed %] + [% PROCESS change_column change_type = change.added %] + </tr> + [% END %] + [% END %] + </table> + <p> + <a href="buglist.cgi?bug_id=[% bug_ids.join(',') FILTER uri %]"> + Show as a [% terms.Bug %] List</a> + </p> + +[% ELSE %] + <p> + No changes. + </p> +[% END %] + +[% BLOCK change_column %] + <td> + [% IF change_type.defined %] + [% IF change.fieldname == 'estimated_time' || + change.fieldname == 'remaining_time' || + change.fieldname == 'work_time' %] + [% PROCESS formattimeunit time_unit=change_type %] + [% ELSIF change.fieldname == 'blocked' || + change.fieldname == 'dependson' %] + [% change_type FILTER bug_list_link FILTER none %] + [% ELSIF change.fieldname == 'assigned_to' || + change.fieldname == 'reporter' || + change.fieldname == 'qa_contact' || + change.fieldname == 'cc' || + change.fieldname == 'flagtypes.name' %] + [% display_value(change.fieldname, change_type) FILTER email FILTER html %] + [% ELSE %] + [% display_value(change.fieldname, change_type) FILTER html %] + [% END %] + [% ELSE %] + + [% END %] + </td> +[% END %] +[% END %] + +[% INCLUDE global/footer.html.tmpl %] + +[% BLOCK sort_when_link %] + <a href="page.cgi?id=user_activity.html&action=run& + [%~%]who=[% who FILTER uri %]& + [%~%]from=[% from FILTER uri %]& + [%~%]to=[% to FILTER uri %]& + [%~%]sort=when">When</a> +[% END %] + +[% BLOCK sort_bug_link %] + <a href="page.cgi?id=user_activity.html&action=run& + [%~%]who=[% who FILTER uri %]& + [%~%]from=[% from FILTER uri %]& + [%~%]to=[% to FILTER uri %]& + [%~%]sort=bug">[% terms.Bug %]</a> +[% END %] diff --git a/extensions/BMO/template/en/default/search/search-plugin.xml.tmpl b/extensions/BMO/template/en/default/search/search-plugin.xml.tmpl new file mode 100644 index 000000000..0c52c1a58 --- /dev/null +++ b/extensions/BMO/template/en/default/search/search-plugin.xml.tmpl @@ -0,0 +1,17 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% PROCESS global/variables.none.tmpl %] +<?xml version="1.0" encoding="UTF-8"?> +<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"> +<ShortName>[% terms.BugzillaTitle %]</ShortName> +<Description>[% terms.BugzillaTitle %] Quick Search</Description> +<InputEncoding>UTF-8</InputEncoding> +<Image height="16" width="16" type="image/vnd.microsoft.icon">https://bugzilla.mozilla.org/extensions/BMO/web/images/favicon.ico</Image> +<Url type="text/html" method="GET" template="[% urlbase FILTER xml %]buglist.cgi?quicksearch={searchTerms}"/> +</OpenSearchDescription> |