summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Lawrence <dkl@mozilla.com>2015-04-13 19:23:31 +0200
committerDavid Lawrence <dkl@mozilla.com>2015-04-13 19:23:31 +0200
commitd0a14d8b266ca9e87e922d19427e1d252cd86cd4 (patch)
treef4e907d38ab7341fa1e6296dd8a442a6954d1782
parentab7e4149471d48fb00bcbbf59ceafdde87782c51 (diff)
downloadbugzilla-d0a14d8b266ca9e87e922d19427e1d252cd86cd4.tar.gz
bugzilla-d0a14d8b266ca9e87e922d19427e1d252cd86cd4.tar.xz
Bug 1148490: Custom Budget Request form for FSA program
-rw-r--r--.htaccess1
-rw-r--r--extensions/BMO/template/en/default/bug/create/comment-fsa-budget.txt.tmpl35
-rw-r--r--extensions/BMO/template/en/default/bug/create/create-fsa-budget.html.tmpl249
3 files changed, 285 insertions, 0 deletions
diff --git a/.htaccess b/.htaccess
index ad5c05572..c71b5c541 100644
--- a/.htaccess
+++ b/.htaccess
@@ -84,6 +84,7 @@ RewriteRule ^form[\.:]screen[\.:]share[\.:]whitelist$ enter_bug.cgi?product=Fire
RewriteRule ^form[\.:]webops[\.\-:]request$ enter_bug.cgi?product=Infrastructure+\%26+Operations&format=webops-request [QSA]
RewriteRule ^form[\.:]data[\.\-:]compliance$ enter_bug.cgi?product=Data+Compliance&format=data-compliance [QSA]
RewriteRule ^form[\.:]third[\.\-:]party$ enter_bug.cgi?product=Marketing&format=third-party-apps [QSA]
+RewriteRule ^form[\.:]fsa[\.:]budget$ enter_bug.cgi?product=FSA&format=fsa-budget [QSA]
RewriteRule ^rest/(.*)$ rest.cgi/$1 [NE]
RewriteRule ^(?:latest|1\.2|1\.3)/(.*)$ extensions/BzAPI/bin/rest.cgi/$1 [NE]
RewriteRule ^bzapi/(.*)$ extensions/BzAPI/bin/rest.cgi/$1 [NE]
diff --git a/extensions/BMO/template/en/default/bug/create/comment-fsa-budget.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-fsa-budget.txt.tmpl
new file mode 100644
index 000000000..d620aad2a
--- /dev/null
+++ b/extensions/BMO/template/en/default/bug/create/comment-fsa-budget.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 %]
+
+Requester info:
+
+Requester: [% cgi.param('firstname') %] [%+ cgi.param('lastname') %]
+Profile page: [% cgi.param('profilepage') %]
+Event page: [% cgi.param('eventpage') %]
+Position: [% cgi.param('position') %]
+Country You Reside: [% cgi.param('country') %]
+Advance payment needed: [% IF cgi.param('advancepayment') %]Yes[% ELSE %]No[% END %]
+
+Budget breakdown:
+
+Total amount requested in $USD: [% cgi.param('budgettotal') %]
+Costs per service:
+Service 1: [% cgi.param('service1') %] Cost: [% cgi.param('cost1') %]
+Service 2: [% cgi.param('service2') %] Cost: [% cgi.param('cost2') %]
+Service 3: [% cgi.param('service3') %] Cost: [% cgi.param('cost3') %]
+Service 4: [% cgi.param('service4') %] Cost: [% cgi.param('cost4') %]
+Service 5: [% cgi.param('service5') %] Cost: [% cgi.param('cost5') %]
+
+Additional costs:
+[%+ cgi.param('costadditional') %]
+
+[%+ cgi.param("comment") IF cgi.param("comment") %]
+
diff --git a/extensions/BMO/template/en/default/bug/create/create-fsa-budget.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-fsa-budget.html.tmpl
new file mode 100644
index 000000000..d79db2ab2
--- /dev/null
+++ b/extensions/BMO/template/en/default/bug/create/create-fsa-budget.html.tmpl
@@ -0,0 +1,249 @@
+[%# 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 %]
+#fsa_form {
+ width: 60%;
+}
+#fsa_form .required:after {
+ content: " *";
+ color: red;
+}
+#fsa_form .field_label {
+ text-align: left;
+ font-weight: bold;
+}
+#fsa_form .field_desc,
+#fsa_form .head_desc {
+ word-wrap: normal;
+}
+#fsa_form .head_desc {
+ font-size: 1.5em;
+ padding-bottom: .5em;
+}
+#fsa_form .form_section {
+ margin-bottom: 1em;
+}
+.yui-calcontainer {
+ z-index: 2;
+}
+[% END %]
+
+[% inline_javascript = BLOCK %]
+function trySubmit() {
+ var firstname = document.getElementById('firstname').value;
+ var lastname = document.getElementById('lastname').value;
+ var eventpage = document.getElementById('eventpage').value;
+ var shortdesc = 'Budget Request - ' + firstname + ' ' + lastname + ' - ' + eventpage;
+ document.getElementById('short_desc').value = shortdesc;
+ return true;
+}
+
+function validateAndSubmit() {
+ var alert_text = '';
+ if (!isFilledOut('firstname')) alert_text += "Please enter your first name\n";
+ if (!isFilledOut('lastname')) alert_text += "Please enter your last name\n";
+ if (!isFilledOut('profilepage')) alert_text += "Please enter your profile page.\n";
+ if (!isFilledOut('eventpage')) alert_text += "Please enter an event page address.\n";
+ if (!isFilledOut('cf_due_date')) alert_text += "Please enter an event date.\n";
+ if (!isFilledOut('position')) alert_text += "Please enter a value for position.\n";
+ if (!isFilledOut('country')) alert_text += "Please enter a valid value for country.\n";
+ if (!isFilledOut('budgettotal')) alert_text += "Please enter the total budget for the event.\n";
+ if (!isFilledOut('service1') || !isFilledOut('cost1')) alert_text += "Please enter at least one service and cost value.\n";
+
+ //Everything required is filled out..try to submit the form!
+ if (alert_text == '') {
+ return trySubmit();
+ }
+
+ //alert text, stay here on the pagee
+ alert(alert_text);
+ return false;
+}
+[% END %]
+
+[% PROCESS global/header.html.tmpl
+ title = "FSA Budget Request Form"
+ generate_api_token = 1
+ style = inline_style
+ style_urls = [ 'skins/standard/enter_bug.css' ]
+ javascript = inline_javascript
+ javascript_urls = [ 'extensions/BMO/web/js/form_validate.js',
+ 'js/util.js',
+ 'js/field.js' ]
+ yui = [ 'calendar' ]
+%]
+
+<h1>FSA Budget Request Form</h1>
+
+<p>
+ <span class="required_star">*</span> - <span class="required_explanation">Required Fields</span>
+</p>
+
+<form method="post" action="post_bug.cgi" id="fsa_form" enctype="multipart/form-data"
+ onSubmit="return validateAndSubmit();">
+ <input type="hidden" name="format" value="fsa-budget">
+ <input type="hidden" name="product" value="FSA">
+ <input type="hidden" name="component" value="Budget 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="cc" id="cc" value="">
+ <input type="hidden" name="token" value="[% token FILTER html %]">
+
+<div class="form_section">
+ <div class="field_label required">
+ First Name
+ </div>
+ <input type="text" name="firstname" id="firstname" value="" size="40" placeholder="John">
+</div>
+
+<div class="form_section">
+ <div class="field_label required">
+ Last Name
+ </div>
+ <input type="text" name="lastname" id="lastname" value="" size="40" placeholder="Doe">
+</div>
+
+<div class="form_section">
+ <div class="field_label required">
+ Mozillians Profile Page
+ </div>
+ <input type="text" name="profilepage" id="profilepage"
+ value="" size="40" placeholder="https://mozillians.org/u/JohnDoe">
+</div>
+
+<div class="form_section">
+ <div class="field_label required">
+ Event Page
+ </div>
+ <input type="text" name="eventpage" id="eventpage" value="" size="40">
+</div>
+
+<div class="form_section">
+ <div class="field_label required">
+ Event Date
+ </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">
+ <div class="field_label required">
+ What is your position?
+ </div>
+ <select id="position" name="position">
+ <option value="">Select One</option>
+ <option value="E-Board Member">E-Board Member</option>
+ <option value="Regional Ambassador Lead">Regional Ambassador Lead</option>
+ <option value="Mozilla Rep">Mozilla Rep</option>
+ <option value="Firefox Club Lead">Firefox Club Lead</option>
+ </select>
+</div>
+
+<div class="form_section">
+ <div class="field_label required">
+ Country You Reside:
+ </div>
+ <input type="text" name="country" id="country"
+ value="" size="40" placeholder="USA">
+</div>
+
+<div class="form_section">
+ <div class="field_label required">
+ Is advance payment needed?
+ <input type="checkbox" name="advancepayment" id="advancepayment" value="1">
+ </div>
+</div>
+
+<div class="head_desc">Budget Request</div>
+
+<div class="form_section">
+ <div class="field_label required">
+ Total amount requested in $USD
+ </div>
+ <input type="text" name="budgettotal" id="budgettotal" value="" size="40">
+</div>
+
+<div class="form_section">
+ <div class="field_label required">
+ Costs per service:
+ </div>
+ <table>
+ <tr>
+ <td class="required">Service 1:</td>
+ <td><input type="text" id="service1" name="service1" size="30"></td>
+ <td class="required">Cost 1:</td>
+ <td><input type="text" id="cost1" name="cost1" size="30"></td>
+ </tr>
+ <tr>
+ <td>Service 2:</td>
+ <td><input type="text" id="service2" name="service2" size="30"></td>
+ <td>Cost 2:</td>
+ <td><input type="text" id="cost2" name="cost2" size="30"></td>
+ </tr>
+ <tr>
+ <td>Service 3:</td>
+ <td><input type="text" id="service3" name="service3" size="30"></td>
+ <td>Cost 3:</td>
+ <td><input type="text" id="cost3" name="cost3" size="30"></td>
+ </tr>
+ <tr>
+ <td>Service 4:</td>
+ <td><input type="text" id="service4" name="service4" size="30"></td>
+ <td>Cost 4:</td>
+ <td><input type="text" id="cost4" name="cost4" size="30"></td>
+ </tr>
+ <tr>
+ <td>Service 5:</td>
+ <td><input type="text" id="service5" name="service5" size="30"></td>
+ <td>Cost 5:</td>
+ <td><input type="text" id="cost5" name="cost5" size="30"></td>
+ </tr>
+ </table>
+</div>
+
+<div class="form_section">
+ <div class="field_label">
+ Additional costs:
+ </div>
+ <textarea id="costadditional" name="costadditional" rows="5" cols="50"></textarea>
+</div>
+
+<div class="form_section">
+ <div class="field_label">
+ Additional comments:
+ </div>
+ <textarea id="comment" name="comment" rows="5" cols="50"></textarea>
+</div>
+
+<p>
+ <input type="submit" id="commit" value="Submit Request">
+</p>
+
+</form>
+
+<p>
+ Thanks for contacting us.
+</p>
+
+[% PROCESS global/footer.html.tmpl %]