summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorByron Jones <glob@mozilla.com>2014-09-23 05:41:17 +0200
committerByron Jones <glob@mozilla.com>2014-09-23 05:41:17 +0200
commit7a7013402fb30e8777bc09fb9971651392e65ea1 (patch)
treeccdcff1fbe901d08afbf157ce47c255241a66e6c /extensions
parent9773ddfe2f9da1d72843b0f5fb7476f3bf4995d2 (diff)
downloadbugzilla-7a7013402fb30e8777bc09fb9971651392e65ea1.tar.gz
bugzilla-7a7013402fb30e8777bc09fb9971651392e65ea1.tar.xz
Bug 1037663: Make custom bug entry forms more discoverable
Diffstat (limited to 'extensions')
-rw-r--r--extensions/BMO/template/en/default/bug/create/create-employee-incident.html.tmpl291
-rw-r--r--extensions/BMO/template/en/default/bug/create/create-presentation.html.tmpl222
-rw-r--r--extensions/BMO/template/en/default/bug/create/custom_forms.none.tmpl173
-rw-r--r--extensions/BMO/template/en/default/bug/create/user-message.html.tmpl25
-rw-r--r--extensions/BMO/template/en/default/global/choose-product.html.tmpl1
-rw-r--r--extensions/BMO/template/en/default/global/redirect.html.tmpl25
-rw-r--r--extensions/BMO/template/en/default/pages/bug-writing.html.tmpl30
-rw-r--r--extensions/BMO/template/en/default/pages/custom_forms.html.tmpl40
-rw-r--r--extensions/BMO/web/images/notice.pngbin0 -> 6654 bytes
9 files changed, 286 insertions, 521 deletions
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
index 1c1274541..164dd482c 100644
--- 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
@@ -1,288 +1,11 @@
-[%# 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/
+[%# 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/.
#
- # 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>
+ # 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 Corporation/Foundation Employee Incident"
+[% PROCESS global/redirect.html.tmpl
+ url = "https://mozilla.service-now.com/com.glideapp.servicecatalog_cat_item_view.do?sysparm_id=4f9468ef184a30004a467ddd1a20df63"
%]
-
-[% 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 = '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, 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>&nbsp;</td>
- <td>If yes, what sensitive data was stored on your device?</td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- <td>
- <textarea name="sensitivedata" id="sensitivedata" rows="10" cols="80"></textarea>
- </td>
- </tr>
- <tr>
- <td>&nbsp;</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>&nbsp;</td>
- <td>If yes, which critical sites were included?</td>
- </tr>
- <tr>
- <td>&nbsp;</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>&nbsp;</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-presentation.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-presentation.html.tmpl
index 104c96aa8..7819818b3 100644
--- a/extensions/BMO/template/en/default/bug/create/create-presentation.html.tmpl
+++ b/extensions/BMO/template/en/default/bug/create/create-presentation.html.tmpl
@@ -1,219 +1,11 @@
-[%# 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/
+[%# 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/.
#
- # 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>
+ # 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 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' ]
+[% PROCESS global/redirect.html.tmpl
+ url = "https://air.mozilla.org/requests"
%]
-
-<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-employee-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&nbsp;(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/custom_forms.none.tmpl b/extensions/BMO/template/en/default/bug/create/custom_forms.none.tmpl
new file mode 100644
index 000000000..25af4fa47
--- /dev/null
+++ b/extensions/BMO/template/en/default/bug/create/custom_forms.none.tmpl
@@ -0,0 +1,173 @@
+[%# 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.
+ #%]
+
+[%# link => url (can be relative to bugzilla.mozilla.org, or full url)
+ # title => visible title
+ # group => optional group name, if present the form won't be show to
+ # users not in this group
+ # hide => optional boolean, if true the form will not be shown on
+ # enter_bug (but will be visible on the custom forms list)
+ #%]
+
+[%
+custom_forms = {
+ "mozilla.org" => [
+ {
+ link => "form.moz.project.review",
+ title => "Mozilla Project Review",
+ group => "mozilla-employee-confidential",
+ },
+ {
+ link => "form.trademark",
+ title => "Trademark Usage Requests",
+ },
+ {
+ link => "form.gear",
+ title => "Mozilla Gear Request",
+ group => "mozilla-employee-confidential",
+ },
+ {
+ link => "form.poweredby",
+ title => "Powered by Mozilla Logo Requests",
+ },
+ {
+ link => "form.mozlist",
+ title => "Mozilla Discussion Forum Requests",
+ group => "mozilla-employee-confidential",
+ },
+ ],
+ "Marketing" => [
+ {
+ link => "form.user.engagement",
+ title => "User Engagement Initiation Form",
+ group => "mozilla-employee-confidential",
+ },
+ {
+ link => "form.gear",
+ title => "Mozilla Gear Request",
+ group => "mozilla-employee-confidential",
+ },
+ {
+ link => "form.creative",
+ title => "Brand Engagement Initiation Form",
+ group => "mozilla-employee-confidential",
+ },
+ {
+ link => "form.poweredby",
+ title => "Powered by Mozilla Logo Requests",
+ },
+ ],
+ "Finance" => [
+ {
+ link => "form.finance",
+ title => "Finance Request",
+ group => "mozilla-employee-confidential",
+ },
+ ],
+ "Privacy" => [
+ {
+ link => "form.privacy.data",
+ title => "Privacy - Data Release Proposal",
+ group => "mozilla-employee-confidential",
+ },
+ ],
+ "Mozilla PR" => [
+ {
+ link => "form.mozpr",
+ title => "PR Project Form",
+ group => "pr-private",
+ },
+ ],
+ "Infrastructure & Operations" => [
+ {
+ link => "form.itrequest",
+ title => "IT Request Form",
+ group => "mozilla-employee-confidential",
+ },
+ {
+ link => "form.mozlist",
+ title => "Mozilla Discussion Forum Requests",
+ group => "mozilla-employee-confidential",
+ },
+ ],
+ "Tech Evangelism" => [
+ {
+ link => "form.mobile.compat",
+ title => "Mobile Web Compatibility Problem",
+ },
+ ],
+ "Air Mozilla" => [
+ {
+ link => "https://air.mozilla.org/requests/",
+ title => "Air Mozilla/Brown Bag Request",
+ group => "mozilla-employee-confidential",
+ },
+ ],
+ "Websites" => [
+ {
+ link => "form.web.bounty",
+ title => "Web Bounty Form",
+ },
+ ],
+ "Firefox OS" => [
+ {
+ link => "form.fxos.feature",
+ title => "Firefox OS Feature Request Form",
+ },
+ {
+ link => "form.fxos.mcts.waiver",
+ title => "Firefox OS MCTS Waiver Form",
+ },
+ {
+ link => "form.fxos.partner",
+ title => "Firefox OS Partner Bug Submission",
+ hide => 1,
+ },
+ {
+ link => "form.fxos.preload.app",
+ title => "Firefox OS Pre-load App",
+ hide => 1,
+ },
+ {
+ link => "form.fxos.betaprogram",
+ title => "Firefox OS Beta Program Bug Submission",
+ hide => 1,
+ },
+ ],
+ "Testing" => [
+ {
+ link => "form.automative",
+ title => "Automation Request Form",
+ },
+ ],
+ "Developer Engagement" => [
+ {
+ link => "form.dev.engagement.event",
+ title => "Developer Events Request Form",
+ },
+ ],
+ "Mozilla Developer Network" => [
+ {
+ link => "form.mdn",
+ title => "Mozilla Developer Network Feedback",
+ },
+ ],
+ "Internet Public Policy" => [
+ {
+ link => "form.ipp",
+ title => "Internet Public Policy Issue",
+ },
+ ],
+ "Marketplace" => [
+ {
+ link => "form.fxos.preload.app",
+ title => "Firefox OS Pre-load App",
+ },
+ ],
+}
+%]
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
index b548ba127..52014ae15 100644
--- a/extensions/BMO/template/en/default/bug/create/user-message.html.tmpl
+++ b/extensions/BMO/template/en/default/bug/create/user-message.html.tmpl
@@ -22,3 +22,28 @@
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>
+
+[%
+ PROCESS bug/create/custom_forms.none.tmpl;
+ visible_forms = [];
+ FOREACH form = custom_forms.${product.name};
+ NEXT IF form.hide;
+ NEXT IF form.group && !user.in_group(form.group);
+ visible_forms.push(form);
+ END;
+ RETURN UNLESS visible_forms.size;
+%]
+
+<div id="custom_form_list">
+ <img src="extensions/BMO/web/images/notice.png" width="48" height="48" id="custom_form_list_image">
+ <div id="custom_form_list_text">
+ This product has task-specific [% terms.bug %] forms that should be used if
+ appropriate:
+
+ <ul>
+ [% FOREACH form = visible_forms.sort("title") %]
+ <li><a href="[% form.link FILTER none %]">[% form.title FILTER html %]</a></li>
+ [% END %]
+ </ul>
+ </div>
+</div>
diff --git a/extensions/BMO/template/en/default/global/choose-product.html.tmpl b/extensions/BMO/template/en/default/global/choose-product.html.tmpl
index 448226fbf..eb7581d4e 100644
--- a/extensions/BMO/template/en/default/global/choose-product.html.tmpl
+++ b/extensions/BMO/template/en/default/global/choose-product.html.tmpl
@@ -194,6 +194,7 @@ by changing your <a href="userprefs.cgi?tab=settings">preferences</a>.</p>
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>
+ | <a href="page.cgi?id=custom_forms.html">Custom [% terms.bug %] entry forms</a>
</div>
[% PROCESS global/footer.html.tmpl %]
diff --git a/extensions/BMO/template/en/default/global/redirect.html.tmpl b/extensions/BMO/template/en/default/global/redirect.html.tmpl
new file mode 100644
index 000000000..67561d8fa
--- /dev/null
+++ b/extensions/BMO/template/en/default/global/redirect.html.tmpl
@@ -0,0 +1,25 @@
+[%# 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.
+ #%]
+
+<!doctype html>
+<html>
+<head>
+ <title>Moved</title>
+ <meta http-equiv="refresh" content="0;URL=[% url FILTER none %]">
+ <style>
+ body {
+ font-family: sans-serif;
+ font-size: small;
+ background: url('extensions/BMO/web/images/background.png') repeat-x;
+ }
+ </style>
+</head>
+<body>
+ Redirecting to <a href="[% url FILTER none %]">[% url FILTER html %]</a>
+</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
index f326d1821..21ed3b040 100644
--- a/extensions/BMO/template/en/default/pages/bug-writing.html.tmpl
+++ b/extensions/BMO/template/en/default/pages/bug-writing.html.tmpl
@@ -1,25 +1,11 @@
-[%# 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/
+[%# 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/.
#
- # 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>
+ # This Source Code Form is "Incompatible With Secondary Licenses", as
+ # defined by the Mozilla Public License, v. 2.0.
#%]
-<html>
- <head>
- <meta http-equiv="refresh" content="0;url=https://developer.mozilla.org/en/Bug_writing_guidelines">
- </head>
-</html>
+[% PROCESS global/redirect.html.tmpl
+ url = "https://developer.mozilla.org/en/Bug_writing_guidelines"
+%]
diff --git a/extensions/BMO/template/en/default/pages/custom_forms.html.tmpl b/extensions/BMO/template/en/default/pages/custom_forms.html.tmpl
new file mode 100644
index 000000000..d484d730c
--- /dev/null
+++ b/extensions/BMO/template/en/default/pages/custom_forms.html.tmpl
@@ -0,0 +1,40 @@
+[%# 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 = "Custom Bug Entry Forms"
+%]
+
+[%
+ visible_forms = {};
+ PROCESS bug/create/custom_forms.none.tmpl;
+ FOREACH product = custom_forms.keys;
+ product_forms = [];
+ FOREACH form = custom_forms.$product;
+ NEXT IF form.group && !user.in_group(form.group);
+ product_forms.push(form);
+ END;
+ NEXT UNLESS product_forms.size;
+ visible_forms.$product = product_forms;
+ END;
+%]
+
+<h1>Custom [% terms.Bug %] Entry Forms</h1>
+
+[% FOREACH product = visible_forms.keys.sort %]
+ <h3>[% product FILTER html %]</h3>
+ <ul>
+ [% FOREACH form = visible_forms.$product.sort("title") %]
+ <li>
+ <a href="[% form.link FILTER none %]">[% form.title FILTER html %]</a>
+ </li>
+ [% END %]
+ </ul>
+[% END %]
+
+[% PROCESS global/footer.html.tmpl %]
diff --git a/extensions/BMO/web/images/notice.png b/extensions/BMO/web/images/notice.png
new file mode 100644
index 000000000..e436c22ae
--- /dev/null
+++ b/extensions/BMO/web/images/notice.png
Binary files differ