diff options
Diffstat (limited to 'extensions/BMO')
6 files changed, 411 insertions, 8 deletions
diff --git a/extensions/BMO/Extension.pm b/extensions/BMO/Extension.pm index 7d5bc42d1..3d46ead6b 100644 --- a/extensions/BMO/Extension.pm +++ b/extensions/BMO/Extension.pm @@ -1883,8 +1883,8 @@ sub enter_bug_start { # if configured with create_bug_formats, force users into a custom bug # format (can be overridden with a __standard__ format) my $cgi = Bugzilla->cgi; - if ($cgi->param('format') && $cgi->param('format') eq '__standard__') { - $cgi->delete('format'); + if ($cgi->param('format')) { + $cgi->delete('format') if $cgi->param('format') eq '__standard__'; } elsif (my $format = forced_format($cgi->param('product'))) { $cgi->param('format', $format); } diff --git a/extensions/BMO/lib/Reports/Recruiting.pm b/extensions/BMO/lib/Reports/Recruiting.pm index 34d61b681..bd988d9b1 100644 --- a/extensions/BMO/lib/Reports/Recruiting.pm +++ b/extensions/BMO/lib/Reports/Recruiting.pm @@ -12,6 +12,7 @@ use warnings; use Bugzilla::Error; use Bugzilla::Bug; use Bugzilla::Product; +use Bugzilla::Component; sub report { my ($vars) = @_; @@ -22,18 +23,20 @@ sub report { action => 'run', object => 'recruiting_dashboard' }); - my $product = Bugzilla::Product->check({ name => 'Recruiting', cache => 1 }); + my $product = Bugzilla::Product->check({ name => 'Recruiting', cache => 1 }); + my $component = Bugzilla::Component->new({ product => $product, name => 'General', cache => 1 }); # find all open recruiting bugs my $bugs = Bugzilla::Bug->match({ - product_id => $product->id, - resolution => '', + product_id => $product->id, + component_id => $component->id, + resolution => '', }); # filter bugs based on visibility and re-bless $user->visible_bugs($bugs); $bugs = [ - map { bless($_, 'RecuritingBug') } + map { bless($_, 'RecruitingBug') } grep { $user->can_see_bug($_->id) } @$bugs ]; @@ -43,7 +46,7 @@ sub report { 1; -package RecuritingBug; +package RecruitingBug; use strict; use warnings; diff --git a/extensions/BMO/template/en/default/bug/create/comment-intern.txt.tmpl b/extensions/BMO/template/en/default/bug/create/comment-intern.txt.tmpl new file mode 100644 index 000000000..bc422e2e2 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/comment-intern.txt.tmpl @@ -0,0 +1,63 @@ +[%# 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 %] + +Hiring Manager: +[%+ cgi.param('hiring_manager_name') %] + +Team: +[%+ cgi.param('team_name') %] + +Cost Center: +[%+ cgi.param('cost_center') %] + +VP Authority: +[%+ cgi.param('vp_authority') %] + +Level 1/Level 2: +[%+ cgi.param("level_1_or_2") %] + +California or Toronto: +[%+ cgi.param("calironto") %] + +[% IF cgi.param("other_location") %] +Other Location: +[%+ cgi.param("other_location") %] +[% END %] + +Possible Mentor: +[%+ cgi.param("possible_mentor") %] + +Business Need: +[%+ + IF cgi.param("business_need") == "Other"; + cgi.param("business_need_elaborate"); + ELSE; + cgi.param("business_need"); + END; +%] + +Potential Project: +[%+ cgi.param("potential_project") %] + +Job Description: +[%+ cgi.param("job_description") %] + +Would Hire: +[%+ cgi.param("would_hire") %] + +Would like to intern again: +[%+ cgi.param("would_reintern") %] + +Name: +[%+ cgi.param("name") %] + +Duration: +[%+ cgi.param("duration") %] diff --git a/extensions/BMO/template/en/default/bug/create/create-intern.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-intern.html.tmpl new file mode 100644 index 000000000..358b0fd61 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/create-intern.html.tmpl @@ -0,0 +1,301 @@ +[%# 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 %] + +[% inline_style = BLOCK %] +#heading { + width: 98%; + font-size: 2em; + font-weight: bold; + margin: 10px; +} +p { + max-width: 40%; +} +label.required:before { + w + content: "* "; + color: red; +} +.required_star { + color: red; +} +.row label { + display: block; +} +.row { + padding-bottom: 10px; +} +[% END %] + +[% inline_javascript = BLOCK %] +$(document).ready(function() { + $("#calironto").change(function() { + var v = $(this).val(); + if (v == "" || v == "Yes") { + $("#other_location").removeAttr("required"); + $("label[for='other_location']").removeClass("required"); + $("#other_location_row").hide(); + } + else { + $("#other_location").attr("required", true); + $("label[for='other_location']").addClass("required"); + $("#other_location_row").show(); + } + }).change(); + $("#business_need").change(function() { + var v = $(this).val(); + if (v === "Other") { + $("#business_need_elaborate").prop("disabled", false).show(); + } + else { + $("#business_need_elaborate").prop("disabled", true).hide(); + } + }); + $("#internForm").on("submit", function() { + var name = $("#name").val(); + $("#short_desc").val("Intern Request: " + encodeURIComponent(name)); + }); +}); +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Mozilla Corporation Intern Requests" + generate_api_token = 1 + style_urls = [ 'skins/standard/attachment.css' ] + javascript_urls = [] + style = inline_style + javascript = inline_javascript +%] + +[% IF !user.in_group("mozilla-employee-confidential") + && !user.in_group("mozilla-messaging-confidential") + && !user.in_group("mozilla-foundation-confidential") %] + <p>Sorry, you do not have access to this page.</p> + [% RETURN %] +[% END %] + +<div id="heading">Intern Requests</div> +<div> + <p> + Applications for 2016 Interns are now being accepted. If you would + like to request an intern for 2016 the application deadline is August + 28, 2015, as recruiting begins September 2015. <em>Please submit a [% terms.bug %] for + each individual intern you would like even if the descriptions are the same</em>. + Applying for an intern is not a guarantee that you will be granted an intern + this time around. All applications will be considered and reviewed by the + University Team, your Human Resource Business Partner, and ultimately approved + at the VP level. + </p> + + <p> + Interns are charged back to your department and cost approximately 30K (USD) + for a 12 week period and includes salary, housing, relocation, equipment and + visa if needed. Costs for Interns outside of the US and Canada will be researched + and determined on a case by case basis as they do not follow the same conventions + as US and CAD. + </p> + + <p> + Interns will be allotted based on the need for level 1 and 2 growth on your + team, business need, and location support. + </p> + + <form method="post" action="post_bug.cgi" id="internForm"> + <input type="hidden" id="short_desc" name="short_desc" value=""> + <input type="hidden" name="product" value="Recruiting"> + <input type="hidden" name="component" value="Intern"> + <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="intern"> + <input type="hidden" name="created-format" value="intern"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="hidden" id="description" name="description" value="Job Description"> + <input type="hidden" name="contenttypemethod" value="autodetect" /> + [% IF user.in_group('canconfirm') %] + <input type="hidden" name="bug_status" value="NEW"> + [% END %] + + <div class="row"> + <label class="required" for="hiring_manager_name">Hiring Manager Name:</label> + <input required name="hiring_manager_name" id="hiring_manager_name" size="60" > + </div> + + <div class="row"> + <label class="required" for="team_name">Team:</label> + <input required name="team_name" id="team_name" size="60" > + </div> + + <div class="row"> + <label class="required" for="cost_center">Cost Center:</label> + <select required id="cost_center" name="cost_center"> + <option value="">Select..</option> + [% INCLUDE "bug/create/cost-centers.html.tmpl" %] + </select> + </div> + + <div class="row"> + <label class="required" for="vp_authority">VP Authority</label> + <select required id="vp_authority" name="vp_authority"> + <option value="">Select..</option> + [% INCLUDE "bug/create/vp-authority.html.tmpl" %] + </select> + </div> + + <div class="row"> + <label class="required" for="product_line">Product Line</label> + <select required id="product_line" name="product_line"> + <option value="">Select..</option> + <option value="Firefox">Firefox</option> + <option value="Firefox OS">Firefox OS</option> + <option value="Firefox for Android">Firefox for Android</option> + <option value="Content Services">Content Services</option> + <option value="Cloud Services">Cloud Services</option> + <option value="Legal">Legal</option> + <option value="Engagement">Engagement</option> + <option value="IT">IT</option> + <option value="Office of the CTO">Office of The CTO</option> + <option value="Platform">Platform</option> + <option value="Product Management">Product Management</option> + <option value="Marketplace">Marketplace</option> + <option value="Other">Other</option> + </select> + </div> + + <div class="row"> + <label class="required" for="level_1_or_2"> + Do you have a need for a level 1 or level 2 hire (entry level/new grad/JR role) to your team in the next year? + </label> + [% INCLUDE yesno name = "level_1_or_2" %] + </div> + + <div class="row"> + <label class="required" for="calironto"> + Are you located in a California or Toronto office? + </label> + [% INCLUDE yesno name = "calironto" %] + </div> + + <div class="row" id="other_location_row"> + <label class="required" for="other_location"> + If not where are you located? + </label> + <input required name="other_location" id="other_location" size="60"> + </div> + + <div class="row"> + <label class="required" for="onsite"> + Will you have onsite Mentorship for your intern in 2016? + </label> + [% INCLUDE yesno name = "onsite" %] + </div> + <div class="row"> + <label class="required" for="possible_mentor"> + Possible Mentor? + </label> + <input required name="possible_mentor" id="possible_mentor" size="60"> + </div> + + <div class="row"> + <label class="required" for="business_need"> + Business Need? + </label> + <select required id="business_need" name="business_need"> + <option value="">Select..</option> + <option value="I have a need for a level 1 or 2 hire in the next year">I have a need for a level 1 or 2 hire in the next year</option> + <option value="I have a short term project-based need that can wait until next Summer">I have a short term project-based need that can wait until next Summer</option> + <option value="Other">Neither of these fit and I can elaborate</option> + </select> + <br> + <textarea required disabled name="business_need_elaborate" + id="business_need_elaborate" cols="80" rows="10" + style="display:none;" placeholder="Elaborate on your business need"></textarea> + </div> + + <div class="row"> + <label class="required" for="potential_project"> + Please describe your potential project + </label> + <input required name="potential_project" id="potential_project" size="60"> + </div> + + <div class="row"> + <label class="required" for="job_description"> + Job Description + (<a target="_blank" href="https://mana.mozilla.org/wiki/display/globalstaffing/Intern+Job+Descriptions">more info</a>) + </label> + <textarea required name="job_description" + id="job_description" cols="80" rows="10" + placeholder="Please add link to Mana or copy and paste a JD. (if you are looking for multiple types interns please include a job description for each)"></textarea> + </div> + + <div class="row"> + <label class="required" for="would_hire"> + If my intern does exceptional work I would be willing to use headcount to hire them + </label> + [% INCLUDE yesno name = "would_hire" %] + </div> + + <div class="row"> + <label class="required" for="would_reintern"> + I would like my past intern to return for another internship + </label> + [% INCLUDE yesno name = "would_reintern" %] + </div> + + <div class="row"> + <label class="required" for="name"> + Name: + </label> + <input required name="name" id="name" size="60"> + </div> + + <div class="row"> + <label class="required" for="duration"> + Duration: + </label> + <input required name="duration" id="duration" size="60"> + </div> + + <input type="submit" id="commit" value="Submit Request"> + <p> + [ <span class="required_star">*</span> <span class="required_explanation"> + Required Field</span> ] + </p> + </form> + + <p>Thanks for contacting us. You will be notified by email of any progress made in resolving your request.</p> +</div> + +[% PROCESS global/footer.html.tmpl %] + +[% BLOCK yesno %] + <select required id="[% name FILTER html %]" name="[% name FILTER html %]"> + <option value="">Select..</option> + <option value="Yes">Yes</option> + <option value="No">No</option> + </select> +[% END %] diff --git a/extensions/BMO/template/en/default/bug/create/created-intern.html.tmpl b/extensions/BMO/template/en/default/bug/create/created-intern.html.tmpl new file mode 100644 index 000000000..e45142b89 --- /dev/null +++ b/extensions/BMO/template/en/default/bug/create/created-intern.html.tmpl @@ -0,0 +1,27 @@ +[%# 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 = "Intern Request Submission" +%] + +<h1>Thank you!</h1> + +<p> + Thank you for submitting your intern request! It will be + reviewed by the VPs and prioritized according to needs across the + organization. +</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/custom_forms.none.tmpl b/extensions/BMO/template/en/default/bug/create/custom_forms.none.tmpl index 6e7841ecc..749b2a989 100644 --- a/extensions/BMO/template/en/default/bug/create/custom_forms.none.tmpl +++ b/extensions/BMO/template/en/default/bug/create/custom_forms.none.tmpl @@ -191,6 +191,15 @@ custom_forms = { title => "Data Compliance Form", }, ], - + "Recruiting" => [ + { + link => "form.recruiting", + title => "Recruiting Requests", + }, + { + link => "form.intern", + title => "Intern Requests", + } + ], } %] |