]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1264821 - We want to replace the project kick-off form with a contract request...
authorDavid Lawrence <dkl@mozilla.com>
Wed, 23 Nov 2016 14:25:36 +0000 (14:25 +0000)
committerDavid Lawrence <dkl@mozilla.com>
Wed, 23 Nov 2016 14:25:36 +0000 (14:25 +0000)
13 files changed:
extensions/MozProjectReview/Extension.pm
extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-data-compliance.txt.tmpl [deleted file]
extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-finance.txt.tmpl
extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-legal.txt.tmpl [deleted file]
extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-privacy-policy.txt.tmpl [deleted file]
extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-privacy-tech.txt.tmpl [deleted file]
extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-privacy-vendor.txt.tmpl [deleted file]
extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-sec-review.txt.tmpl
extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review.txt.tmpl
extensions/MozProjectReview/template/en/default/bug/create/create-moz-project-review.html.tmpl
extensions/MozProjectReview/template/en/default/bug/create/initial-questions-comment.txt.tmpl [new file with mode: 0644]
extensions/MozProjectReview/web/js/moz_project_review.js
extensions/MozProjectReview/web/style/moz_project_review.css

index fcad6916cde232b1a61bef9aa78ca290d4df44ac..f85822d4d232dc9acc3b779525496bc399425af0 100644 (file)
@@ -12,23 +12,14 @@ use warnings;
 
 use base qw(Bugzilla::Extension);
 
+our $VERSION = '0.01';
+
 use Bugzilla::User;
 use Bugzilla::Group;
 use Bugzilla::Error;
 use Bugzilla::Constants;
 
-our $VERSION = '0.01';
-
-# these users will be cc'd to the parent bug when the corresponding child bug
-# is created, as well as the child bug.
-our %auto_cc = (
-    'legal'                   => ['liz@mozilla.com'],
-    'finance'                 => ['waoieong@mozilla.com', 'mcristobal@mozilla.com', 'echoe@mozilla.com'],
-    'privacy-vendor'          => ['smartin@mozilla.com'],
-    'privacy-project'         => ['ahua@mozilla.com'],
-    'privacy-tech'            => ['ahua@mozilla.com'],
-    'policy-business-partner' => ['smartin@mozilla.com']
-);
+use List::MoreUtils qw(any);
 
 sub post_bug_after_creation {
     my ($self, $args) = @_;
@@ -39,50 +30,28 @@ sub post_bug_after_creation {
     my $params    = Bugzilla->input_params;
     my $template  = Bugzilla->template;
 
-    return if !($params->{format}
-                && $params->{format} eq 'moz-project-review'
-                && $bug->component eq 'Project Review');
+    return if !($params->{format} && $params->{format} eq 'moz-project-review');
 
     # do a match if applicable
     Bugzilla::User::match_field({
-        'legal_cc' => { 'type' => 'multi' }
+        'sow_vendor_mozcontact' => { 'type' => 'single' },
     });
 
-    my ($do_sec_review, $do_legal, $do_finance, $do_data_compliance);
-
-    if ($params->{'mozilla_data'} eq 'Yes') {
-        $do_legal = 1;
-        $do_data_compliance = 1;
+    my $do_sec_review = 0;
+    my @sec_review_needed = (
+        'Engaging a new vendor company',
+        'Engaging an individual (independent contractor, temp agency worker, incorporated)',
+        'Adding a new SOW with a vendor',
+        'Extending an SOW or renewing a contract',
+        'Purchasing software',
+        'Signing up for an online service',
+    );
+    if ((any { $_ eq $params->{contract_type} } @sec_review_needed)
+        || $params->{mozilla_data} eq 'Yes') {
         $do_sec_review = 1;
     }
 
-    if ($params->{'separate_party'} eq 'Yes') {
-        if ($params->{'relationship_type'} ne 'Hardware Purchase') {
-            $do_legal = 1;
-        }
-
-        if ($params->{'data_access'} eq 'Yes') {
-            $do_data_compliance = 1;
-            $do_legal = 1;
-            $do_sec_review = 1;
-        }
-
-        if ($params->{'data_access'} eq 'Yes'
-            && $params->{'privacy_policy_vendor_user_data'} eq 'Yes')
-        {
-            $do_data_compliance = 1;
-        }
-
-        if ($params->{'vendor_cost'} eq '> $25,000' 
-            || ($params->{'vendor_cost'} eq '<= $25,000'
-                && $params->{'po_needed'} eq 'Yes')) 
-        {
-            $do_finance = 1;
-        }
-    }
-
-    my ($sec_review_bug, $legal_bug, $finance_bug, $data_compliance_bug,
-        $error, @dep_comment, @dep_errors, @send_mail);
+    my ($sec_review_bug, $finance_bug, $error, @dep_comment, @dep_errors, @send_mail);
 
     # Common parameters always passed to _file_child_bug
     # bug_data and template_suffix will be different for each bug
@@ -105,79 +74,27 @@ sub post_bug_after_creation {
             rep_platform => 'All',
             version      => 'unspecified',
             blocked      => $bug->bug_id,
+            cc           => $params->{cc},
         };
         $child_params->{'template_suffix'} = 'sec-review';
         _file_child_bug($child_params);
     }
 
-    if ($do_legal) {
-        my $component = 'General';
-
-        if ($params->{separate_party} eq 'Yes'
-            && $params->{relationship_type})
-        {
-            $component = ($params->{relationship_type} eq 'Other'
-                            || $params->{relationship_type} eq 'Hardware Purchase')
-                         ? 'General'
-                         : $params->{relationship_type};
-        }
-
-        my $legal_summary = "Legal Review: ";
-        $legal_summary .= $params->{legal_other_party} . " - " if $params->{legal_other_party};
-        $legal_summary .= $bug->short_desc;
-
-        $child_params->{'bug_data'} = {
-            short_desc   => $legal_summary,
-            product      => 'Legal',
-            component    => $component,
-            bug_severity => 'normal',
-            priority     => '--',
-            groups       => [ 'legal' ],
-            op_sys       => 'All',
-            rep_platform => 'All',
-            version      => 'unspecified',
-            blocked      => $bug->bug_id,
-            cc           => $params->{'legal_cc'},
-        };
-        $child_params->{'template_suffix'} = 'legal';
-        _file_child_bug($child_params);
-    }
-
-    if ($do_finance) {
-        $child_params->{'bug_data'} = {
-            short_desc   => 'Finance Review: ' . $bug->short_desc,
-            product      => 'Finance',
-            component    => 'Purchase Request Form',
-            bug_severity => 'normal',
-            priority     => '--',
-            groups       => [ 'finance' ],
-            op_sys       => 'All',
-            rep_platform => 'All',
-            version      => 'unspecified',
-            blocked      => $bug->bug_id,
-        };
-        $child_params->{'template_suffix'} = 'finance';
-        _file_child_bug($child_params);
-    }
-
-    if ($do_data_compliance) {
-        $child_params->{'bug_data'} = {
-            short_desc   => 'Data Compliance Review: ' . $bug->short_desc,
-            product      => 'Data Compliance',
-            component    => 'General',
-            bug_severity => 'normal',
-            priority     => '--',
-            bug_severity => $params->{data_comp_urgency},
-            groups       => [ 'mozilla-employee-confidential' ],
-            op_sys       => 'All',
-            rep_platform => 'All',
-            version      => 'unspecified',
-            cf_due_date  => $params->{release_date},
-            blocked      => $bug->bug_id,
-        };
-        $child_params->{'template_suffix'} = 'data-compliance';
-        _file_child_bug($child_params);
-    }
+    $child_params->{'bug_data'} = {
+        short_desc   => 'Finance Review: ' . $bug->short_desc,
+        product      => 'Finance',
+        component    => 'Purchase Request Form',
+        bug_severity => 'normal',
+        priority     => '--',
+        groups       => [ 'finance' ],
+        op_sys       => 'All',
+        rep_platform => 'All',
+        version      => 'unspecified',
+        blocked      => $bug->bug_id,
+        cc           => $params->{cc},
+    };
+    $child_params->{'template_suffix'} = 'finance';
+    _file_child_bug($child_params);
 
     if (scalar @dep_errors) {
         warn "[Bug " . $bug->id . "] Failed to create additional moz-project-review bugs:\n" .
@@ -214,16 +131,10 @@ sub _file_child_bug {
         Bugzilla->template->process($full_template, $template_vars, \$comment)
             || ThrowTemplateError(Bugzilla->template->error());
         $bug_data->{'comment'} = $comment;
-        if (exists $auto_cc{$template_suffix}) {
-            $bug_data->{'cc'} = $auto_cc{$template_suffix};
-        }
         if ($new_bug = Bugzilla::Bug->create($bug_data)) {
             my $set_all = {
                 dependson => { add => [ $new_bug->bug_id ] }
             };
-            if (exists $auto_cc{$template_suffix}) {
-                $set_all->{'cc'} = { add => $auto_cc{$template_suffix} };
-            }
             $parent_bug->set_all($set_all);
             $parent_bug->update($parent_bug->creation_ts);
         }
diff --git a/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-data-compliance.txt.tmpl b/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-data-compliance.txt.tmpl
deleted file mode 100644 (file)
index 889543c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[%# 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('data_comp_request_type') %]
-
-> Area
-[%+ cgi.param('data_comp_area') %]
-
-> Description
-[%+ cgi.param('data_comp_desc') %]
-
-> Does this request involve a change in data collection or handling?
-[%+ cgi.param('data_comp_handling_change') %]
-
-> Does this request involve a change in to the business unit's data practices?
-[%+ cgi.param('data_comp_practice_change') %]
-
-> Other Information
-[%+ cgi.param('data_comp_other') || "None" %]
index eaa626a7e227d96f7663d2137fb39d6810c41d1e..f28658078a0629c2a8306f6162ea9bcbb9e4d141 100644 (file)
@@ -9,22 +9,28 @@
 [% USE Bugzilla %]
 [% cgi = Bugzilla.cgi %]
 
-[% PROCESS "bug/create/comment-moz-project-review.txt.tmpl" %]
+[% PROCESS "bug/create/initial-questions-comment.txt.tmpl" %]
 
-Finance Questions:
+[% RETURN IF cgi.param('vendor_cost') != '< $25,000 PO Needed' && cgi.param('vendor_cost') != '> $25,000' %]
+>> Finance Question
 
-Vendor: [% cgi.param('finance_purchase_vendor') %]
 Is this line item in budget?:
 [%+ cgi.param('finance_purchase_inbudget') %]
+
 What is the purchase for?:
 [%+ cgi.param('finance_purchase_what') %]
+
 Why is the purchase needed?:
 [%+ cgi.param('finance_purchase_why') %]
+
 What is the risk if not purchased?:
 [%+ cgi.param('finance_purchase_risk') %]
-What is the alternative?: 
+
+What is the alternative?:
 [%+ cgi.param('finance_purchase_alternative') %]
-What is the urgency?: [% cgi.param('finance_purchase_urgency') %]
+
 What is the shipping address?:
 [%+ cgi.param('finance_shipment_address') %]
-Total Cost: [% cgi.param('finance_purchase_cost') %]
+
+Total not to exceed amount:
+[%+ cgi.param('sow_vendor_total_max') %]
diff --git a/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-legal.txt.tmpl b/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-legal.txt.tmpl
deleted file mode 100644 (file)
index 9856736..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-[%# 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 "bug/create/comment-moz-project-review.txt.tmpl" %]
-
-Legal Questions:
-
-Priority: [% cgi.param('legal_priority') %]
-Time Frame For Completion of Legal Portion?: [% cgi.param('legal_timeframe') %]
-Other Party: [% cgi.param('legal_other_party') %]
-What help do you need from Legal?:
-[%+ cgi.param('legal_help_from_legal') %]
-[% IF cgi.param('legal_vendor_services_where') %]
-Vendor Services from Where: 
-[% IF cgi.param('legal_vendor_services_where') == 'A single country' %]
-[%- cgi.param('legal_vendor_single_country') %]
-[% ELSE %]
-[%- cgi.param('legal_vendor_services_where') %]
-[% END %]
-[% END %]
-[% IF cgi.param('separate_party') == 'Yes' && cgi.param('relationship_type') == 'Vendor/Services' %]
-SOW Details:
-Legal Vendor Name: [% cgi.param('legal_sow_vendor_name') %] 
-Vendor Address:
-[%+ cgi.param('legal_sow_vendor_address') %] 
-Vendor Email for Notices: [% cgi.param('legal_sow_vendor_email') %] 
-Mozilla Contact: [% cgi.param('legal_sow_vendor_mozcontact') %] 
-Vendor Contact and Email Address: [% cgi.param('legal_sow_vendor_contact') %] 
-Description of Services:
-[%+ cgi.param('legal_sow_vendor_services') %] 
-Description of Deliverables:
-[%+ cgi.param('legal_sow_vendor_deliverables') %] 
-Start Date: [% cgi.param('legal_sow_start_date') %] 
-End Date: [% cgi.param('legal_sow_end_date') %] 
-Rate of Pay: [% cgi.param('legal_sow_vendor_payment') %] 
-Basis for Payment: [% cgi.param('legal_sow_vendor_payment_basis') %] 
-Average/Maximum Hours: [% cgi.param('legal_sow_vendor_hours') %] 
-Payment Schedule: [% cgi.param('legal_sow_vendor_payment_schedule') %] 
-Total Not to Exceed Amount: [% cgi.param('legal_sow_vendor_total_max') %] 
-Special Terms:
-[%+ cgi.param('legal_sow_vendor_special_terms') %] 
-Product Line: [% cgi.param('legal_sow_vendor_product_line') %] 
-[% END %]
diff --git a/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-privacy-policy.txt.tmpl b/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-privacy-policy.txt.tmpl
deleted file mode 100644 (file)
index ff3f5ad..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-[%# 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 "bug/create/comment-moz-project-review.txt.tmpl" %]
-
-Is there a privacy policy for this new feature/product?:
-[%+ cgi.param('privacy_policy_project_link') %]
-What assistance do you need from the privacy team (if any)?:
-[%+ cgi.param('privacy_policy_project_assistance') %]
diff --git a/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-privacy-tech.txt.tmpl b/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-privacy-tech.txt.tmpl
deleted file mode 100644 (file)
index 7b72cf1..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-[%# 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 "bug/create/comment-moz-project-review.txt.tmpl" %]
diff --git a/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-privacy-vendor.txt.tmpl b/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-privacy-vendor.txt.tmpl
deleted file mode 100644 (file)
index eaf9f12..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-[%# 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 "bug/create/comment-moz-project-review.txt.tmpl" %]
-
-Privacy Policy: [% cgi.param('privacy_policy_vendor_user_data') %]
-Vendor's Privacy Policy: [% cgi.param('privacy_policy_vendor_link') %]
-Privacy Questionnaire: [% cgi.param('privacy_policy_vendor_questionnaire') %]
index 029f6df48166f3a28ac8d0c598ea5177dd671848..cb3317cfa7308bd25654a7050a4f5d602f6a20c8 100644 (file)
@@ -9,12 +9,12 @@
 [% USE Bugzilla %]
 [% cgi = Bugzilla.cgi %]
 
-[% PROCESS "bug/create/comment-moz-project-review.txt.tmpl" %]
+[% PROCESS "bug/create/initial-questions-comment.txt.tmpl" %]
 
-Security Review Questions:
+>> Vendor Security Review Questions
+
+Review Invitees:
+[%+ cgi.param('sec_review_invitees') %]
 
-Affects Products: [% cgi.param('sec_affects_products') %]
-Review Due Date: [% cgi.param('sec_review_date') %]
-Review Invitees: [% cgi.param('sec_review_invitees') %]
 Extra Information:
 [%+ cgi.param('sec_review_extra') %]
index 07d5fa5ad895cd6ec416d865e10e6bdf66a60024..e0c42df7eacfd9ae7e27d7249163c9dad5b5a975 100644 (file)
 [% USE Bugzilla %]
 [% cgi = Bugzilla.cgi %]
 
-Initial Questions:
-
-Project/Feature Name: [% cgi.param('short_desc') %]
-Tracking [% terms.Bug %] ID:[% cgi.param('tracking_id') %]
-Description:
-[%+ cgi.param('description') %]
-Additional Information:
-[%+ cgi.param('additional') %]
-Key Initiative: [% cgi.param('key_initiative') == 'Other'
-                   ? cgi.param('key_initiative_other')
-                   : cgi.param('key_initiative') %]
-Release Date: [% cgi.param('release_date') %]
-Project Status: [% cgi.param('project_status') %]
-Mozilla Data: [% cgi.param('mozilla_data') %]
-Mozilla Related: [% cgi.param('mozilla_related') %]
-Separate Party: [% cgi.param('separate_party') %]
-[% IF cgi.param('separate_party') == 'Yes' %]
-Type of Relationship: [% cgi.param('relationship_type') %]
-Data Access: [% cgi.param('data_access') %]
-Privacy Policy: [% cgi.param('privacy_policy') %]
-Vendor Cost: [% cgi.param('vendor_cost') %]
+[% PROCESS "bug/create/initial-questions-comment.txt.tmpl" %]
+
+[% IF cgi.param('contract_type') == 'Engaging an individual (independent contractor, temp agency worker, incorporated)' %]
+>> Independent Contractor Questions
+
+Is this someone we've worked with before?
+[%+ cgi.param('independent_contractor_prev_work') %]
+
+[% IF cgi.param('independent_contractor_prev_work') == 'Yes' %]
+If yes, enter the [% terms.bug %] number for the previous work or note that this is a former employee:
+[%+ terms.Bug +%] [%+ cgi.param('independent_contractor_prev_work_bug') %]
+[% END %]
+
+Has this person incorporated (sole proprietorship or similar form)?
+[%+ cgi.param('independent_contractor_incorporated') %]
+
+Will the person be engaged through a staffing agency?
+[%+ cgi.param('independent_contractor_staff_agency') %]
+
+Does the person have other clients?
+[%+ cgi.param('independent_contractor_other_clients') %]
+
+Does the person provide services similar to a paid Mozilla employee?
+[%+ cgi.param('independent_contractor_dupe_services') %]
+
+[% IF cgi.param('independent_contractor_dupe_services') == 'Yes' %]
+If yes, is the person primarily being engaged due to a temporary increase in workload or as backfill for an employee on leave?
+[%+ cgi.param('independent_contractor_dupe_services_temp') %]
+[% END %]
+
+Will the person be managing his or her own time?
+[%+ cgi.param('independent_contractor_self_manage') %]
+
+Will the person be using his or her own equipment?
+[%+ cgi.param('independent_contractor_own_equipment') %]
+
+Will the person be regularly working at a Mozilla facility?
+[%+ cgi.param('independent_contractor_mozilla_facility') %]
+
+Will the person be supervising Mozilla employees?
+[%+ cgi.param('independent_contractor_supervising') %]
+[% END %]
+
+>> Contract Specific Questions
+
+Vendor/Contractor/Partner Name:
+[%+ cgi.param('other_party') %]
+
+[% IF cgi.param('contract_type') == 'Engaging a new vendor company'
+      || cgi.param('contract_type') == 'Engaging an individual (independent contractor, temp agency worker, incorporated)'
+      || cgi.param('contract_type') == 'Adding a new SOW with a vendor' %]
+>> SOW Details
+
+Vendor Address:
+[%+ cgi.param('sow_vendor_address') %]
+
+Vendor Email for Legal Notices:
+[%+ cgi.param('sow_vendor_email') %]
+
+Mozilla Contact:
+[%+ cgi.param('sow_vendor_mozcontact') %]
+
+Vendor Contact and Email Address:
+[%+ cgi.param('sow_vendor_contact') %]
+
+Vendor Services to be Provided:
+[%+ cgi.param('sow_vendor_services') %]
+
+Access to Mozilla Systems Required:
+[%+ cgi.param('sow_vendor_mozilla_systems') %]
+
+[% IF cgi.param('sow_vendow_mozilla_systems') == 'Yes' %]
+Mozilla Systems Access Explanation:
+[%+ cgi.param('sow_vendor_mozilla_systems_explain') %]
+[% END %]
+
+Vendor Onsite at Mozilla Location:
+[%+ cgi.param('sow_vendor_onsite') %]
+
+[% IF cgi.param('sow_vendor_onsite') == 'Yes' %]
+Where and When Vendor will be Onsite:
+[%+ cgi.param('sow_vendor_onsite_where') %]
+[% END %]
+
+Description of Deliverables:
+[%+ cgi.param('sow_vendor_deliverables') %]
+
+Start Date:
+[%+ cgi.param('sow_start_date') %]
+
+End Date:
+[%+ cgi.param('sow_end_date') %]
+
+Rate of Pay:
+[%+ cgi.param('sow_vendor_payment') %]
+
+Basis for Payment:
+[%+ cgi.param('sow_vendor_payment_basis') %]
+
+Cap on reimbursement expenses:
+[%+ cgi.param('sow_vendor_cap_expenses') %]
+
+Average/Maximum Hours:
+[%+ cgi.param('sow_vendor_hours') %]
+
+Payment Schedule:
+[%+ cgi.param('sow_vendor_payment_schedule') %]
+
+Total Not to Exceed Amount:
+[%+ cgi.param('sow_vendor_total_max') %]
+
+Any Special Terms:
+[%+ cgi.param('sow_vendor_special_terms') || 'None' %]
+
+Where will the services be provided?:
+[%+ cgi.param('vendor_services_where') %]
 [% END %]
index 736daad319f37a29416ebac9688fb87651906678..daf900a5eccc727229f1df912c501b02b1484231 100644 (file)
 [% PROCESS global/header.html.tmpl
    title = "Mozilla Project Review"
    generate_api_token = 1
-   style_urls = [ 'extensions/MozProjectReview/web/style/moz_project_review.css' ]
+   style_urls = [ 'skins/custom/create_bug.css',
+                  'extensions/MozProjectReview/web/style/moz_project_review.css'
+                  'js/jquery/plugins/datetimepicker/datetimepicker.css' ]
    javascript_urls = [ 'js/field.js', 'js/util.js',
                        'extensions/MozProjectReview/web/js/moz_project_review.js' ]
-   yui = [ 'calendar' ]
+   jquery = ["datetimepicker" ]
 %]
 
+<div id="custom_form_list">
+  <div id="custom_form_list_text">
+    Other task-specific [% terms.bug %] forms exist that should be used if appropriate:
+    <ul>
+      <li><a href="enter_bug.cgi?product=Mozilla%20Foundation%20Operations">Mozilla Foundation Vendor Request</a></li>
+      <li><a href="form.name.clearance">Name Clearance Request</a></li>
+      <li><a href="form.nda">NDA Request</a></li>
+    </ul>
+  </div>
+</div>
+
 <p>
-  <strong>Please use this form for submitting a Mozilla Project Review</strong>
-  If you have a [% terms.bug %] to file, go <a href="enter_bug.cgi">here</a>.
+  <strong>Please use this form for submitting a contract request, spend approval request and/or vendor review request.</strong>
 </p>
 
 <p>
   <span class="required_explanation">Required Field</span>)
 </p>
 
-<form method="post" action="post_bug.cgi" id="mozProjectForm" enctype="multipart/form-data"
-      onSubmit="return MPR.validateAndSubmit();">
-  <input type="hidden" id="product" name="product" value="mozilla.org">
-  <input type="hidden" id="component" name="component" value="Project Review">
+<form method="post" action="post_bug.cgi" id="mozProjectForm" enctype="multipart/form-data">
+  <input type="hidden" id="product" name="product" value="Legal">
+  <input type="hidden" id="component" name="component" value="General">
   <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="version" name="version" value="unspecified">
   <input type="hidden" id="format" name="format" value="moz-project-review">
   <input type="hidden" id="bug_severity" name="bug_severity" value="normal">
   <input type="hidden" id="groups" name="groups" value="mozilla-employee-confidential">
+  <input type="hidden" id="short_desc" name="short_desc" value="">
   <input type="hidden" id="token" name="token" value="[% token FILTER html %]">
 
   <div id="initial_questions">
     <div class="header">Initial Questions</div>
 
-    <div id="project_feature_summary_row" class="field_row">
-      <span class="field_label required">Project/Feature Name:</span>
+    <div id="contract_type_row" class="field_row">
+      <span class="field_label required">What are you doing?:</span>
+      <span class="field_data">
+        <div class="field_description">Select one from the list</div>
+        <select name="contract_type" id="contract_type">
+          <option value="">Select One</option>
+          <option value="Engaging a new vendor company">Engaging a new vendor company</option>
+          <option value="Engaging an individual (independent contractor, temp agency worker, incorporated)">Engaging an individual (independent contractor, temp agency worker, incorporated)</option>
+          <option value="Adding a new SOW with a vendor">Adding a new SOW with a vendor</option>
+          <option value="Extending a SOW or renewing a contract">Extending an SOW or renewing a contract</option>
+          <option value="Purchasing software">Purchasing software</option>
+          <option value="Purchasing hardware">Purchasing hardware</option>
+          <option value="Signing up for an online service">Signing up for an online service</option>
+          <option value="An agreement with a partner">An agreement with a partner</option>
+          <option value="Other">Other</option>
+        </select>
+        <br>
+        <input type="text" name="contract_type_other" id="contract_type_other" size="60" style="display:none;">
+      </span>
+    </div>
+
+    <div id="description_row" class="field_row">
+      <span class="field_label required">Description:</span>
       <span class="field_data">
-        <div class="field_description">Be brief yet descriptive as possible. Include name of product, 
-          feature, or name of vendor involved as well if appropriate.</div>
-        <input type="text" name="short_desc" id="short_desc" size="60" maxsize="255">
+        <div class="field_description">
+          Expand on the request, but most needed information will be requested in later questions.
+        </div>
+        <textarea name="comment" id="comment" rows="10" cols="80"></textarea>
       </span>
     </div>
 
-    <div id="tracking_id_row" class="field_row">
-      <span class="field_label">Tracking [% terms.Bug %] ID:</span>
+    <div id="other_party_row" class="field_row">
+      <span class="field_label required">Vendor/Contractor/Partner Name:</span>
       <span class="field_data">
-        <div class="field_description">Master tracking [% terms.bug %] number (if it exists)?</div>
-        <input type="text" name="tracking_id" id="tracking_id" size="60">
+        <div class="field_description">Name of other party involved</div>
+        <input type="text" name="other_party" id="other_party" size="60">
       </span>
     </div>
 
-    <div id="contacts_row" class="field_row">
-      <span class="field_label required">Points of Contact:</span>
+    <div id="cc_row" class="field_row">
+      <span class="field_label">Cc:</span>
       <span class="field_data">
-        <div class="field_description">Who are the points of contact for this review?</div>
         [% INCLUDE global/userselect.html.tmpl
            id       => "cc"
            name     => "cc"
-           value    => ""
            size     => 60
            classes  => ["bz_userfield"]
            multiple => 5
       </span>
     </div>
 
-    <div id="description_row" class="field_row">
-      <span class="field_label required">Description:</span>
-      <span class="field_data">
-        <div class="field_description">Please provide a short description of the feature / application / project / 
-          business relationship (e.g. problem solved, use cases, etc.)</div>
-        <textarea name="description" id="description" rows="10" cols="80"></textarea>
-      </span>
-    </div>
-
-    <div id="additional_row" class="field_row">
-      <span class="field_label">Additional Information:</span>
-      <span class="field_data">
-        <div class="field_description">Please provide links to additional information (e.g. feature page, wiki)
-          if available and not yet included in feature description.)</div>
-        <textarea name="additional" id="additional" rows="10" cols="80"></textarea>
-      </span>
-    </div>
-
     <div id="key_initiative_row" class="field_row">
       <span class="field_label required">Key Initiative:</span>
       <span class="field_data">
-        <div class="field_description">Which key initiative does this support?</div>
+        <div class="field_description">
+          Which key initiative does this support?
+        </div>
         <select name="key_initiative" id="key_initiative">
           <option value="">Select One</option>
           <option value="Business Support">Business Support</option>
           <option value="Content Services">Content Services</option>
           <option value="Firefox Desktop">Firefox Desktop</option>
           <option value="Firefox Mobile">Firefox Mobile</option>
-          <option value="Firefox OS">Firefox OS</option>
           <option value="Firefox Platform">Firefox Platform</option>
-          <option value="Labs / Research / H3">Labs / Research / H3</option>
-          <option value="Marketplace / Apps">Marketplace / Apps</option>
-          <option value="Services: Persona">Services: Persona</option>
-          <option value="Services: Social API">Services: Social API</option>
-          <option value="Services: UP">Services: UP</option>
-          <option value="Services: WebRTC">Services: WebRTC</option>
+          <option value="Labs/Research/H3">Labs/Research/H3</option>
           <option value="Other">Other</option>
         </select>
-      </span>
-    </div>
-
-    <div id="key_initiative_other_row" class="field_row bz_default_hidden">
-      <span class="field_label">&nbsp;</span>
-      <span class="field_data">
-        <input type="text" name="key_initiative_other" id="key_initiative_other" size="60">
-      </span>
-    </div>
-
-    <div id="release_date_row" class="field_row">
-      <span class="field_label required">Release Date:</span>
-      <span class="field_data">
-        <div class="field_description">What is your overall key release / launch date / go live date?</div>
-        <input name="release_date" size="20" id="release_date" value=""
-               onchange="updateCalendarFromField(this)">
-        <button type="button" class="calendar_button"
-                id="button_calendar_release_date"
-                onclick="showCalendar('release_date')">
-        <span>Calendar</span>
-      </button>
-      <div id="con_calendar_release_date"></div>
-      <script type="text/javascript">
-        createCalendar('release_date')
-      </script>
-      </span>
-    </div>
-
-    <div id="project_status_row" class="field_row">
-      <span class="field_label required">Project Status:</span>
-      <span class="field_data">
-        <div class="field_description">What is the current state of your project?</div>
-        <select name="project_status" id="project_status">
-          <option value="">Select One</option>
-          <option value="future">Future project under discussion</option>
-          <option value="active">Active planning</option>
-          <option value="development">Development</option>
-          <option value="ready">Ready to launch/commit</option>
-          <option value="launched">Already launched/committed</option>
-        </select>
+        <br>
+        <input type="text" name="key_initiative_other" id="key_initiative_other" size="60" style="display:none;">
       </span>
     </div>
 
     <div id="mozilla_data_row" class="field_row">
-      <span class="field_label required">Mozilla Data:</span>
+      <span class="field_label required">Data Access</span>
       <span class="field_data">
-        <div class="field_description">Does this product/service/project access, interact with, or store Mozilla
-          (customer, contributor, user, employee) data? Example of such data includes
-          email addresses, first and last name, addresses, phone numbers, credit card data.)</div>
+        <div class="field_description">
+          Will the vendor or the vendor's systems access, interact with, or
+          store customer, contributor, user, or employee data? Examples of such
+          data include email addresses, first and last name, addresses, phone
+          numbers, credit card data.)
+        </div>
         <select name="mozilla_data" id="mozilla_data">
           <option value="">Select One</option>
+          <option value="Don't Know">Don't Know</option>
           <option value="Yes">Yes</option>
           <option value="No">No</option>
         </select>
+        <div id="mozilla_data_explain_row" style="display:none;">
+          <div class="field_description required">
+            If yes, please explain
+          </div>
+          <textarea name="mozilla_data_explain" id="mozilla_data_explain" rows="10" cols="80"></textarea>
+        </div>
      </span>
     </div>
 
-    <div id="mozilla_related_row" class="field_row">
-      <span class="field_label">Mozilla Related:</span>
+    <div id="vendor_cost_row" class="field_row">
+      <span class="field_label required">Vendor Cost:</span>
       <span class="field_data">
-        <div class="field_description">What Mozilla products/services/projects does this product/service/project 
-          integrate with or relate to?</div>
-        <input type="text" name="mozilla_related" id="mozilla_related" size="60">
+        <div class="field_description">
+          What is the anticipated cost of the vendor relationship? (Entire Contract Cost, not monthly cost)
+        </div>
+        <select name="vendor_cost" id="vendor_cost">
+          <option value="">Select One</option>
+          <option value="&lt; $25,000 PO Needed">&lt; $25,000 PO Needed</option>
+          <option value="&lt; $25,000 No PO Needed">&lt; $25,000 No PO Needed</option>
+          <option value="&gt; $25,000">&gt; $25,000</option>
+        </select>
       </span>
     </div>
 
-    <div id="separate_party_row" class="field_row">
-      <span class="field_label required">Separate Party:</span>
+    <div id="timeframe_row" class="field_row">
+      <span class="field_label required">Time Frame For Completion:</span>
       <span class="field_data">
-        <div class="field_description">Hardware Purchases,
-          Vendor agreements, NDAs, Contracts etc</div>
-        <select name="separate_party" id="separate_party">
+        <div class="field_description">What is the desired time frame to have this completed.</div>
+        <select name="timeframe" id="timeframe">
           <option value="">Select One</option>
-          <option value="Yes">Yes</option>
-          <option value="No">No</option>
+          <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="will take a while but please start soon">
+            will take a while but please start soon</option>
+          <option value="no rush" selected>no rush</option>
         </select>
       </span>
     </div>
 
-    <div id="initial_separate_party_questions" class="bz_default_hidden">
-      <div id="relation_type_row" class="field_row">
-        <span class="field_label required">Type of Relationship:</span>
-        <span class="field_data">
-          <div class="field_description">What type of relationship?</div>
-          <select name="relationship_type" id="relationship_type">
-            <option value="">Select One</option>
-            <option value="Hardware Purchase">Hardware Purchase</option>
-            <option value="Vendor/Services">Vendor/Services</option>
-            <option value="Firefox Distribution/Bundling">Firefox Distribution/Bundling</option>
-            <option value="Search">Search</option>
-            <option value="NDA">NDA</option>
-            <option value="Other">Other</option>
-          </select>
-        </span>
-      </div>
-
-      <div id="data_access_row" class="field_row">
-        <span class="field_label required">Data Access:</span>
-        <span class="field_data">
-          <div class="field_description">Will the other party have access to Mozilla (customer, contributor, user,
-            employee) data? (If this is for an NDA, choose no)</div>
-          <select name="data_access" id="data_access">
-            <option value="">Select One</option>
-            <option value="Yes">Yes</option>
-            <option value="No">No</option>
-          </select>
-        </span>
-      </div>
-
-      <div id="privacy_policy_row" class="field_row">
-        <span class="field_label">Privacy Policy:</span>
-        <span class="field_data">
-          <div class="field_description">What is the url for their privacy policy?</div>
-          <input type="text" name="privacy_policy" id="privacy_policy" size="60">
-        </span>
-      </div>
-
-      <div id="vendor_cost_row" class="field_row">
-        <span class="field_label required">Vendor Cost:</span>
-        <span class="field_data">
-          <div class="field_description">What is the anticipated cost of the vendor relationship?
-            (Entire Contract Cost, not monthly cost)</div>
-          <select name="vendor_cost" id="vendor_cost">
-            <option value="">Select One</option>
-            <option value="N/A">N/A</option>
-            <option value="&lt;= $25,000">&lt;= $25,000</option>
-            <option value="&gt; $25,000">&gt; $25,000</option>
-          </select>
-        </span>
-      </div>
-
-      <div id="po_needed_row" class="field_row bz_default_hidden">
-        <span class="field_label required">PO Needed?:</span>
-        <span class="field_data">
-            <select name="po_needed" id="po_needed">
-            <option value="">Select One</option>
-            <option value="Yes">Yes</option>
-            <option value="No">No</option>
-          </select>
-        </span>
-      </div>
-    </div>
-  </div>
-
-  <div id="sec_review_questions" class="bz_default_hidden">
-    <div class="header">Security Review</div>
-
-    <div id="sec_review_affects_products_row">
-      <span class="field_label">Affects Products:</span>
+    <div id="contract_priority_row" class="field_row">
+      <span class="field_label required">Priority:</span>
       <span class="field_data">
-        <div class="field_description">Does this feature or code change affect Firefox, Thunderbird or any 
-          product or service the Mozilla ships to end users?</div>
-        <select name="sec_affects_products" id="sec_affects_products">
+        <div class="field_description">Priority to your team</div>
+        <select name="contract_priority" id="contract_priority">
           <option value="">Select One</option>
-          <option value="Yes">Yes</option>
-          <option value="No">No</option>
+          <option value="high">High</option>
+          <option value="medium">Medium</option>
+          <option value="low">Low</option>
         </select>
       </span>
     </div>
 
-    <div id="sec_review_date_row" class="field_row">
-      <span class="field_label">Review Due Date:</span>
+    <div id="internal_org_row" class="field_row">
+      <span class="field_label required">Internal Organization:</span>
       <span class="field_data">
-        <div class="field_description">When would you like the review to be completed?
-          (<a href="https://mail.mozilla.com/home/ckoenig@mozilla.com/Security%20Review.html"
-              target="_blank">more info</a>)</div>
-        <input name="sec_review_date" size="20" id="sec_review_date" value=""
-               onchange="updateCalendarFromField(this)">
-        <button type="button" class="calendar_button"
-                id="button_calendar_sec_review_date"
-                onclick="showCalendar('sec_review_date')">
-        <span>Calendar</span>
-      </button>
-      <div id="con_calendar_sec_review_date"></div>
-      <script type="text/javascript">
-        createCalendar('sec_review_date')
-      </script>
+        <select id="internal_org" name="internal_org">
+          <option value="">Select One</option>
+          <option value="Firefox">Firefox</option>
+          <option value="Connected Devices">Connected Devices</option>
+          <option value="Emerging Technologies">Emerging Technologies</option>
+          <option value="Innovation">Innovation</option>
+          <option value="Marketing">Marketing</option>
+          <option value="BD/Legal/Policy">BD/Legal/Policy</option>
+          <option value="Finance &amp; Accounting">Finance &amp; Accounting</option>
+          <option value="WPR">WPR</option>
+          <option value="IT">IT</option>
+          <option value="People">People</option>
+          <option value="Internal Comms">Internal Comms</option>
+          <option value="Metrics">Metrics</option>
+          <option value="Other">Other</option>
+        </select>
       </span>
     </div>
 
-    <div id="sec_review_invitees_row" class="field_row">
-      <span class="field_label">Review Invitees:</span>
+    <div id="total_cost_row" class="field_row" style="display:none;">
+      <span class="field_label required">Total Cost:</span>
       <span class="field_data">
-        <div class="field_description">Whom should be invited to the review?</div>
-        <input type="text" name="sec_review_invitees" id="sec_review_invitees" size="60">
+        <div class="field_description">
+          Please enter the total cost if a one time payment or the total for the entire
+          contract term if monthly or annual payments
+        </div>
+        <input type="text" name="total_cost" id="total_cost" size="60">
       </span>
     </div>
 
-    <div id="sec_review_extra_row" class="field_row">
-      <span class="field_label">Extra Information:</span>
+    <div id="attachment_row" class="field_row">
+      <span class="field_label">Attachment:</span>
       <span class="field_data">
-        <div class="field_description">If you feel something is missing here or you would like to provide other 
-          kind of feedback, feel free to do so here?</div>
-        <textarea name="sec_review_extra" id="sec_review_extra" rows="10" cols="80"></textarea>
-      </span>
+      <div class="field_description">
+        Upload any supporting document as draft SOW, quote, order form, etc.
+      </div>
+      <input type="file" id="attachment" name="data" size="50"><br>
+      <input type="hidden" name="contenttypemethod" value="autodetect">
+      <div class="field_description">Description</div>
+      <input type="text" name="description" id="description" size="30">
     </div>
   </div>
 
-  <div id="data_compliance_questions" class="bz_default_hidden">
-    <div class="header">Data Compliance</div>
-
-    <div id="data_comp_request_type_row" class="field_row">
-      <span class="field_label required">Type of request</span>
-      <span class="field_data">
-        <select id="data_comp_request_type" name="data_comp_request_type">
-          <option value="">-- Select --</option>
-          <option value="General">General</option>
-          <option value="Data Compliance">Data Compliance</option>
-          <option value="Vendor Review">Vendor Review</option>
-          <option value="Privacy Policy">Privacy Policy</option>
-          <option value="Other">Other</option>
-        </select>
-      </span>
-    </div>
+  <div id="independent_contractor_questions" style="display:none">
+    <div class="header">Independent Contractor Questions</div>
 
-    <div class="data_comp_area_row">
-      <span class="field_label required">Area</span>
+    <div id="independent_contractor_prev_work_row" class="field_row">
+      <span class="field_label required">Previous Work:</span>
       <span class="field_data">
-        <select id="data_comp_area" name="data_comp_area">
-          <option value="">-- Select --</option>
-          <option value="Firefox">Firefox</option>
-          <option value="Cloud Services">Cloud Services</option>
-          <option value="FxOS">FxOS</option>
-          <option value="Foundation">Foundation</option>
-          <option value="Engagement">Engagement</option>
-          <option value="IT">IT</option>
-          <option value="Content Services">Content Services</option>
-          <option value="Platform">Platform</option>
-          <option value="Other">Other</option>
+        <div class="field_description">Is this someone we've worked with before?</div>
+        <select name="independent_contractor_prev_work" id="independent_contractor_prev_work">
+          <option value="">Select One</option>
+          <option value="Yes">Yes</option>
+          <option value="No">No</option>
         </select>
-      </span>
-    </div>
-
-    <div id="data_comp_description_row">
-      <span class="field_label required">Description</span>
-      <span class="field_data">
-        <div class="field_description">
-          Describe the data compliance issue: If your request involves changes
-          or additional data collection, please describe that collection,
-          including specific fields, where the data will be stored, how long it
-          will be stored, and who will have access to the data.
+        <div id="independent_contractor_prev_work_bug_row" style="display:none;">
+          <div class="field_description required">
+            If yes, enter the [% terms.bug %] number for the previous work or note that this is a former employee
+          </div>
+          <input type="text" name="independent_contractor_prev_work_bug" id="independent_contractor_prev_work_bug" size="30">
         </div>
-        <textarea name="data_comp_desc" id="data_comp_desc" rows="10" cols="60"
-                  class="wide"></textarea>
       </span>
     </div>
 
-    <div id="data_comp_urgency_row">
-      <span class="field_label required">Urgency</span>
+    <div id="independent_contractor_incorporated_row" class="field_row">
+      <span class="field_label required">Incorporated:</span>
       <span class="field_data">
-        <select id="data_comp_urgency" name="data_comp_urgency">
-          <option value="">-- Select --</option>
-          <option value="blocker">blocker</option>
-          <option value="critical">critical</option>
-          <option value="major">major</option>
-          <option value="normal">normal</option>
-          <option value="minor">minor</option>
-          <option value="trivial">trivial</option>
-          <option value="enhancement">enhancement</option>
+        <div class="field_description">Has this person incorporated (sole proprietorship or similar form)?</div>
+        <select name="independent_contractor_incorporated" id="independent_contractor_incorporated">
+          <option value="">Select One</option>
+          <option value="Yes">Yes</option>
+          <option value="No">No</option>
         </select>
       </span>
     </div>
 
-    <div id="data_comp_handling_change_row">
-      <span class="field_label required">Collection/Handling Change</span>
+    <div id="independent_contractor_staff_agency_row" class="field_row">
+      <span class="field_label required">Staffing Agency:</span>
       <span class="field_data">
-        <div class="field_description">
-          Does this request involve a change in data collection or handling?
-        </div>
-        <select id="data_comp_handling_change" name="data_comp_handling_change">
-          <option value="">-- Select --</option>
+        <div class="field_description">Will the person be engaged through a staffing agency?</div>
+        <select name="independent_contractor_staff_agency" id="independent_contractor_staff_agency">
+          <option value="">Select One</option>
           <option value="Yes">Yes</option>
           <option value="No">No</option>
         </select>
       </span>
     </div>
 
-    <div id="data_comp_practice_change_row">
-      <span class="field_label required">Practice Change</span>
+    <div id="independent_contractor_other_clients_row" class="field_row">
+      <span class="field_label required">Other Clients:</span>
       <span class="field_data">
-        <div class="field_description">
-          Does this request involve a change in to the business unit's data practices?
-        </div>
-        <select id="data_comp_practice_change" name="data_comp_practice_change">
-          <option value="">-- Select --</option>
+        <div class="field_description">Does the person have other clients?</div>
+        <select name="independent_contractor_other_clients" id="independent_contractor_other_clients">
+          <option value="">Select One</option>
           <option value="Yes">Yes</option>
           <option value="No">No</option>
         </select>
       </span>
     </div>
 
-    <div id="data_comp_other_row">
-      <span class="field_label">Other</span>
+    <div id="independent_contractor_dupe_services_row" class="field_row">
+      <span class="field_label required">Duplicate Services:</span>
       <span class="field_data">
-        <div class="field_description">
-          Please include any additional information, including links to relevant
-          material, details regarding user benefit, etc.
+        <div class="field_description">Does the person provide services similar to a paid Mozilla employee?</div>
+        <select name="independent_contractor_dupe_services" id="independent_contractor_dupe_services">
+          <option value="">Select One</option>
+          <option value="Yes">Yes</option>
+          <option value="No">No</option>
+        </select>
+        <div id="independent_contractor_dupe_services_temp_row" style="display:none;">
+          <div class="field_description required">
+            If yes, is the person primarily being engaged due to a temporary increase in workload or as backfill for an employee on leave?
+          </div>
+          <select name="independent_contractor_dupe_services_temp" id="independent_contractor_dupe_services_temp">
+            <option value="">Select One</option>
+            <option value="Yes">Yes</option>
+            <option value="No">No</option>
+          </select>
         </div>
-        <textarea name="data_comp_other" id="data_comp_other" rows="10" cols="60"
-                  class="wide"></textarea>
       </span>
     </div>
-  </div>
-
-  <div id="legal_questions" class="bz_default_hidden">
-    <div class="header">Legal</div>
 
-    <div id="legal_priority_row" class="field_row">
-      <span class="field_label required">Priority:</span>
+    <div id="independent_contractor_self_manage_row" class="field_row">
+      <span class="field_label required"a>Self Managed:</span>
       <span class="field_data">
-        <div class="field_description">Priority to your team</div>
-        <select name="legal_priority" id="legal_priority">
+        <div class="field_description">Will the person be managing his or her own time?</div>
+        <select name="independent_contractor_self_manage" id="independent_contractor_self_manage">
           <option value="">Select One</option>
-          <option value="high">High</option>
-          <option value="medium">Medium</option>
-          <option value="low">Low</option>
+          <option value="Yes">Yes</option>
+          <option value="No">No</option>
         </select>
       </span>
     </div>
 
-    <div id="legal_timeframe_row" class="field_row">
-      <span class="field_label required">Time Frame For Completion<br>of Legal Portion?:</span>
+-    <div id="independent_contractor_own_equipment_row" class="field_row">
+      <span class="field_label required">Own Equipment:</span>
       <span class="field_data">
-        <div class="field_description">What is the desired time frame to have the legal component/involvement completed.</div>
-        <select name="legal_timeframe" id="legal_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="will take a while but please start soon">
-            will take a while but please start soon</option>
-          <option value="no rush" selected>no rush</option>
+        <div class="field_description">Will the person be using his or her own equipment?</div>
+        <select name="independent_contractor_own_equipment" id="independent_contractor_own_equipment">
+          <option value="">Select One</option>
+          <option value="Yes">Yes</option>
+          <option value="No">No</option>
         </select>
       </span>
     </div>
 
-    <div id="legal_cc_row" class="field_row">
-      <span class="field_label">Cc:</span>
+     <div id="independent_contractor_mozilla_facility_row" class="field_row">
+      <span class="field_label required">Mozilla Facility:</span>
       <span class="field_data">
-        [% INCLUDE global/userselect.html.tmpl
-           id       => "legal_cc"
-           name     => "legal_cc"
-           value    => ""
-           size     => 60
-           classes  => ["bz_userfield"]
-           multiple => 5
-        %]
+        <div class="field_description">Will the person be regularly working at a Mozilla facility?</div>
+        <select name="independent_contractor_mozilla_facility" id="independent_contractor_mozilla_facility">
+          <option value="">Select One</option>
+          <option value="Yes">Yes</option>
+          <option value="No">No</option>
+        </select>
       </span>
     </div>
 
-    <div id="legal_other_party_row" class="field_row">
-      <span class="field_label">Other Party:</span>
+    <div id="independent_contractor_supervising_row" class="field_row">
+      <span class="field_label required">Supervise Mozilla Employees:</span>
       <span class="field_data">
-        <div class="field_description">Name of other party involved</div>
-        <input type="text" name="legal_other_party" id="legal_other_party" size="60">
+        <div class="field_description">Will the person be supervising Mozilla employees?</div>
+        <select name="independent_contractor_supervising" id="independent_contractor_supervising">
+          <option value="">Select One</option>
+          <option value="Yes">Yes</option>
+          <option value="No">No</option>
+        </select>
       </span>
     </div>
+  </div>
 
-    <div id="legal_help_from_legal_row" class="field_row">
-      <span class="field_label required">What help do you<br>need from Legal?</span>
-      <span class="field_data">
-        <div class="field_description">
-          Please explain specifically what help you need from Legal. If none, put "No Legal help needed."</div>
-        <textarea name="legal_help_from_legal" id="legal_help_from_legal" rows="10" cols="80"></textarea>
-      </span>
-    </div>
+  <div id="contract_specific_questions">
+    <div class="header">Contract Specific Questions</div>
 
-    <div id="legal_sow_questions" class="bz_default_hidden">
+    <div id="sow_details" style="display:none;">
       <div class=field_row">
         <span class="field_label">SOW Details:</span>
         <span class="field_data">
           Please provide the following information for the SOW
-         </span>
-      </div>
-
-      <div id="legal_sow_vendor_name_row" class="field_row">
-        <span class="field_label required">Legal Vendor Name:</span>
-        <span class="field_data">
-          <input type="text" name="legal_sow_vendor_name" id="legal_sow_vendor_name" size="60">
         </span>
       </div>
 
-      <div id="legal_sow_vendor_address_row" class="field_row">
+      <div id="sow_vendor_address_row" class="field_row">
         <span class="field_label required">Vendor Address:</span>
         <span class="field_data">
-          <textarea name="legal_sow_vendor_address" id="legal_sow_vendor_address" rows="10" cols="80"></textarea>
+          <textarea name="sow_vendor_address" id="sow_vendor_address" rows="10" cols="80"></textarea>
         </span>
       </div>
 
-      <div id="legal_sow_vendor_email_row" class="field_row">
-        <span class="field_label required">Vendor Email for Notices:</span>
+      <div id="sow_vendor_email_row" class="field_row">
+        <span class="field_label required">Vendor Email for Legal Notices:</span>
         <span class="field_data">
-          <input type="text" name="legal_sow_vendor_email" id="legal_sow_vendor_email" size="60">
+          <input type="text" name="sow_vendor_email" id="sow_vendor_email" size="60">
         </span>
       </div>
 
-      <div id="legal_sow_vendor_mozcontact_row" class="field_row">
+      <div id="sow_vendor_mozcontact_row" class="field_row">
         <span class="field_label required">Main Mozilla Contact:</span>
         <span class="field_data">
           [% INCLUDE global/userselect.html.tmpl
-             id       => "legal_sow_vendor_mozcontact"
-             name     => "legal_sow_vendor_mozcontact"
-             value    => ""
+             id       => "sow_vendor_mozcontact"
+             name     => "sow_vendor_mozcontact"
              size     => 60
              classes  => ["bz_userfield"]
-             multiple => 5
           %]
         </span>
       </div>
 
-      <div id="legal_sow_vendor_contact_row" class="field_row">
+      <div id="sow_vendor_contact_row" class="field_row">
         <span class="field_label required">Main Vendor Contact and Email:</span>
         <span class="field_data">
-          <input type="text" name="legal_sow_vendor_contact" id="legal_sow_vendor_contact" size="60">
+          <input type="text" name="sow_vendor_contact" id="sow_vendor_contact" size="60">
         </span>
       </div>
 
-      <div id="legal_sow_vendor_services_row" class="field_row">
+      <div id="sow_vendor_services_row" class="field_row">
         <span class="field_label required">Vendor Services to be Provided:</span>
         <span class="field_data">
-          <textarea name="legal_sow_vendor_services" id="legal_sow_vendor_services" rows="10" cols="80"></textarea>
+          <textarea name="sow_vendor_services" id="sow_vendor_services" rows="10" cols="80"></textarea>
+        </span>
+      </div>
+
+      <div id="sow_vendor_mozilla_systems_row" class="field_row">
+        <span class="field_label required">Mozilla Systems:</span>
+        <span class="field_data">
+          <div class="field_description">
+            Will vendor require access to Mozilla systems (e.g. workday, email, google docs, servers)?
+          </div>
+          <select name="sow_vendor_mozilla_systems" id="sow_vendor_mozilla_systems">
+            <option value="">Select One</option>
+            <option value="Yes">Yes</option>
+            <option value="No">No</option>
+          </select>
+          <div id="sow_vendor_mozilla_systems_explain_row" style="display:none;">
+            <div class="field_description required">
+              If yes, please explain
+            </div>
+            <textarea name="sow_vendor_mozilla_systems_explain" id="sow_vendor_mozilla_systems_explain" rows="10" cols="80"></textarea>
+          </div>
+        </span>
+      </div>
+
+      <div id="sow_vendor_onsite_row" class="field_row">
+        <span class="field_label required">Vendor Onsite:</span>
+        <span class="field_data">
+          <div class="field_description">
+            Will vendor be physically onsite at a Mozilla office?
+          </div>
+          <select name="sow_vendor_onsite" id="sow_vendor_onsite">
+            <option value="">Select One</option>
+            <option value="Yes">Yes</option>
+            <option value="No">No</option>
+          </select>
+          <div id="sow_vendor_onsite_where_row" style="display:none;">
+            <div class="field_description required">
+              If yes, where and when?
+            </div>
+            <textarea name="sow_vendor_onsite_where" id="sow_vendor_onsite_where" rows="10" cols="80"></textarea>
+          </div>
         </span>
       </div>
 
-      <div id="legal_sow_vendor_deliverables_row" class="field_row">
+      <div id="sow_vendor_deliverables_row" class="field_row">
         <span class="field_label required">Description of Deliverables:</span>
         <span class="field_data">
-          <textarea name="legal_sow_vendor_deliverables" id="legal_sow_vendor_deliverables" rows="10" cols="80"></textarea>
+          <textarea name="sow_vendor_deliverables" id="sow_vendor_deliverables" rows="10" cols="80"></textarea>
         </span>
       </div>
 
-      <div id="legal_sow_start_date_row" class="field_row">
+      <div id="sow_start_date_row" class="field_row">
         <span class="field_label required">Start Date:</span>
         <span class="field_data">
-          <input name="legal_sow_start_date" size="20" id="legal_sow_start_date" value=""
-                 onchange="updateCalendarFromField(this)">
-          <button type="button" class="calendar_button"
-                  id="button_calendar_legal_sow_start_date"
-                  onclick="showCalendar('legal_sow_start_date')">
-            <span>Calendar</span>
-          </button>
-          <div id="con_calendar_legal_sow_start_date"></div>
-          <script type="text/javascript">
-            createCalendar('legal_sow_start_date')
-          </script>
+          <input class="date-field" name="sow_start_date" id="sow_start_date">
+          <img class="date-field-img" id="sow_start_date-img"
+               src="extensions/BugModal/web/calendar.png" width="16" height="16">
         </span>
       </div>
 
-      <div id="legal_sow_end_date_row" class="field_row">
+      <div id="sow_end_date_row" class="field_row">
         <span class="field_label required">End Date:</span>
         <span class="field_data">
-          <input name="legal_sow_end_date" size="20" id="legal_sow_end_date" value=""
-                 onchange="updateCalendarFromField(this)">
-          <button type="button" class="calendar_button"
-                  id="button_calendar_legal_sow_end_date"
-                  onclick="showCalendar('legal_sow_end_date')">
-            <span>Calendar</span>
-          </button>
-          <div id="con_calendar_legal_sow_end_date"></div>
-          <script type="text/javascript">
-            createCalendar('legal_sow_end_date')
-          </script>
+          <input class="date-field" name="sow_end_date" id="sow_end_date">
+          <img class="date-field-img" id="sow_end_date-img"
+               src="extensions/BugModal/web/calendar.png" width="16" height="16">
         </span>
       </div>
-      
-      <div id="legal_sow_vendor_payment_row" class="field_row">
+
+      <div id="sow_vendor_payment_row" class="field_row">
         <span class="field_label required">Rate of Pay:</span>
         <span class="field_data">
           <div class="field_description">Include currency</div>
-          <input type="text" name="legal_sow_vendor_payment" id="legal_sow_vendor_payment" size="60">
+          <input type="text" name="sow_vendor_payment" id="sow_vendor_payment" size="60">
         </span>
       </div>
 
-      <div id="legal_sow_vendor_payment_basis_row" class="field_row">
+      <div id="sow_vendor_payment_basis_row" class="field_row">
         <span class="field_label required">Basis for Payment:</span>
         <span class="field_data">
-          <div class="field_description">hourly, flat fee, per deliverable, etc.</div>
-          <input type="text" name="legal_sow_vendor_payment_basis" id="legal_sow_vendor_payment_basis" size="60">
+          <div class="field_description">hourly, flat fee, per deliverable, per milestone, etc.</div>
+          <input type="text" name="sow_vendor_payment_basis" id="sow_vendor_payment_basis" size="60">
+        </span>
+      </div>
+
+      <div id="sow_vendor_cap_expenses_row" class="field_row">
+        <span class="field_label required">Cap on reimbursable expenses, if any:</span>
+        <span class="field_data">
+          <input type="text" name="sow_vendor_cap_expenses" id="sow_vendor_cap_expenses" size="60">
         </span>
       </div>
 
-      <div id="legal_sow_vendor_hours_row" class="field_row">
-        <span class="field_label">Average/Max Hours:</span>
+      <div id="sow_vendor_hours_row" class="field_row">
+        <span class="field_label">Max Hours/Week (and average if different):</span>
         <span class="field_data">
-          <div class="field_description">If hourly, either average or maximum hours per week/month</div>
-          <input type="text" name="legal_sow_vendor_hours" id="legal_sow_vendor_hours" size="60">
+          <div class="field_description">If paid hourly</div>
+          <input type="text" name="sow_vendor_hours" id="sow_vendor_hours" size="60">
         </span>
       </div>
 
-      <div id="legal_sow_vendor_payment_schedule_row" class="field_row">
+      <div id="sow_vendor_payment_schedule_row" class="field_row">
         <span class="field_label required">Payment Schedule:</span>
         <span class="field_data">
-          <div class="field_description">"When will we make payments? E.g. every 30 days; half due up front, 
+          <div class="field_description">When will we make payments? E.g. every 30 days; half due up front,
             half on completion; following acceptance of each deliverable, etc.</div>
-          <input type="text" name="legal_sow_vendor_payment_schedule" id="legal_sow_vendor_payment_schedule" size="60">
+          <input type="text" name="sow_vendor_payment_schedule" id="sow_vendor_payment_schedule" size="60">
         </span>
       </div>
 
-      <div id="legal_sow_vendor_total_max_row" class="field_row">
+      <div id="sow_vendor_total_max_row" class="field_row">
         <span class="field_label required">Total Not to Exceed Amount:</span>
         <span class="field_data">
-          <input type="text" name="legal_sow_vendor_total_max" id="legal_sow_vendor_total_max" size="60">
+          <input type="text" name="sow_vendor_total_max" id="sow_vendor_total_max" size="60">
         </span>
       </div>
 
-      <div id="legal_sow_vendor_special_terms_row" class="field_row">
+      <div id="sow_vendor_special_terms_row" class="field_row">
         <span class="field_label">Any Special Terms:</span>
         <span class="field_data">
-          <textarea name="legal_sow_vendor_special_terms" id="legal_sow_vendor_special_terms" rows="10" cols="80"></textarea>
+          <textarea name="sow_vendor_special_terms" id="sow_vendor_special_terms" rows="10" cols="80"></textarea>
         </span>
       </div>
+    </div>
 
-      <div id="legal_sow_vendor_product_line_row" class="field_row">
-        <span class="field_label required">Product Line:</span>
-        <span class="field_data">
-          <select id="legal_sow_vendor_product_line" name="legal_sow_vendor_product_line">
-            <option value="">Select One</option>
-            <option value="Firefox OS">Firefox OS</option>
-            <option value="Firefox Desktop">Firefox Desktop</option>
-            <option value="Firefox Mobile">Firefox Mobile</option>
-            <option value="Firefox Platform">Firefox Platform</option>
-            <option value="Marketplace/Apps">Marketplace/Apps</option>
-            <option value="Lab/Research">Lab/Research</option>
-            <option value="Services">Services</option>
-            <option value="Product Support">Product Support</option>
-            <option value="Corp Support">Corp Support</option>
-          </select>
-        </span>
-      </div>
+    <div id="vendor_services_where_row" class="field_row">
+      <span class="field_label required">Where will the services be provided?:</span>
+      <span class="field_data">
+        <input type="text" name="vendor_services_where" id="vendor_services_where" size="60">
+      </span>
     </div>
-    
-    <div id="legal_vendor_services_where_row" class="field_row bz_default_hidden">
-      <span class="field_label required">Vendor Services Location:</span>
+  </div>
+
+  <div id="sec_review_questions" style="display:none">
+    <div class="header">Vendor Security Review</div>
+
+    <div id="sec_review_invitees_row" class="field_row">
+      <span class="field_label">Review Invitees:</span>
       <span class="field_data">
-        <div class="field_description">Where will the services primarily be provided?</div>
-        <select name="legal_vendor_services_where" id="legal_vendor_services_where">
-          <option value="">Select One</option>
-          <option value="U.S.">U.S.</option>
-          <option value="Europe">Europe</option>
-          <option value="Canada">Canada</option>
-          <option value="Global">Global</option>
-          <option value="Another region of the world">Another region of the world</option>
-          <option value="A single country">A single country</option>
-        </select>
-        <br>
-        <input class="bz_default_hidden" type="text"
-               name="legal_vendor_single_country" id="legal_vendor_single_country" size="60">
+        <div class="field_description">Whom should be invited to the review?</div>
+        <input type="text" name="sec_review_invitees" id="sec_review_invitees" size="60">
+      </span>
+    </div>
+
+    <div id="sec_review_extra_row" class="field_row">
+      <span class="field_label">Extra Information:</span>
+      <span class="field_data">
+        <div class="field_description">
+          Please add any additional information related to data handling by the Vendor you think the security team should know.
+        </div>
+        <textarea name="sec_review_extra" id="sec_review_extra" rows="10" cols="80"></textarea>
       </span>
     </div>
   </div>
 
-  <div id="finance_questions" class="bz_default_hidden">
+  <div id="finance_questions" style="display:none">
     <div class="header">Finance</div>
 
-     <div id="finance_purchase_vendor_row" class="field_row">
-       <span class="field_label required">Vendor:</span>
-       <span class="field_data">
-         <input type="text" name="finance_purchase_vendor" maxsize="255" size="60" id="finance_purchase_vendor">
-       </span>
-     </div>
-
     <div id="finance_purchase_inbudget_row" class="field_row">
       <span class="field_label required">Is this line item in budget?:</span>
       <span class="field_data">
       </span>
     </div>
 
-    <div id="finance_purchase_urgency_row" class="field_row">
-      <span class="field_label required">When do the items need<br>to be purchased by?:</span>
-      <span class="field_data">
-        <select name="finance_purchase_urgency" id="finance_purchase_urgency">
-          <option value="3 to 5 days">3 to 5 days</option>
-          <option value="7 to 10 days">7 to 10 days</option>
-          <option value="two weeks">two weeks</option>
-          <option value="no rush" selected>no rush</option>
-        </select>
-      </span>
-    </div>
-
     <div id="finance_shipment_address_row" class="field_row">
       <span class="field_label">What is the shipment address<br>(if applicable)?:</span>
       <span class="field_data">
         <textarea name="finance_shipment_address" id="finance_shipment_address" rows="10" cols="80"></textarea>
       </span>
     </div>
-
-    <div id="finance_purchase_cost_row" class="field_row">
-      <span class="field_label required">Total Cost:</span>
-      <span class="field_data">
-        <div class="field_description">Please include currency type (e.g. USD, EUR)</div>
-        <input type="text" name="finance_purchase_cost" id="finance_purchase_cost" size="60">
-      </span>
-    </div>
   </div>
 
   <input type="submit" id="commit" value="Submit Review">
 </form>
 
 <p>
-  Thanks for contacting us. You will be notified by email of any progress made in resolving your request.
+  Thanks for contacting us. Legal, Finance, and Security [% terms.bugs %] will be opened
+  so those teams can work with you on this request.
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
diff --git a/extensions/MozProjectReview/template/en/default/bug/create/initial-questions-comment.txt.tmpl b/extensions/MozProjectReview/template/en/default/bug/create/initial-questions-comment.txt.tmpl
new file mode 100644 (file)
index 0000000..9b880af
--- /dev/null
@@ -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.
+  #%]
+>> Initial Questions
+
+Description:
+[%+ cgi.param('comment') %]
+
+Key Initiative:
+[%+ cgi.param('key_initiative') == 'Other' ? cgi.param('key_initiative_other') : cgi.param('key_initiative') %]
+
+Mozilla Data:
+[%+ cgi.param('mozilla_data') %]
+
+[% IF cgi.param('mozilla_data') == 'Yes' %]
+Mozilla Data Explanation:
+[%+ cgi.param('mozilla_data_explain') %]
+[% END %]
+
+Type of Contract:
+[%+ cgi.param('contract_type') %]
+
+Vendor Cost:
+[%+ cgi.param('vendor_cost') %]
+
+Time Frame For Completion:
+[%+ cgi.param('timeframe') %]
+
+Priority:
+[%+ cgi.param('contract_priority') %]
+
+Internal Organization:
+[%+ cgi.param('internal_org') %]
+
+[% IF cgi.param('total_cost') %]
+Total Cost:
+[%+ cgi.param('total_cost') %]
+[% END %]
index e2a198e2ae50f2900633b92b9877e996e5c5ce9d..3d1caf528a564a0f9bde372afe09722c793b2649 100644 (file)
  * defined by the Mozilla Public License, v. 2.0.
  */
 
-var Dom = YAHOO.util.Dom;
-var Event = YAHOO.util.Event;
-
-var MPR = {
-    required_fields: {
+$(function() {
+    'use strict';
+    var required_fields = {
         "initial_questions": {
-            "short_desc": "Please enter a value for project or feature name in the initial questions section",
-            "cc": "Please enter a value for points of contact in the initial questions section",
-            "key_initiative": "Please select a value for key initiative in the initial questions section",
-            "release_date": "Please enter a value for release date in the initial questions section",
-            "project_status": "Please select a value for project status in the initial questions section",
-            "mozilla_data": "Please select a value for mozilla data in the initial questions section",
-            "separate_party": "Please select a value for separate party in the initial questions section"
+            "comment": "Please enter a value for description in the initial questions section.",
+            "key_initiative": "Please select a value for key initiative in the initial questions section.",
+            "contract_type": "Please select a value for contract type in the initial questions section.",
+            "mozilla_data": "Please select a value for mozilla data in the initial questions section.",
+            "vendor_cost": "Please select a value for vendor cost in the initial questions section.",
+            "timeframe": "Please select a value for timeframe in the initial questions section.",
+            "contract_priority": "Please select a value for priority in the initial questions section.",
+            "internal_org": "Please select a value for the internal organization in the initial questions section."
         },
-        "finance_questions": {
-            "finance_purchase_vendor": "Please enter a value for vendor in the finance questions section",
-            "finance_purchase_what": "Please enter a value for what in the finance questions section",
-            "finance_purchase_why": "Please enter a value for why in the finance questions section",
-            "finance_purchase_risk": "Please enter a value for risk in the finance questions section",
-            "finance_purchase_alternative": "Please enter a value for alternative in the finance questions section",
-            "finance_purchase_inbudget": "Please enter a value for in budget in the finance questions section",
-            "finance_purchase_urgency": "Please select a value for urgency in the finance questions section",
-            "finance_purchase_cost": "Please enter a value for total cost in the finance questions section"
+        "key_initiative_other": {
+            "key_initiative_other": "Please enter a value for other key initiative in the initial questions section."
+        },
+        "mozilla_data_explain_row": {
+            "mozilla_data_explain": "Please enter a value for mozilla data access explanation in the initial questions section."
+        },
+        "contract_type_other": {
+            "contract_type_other": "Please enter a value for other contract type in the initial questions section."
+        },
+        "contract_specific_questions": {
+            "other_party": "Please enter a value for vendor name in the contract specific questions.",
+            "vendor_services_where": "Please enter a value for the where the services will be provided in the contract specific questions.",
+        },
+        "independent_contractor_questions": {
+            "independent_contractor_prev_work": "Please select a value for previous work in the independent contractor section.",
+            "independent_contractor_incorporated": "Please select a value for incorporated in the independent contractor section.",
+            "independent_contractor_staff_agency": "Please select a value for staffing agency in the independent contractor section.",
+            "independent_contractor_other_clients": "Please select a value for other clients in the independent contractor section.",
+            "independent_contractor_dupe_services": "Please select a value for in the independent contractor section.",
+            "independent_contractor_self_manage": "Please select a value for self management of time in the independent contractor section.",
+            "independent_contractor_own_equipment": "Please select a value for use of contractors own equipment in the independent contractor section.",
+            "independent_contractor_mozilla_facility": "Please select a value for use of Mozilla facility in the independent contractor section.",
+            "independent_contractor_supervising": "Please select a value for contractor supervising Mozilla employees in the independent contractor section.",
+        },
+        "independent_contractor_prev_work_bug_row": {
+            "independent_contractor_prev_work_bug": "Please enter a value for previous work bug id in the independent contractor section."
+        },
+        "independent_contractor_dupe_services_temp_row": {
+            "independent_contractor_dupe_services_temp": "Please select a value for temporarily need duplicate services in the independent contractor section."
+        },
+        "sow_details": {
+            "sow_vendor_address": "Please enter a value for SOW vendor address.",
+            "sow_vendor_email": "Please enter a value for SOW vendor email for notices.",
+            "sow_vendor_contact": "Please enter a value for SOW vendor contact and email address.",
+            "sow_vendor_services": "Please enter a value for SOW vendor services description.",
+            "sow_vendor_deliverables": "Please enter a value for SOW vendor deliverables description.",
+            "sow_start_date": "Please enter a value for SOW vendor start date.",
+            "sow_end_date": "Please enter a value for SOW vendor end date.",
+            "sow_vendor_payment": "Please enter a value for SOW vendor payment amount.",
+            "sow_vendor_payment_basis": "Please enter a value for SOW vendor payment basis.",
+            "sow_vendor_cap_expenses": "Please enter a value for SOW cap on reimbursable expenses.",
+            "sow_vendor_payment_schedule": "Please enter a value for SOW vendor payment schedule.",
+            "sow_vendor_total_max": "Please enter a value for SOW vendor maximum total to be paid.",
         },
-        "legal_questions": {
-            "legal_priority": "Please select a value for priority in the legal questions section",
-            "legal_timeframe": "Please select a value for timeframe in the legal questions section",
-            "legal_help_from_legal": "Please describe the help needed from the Legal department"
+        "sow_vendor_mozilla_systems_explain_row": {
+            "sow_vendor_mozilla_systems_explain": "Please enter a value for SOW vendor explanation for use of mozilla systems."
         },
-        "legal_sow_questions": {
-            "legal_sow_vendor_name": "Please enter a value for SOW legal vendor name",
-            "legal_sow_vendor_address": "Please enter a value for SOW vendor address",
-            "legal_sow_vendor_email": "Please enter a value for SOW vendor email for notices",
-            "legal_sow_vendor_mozcontact": "Please enter a value for SOW Mozilla contact",
-            "legal_sow_vendor_contact": "Please enter a value for SOW vendor contact and email address",
-            "legal_sow_vendor_services": "Please enter a value for SOW vendor services description",
-            "legal_sow_vendor_deliverables": "Please enter a value for SOW vendor deliverables description",
-            "legal_sow_start_date": "Please enter a value for SOW vendor start date",
-            "legal_sow_end_date": "Please enter a value for SOW vendor end date",
-            "legal_sow_vendor_payment": "Please enter a value for SOW vendor payment amount",
-            "legal_sow_vendor_payment_basis": "Please enter a value for SOW vendor payment basis",
-            "legal_sow_vendor_payment_schedule": "Please enter a value for SOW vendor payment schedule",
-            "legal_sow_vendor_total_max": "Please enter a value for SOW vendor maximum total to be paid",
-            "legal_sow_vendor_product_line": "Please enter a value for SOW vendor product line"
+        "sow_vendor_onsite_where_row": {
+            "sow_vendor_onsite_where": "Please enter a value for SOW vendor onsite where and when."
         },
-        "data_compliance_questions": {
-            "data_comp_request_type": "Please select a value for the data compliance request type",
-            "data_comp_area": "Please select a value for the data compliance area",
-            "data_comp_desc": "Please enter a value for the data compliance description",
-            "data_comp_handling_change": "Please select a value for the data compliance handling change",
-            "data_comp_practice_change": "Please select a value for the data compliance practice change"
+        "finance_questions": {
+            "finance_purchase_inbudget": "Please enter a value for in budget in the finance questions section.",
+            "finance_purchase_what": "Please enter a value for what in the finance questions section.",
+            "finance_purchase_why": "Please enter a value for why in the finance questions section.",
+            "finance_purchase_risk": "Please enter a value for risk in the finance questions section.",
+            "finance_purchase_alternative": "Please enter a value for alternative in the finance questions section.",
+        },
+        "total_cost_row": {
+            "total_cost": "Please enter a value for total cost"
         }
-    },
+    };
 
-    select_inputs: [
+    var select_inputs = [
+        'contract_type',
+        'independent_contractor_prev_work',
+        'independent_contractor_dupe_services',
         'key_initiative',
-        'project_status',
         'mozilla_data',
-        'separate_party',
-        'relationship_type',
-        'data_access',
         'vendor_cost',
-        'po_needed',
-        'sec_affects_products',
-        'legal_priority',
-        'legal_sow_vendor_product_line',
-        'legal_vendor_services_where',
-        'finance_purchase_urgency'
-    ],
-
-    init: function () {
+        'sow_vendor_mozilla_systems',
+        'sow_vendor_onsite'
+    ];
+
+    function init() {
         // Bind the updateSections function to each of the inputs desired
-        for (var i = 0, l = this.select_inputs.length; i < l; i++) {
-            Event.on(this.select_inputs[i], 'change', MPR.updateSections);
+        for (var i = 0, l = select_inputs.length; i < l; i++) {
+            $('#' + select_inputs[i]).change(updateSections);
         }
-        MPR.updateSections();
-    },
+        updateSections();
+        $('#mozProjectForm').submit(validateAndSubmit);
+    }
 
-    fieldValue: function (id) {
-        var field = Dom.get(id);
-        if (!field) return '';
-        if (field.type == 'text' 
-            || field.type == 'textarea')
-        {
-            return field.value;
-        }
-        return field.options[field.selectedIndex].value;
-    },
-
-    updateSections: function () {
-        // Sections that will be hidden/shown based on the input values
-        // Start out as all false except for initial questions which is always visible
-        var page_sections = {
-            initial_questions: true,
-            key_initiative_other_row: false,
-            initial_separate_party_questions: false,
-            finance_questions: false,
-            po_needed_row: false,
-            legal_questions: false,
-            legal_sow_questions: false,
-            legal_vendor_single_country: false,
-            legal_vendor_services_where_row: false,
-            sec_review_questions: false,
-            data_compliance_questions: false,
-        };
-
-        if (MPR.fieldValue('key_initiative') == 'Other') {
-            page_sections.key_initiative_other_row = true;
-        }
-
-        if (MPR.fieldValue('mozilla_data') == 'Yes') {
-            page_sections.legal_questions = true;
-            page_sections.data_compliance_questions = true;
-            page_sections.sec_review_questions = true;
-        }
-
-        if (MPR.fieldValue('separate_party') == 'Yes') {
-            page_sections.initial_separate_party_questions = true;
-
-            if (MPR.fieldValue('relationship_type')
-                && MPR.fieldValue('relationship_type') != 'Hardware Purchase')
-            {
-                page_sections.legal_questions = true;
-            }
+    function updateSections(e) {
+        if ($('#key_initiative').val() == 'Other') {
+            $('#key_initiative_other').show();
+            if ($(e.target).attr('id') == 'key_initiative') $('#key_initiative_other').focus();
+        } else {
+            $('#key_initiative_other').hide();
+        }
 
-            if (MPR.fieldValue('relationship_type') == 'Vendor/Services'
-                || MPR.fieldValue('relationship_type') == 'Firefox Distribution/Bundling')
-            {
-                page_sections.legal_sow_questions = true;
-                page_sections.legal_vendor_services_where_row = true;
-            }
+        if ($('#vendor_cost').val() == '< $25,000 PO Needed'
+            || $('#vendor_cost').val() == '> $25,000')
+        {
+            $('#finance_questions').show();
+        } else {
+            $('#finance_questions').hide();
+        }
 
-            if (MPR.fieldValue('relationship_type') == 'Hardware Purchase') {
-                page_sections.finance_questions = true;
-            }
+        var do_sec_review = [
+            'Engaging a new vendor company',
+            'Adding a new SOW with a vendor',
+            'Extending an SOW or renewing a contract',
+            'Purchasing software',
+            'Signing up for an online service',
+            'Other'
+        ];
+        var contract_type = $('#contract_type').val();
+        if ((contract_type && $.inArray(contract_type, do_sec_review) >= 0)
+            || $('#mozilla_data').val() == 'Yes')
+        {
+            $('#sec_review_questions').show();
 
-            if (MPR.fieldValue('data_access') == 'Yes') {
-                page_sections.legal_questions = true;
-                page_sections.sec_review_questions = true;
-                page_sections.data_compliance_questions = true;
-            }
+        } else {
+            $('#sec_review_questions').hide();
+        }
 
-            if (MPR.fieldValue('vendor_cost') == '<= $25,000') {
-                page_sections.po_needed_row = true;
-            }
+        if ($('#mozilla_data').val() == 'Yes') {
+            $('#mozilla_data_explain_row').show();
+            if ($(e.target).attr('id') == 'mozilla_data') $('#mozilla_data_explain').focus();
 
-            if (MPR.fieldValue('po_needed') == 'Yes') {
-                page_sections.finance_questions = true;
-            }
+        } else {
+            $('#mozilla_data_explain_row').hide();
+        }
 
-            if (MPR.fieldValue('vendor_cost') == '> $25,000') {
-                page_sections.finance_questions = true;
-            }
+        if (contract_type == 'Other') {
+            $('#contract_type_other').show();
+            if ($(e.target).attr('id') == 'contract_type') $('#contract_type_other').focus();
+        }
+        else {
+            $('#contract_type_other').hide();
         }
 
-        if (MPR.fieldValue('legal_vendor_services_where') == 'A single country') {
-            page_sections.legal_vendor_single_country = true;
+        if (contract_type == 'Engaging a new vendor company'
+            || contract_type == 'Engaging an individual (independent contractor, temp agency worker, incorporated)'
+            || contract_type == 'Adding a new SOW with a vendor')
+        {
+            $('#sow_details').show();
+        }
+        else {
+            $('#sow_details').hide();
         }
 
-        // Toggle the individual page_sections
-        for (section in page_sections) {
-            MPR.toggleShowSection(section, page_sections[section]);
+        if (contract_type == "Extending a SOW or renewing a contract"
+            || contract_type == "Purchasing software"
+            || contract_type == "Purchasing hardware"
+            || contract_type == "Signing up for an online service"
+            || contract_type == "Other")
+        {
+            $('#total_cost_row').show();
+        }
+        else {
+            $('#total_cost_row').hide();
         }
-    },
 
-    toggleShowSection: function (section, show) {
-        if (show) {
-            Dom.removeClass(section, 'bz_default_hidden');
+        if (contract_type == 'Engaging an individual (independent contractor, temp agency worker, incorporated)') {
+            $('#independent_contractor_questions').show();
         }
         else {
-            Dom.addClass(section ,'bz_default_hidden');
-        }
-    },
-
-    validateAndSubmit: function () {
-        var alert_text = '';
-        var section = '';
-        for (section in this.required_fields) {
-            if (!Dom.hasClass(section, 'bz_default_hidden')) {
-                var field = '';
-                for (field in MPR.required_fields[section]) {
-                    if (!MPR.isFilledOut(field)) {
-                        alert_text += this.required_fields[section][field] + "\n";
-                    }
-                }
-            }
+           $('#independent_contractor_questions').hide();
         }
 
-        // Special case checks
-        if (MPR.fieldValue('relationship_type') == 'Vendor/Services'
-            && MPR.fieldValue('legal_vendor_services_where') == '')
-        {
-            alert_text += "Please select a value for vendor services where\n";
+        if ($('#independent_contractor_prev_work').val() == 'Yes') {
+            $('#independent_contractor_prev_work_bug_row').show();
+            if ($(e.target).attr('id') == 'independent_contractor_prev_work')
+                $('#independent_contractor_prev_work_bug').focus();
+        }
+        else {
+            $('#independent_contractor_prev_work_bug_row').hide();
         }
 
-        if (MPR.fieldValue('relationship_type') == 'Vendor/Services'
-            && MPR.fieldValue('legal_vendor_services_where') == 'A single country'
-            && MPR.fieldValue('legal_vendor_single_country') == '')
-        {
-            alert_text += "Please select a value for vendor services where single country\n";
+        if ($('#independent_contractor_dupe_services').val() == 'Yes') {
+            $('#independent_contractor_dupe_services_temp_row').show();
+            if ($(e.target).attr('id') == 'independent_contractor_dupe_services')
+                $('#independent_contractor_dupe_services_temp').focus();
+        }
+        else {
+            $('#independent_contractor_dupe_services_temp_row').hide();
         }
 
-        if (MPR.fieldValue('key_initiative') == 'Other') {
-            if (!MPR.isFilledOut('key_initiative_other')) {
-                alert_text += "Please enter a value for key initiative in the initial questions section\n";
-            }
+        if ($('#sow_vendor_mozilla_systems').val() == 'Yes') {
+            $('#sow_vendor_mozilla_systems_explain_row').show();
+            if ($(e.target).attr('id') == 'sow_vendor_mozilla_systems')
+                $('#sow_vendor_mozilla_systems_explain').focus();
+        }
+        else {
+            $('#sow_vendor_mozilla_systems_explain_row').hide();
         }
 
-        if (MPR.fieldValue('separate_party') == 'Yes') {
-            if (!MPR.isFilledOut('relationship_type')) {
-                alert_text += "Please select a value for type of relationship\n";
-            }
-            if (!MPR.isFilledOut('data_access')) {
-                alert_text += "Please select a value for data access\n";
-            }
-            if (!MPR.isFilledOut('vendor_cost')) {
-                alert_text += "Please select a value for vendor cost\n";
-            }
+        if ($('#sow_vendor_onsite').val() == 'Yes') {
+            $('#sow_vendor_onsite_where_row').show();
+            if ($(e.target).attr('id') == 'sow_vendor_onsite')
+                $('#sow_vendor_onsite_where').focus();
+        }
+        else {
+            $('#sow_vendor_onsite_where_row').hide();
         }
+    }
 
-        if (MPR.fieldValue('vendor_cost') == '<= $25,000'
-            && MPR.fieldValue('po_needed') == '')
-        {
-            alert_text += "Please select whether a PO is needed or not\n";
+    function validateAndSubmit(e) {
+        var alert_text = '',
+            section    = '',
+            field      = '';
+        for (section in required_fields) {
+            if ($('#' + section).is(':visible')) {
+                for (field in required_fields[section]) {
+                    if (!isFilledOut(field)) {
+                        alert_text += required_fields[section][field] + "\n";
+                    }
+                }
+            }
         }
 
         if (alert_text) {
@@ -237,16 +236,53 @@ var MPR = {
             return false;
         }
 
+        $('#short_desc').val('Contract for ' +
+                             $('#contract_type').val() +
+                             ' with ' +
+                             $('#other_party').val());
+
+        var component_map = {
+            "Engaging a new vendor company,": "Vendor/Services",
+            "Adding a new SOW with a vendor": "Vendor/Services",
+            "Extending a SOW or renewing a contract": "Vendor/Services",
+            "Purchasing hardware": "Vendor/Services",
+            "Other": "Vendor/Services",
+            "Engaging an individual (independent contractor, temp agency worker, incorporated)": "Independent Contractor Agreement",
+            "An agreement with a partner": "Firefox Distribution or Other Partner Agreement",
+            "Purchasing software": "License Review",
+            "Signing up for an online service" : "License Review"
+        }
+
+        var contract_type = $('#contract_type').val();
+        if (component_map[contract_type]) {
+            $('#component').val(component_map[contract_type]);
+        }
+
         return true;
-    },
+    }
 
     //Takes a DOM element id and makes sure that it is filled out
-    isFilledOut: function (elem_id)  {
-        var str = MPR.fieldValue(elem_id);
-        return str.length > 0 ? true : false;
+    function isFilledOut(id)  {
+        if (!id) return false;
+        var str = $('#' + id).val();
+        if (!str || str.length == 0) return false;
+        return true;
     }
-};
 
-Event.onDOMReady(function () {
-    MPR.init();
+    // date pickers
+    $('.date-field').datetimepicker({
+        format: 'Y-m-d',
+        datepicker: true,
+        timepicker: false,
+        scrollInput: false,
+        lazyInit: false,
+        closeOnDateSelect: true
+    });
+    $('.date-field-img')
+        .click(function(event) {
+            var id = $(event.target).attr('id').replace(/-img$/, '');
+            $('#' + id).datetimepicker('show');
+        })
+
+    init();
 });
index cf1c3a8b8c5afb1b45ad05ea42e45675771494b8..fb6d73845d94a3770796c5c6a4a89cfd28a2410a 100644 (file)
   color: rgb(102, 100, 88);
 }
 
-span.required:before {
+.required:before {
   content: "* ";
 }
 
-span.required:before, span.required_star {
+.required:before, .required_star {
   color: red;
 }