diff --git a/db/cats_schema.sql b/db/cats_schema.sql index 09d98616a..d78b05570 100755 --- a/db/cats_schema.sql +++ b/db/cats_schema.sql @@ -167,6 +167,7 @@ CREATE TABLE `candidate` ( `phone_cell` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `phone_work` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `address` text COLLATE utf8_unicode_ci, + `address2` text COLLATE utf8_unicode_ci, `city` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `state` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `zip` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, @@ -436,9 +437,9 @@ insert into `career_portal_template`(`career_portal_template_id`,`career_portal insert into `career_portal_template`(`career_portal_template_id`,`career_portal_name`,`setting`,`value`) values (72,'CATS 2.0','Content - Questionnaire','
\r\n\r\n

\r\n
\r\n\r\n
\r\n
'); insert into `career_portal_template`(`career_portal_template_id`,`career_portal_name`,`setting`,`value`) values (73,'CATS 2.0','Content - Job Details','
\r\n \r\n

Position Details: </h1>\r\n <table id=\"detailsTable\">\r\n <tr>\r\n <td class=\"detailsHeader\"><strong>Location:</strong></td>\r\n <td><city>, <state></td>\r\n </tr>\r\n <tr>\r\n <td class=\"detailsHeader\"><strong>Openings:</strong></td>\r\n <td><openings></td>\r\n </tr>\r\n <tr>\r\n <td class=\"detailsHeader\"><strong>Salary Range:</strong></td>\r\n <td><salary></td>\r\n </tr>\r\n </table>\r\n <div id=\"descriptive\">\r\n <p><strong>Description:</strong></p>\r\n <description>\r\n </div>\r\n <div id=\"detailsTools\">\r\n <h2>Perform an action:</h2>\r\n <a-applyToJob onmouseover=\"buttonMouseOver(\'applyToPosition\',true);\" onmouseout=\"buttonMouseOver(\'applyToPosition\',false);\"><img src=\"images/careers_apply.gif\" id=\"applyToPosition\" alt=\"IMAGE: Apply to Position\" /></a>\r\n </div>\r\n </div>'); insert into `career_portal_template`(`career_portal_template_id`,`career_portal_name`,`setting`,`value`) values (74,'CATS 2.0','Content - Thanks for your Submission','<div id=\"careerContent\">\r\n <h1>Application Submitted For: <title></h1>\r\n <div id=\"descriptive\">\r\n <p>Please check your email inbox — You should receive an email confirmation of your application.</p>\r\n <p>Thank you for submitting your application to us. We will review it shortly and make contact with you soon.</p>\r\n </div>\r\n <div id=\"detailsTools\">\r\n <h2>Perform an action:</h2>\r\n <ul>\r\n <li><a href=\"\">Visit our website</a></li>\r\n </ul>\r\n </div>\r\n </div>'); -insert into `career_portal_template`(`career_portal_template_id`,`career_portal_name`,`setting`,`value`) values (75,'CATS 2.0','Content - Apply for Position','<div id=\"careerContent\">\r\n <h1>Applying to: <title></h1>\r\n <div class=\"applyBoxLeft\">\r\n <div><h3>1. Import Resume (or CV) and Populate Fields</h3></div>\r\n <table>\r\n <tr>\r\n <td>\r\n \r\n <input-resumeUploadPreview>\r\n </td>\r\n </tr>\r\n </table>\r\n <br />\r\n\r\n <div><h3>2. Tell us about yourself</h3></div>\r\n <p class=\"instructions\">All fields marked with asterisk (*) are required.</p>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"firstNameLabel\" for=\"firstName\">*First Name:</label></td>\r\n <td><input-firstName></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"lastNameLabel\" for=\"lastName\">*Last Name:</label></td>\r\n <td><input-lastName></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"emailLabel\" for=\"email\">*Email Adddress:</label></td>\r\n <td><input-email></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"emailConfirmLabel\" for=\"emailconfirm\">*Confirm Email:</label></td>\r\n <td><input-emailconfirm></td>\r\n </tr>\r\n </table>\r\n </div>\r\n \r\n <div class=\"applyBoxRight\">\r\n <div><h3>3. How may we contact you?</h3></div>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"homePhoneLabel\" for=\"homePhone\">Home Phone:</label></td>\r\n <td><input-phone-home></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"mobilePhoneLabel\" for=\"mobilePhone\">Mobile Phone:</label></td>\r\n <td><input-phone-cell></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"workPhoneLabel\" for=\"workPhone\">Work Phone:</label></td>\r\n <td><input-phone></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"bestTimeLabel\" for=\"bestTime\">*Best time to call:</label></td>\r\n <td><input-best-time-to-call></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"mailingAddressLabel\" for=\"mailingAddress\">Mailing Address:</label></td>\r\n <td><input-address></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"cityProvinceLabel\" for=\"cityProvince\">*City/Province:</label></td>\r\n <td><input-city></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"stateCountryLabel\" for=\"stateCountry\">*State/Country:</label></td>\r\n <td><input-state></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"zipPostalLabel\" for=\"zipPostal\">*Zip/Postal Code:</label></td>\r\n <td><input-zip></td>\r\n </tr>\r\n </table>\r\n <br />\r\n <div><h3>4. Additional Information</h3></div>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"keySkillsLabel\" for=\"keySkills\">*Key Skills:</label></td>\r\n <td><input-keySkills></td>\r\n </tr>\r\n <tr>\r\n <td> </td>\r\n <td><img src=\"images/careers_submit.gif\" onmouseover=\"buttonMouseOver(\'submitApplicationNow\',true)\" onmouseout=\"buttonMouseOver(\'submitApplicationNow\',false)\" style=\"cursor: pointer;\" id=\"submitApplicationNow\" alt=\"Submit Application Now\" onclick=\"if (applyValidate()) { document.applyToJobForm.submit(); }\" /></td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>'); +insert into `career_portal_template`(`career_portal_template_id`,`career_portal_name`,`setting`,`value`) values (75,'CATS 2.0','Content - Apply for Position','<div id=\"careerContent\">\r\n <h1>Applying to: <title></h1>\r\n <div class=\"applyBoxLeft\">\r\n <div><h3>1. Import Resume (or CV) and Populate Fields</h3></div>\r\n <table>\r\n <tr>\r\n <td>\r\n \r\n <input-resumeUploadPreview>\r\n </td>\r\n </tr>\r\n </table>\r\n <br />\r\n\r\n <div><h3>2. Tell us about yourself</h3></div>\r\n <p class=\"instructions\">All fields marked with asterisk (*) are required.</p>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"firstNameLabel\" for=\"firstName\">*First Name:</label></td>\r\n <td><input-firstName></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"lastNameLabel\" for=\"lastName\">*Last Name:</label></td>\r\n <td><input-lastName></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"emailLabel\" for=\"email\">*Email Adddress:</label></td>\r\n <td><input-email></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"emailConfirmLabel\" for=\"emailconfirm\">*Confirm Email:</label></td>\r\n <td><input-emailconfirm></td>\r\n </tr>\r\n </table>\r\n </div>\r\n \r\n <div class=\"applyBoxRight\">\r\n <div><h3>3. How may we contact you?</h3></div>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"homePhoneLabel\" for=\"homePhone\">Home Phone:</label></td>\r\n <td><input-phone-home></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"mobilePhoneLabel\" for=\"mobilePhone\">Mobile Phone:</label></td>\r\n <td><input-phone-cell></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"workPhoneLabel\" for=\"workPhone\">Work Phone:</label></td>\r\n <td><input-phone></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"bestTimeLabel\" for=\"bestTime\">*Best time to call:</label></td>\r\n <td><input-best-time-to-call></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"mailingAddressLabel\" for=\"mailingAddress\">Mailing Address:</label></td>\r\n <td><input-address></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"mailingAddress2Label\" for=\"mailingAddress2\">Mailing Address 2:</label></td>\r\n <td><input-address2></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"cityProvinceLabel\" for=\"cityProvince\">*City/Province:</label></td>\r\n <td><input-city></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"stateCountryLabel\" for=\"stateCountry\">*State/Country:</label></td>\r\n <td><input-state></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"zipPostalLabel\" for=\"zipPostal\">*Zip/Postal Code:</label></td>\r\n <td><input-zip></td>\r\n </tr>\r\n </table>\r\n <br />\r\n <div><h3>4. Additional Information</h3></div>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"keySkillsLabel\" for=\"keySkills\">*Key Skills:</label></td>\r\n <td><input-keySkills></td>\r\n </tr>\r\n <tr>\r\n <td> </td>\r\n <td><img src=\"images/careers_submit.gif\" onmouseover=\"buttonMouseOver(\'submitApplicationNow\',true)\" onmouseout=\"buttonMouseOver(\'submitApplicationNow\',false)\" style=\"cursor: pointer;\" id=\"submitApplicationNow\" alt=\"Submit Application Now\" onclick=\"if (applyValidate()) { document.applyToJobForm.submit(); }\" /></td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>'); insert into `career_portal_template`(`career_portal_template_id`,`career_portal_name`,`setting`,`value`) values (76,'CATS 2.0','Content - Candidate Registration','<div id=\"careerContent\">\r\n <h1><applyContent>Applying to <title></applyContent></h1>\r\n <center>\r\n <table cellpadding=\"0\" cellspacing=\"0\">\r\n <tr>\r\n <td><label id=\"emailLabel\" for=\"email\"><h2>Enter your e-mail address:</h2></label></td>\r\n <td><input-email></td>\r\n </tr>\r\n <tr>\r\n <td align=\"right\" valign=\"top\"><input-new></td>\r\n <td style=\"line-height: 18px;\">\r\n <applyContent>\r\n <strong>I have not registered on this website.</strong><br />\r\n (I haven\'t applied to any jobs online)\r\n </applyContent>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td align=\"right\" valign=\"top\"><input-registered></td>\r\n <td style=\"line-height: 20px;\">\r\n <strong>I have registered before</strong><br />\r\n and my last name is:<br />\r\n <input-lastName><br />\r\n and my zip code is:<br />\r\n <input-zip><br /><br />\r\n <input-rememberMe> Remember my information for future visits<br /><br />\r\n <input-submit><br /><br />\r\n </td>\r\n </tr>\r\n </table>\r\n </center>\r\n</div>\r\n'); -insert into `career_portal_template`(`career_portal_template_id`,`career_portal_name`,`setting`,`value`) values (77,'CATS 2.0','Content - Candidate Profile','<div id=\"careerContent\"> <h1 style=\"padding: 0; margin: 0; border: 0;\">My Profile</h1><h3 style=\"font-weight: normal;\">Any changes you make to your profile will be updated on our website for all past and future jobs you apply for.</h3> <br /> <div class=\"applyBoxLeft\"> <div><h3>1. Tell us about yourself</h3></div> <p class=\"instructions\">All fields marked with asterisk (*) are required.</p> <table> <tr> <td class=\"label\"><label id=\"firstNameLabel\" for=\"firstName\">*First Name:</label></td> <td><input-firstName></td> </tr> <tr> <td class=\"label\"><label id=\"lastNameLabel\" for=\"lastName\">*Last Name:</label></td> <td><input-lastName></td> </tr> <tr> <td class=\"label\"><label id=\"emailLabel\" for=\"email\">*Email Adddress:</label></td> <td><input-email1></td> </tr> <tr> <td colspan=\"2\"> <input-resume> </td> </tr> </table> </div> <div class=\"applyBoxRight\"> <div><h3>2. How may we contact you?</h3></div> <table> <tr> <td class=\"label\"><label id=\"homePhoneLabel\" for=\"homePhone\">Home Phone:</label></td> <td><input-phoneHome></td> </tr> <tr> <td class=\"label\"><label id=\"mobilePhoneLabel\" for=\"mobilePhone\">Mobile Phone:</label></td> <td><input-phoneCell></td> </tr> <tr> <td class=\"label\"><label id=\"workPhoneLabel\" for=\"workPhone\">Work Phone:</label></td> <td><input-phoneWork></td> </tr> <tr> <td class=\"label\"><label id=\"bestTimeLabel\" for=\"bestTime\">*Best time to call:</label></td> <td><input-bestTimeToCall></td> </tr> <tr> <td class=\"label\"><label id=\"mailingAddressLabel\" for=\"mailingAddress\">Mailing Address:</label></td> <td><input-address></td> </tr> <tr> <td class=\"label\"><label id=\"cityProvinceLabel\" for=\"cityProvince\">*City/Province:</label></td> <td><input-city></td> </tr> <tr> <td class=\"label\"><label id=\"stateCountryLabel\" for=\"stateCountry\">*State/Country:</label></td> <td><input-state></td> </tr> <tr> <td class=\"label\"><label id=\"zipPostalLabel\" for=\"zipPostal\">*Zip/Postal Code:</label></td> <td><input-zip></td> </tr> </table> <br /> <div><h3>3. Additional Information</h3></div> <table> <tr> <td class=\"label\"><label id=\"keySkillsLabel\" for=\"keySkills\">*Key Skills:</label></td> <td><input-keySkills></td> </tr> <tr> <td> </td> <td style=\"padding-top: 40px;\"><input-submit></td> </tr> </table> </div></div>'); +insert into `career_portal_template`(`career_portal_template_id`,`career_portal_name`,`setting`,`value`) values (77,'CATS 2.0','Content - Candidate Profile','<div id=\"careerContent\"> <h1 style=\"padding: 0; margin: 0; border: 0;\">My Profile</h1><h3 style=\"font-weight: normal;\">Any changes you make to your profile will be updated on our website for all past and future jobs you apply for.</h3> <br /> <div class=\"applyBoxLeft\"> <div><h3>1. Tell us about yourself</h3></div> <p class=\"instructions\">All fields marked with asterisk (*) are required.</p> <table> <tr> <td class=\"label\"><label id=\"firstNameLabel\" for=\"firstName\">*First Name:</label></td> <td><input-firstName></td> </tr> <tr> <td class=\"label\"><label id=\"lastNameLabel\" for=\"lastName\">*Last Name:</label></td> <td><input-lastName></td> </tr> <tr> <td class=\"label\"><label id=\"emailLabel\" for=\"email\">*Email Adddress:</label></td> <td><input-email1></td> </tr> <tr> <td colspan=\"2\"> <input-resume> </td> </tr> </table> </div> <div class=\"applyBoxRight\"> <div><h3>2. How may we contact you?</h3></div> <table> <tr> <td class=\"label\"><label id=\"homePhoneLabel\" for=\"homePhone\">Home Phone:</label></td> <td><input-phoneHome></td> </tr> <tr> <td class=\"label\"><label id=\"mobilePhoneLabel\" for=\"mobilePhone\">Mobile Phone:</label></td> <td><input-phoneCell></td> </tr> <tr> <td class=\"label\"><label id=\"workPhoneLabel\" for=\"workPhone\">Work Phone:</label></td> <td><input-phoneWork></td> </tr> <tr> <td class=\"label\"><label id=\"bestTimeLabel\" for=\"bestTime\">*Best time to call:</label></td> <td><input-bestTimeToCall></td> </tr> <tr> <td class=\"label\"><label id=\"mailingAddressLabel\" for=\"mailingAddress\">Mailing Address:</label></td> <td><input-address></td> </tr> <tr> <td class=\"label\"><label id=\"mailingAddress2Label\" for=\"mailingAddress2\">Mailing Address 2:</label></td> <td><input-address2></td> </tr> <tr> <td class=\"label\"><label id=\"cityProvinceLabel\" for=\"cityProvince\">*City/Province:</label></td> <td><input-city></td> </tr> <tr> <td class=\"label\"><label id=\"stateCountryLabel\" for=\"stateCountry\">*State/Country:</label></td> <td><input-state></td> </tr> <tr> <td class=\"label\"><label id=\"zipPostalLabel\" for=\"zipPostal\">*Zip/Postal Code:</label></td> <td><input-zip></td> </tr> </table> <br /> <div><h3>3. Additional Information</h3></div> <table> <tr> <td class=\"label\"><label id=\"keySkillsLabel\" for=\"keySkills\">*Key Skills:</label></td> <td><input-keySkills></td> </tr> <tr> <td> </td> <td style=\"padding-top: 40px;\"><input-submit></td> </tr> </table> </div></div>'); /*Table structure for table `career_portal_template_site` */ @@ -461,6 +462,7 @@ CREATE TABLE `company` ( `billing_contact` int(11) DEFAULT NULL, `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `address` text COLLATE utf8_unicode_ci, + `address2` text COLLATE utf8_unicode_ci, `city` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `state` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `zip` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, @@ -490,7 +492,7 @@ CREATE TABLE `company` ( /*Data for the table `company` */ -insert into `company`(`company_id`,`site_id`,`billing_contact`,`name`,`address`,`city`,`state`,`zip`,`phone1`,`phone2`,`url`,`key_technologies`,`notes`,`entered_by`,`owner`,`date_created`,`date_modified`,`is_hot`,`fax_number`,`import_id`,`default_company`) values (1,1,NULL,'Internal Postings','','','','','','','','','',0,0,'2009-11-19 10:00:20','2009-11-19 10:00:20',0,'',NULL,1); +insert into `company`(`company_id`,`site_id`,`billing_contact`,`name`,`address`,`address2`,`city`,`state`,`zip`,`phone1`,`phone2`,`url`,`key_technologies`,`notes`,`entered_by`,`owner`,`date_created`,`date_modified`,`is_hot`,`fax_number`,`import_id`,`default_company`) values (1,1,NULL,'Internal Postings','','','','','','','','','','',0,0,'2009-11-19 10:00:20','2009-11-19 10:00:20',0,'',NULL,1); /*Table structure for table `company_department` */ @@ -521,6 +523,7 @@ CREATE TABLE `contact` ( `phone_cell` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `phone_other` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `address` text COLLATE utf8_unicode_ci, + `address2` text COLLATE utf8_unicode_ci, `city` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `state` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `zip` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, diff --git a/js/addressParser.js b/js/addressParser.js index ad7a9ad13..f298bc2ea 100755 --- a/js/addressParser.js +++ b/js/addressParser.js @@ -70,6 +70,7 @@ function AddressParser_parse(editBoxID, mode, indicatorID, arrowButtonID) var lastNameField = document.getElementById('lastName'); var nameField = document.getElementById('name'); var addressField = document.getElementById('address'); + var address2Field = document.getElementById('address2'); var phoneHomeField = document.getElementById('phoneHome'); var phoneCellField = document.getElementById('phoneCell'); var phoneWorkField = document.getElementById('phoneWork'); @@ -99,6 +100,7 @@ function AddressParser_parse(editBoxID, mode, indicatorID, arrowButtonID) if (lastNameField) lastNameField.value = ''; if (nameField) nameField.value = ''; if (addressField) addressField.value = ''; + if (address2Field) address2Field.value = ''; if (phoneHomeField) phoneHomeField.value = ''; if (phoneCellField) phoneCellField.value = ''; if (phoneWorkField) phoneWorkField.value = ''; @@ -182,8 +184,19 @@ function AddressParser_parse(editBoxID, mode, indicatorID, arrowButtonID) if (addressLineOneNode.firstChild) { addressField.value = addressLineOneNode.firstChild.nodeValue; - - if (addressLineTwoNode.firstChild && addressLineOneNode.firstChild != '') + + if (address2Field) + { + if (addressLineTwoNode.firstChild && addressLineOneNode.firstChild != '') + { + address2Field.value = addressLineTwoNode.firstChild.nodeValue; + } + else + { + address2Field.value = ''; + } + } + else if (addressLineTwoNode.firstChild && addressLineOneNode.firstChild != '') { addressField.value += "\n" + addressLineTwoNode.firstChild.nodeValue; } @@ -191,6 +204,7 @@ function AddressParser_parse(editBoxID, mode, indicatorID, arrowButtonID) else { addressField.value = ''; + if (address2Field) address2Field.value = ''; } } diff --git a/lib/Candidates.php b/lib/Candidates.php index 853337bbb..57838c3c6 100755 --- a/lib/Candidates.php +++ b/lib/Candidates.php @@ -69,7 +69,8 @@ public function __construct($siteID) * @param string Home phone number. * @param string Mobile phone number. * @param string Work phone number. - * @param string Address (can be multiple lines). + * @param string Address line 1. + * @param string Address line 2. * @param string City. * @param string State / province. * @param string Postal code. @@ -92,7 +93,7 @@ public function __construct($siteID) * @return integer Candidate ID of new candidate, or -1 on failure. */ public function add($firstName, $middleName, $lastName, $email1, $email2, - $phoneHome, $phoneCell, $phoneWork, $address, $city, $state, $zip, + $phoneHome, $phoneCell, $phoneWork, $address, $address2, $city, $state, $zip, $source, $keySkills, $dateAvailable, $currentEmployer, $canRelocate, $currentPay, $desiredPay, $notes, $webSite, $bestTimeToCall, $enteredBy, $owner, $gender = '', $race = '', $veteran = '', $disability = '', @@ -109,6 +110,7 @@ public function add($firstName, $middleName, $lastName, $email1, $email2, phone_cell, phone_work, address, + address2, city, state, zip, @@ -157,6 +159,7 @@ public function add($firstName, $middleName, $lastName, $email1, $email2, %s, %s, %s, + %s, 0, %s, %s, @@ -176,6 +179,7 @@ public function add($firstName, $middleName, $lastName, $email1, $email2, $this->_db->makeQueryString($phoneCell), $this->_db->makeQueryString($phoneWork), $this->_db->makeQueryString($address), + $this->_db->makeQueryString($address2), $this->_db->makeQueryString($city), $this->_db->makeQueryString($state), $this->_db->makeQueryString($zip), @@ -226,7 +230,8 @@ public function add($firstName, $middleName, $lastName, $email1, $email2, * @param string Home phone number. * @param string Mobile phone number. * @param string Work phone number. - * @param string Address (can be multiple lines). + * @param string Address line 1. + * @param string Address line 2. * @param string City. * @param string State / province. * @param string Postal code. @@ -247,7 +252,7 @@ public function add($firstName, $middleName, $lastName, $email1, $email2, * @return boolean True if successful; false otherwise. */ public function update($candidateID, $isActive, $firstName, $middleName, $lastName, - $email1, $email2, $phoneHome, $phoneCell, $phoneWork, $address, + $email1, $email2, $phoneHome, $phoneCell, $phoneWork, $address, $address2, $city, $state, $zip, $source, $keySkills, $dateAvailable, $currentEmployer, $canRelocate, $currentPay, $desiredPay, $notes, $webSite, $bestTimeToCall, $owner, $isHot, $email, $emailAddress, @@ -267,6 +272,7 @@ public function update($candidateID, $isActive, $firstName, $middleName, $lastNa phone_work = %s, phone_cell = %s, address = %s, + address2 = %s, city = %s, state = %s, zip = %s, @@ -301,6 +307,7 @@ public function update($candidateID, $isActive, $firstName, $middleName, $lastNa $this->_db->makeQueryString($phoneWork), $this->_db->makeQueryString($phoneCell), $this->_db->makeQueryString($address), + $this->_db->makeQueryString($address2), $this->_db->makeQueryString($city), $this->_db->makeQueryString($state), $this->_db->makeQueryString($zip), @@ -470,6 +477,7 @@ public function get($candidateID) candidate.phone_work AS phoneWork, candidate.phone_cell AS phoneCell, candidate.address AS address, + candidate.address2 AS address2, candidate.city AS city, candidate.state AS state, candidate.zip AS zip, @@ -606,6 +614,7 @@ public function getForEditing($candidateID) candidate.phone_work AS phoneWork, candidate.phone_cell AS phoneCell, candidate.address AS address, + candidate.address2 AS address2, candidate.city AS city, candidate.state AS state, candidate.zip AS zip, @@ -1489,7 +1498,7 @@ public function mergeDuplicates($params, $rs) { $update .= ", "; } - $update .= "address = '" . $rs['address'] . "', city = '" . $rs['city'] . "', zip = '" . $rs['zip'] . "', state = '" . $rs['state'] . "'"; + $update .= "address = '" . $rs['address'] . "', address2 = '" . $rs['address2'] . "', city = '" . $rs['city'] . "', zip = '" . $rs['zip'] . "', state = '" . $rs['state'] . "'"; $comma = true; } if($params['website'] == "1") diff --git a/lib/Companies.php b/lib/Companies.php index 37f33a5a8..6f4c3330a 100755 --- a/lib/Companies.php +++ b/lib/Companies.php @@ -68,7 +68,8 @@ public function __construct($siteID) * Adds a company to the database and returns its company ID. * * @param string Name - * @param string Address line + * @param string Address line 1 + * @param string Address line 2 * @param string City * @param string State * @param string Zip code @@ -82,7 +83,7 @@ public function __construct($siteID) * @param integer Owner user * @return new Company ID, or -1 on failure. */ - public function add($name, $address, $city, $state, $zip, $phone1, + public function add($name, $address, $address2, $city, $state, $zip, $phone1, $phone2, $faxNumber, $url, $keyTechnologies, $isHot, $notes, $enteredBy, $owner) { @@ -90,6 +91,7 @@ public function add($name, $address, $city, $state, $zip, $phone1, $this->_siteID, $name, $address, + $address2, $city, $state, $zip, @@ -117,7 +119,8 @@ public function add($name, $address, $city, $state, $zip, $phone1, * * @param integer Company ID * @param string Name - * @param string Address line + * @param string Address line 1 + * @param string Address line 2 * @param string City * @param string State * @param string Zip Code @@ -131,7 +134,7 @@ public function add($name, $address, $city, $state, $zip, $phone1, * @param integer Billing contact ID * @return boolean True if successful; false otherwise. */ - public function update($companyID, $name, $address, $city, $state, + public function update($companyID, $name, $address, $address2, $city, $state, $zip, $phone1, $phone2, $faxNumber, $url, $keyTechnologies, $isHot, $notes, $owner, $billingContact, $email, $emailAddress) @@ -142,6 +145,7 @@ public function update($companyID, $name, $address, $city, $state, SET name = %s, address = %s, + address2 = %s, city = %s, state = %s, zip = %s, @@ -161,6 +165,7 @@ public function update($companyID, $name, $address, $city, $state, site_id = %s", $this->_db->makeQueryString($name), $this->_db->makeQueryString($address), + $this->_db->makeQueryString($address2), $this->_db->makeQueryString($city), $this->_db->makeQueryString($state), $this->_db->makeQueryString($zip), @@ -320,6 +325,7 @@ public function get($companyID) company.name AS name, company.is_hot AS isHot, company.address AS address, + company.address2 AS address2, company.city AS city, company.state AS state, company.zip AS zip, @@ -379,6 +385,7 @@ public function getForEditing($companyID) company.name AS name, company.is_hot AS isHot, company.address AS address, + company.address2 AS address2, company.city AS city, company.state AS state, company.zip AS zip, diff --git a/lib/Contacts.php b/lib/Contacts.php index 1585eac5f..e2670d541 100755 --- a/lib/Contacts.php +++ b/lib/Contacts.php @@ -68,7 +68,8 @@ public function __construct($siteID) * @param string work phone number * @param string cell phone number * @param string other phone number - * @param string address line + * @param string address line 1 + * @param string address line 2 * @param string city * @param string state * @param string zip code @@ -79,7 +80,7 @@ public function __construct($siteID) * @return new contact ID, or -1 on failure. */ public function add($companyID, $firstName, $lastName, $title, $department, - $reportsTo, $email1, $email2, $phoneWork, $phoneCell, $phoneOther, $address, + $reportsTo, $email1, $email2, $phoneWork, $phoneCell, $phoneOther, $address, $address2, $city, $state, $zip, $isHot, $notes, $enteredBy, $owner) { /* Get the department ID of the selected department. */ @@ -101,6 +102,7 @@ public function add($companyID, $firstName, $lastName, $title, $department, phone_cell, phone_other, address, + address2, city, state, zip, @@ -130,6 +132,7 @@ public function add($companyID, $firstName, $lastName, $title, $department, %s, %s, %s, + %s, 0, %s, %s, @@ -150,6 +153,7 @@ public function add($companyID, $firstName, $lastName, $title, $department, $this->_db->makeQueryString($phoneCell), $this->_db->makeQueryString($phoneOther), $this->_db->makeQueryString($address), + $this->_db->makeQueryString($address2), $this->_db->makeQueryString($city), $this->_db->makeQueryString($state), $this->_db->makeQueryString($zip), @@ -188,7 +192,8 @@ public function add($companyID, $firstName, $lastName, $title, $department, * @param string work phone number * @param string cell phone number * @param string other phone number - * @param string address line + * @param string address line 1 + * @param string address line 2 * @param string city * @param string state * @param string zip code @@ -203,7 +208,7 @@ public function add($companyID, $firstName, $lastName, $title, $department, */ public function update($contactID, $companyID, $firstName, $lastName, $title, $department, $reportsTo, $email1, $email2, $phoneWork, $phoneCell, - $phoneOther, $address, $city, $state, $zip, $isHot, + $phoneOther, $address, $address2, $city, $state, $zip, $isHot, $leftCompany, $notes, $owner, $email, $emailAddress) { /* Get the department ID of the selected department. */ @@ -227,6 +232,7 @@ public function update($contactID, $companyID, $firstName, $lastName, contact.phone_cell = %s, contact.phone_other = %s, contact.address = %s, + contact.address2 = %s, contact.city = %s, contact.state = %s, contact.zip = %s, @@ -251,6 +257,7 @@ public function update($contactID, $companyID, $firstName, $lastName, $this->_db->makeQueryString($phoneCell), $this->_db->makeQueryString($phoneOther), $this->_db->makeQueryString($address), + $this->_db->makeQueryString($address2), $this->_db->makeQueryString($city), $this->_db->makeQueryString($state), $this->_db->makeQueryString($zip), @@ -297,13 +304,14 @@ public function update($contactID, $companyID, $firstName, $lastName, * Updates all contacts for a company (called when changing company details). * * @param integer company ID - * @param string address line + * @param string address line 1 + * @param string address line 2 * @param string city * @param string state * @param string zip code * @return boolean True if successful; false otherwise. */ - public function updateByCompany($companyID, $address, $city, + public function updateByCompany($companyID, $address, $address2, $city, $state, $zip) { $sql = sprintf( @@ -311,6 +319,7 @@ public function updateByCompany($companyID, $address, $city, contact SET address = %s, + address2 = %s, city = %s, state = %s, zip = %s, @@ -322,6 +331,7 @@ public function updateByCompany($companyID, $address, $city, AND site_id = %s", $this->_db->makeQueryString($address), + $this->_db->makeQueryString($address2), $this->_db->makeQueryString($city), $this->_db->makeQueryString($state), $this->_db->makeQueryString($zip), @@ -437,6 +447,7 @@ public function get($contactID) contact.phone_cell AS phoneCell, contact.phone_other AS phoneOther, contact.address AS address, + contact.address2 AS address2, contact.city AS city, contact.state AS state, contact.zip AS zip, @@ -512,6 +523,7 @@ public function getForEditing($contactID) contact.phone_cell AS phoneCell, contact.phone_other AS phoneOther, contact.address AS address, + contact.address2 AS address2, contact.city AS city, contact.state AS state, contact.zip AS zip, diff --git a/lib/InfoString.php b/lib/InfoString.php index 31eef8a59..dfd0ad8d3 100755 --- a/lib/InfoString.php +++ b/lib/InfoString.php @@ -172,6 +172,14 @@ private static function _contact($contactID, $siteID) htmlspecialchars($infoRS['address']) ); + if (!empty($infoRS['address2'])) + { + $infoString .= sprintf( + '<br />  %s', + htmlspecialchars($infoRS['address2']) + ); + } + if (!empty($infoRS['city'])) { $infoString .= sprintf( @@ -277,6 +285,14 @@ private static function _candidate($candidateID, $siteID) htmlspecialchars($infoRS['address']) ); + if (!empty($infoRS['address2'])) + { + $infoString .= sprintf( + '<br />  %s', + htmlspecialchars($infoRS['address2']) + ); + } + if (!empty($infoRS['city'])) { $infoString .= sprintf( diff --git a/modules/candidates/Add.tpl b/modules/candidates/Add.tpl index 83d27a8e7..a7dc5b5ca 100755 --- a/modules/candidates/Add.tpl +++ b/modules/candidates/Add.tpl @@ -228,11 +228,20 @@ <label id="addressLabel" for="address">Address:</label> </td> <td class="tdData"> - <textarea tabindex="9" name="address" id="address" rows="2" cols="40" class="inputbox" style="width: 150px"><?php if(isset($this->preassignedFields['address'])) $this->_($this->preassignedFields['address']); if(isset($this->preassignedFields['address2'])) $this->_("\n" . $this->preassignedFields['address2']); ?></textarea> + <input type="text" tabindex="9" name="address" id="address" class="inputbox" style="width: 150px" value="<?php if (isset($this->preassignedFields['address'])) $this->_($this->preassignedFields['address']); ?>" />             <img src="images/indicator2.gif" id="addressParserIndicator" alt="" style="visibility: hidden; margin-left: 10px;" height="16" width="16" /> </td> </tr> + <tr> + <td class="tdVertical"> + <label id="address2Label" for="address2">Address 2:</label> + </td> + <td class="tdData"> + <input type="text" tabindex="10" name="address2" id="address2" class="inputbox" style="width: 150px" value="<?php if (isset($this->preassignedFields['address2'])) $this->_($this->preassignedFields['address2']); ?>" /> + </td> + </tr> + <tr> <td class="tdVertical"> <label id="cityLabel" for="city">City:</label> diff --git a/modules/candidates/CandidatesUI.php b/modules/candidates/CandidatesUI.php index 00b625541..afa1db2ce 100755 --- a/modules/candidates/CandidatesUI.php +++ b/modules/candidates/CandidatesUI.php @@ -904,13 +904,14 @@ public function checkParsingFunctions() 'lastName' => $this->getSanitisedInput('lastName', $_POST), 'email1' => $this->getSanitisedInput('email1', $_POST), 'email2' => $this->getSanitisedInput('email2', $_POST), - 'phoneHome' => $this->getSanitisedInput('phoneHome', $_POST), - 'phoneCell' => $this->getSanitisedInput('phoneCell', $_POST), - 'phoneWork' => $this->getSanitisedInput('phoneWork', $_POST), - 'address' => $this->getSanitisedInput('address', $_POST), - 'city' => $this->getSanitisedInput('city', $_POST), - 'state' => $this->getSanitisedInput('state', $_POST), - 'zip' => $this->getSanitisedInput('zip', $_POST), + 'phoneHome' => $this->getSanitisedInput('phoneHome', $_POST), + 'phoneCell' => $this->getSanitisedInput('phoneCell', $_POST), + 'phoneWork' => $this->getSanitisedInput('phoneWork', $_POST), + 'address' => $this->getSanitisedInput('address', $_POST), + 'address2' => $this->getSanitisedInput('address2', $_POST), + 'city' => $this->getSanitisedInput('city', $_POST), + 'state' => $this->getSanitisedInput('state', $_POST), + 'zip' => $this->getSanitisedInput('zip', $_POST), 'source' => $this->getTrimmedInput('source', $_POST), 'keySkills' => $this->getSanitisedInput('keySkills', $_POST), 'currentEmployer' => $this->getSanitisedInput('currentEmployer', $_POST), @@ -1307,12 +1308,13 @@ private function onEdit() $firstName = $this->getSanitisedInput('firstName', $_POST); $middleName = $this->getSanitisedInput('middleName', $_POST); $lastName = $this->getSanitisedInput('lastName', $_POST); - $email1 = $this->getSanitisedInput('email1', $_POST); - $email2 = $this->getSanitisedInput('email2', $_POST); - $address = $this->getSanitisedInput('address', $_POST); - $city = $this->getSanitisedInput('city', $_POST); - $state = $this->getSanitisedInput('state', $_POST); - $zip = $this->getSanitisedInput('zip', $_POST); + $email1 = $this->getSanitisedInput('email1', $_POST); + $email2 = $this->getSanitisedInput('email2', $_POST); + $address = $this->getSanitisedInput('address', $_POST); + $address2 = $this->getSanitisedInput('address2', $_POST); + $city = $this->getSanitisedInput('city', $_POST); + $state = $this->getSanitisedInput('state', $_POST); + $zip = $this->getSanitisedInput('zip', $_POST); $source = $this->getSanitisedInput('source', $_POST); $keySkills = $this->getSanitisedInput('keySkills', $_POST); $currentEmployer = $this->getSanitisedInput('currentEmployer', $_POST); @@ -1346,13 +1348,14 @@ private function onEdit() $lastName, $email1, $email2, - $phoneHome, - $phoneCell, - $phoneWork, - $address, - $city, - $state, - $zip, + $phoneHome, + $phoneCell, + $phoneWork, + $address, + $address2, + $city, + $state, + $zip, $source, $keySkills, $dateAvailable, @@ -2618,12 +2621,13 @@ private function _addCandidate($isModal, $directoryOverride = '') $lastName = $this->getTrimmedInput('lastName', $_POST); $middleName = $this->getTrimmedInput('middleName', $_POST); $firstName = $this->getTrimmedInput('firstName', $_POST); - $email1 = $this->getTrimmedInput('email1', $_POST); - $email2 = $this->getTrimmedInput('email2', $_POST); - $address = $this->getTrimmedInput('address', $_POST); - $city = $this->getTrimmedInput('city', $_POST); - $state = $this->getTrimmedInput('state', $_POST); - $zip = $this->getTrimmedInput('zip', $_POST); + $email1 = $this->getTrimmedInput('email1', $_POST); + $email2 = $this->getTrimmedInput('email2', $_POST); + $address = $this->getTrimmedInput('address', $_POST); + $address2 = $this->getTrimmedInput('address2', $_POST); + $city = $this->getTrimmedInput('city', $_POST); + $state = $this->getTrimmedInput('state', $_POST); + $zip = $this->getTrimmedInput('zip', $_POST); $source = $this->getTrimmedInput('source', $_POST); $keySkills = $this->getTrimmedInput('keySkills', $_POST); $currentEmployer = $this->getTrimmedInput('currentEmployer', $_POST); @@ -2665,12 +2669,13 @@ private function _addCandidate($isModal, $directoryOverride = '') $lastName, $email1, $email2, - $phoneHome, - $phoneCell, - $phoneWork, - $address, - $city, - $state, + $phoneHome, + $phoneCell, + $phoneWork, + $address, + $address2, + $city, + $state, $zip, $source, $keySkills, diff --git a/modules/candidates/Edit.tpl b/modules/candidates/Edit.tpl index a52ffe68b..bbfe8349e 100755 --- a/modules/candidates/Edit.tpl +++ b/modules/candidates/Edit.tpl @@ -120,7 +120,16 @@ <label id="addressLabel" for="address1">Address:</label> </td> <td class="tdData"> - <textarea class="inputbox" id="address" name="address" style="width: 150px;"><?php $this->_($this->data['address']); ?></textarea> + <input type="text" class="inputbox" id="address" name="address" style="width: 150px;" value="<?php $this->_($this->data['address']); ?>" /> + </td> + </tr> + + <tr> + <td class="tdVertical"> + <label id="address2Label" for="address2">Address 2:</label> + </td> + <td class="tdData"> + <input type="text" class="inputbox" id="address2" name="address2" style="width: 150px;" value="<?php $this->_($this->data['address2']); ?>" /> </td> </tr> diff --git a/modules/candidates/Merge.tpl b/modules/candidates/Merge.tpl index bebb5bd44..7adedd330 100644 --- a/modules/candidates/Merge.tpl +++ b/modules/candidates/Merge.tpl @@ -118,14 +118,24 @@ <?php if($this->rsOld['address'] == "" && $this->rsOld['city'] == "" && $this->rsOld['state'] == "" && $this->rsOld['zip'] == ""): ?> <td align="right"><?php echo "(none)"; ?></td> <?php else: ?> - <td align="right"><?php echo($this->rsOld['address'].'<br/>'.$this->rsOld['city']." ".$this->rsOld['zip'].'<br/>'.$this->rsOld['state']); ?></td> + <td align="right"> + <?php echo($this->rsOld['address']); ?> + <?php if (!empty($this->rsOld['address2'])): ?><br /><?php echo($this->rsOld['address2']); ?><?php endif; ?> + <br /><?php echo($this->rsOld['city']." ".$this->rsOld['zip']); ?> + <br /><?php echo($this->rsOld['state']); ?> + </td> <?php endif; ?> <td align="center"><input type="radio" name="address" value=0 /></td> <td align="center"><input type="radio" name="address" value=1 checked/></td> <?php if($this->rsNew['address'] == "" && $this->rsNew['city'] == "" && $this->rsNew['state'] == "" && $this->rsNew['zip'] == ""): ?> <td align="left"><?php echo "(none)"; ?></td> <?php else: ?> - <td align="left"><?php echo($this->rsNew['address'].'<br/>'.$this->rsNew['city']." ".$this->rsNew['zip'].'<br/>'.$this->rsNew['state']); ?></td> + <td align="left"> + <?php echo($this->rsNew['address']); ?> + <?php if (!empty($this->rsNew['address2'])): ?><br /><?php echo($this->rsNew['address2']); ?><?php endif; ?> + <br /><?php echo($this->rsNew['city']." ".$this->rsNew['zip']); ?> + <br /><?php echo($this->rsNew['state']); ?> + </td> <?php endif; ?> </tr> diff --git a/modules/candidates/Questionnaire.tpl b/modules/candidates/Questionnaire.tpl index ee4a8a656..77f4bc08e 100755 --- a/modules/candidates/Questionnaire.tpl +++ b/modules/candidates/Questionnaire.tpl @@ -43,6 +43,9 @@ <b>Candidate Information:</b><br /> <?php echo $this->cData['lastName'] . ', ' . $this->cData['firstName']; ?><br /> <?php echo $this->cData['address']; ?><br /> + <?php if (!empty($this->cData['address2'])): ?> + <?php echo $this->cData['address2']; ?><br /> + <?php endif; ?> <?php echo ($str = $this->cData['city'] . ' ' . $this->cData['state'] . ' ' . $this->cData['zip']) . strlen($str) > 2 ? '<br />' : ''; ?> <?php echo ($str = $this->cData['phoneHome'] . ' ' . $this->cData['phoneWork'] . ' ' . $this->cData['phoneCell']) . strlen($str) > 2 ? '<br />' : ''; ?> <a style="font-size: 16px;" href="mailto:<?php echo ($str = $this->cData['email1']); ?>"><?php echo $this->cData['email1']; ?></a><?php echo strlen($str) > 0 ? '<br />' : ''; ?> diff --git a/modules/candidates/Show.tpl b/modules/candidates/Show.tpl index 5db5e2a92..f5a9f7cdf 100755 --- a/modules/candidates/Show.tpl +++ b/modules/candidates/Show.tpl @@ -118,7 +118,12 @@ use OpenCATS\UI\CandidateDuplicateQuickActionMenu; <tr> <td class="vertical">Address:</td> - <td class="data"><?php echo(nl2br(htmlspecialchars($this->data['address']))); ?></td> + <td class="data"> + <?php echo(nl2br(htmlspecialchars($this->data['address']))); ?> + <?php if (!empty($this->data['address2'])): ?> + <br /><?php $this->_($this->data['address2']); ?> + <?php endif; ?> + </td> </tr> <tr> diff --git a/modules/careers/CareersUI.php b/modules/careers/CareersUI.php index f47c92fb9..1e59173e1 100755 --- a/modules/careers/CareersUI.php +++ b/modules/careers/CareersUI.php @@ -224,7 +224,8 @@ private function careersPage() /* Replace input fields. */ $content = str_replace('<input-firstName>', '<input name="firstName" id="firstName" class="inputBoxName" value="' . $candidate['firstName'] . '" />', $content); $content = str_replace('<input-lastName>', '<input name="lastName" id="lastName" class="inputBoxName" value="' . $candidate['lastName'] . '" />', $content); - $content = str_replace('<input-address>', '<textarea name="address" class="inputBoxArea">'. $candidate['address'] .'</textarea>', $content); + $content = str_replace('<input-address>', '<input name="address" id="address" class="inputBoxNormal" value="' . $candidate['address'] . '" />', $content); + $content = str_replace('<input-address2>', '<input name="address2" id="address2" class="inputBoxNormal" value="' . $candidate['address2'] . '" />', $content); $content = str_replace('<input-city>', '<input name="city" id="city" class="inputBoxNormal" value="' . $candidate['city'] . '" />', $content); $content = str_replace('<input-state>', '<input name="state" id="state" class="inputBoxNormal" value="' . $candidate['state'] . '" />', $content); $content = str_replace('<input-zip>', '<input name="zip" id="zip" class="inputBoxNormal" value="' . $candidate['zip'] . '" />', $content); @@ -268,7 +269,7 @@ private function careersPage() } // Get the fields (if included in the template) to update - $fields = array('firstName', 'lastName', 'email1', 'phoneHome', 'phoneCell', 'phoneWork', 'address', + $fields = array('firstName', 'lastName', 'email1', 'phoneHome', 'phoneCell', 'phoneWork', 'address', 'address2', 'city', 'state', 'zip', 'keySkills', 'currentEmployer', 'bestTimeToCall' ); $fieldValues = array(); @@ -307,6 +308,7 @@ private function careersPage() $phoneCell, $phoneWork, $address, + $address2, $city, $state, $zip, @@ -415,6 +417,7 @@ private function careersPage() $firstName = isset($_POST[$id='firstName']) ? $_POST[$id] : ''; $lastName = isset($_POST[$id='lastName']) ? $_POST[$id] : ''; $address = isset($_POST[$id='address']) ? $_POST[$id] : ''; + $address2 = isset($_POST[$id='address2']) ? $_POST[$id] : ''; $city = isset($_POST[$id='city']) ? $_POST[$id] : ''; $state = isset($_POST[$id='state']) ? $_POST[$id] : ''; $zip = isset($_POST[$id='zip']) ? $_POST[$id] : ''; @@ -444,6 +447,7 @@ private function careersPage() // The candidate is registered $firstName = $candidate['firstName']; $lastName = $candidate['lastName']; $address = $candidate['address']; + $address2 = $candidate['address2']; $city = $candidate['city']; $state = $candidate['state']; $zip = $candidate['zip']; @@ -478,6 +482,7 @@ private function careersPage() // Rewrite here, I'll fix it later $firstName = $candidate['firstName']; $lastName = $candidate['lastName']; $address = $candidate['address']; + $address2 = $candidate['address2']; $city = $candidate['city']; $state = $candidate['state']; $zip = $candidate['zip']; @@ -581,7 +586,8 @@ private function careersPage() $template['Content'] = str_replace('<title>', $jobOrderData['title'], $template['Content']); $template['Content'] = str_replace('<input-firstName>', '<input name="firstName" id="firstName" class="inputBoxName" value="' . $firstName . '" />', $template['Content']); $template['Content'] = str_replace('<input-lastName>', '<input name="lastName" id="lastName" class="inputBoxName" value="' . $lastName . '" />', $template['Content']); - $template['Content'] = str_replace('<input-address>', '<textarea name="address" class="inputBoxArea">'. $address .'</textarea>', $template['Content']); + $template['Content'] = str_replace('<input-address>', '<input name="address" id="address" class="inputBoxNormal" value="' . $address . '" />', $template['Content']); + $template['Content'] = str_replace('<input-address2>', '<input name="address2" id="address2" class="inputBoxNormal" value="' . $address2 . '" />', $template['Content']); $template['Content'] = str_replace('<input-city>', '<input name="city" id="city" class="inputBoxNormal" value="' . $city . '" />', $template['Content']); $template['Content'] = str_replace('<input-state>', '<input name="state" id="state" class="inputBoxNormal" value="' . $state . '" />', $template['Content']); $template['Content'] = str_replace('<input-zip>', '<input name="zip" id="zip" class="inputBoxNormal" value="' . $zip . '" />', $template['Content']); @@ -974,6 +980,7 @@ private function _makeApplyValidator($template) { $validator = ''; + // First name is always required if the field is present in the template. if (strpos($template['Content'], '<input-firstName>') !== false || strpos($template['Content'], '<input-firstName req>') !== false) { $validator .= ' @@ -985,6 +992,7 @@ private function _makeApplyValidator($template) }'; } + // Last name is always required if the field is present in the template. if (strpos($template['Content'], '<input-lastName>') !== false || strpos($template['Content'], '<input-lastName req>') !== false) { $validator .= ' @@ -996,6 +1004,7 @@ private function _makeApplyValidator($template) }'; } + // Email confirmation must match the primary email if the field is present. if (strpos($template['Content'], '<input-emailconfirm>') !== false || strpos($template['Content'], '<input-emailconfirm req>') !== false) { $validator .= ' @@ -1007,6 +1016,7 @@ private function _makeApplyValidator($template) }'; } + // Primary email must be present and must look somewhat valid. if (strpos($template['Content'], '<input-email>') !== false || strpos($template['Content'], '<input-email req>') !== false) { $validator .= ' @@ -1025,6 +1035,11 @@ private function _makeApplyValidator($template) }'; } + /* + * Optional fields that can be made required by using the "req" marker + * in the template, for example <input-phone-cell req>. + */ + if (strpos($template['Content'], '<input-address req>') !== false) { $validator .= ' @@ -1036,6 +1051,17 @@ private function _makeApplyValidator($template) }'; } + if (strpos($template['Content'], '<input-address2 req>') !== false) + { + $validator .= ' + if (document.getElementById(\'address2\') && document.getElementById(\'address2\').value == \'\') + { + alert(\'Please enter address line 2.\'); + document.getElementById(\'address2\').focus(); + return false; + }'; + } + if (strpos($template['Content'], '<input-city req>') !== false) { $validator .= ' @@ -1080,6 +1106,84 @@ private function _makeApplyValidator($template) }'; } + if (strpos($template['Content'], '<input-phone-cell req>') !== false) + { + $validator .= ' + if (document.getElementById(\'phoneCell\').value == \'\') + { + alert(\'Please enter a mobile phone number.\'); + document.getElementById(\'phoneCell\').focus(); + return false; + }'; + } + + if (strpos($template['Content'], '<input-phone-home req>') !== false) + { + $validator .= ' + if (document.getElementById(\'phoneHome\').value == \'\') + { + alert(\'Please enter a home phone number.\'); + document.getElementById(\'phoneHome\').focus(); + return false; + }'; + } + + if (strpos($template['Content'], '<input-best-time-to-call req>') !== false || + strpos($template['Content'], '<input-bestTimeToCall req>') !== false) + { + $validator .= ' + if (document.getElementById(\'bestTimeToCall\').value == \'\') + { + alert(\'Please enter the best time to call.\'); + document.getElementById(\'bestTimeToCall\').focus(); + return false; + }'; + } + + if (strpos($template['Content'], '<input-email2 req>') !== false) + { + $validator .= ' + if (document.getElementById(\'email2\').value == \'\') + { + alert(\'Please enter an E-Mail address.\'); + document.getElementById(\'email2\').focus(); + return false; + }'; + } + + if (strpos($template['Content'], '<input-source req>') !== false) + { + $validator .= ' + if (document.getElementById(\'source\').value == \'\') + { + alert(\'Please enter a source.\'); + document.getElementById(\'source\').focus(); + return false; + }'; + } + + if (strpos($template['Content'], '<input-employer req>') !== false) + { + $validator .= ' + if (document.getElementById(\'employer\').value == \'\') + { + alert(\'Please enter your current employer.\'); + document.getElementById(\'employer\').focus(); + return false; + }'; + } + + if (strpos($template['Content'], '<input-resumeUpload req>') !== false) + { + $validator .= ' + if (document.getElementById(\'resume\').value == \'\') + { + alert(\'Please upload your resume.\'); + document.getElementById(\'resume\').focus(); + return false; + }'; + } + if (strpos($template['Content'], '<input-keySkills req>') !== false) { $validator .= ' @@ -1102,6 +1206,54 @@ private function _makeApplyValidator($template) }'; } + /* + * EEO fields (if enabled and placed in the template). + */ + + if (strpos($template['Content'], '<input-eeo-gender req>') !== false) + { + $validator .= ' + if (document.getElementById(\'eeogender\').value == \'\') + { + alert(\'Please select your gender.\'); + document.getElementById(\'eeogender\').focus(); + return false; + }'; + } + + if (strpos($template['Content'], '<input-eeo-race req>') !== false) + { + $validator .= ' + if (document.getElementById(\'eeorace\').value == \'\') + { + alert(\'Please select your race.\'); + document.getElementById(\'eeorace\').focus(); + return false; + }'; + } + + if (strpos($template['Content'], '<input-eeo-veteran req>') !== false) + { + $validator .= ' + if (document.getElementById(\'eeoveteran\').value == \'\') + { + alert(\'Please select your veteran status.\'); + document.getElementById(\'eeoveteran\').focus(); + return false; + }'; + } + + if (strpos($template['Content'], '<input-eeo-disability req>') !== false) + { + $validator .= ' + if (document.getElementById(\'eeodisability\').value == \'\') + { + alert(\'Please select your disability status.\'); + document.getElementById(\'eeodisability\').focus(); + return false; + }'; + } + $validator = '<script type="text/javascript">function applyValidate() {' . $validator . ' return true; }' . "\n" . '</script>'; @@ -1214,6 +1366,7 @@ private function onApplyToJobOrder($siteID, $candidateID = false) $email = $this->getSanitisedInput('email', $_POST); $email2 = $this->getSanitisedInput('email2', $_POST); $address = $this->getSanitisedInput('address', $_POST); + $address2 = $this->getSanitisedInput('address2', $_POST); $city = $this->getSanitisedInput('city', $_POST); $state = $this->getSanitisedInput('state', $_POST); $zip = $this->getSanitisedInput('zip', $_POST); @@ -1263,7 +1416,7 @@ private function onApplyToJobOrder($siteID, $candidateID = false) * Save basic information in a cookie in case the site is using registration to * process repeated postings, etc. */ - $fields = array('firstName', 'lastName', 'email', 'address', 'city', 'state', 'zip', 'phone', + $fields = array('firstName', 'lastName', 'email', 'address', 'address2', 'city', 'state', 'zip', 'phone', 'phoneHome', 'phoneCell' ); $storedVal = ''; @@ -1283,7 +1436,7 @@ private function onApplyToJobOrder($siteID, $candidateID = false) // Candidate exists and registered. Update their profile with new values (if provided) $candidates->update( $candidateID, $candidate['isActive'] ? true : false, $firstName, $middleName, - $lastName, $email, $email2, $phoneHome, $phoneCell, $phone, $address, $city, + $lastName, $email, $email2, $phoneHome, $phoneCell, $phone, $address, $address2, $city, $state, $zip, $source, $keySkills, '', $employer, '', '', '', $candidate['notes'], '', $bestTimeToCall, $automatedUser['userID'], $automatedUser['userID'], $gender, $race, $veteran, $disability @@ -1311,6 +1464,7 @@ private function onApplyToJobOrder($siteID, $candidateID = false) $phoneCell, $phone, $address, + $address2, $city, $state, $zip, diff --git a/modules/companies/Add.tpl b/modules/companies/Add.tpl index b43ba1363..3e0c2d69e 100755 --- a/modules/companies/Add.tpl +++ b/modules/companies/Add.tpl @@ -74,7 +74,16 @@ <label id="addressLabel" for="address">Address:</label> </td> <td class="tdData"> - <textarea name="address" id="address" class="inputbox" style="width: 150px"></textarea> + <input type="text" name="address" id="address" class="inputbox" style="width: 150px" /> + </td> + </tr> + + <tr> + <td class="tdVertical"> + <label id="address2Label" for="address2">Address 2:</label> + </td> + <td class="tdData"> + <input type="text" name="address2" id="address2" class="inputbox" style="width: 150px" /> </td> </tr> diff --git a/modules/companies/CompaniesUI.php b/modules/companies/CompaniesUI.php index 59c5f6435..b8018f188 100755 --- a/modules/companies/CompaniesUI.php +++ b/modules/companies/CompaniesUI.php @@ -290,8 +290,10 @@ private function show() /* Link to Google Maps for this address */ if (!empty($data['address']) && !empty($data['city']) && !empty($data['state'])) { + $addressParts = array($data['address']); + if (!empty($data['address2'])) $addressParts[] = $data['address2']; $data['googleMaps'] = '<a href="http://maps.google.com/maps?q=' . - urlencode($data['address']) . '+' . + urlencode(implode(' ', $addressParts)) . '+' . urlencode($data['city']) . '+' . urlencode($data['state']); @@ -540,6 +542,7 @@ private function onAdd() $name = $this->getSanitisedInput('name', $_POST); $address = $this->getSanitisedInput('address', $_POST); + $address2 = $this->getSanitisedInput('address2', $_POST); $city = $this->getSanitisedInput('city', $_POST); $state = $this->getSanitisedInput('state', $_POST); $zip = $this->getSanitisedInput('zip', $_POST); @@ -560,7 +563,7 @@ private function onAdd() $companies = new Companies($this->_siteID); $companyID = $companies->add( - $name, $address, $city, $state, $zip, $phone1, + $name, $address, $address2, $city, $state, $zip, $phone1, $phone2, $faxNumber, $url, $keyTechnologies, $isHot, $notes, $this->_userID, $this->_userID ); @@ -811,6 +814,7 @@ private function onEdit() $name = $this->getSanitisedInput('name', $_POST); $address = $this->getSanitisedInput('address', $_POST); + $address2 = $this->getSanitisedInput('address2', $_POST); $city = $this->getSanitisedInput('city', $_POST); $state = $this->getSanitisedInput('state', $_POST); $zip = $this->getSanitisedInput('zip', $_POST); @@ -835,7 +839,7 @@ private function onEdit() ); $companies->updateDepartments($companyID, $departmentsDifferences); - if (!$companies->update($companyID, $name, $address, $city, $state, + if (!$companies->update($companyID, $name, $address, $address2, $city, $state, $zip, $phone1, $phone2, $faxNumber, $url, $keyTechnologies, $isHot, $notes, $owner, $billingContact, $email, $emailAddress)) { @@ -853,7 +857,7 @@ private function onEdit() if ($_POST['updateContacts'] == 'yes') { $contacts = new Contacts($this->_siteID); - $contacts->updateByCompany($companyID, $address, $city, $state, $zip); + $contacts->updateByCompany($companyID, $address, $address2, $city, $state, $zip); } } diff --git a/modules/companies/Edit.tpl b/modules/companies/Edit.tpl index 33e175609..3d79d8f44 100755 --- a/modules/companies/Edit.tpl +++ b/modules/companies/Edit.tpl @@ -141,7 +141,16 @@ <label id="addressLabel" for="address">Address:</label> </td> <td class="tdData"> - <textarea name="address" id="address" class="inputbox" style="width: 150px" onkeydown="document.getElementById('changeAddress').style.display='';"/><?php $this->_($this->data['address']); ?></textarea> + <input type="text" name="address" id="address" class="inputbox" style="width: 150px" onkeydown="document.getElementById('changeAddress').style.display='';" value="<?php $this->_($this->data['address']); ?>" /> + </td> + </tr> + + <tr> + <td class="tdVertical"> + <label id="address2Label" for="address2">Address 2:</label> + </td> + <td class="tdData"> + <input type="text" name="address2" id="address2" class="inputbox" style="width: 150px" onkeydown="document.getElementById('changeAddress').style.display='';" value="<?php $this->_($this->data['address2']); ?>" /> </td> </tr> diff --git a/modules/companies/Show.tpl b/modules/companies/Show.tpl index 052aa1680..eda083017 100755 --- a/modules/companies/Show.tpl +++ b/modules/companies/Show.tpl @@ -51,8 +51,13 @@ use OpenCATS\UI\QuickActionMenu; <tr> <td class="vertical">Address:</td> - <td class="data"><?php echo(nl2br(htmlspecialchars($this->data['address']))); ?>  - <?php echo($this->data['googleMaps']); ?></td> + <td class="data"> + <?php echo(nl2br(htmlspecialchars($this->data['address']))); ?> + <?php if (!empty($this->data['address2'])): ?> + <br /><?php $this->_($this->data['address2']); ?> + <?php endif; ?> +  <?php echo($this->data['googleMaps']); ?> + </td> </tr> <tr> diff --git a/modules/contacts/Add.tpl b/modules/contacts/Add.tpl index 6ca978ded..dea3d7291 100755 --- a/modules/contacts/Add.tpl +++ b/modules/contacts/Add.tpl @@ -168,7 +168,16 @@ <label id="addressLabel" for="address">Address:</label> </td> <td class="tdData"> - <textarea name="address" id="address" class="inputbox" style="width: 150px"></textarea> + <input type="text" name="address" id="address" class="inputbox" style="width: 150px" /> + </td> + </tr> + + <tr> + <td class="tdVertical"> + <label id="address2Label" for="address2">Address 2:</label> + </td> + <td class="tdData"> + <input type="text" name="address2" id="address2" class="inputbox" style="width: 150px" /> </td> </tr> diff --git a/modules/contacts/ContactsUI.php b/modules/contacts/ContactsUI.php index 81f8c917d..dce877bc8 100755 --- a/modules/contacts/ContactsUI.php +++ b/modules/contacts/ContactsUI.php @@ -526,6 +526,7 @@ private function onAdd() $email1 = $this->getSanitisedInput('email1', $_POST); $email2 = $this->getSanitisedInput('email2', $_POST); $address = $this->getSanitisedInput('address', $_POST); + $address2 = $this->getSanitisedInput('address2', $_POST); $city = $this->getSanitisedInput('city', $_POST); $state = $this->getSanitisedInput('state', $_POST); $zip = $this->getSanitisedInput('zip', $_POST); @@ -556,7 +557,7 @@ private function onAdd() $contacts = new Contacts($this->_siteID); $contactID = $contacts->add( $companyID, $firstName, $lastName, $title, $department, $reportsTo, - $email1, $email2, $phoneWork, $phoneCell, $phoneOther, $address, + $email1, $email2, $phoneWork, $phoneCell, $phoneOther, $address, $address2, $city, $state, $zip, $isHot, $notes, $this->_userID, $this->_userID ); @@ -814,6 +815,7 @@ private function onEdit() $email1 = $this->getSanitisedInput('email1', $_POST); $email2 = $this->getSanitisedInput('email2', $_POST); $address = $this->getSanitisedInput('address', $_POST); + $address2 = $this->getSanitisedInput('address2', $_POST); $city = $this->getSanitisedInput('city', $_POST); $state = $this->getSanitisedInput('state', $_POST); $zip = $this->getSanitisedInput('zip', $_POST); @@ -843,7 +845,7 @@ private function onEdit() if (!$contacts->update($contactID, $companyID, $firstName, $lastName, $title, $department, $reportsTo, $email1, $email2, $phoneWork, $phoneCell, - $phoneOther, $address, $city, $state, $zip, $isHot, + $phoneOther, $address, $address2, $city, $state, $zip, $isHot, $leftCompany, $notes, $owner, $email, $emailAddress)) { CommonErrors::fatal(COMMONERROR_RECORDERROR, $this, 'Failed to update contact.'); @@ -1186,16 +1188,17 @@ private function downloadVCard() /* FIXME: Add fax to contacts and use setPhoneNumber('WORK;FAX') here */ - $addressLines = explode("\n", $contact['address']); + $address1 = trim($contact['address']); + $address2 = trim($contact['address2']); - $address1 = trim($addressLines[0]); - if (isset($addressLines[1])) + if (empty($address2) && strpos($address1, "\n") !== false) { - $address2 = trim($addressLines[1]); - } - else - { - $address2 = ''; + $addressLines = explode("\n", $address1); + $address1 = trim($addressLines[0]); + if (isset($addressLines[1])) + { + $address2 = trim($addressLines[1]); + } } $vCard->setAddress( diff --git a/modules/contacts/Edit.tpl b/modules/contacts/Edit.tpl index 4e3963571..87d36cbba 100755 --- a/modules/contacts/Edit.tpl +++ b/modules/contacts/Edit.tpl @@ -188,7 +188,16 @@ <label id="addressLabel" for="address">Address:</label> </td> <td class="tdData"> - <textarea name="address" id="address" class="inputbox" style="width: 150px"><?php $this->_($this->data['address']); ?></textarea> + <input type="text" name="address" id="address" class="inputbox" style="width: 150px" value="<?php $this->_($this->data['address']); ?>" /> + </td> + </tr> + + <tr> + <td class="tdVertical"> + <label id="address2Label" for="address2">Address 2:</label> + </td> + <td class="tdData"> + <input type="text" name="address2" id="address2" class="inputbox" style="width: 150px" value="<?php $this->_($this->data['address2']); ?>" /> </td> </tr> diff --git a/modules/contacts/Show.tpl b/modules/contacts/Show.tpl index fa5ed9f59..64df95e94 100755 --- a/modules/contacts/Show.tpl +++ b/modules/contacts/Show.tpl @@ -126,7 +126,12 @@ use OpenCATS\UI\QuickActionMenu; <tr> <td class="vertical">Address:</td> - <td class="data"><?php echo(nl2br(htmlspecialchars($this->data['address']))); ?></td> + <td class="data"> + <?php echo(nl2br(htmlspecialchars($this->data['address']))); ?> + <?php if (!empty($this->data['address2'])): ?> + <br /><?php $this->_($this->data['address2']); ?> + <?php endif; ?> + </td> </tr> <tr> diff --git a/modules/import/ImportUI.php b/modules/import/ImportUI.php index 97c2e6149..362116ff9 100755 --- a/modules/import/ImportUI.php +++ b/modules/import/ImportUI.php @@ -1764,6 +1764,10 @@ private function getMassImportCandidates() { // This was parsed data $candidates = new Candidates($siteID); + list($address1, $address2) = self::splitAddressForImport( + $doc['address'], + isset($doc['address2']) ? $doc['address2'] : '' + ); $candidateID = $candidates->add( $doc['firstName'], @@ -1774,7 +1778,8 @@ private function getMassImportCandidates() $doc['phone'], '', '', - $doc['address'], + $address1, + $address2, $doc['city'], $doc['state'], $doc['zipCode'], @@ -1983,6 +1988,16 @@ private function getMassImportDocuments() $doc['lastName'] = $doc['parse'][$id]; else $doc['lastName'] = ''; if (isset($doc['parse'][$id = 'us_address'])) $doc['address'] = $doc['parse'][$id]; else $doc['address'] = ''; + if (isset($doc['parse'][$id = 'address2'])) + $doc['address2'] = $doc['parse'][$id]; + else if (isset($doc['parse'][$id = 'address_line_2'])) + $doc['address2'] = $doc['parse'][$id]; + else if (isset($doc['parse'][$id = 'addressLineTwo'])) + $doc['address2'] = $doc['parse'][$id]; + else if (isset($doc['parse'][$id = 'address_line_two'])) + $doc['address2'] = $doc['parse'][$id]; + else + $doc['address2'] = ''; if (isset($doc['parse'][$id = 'city'])) $doc['city'] = $doc['parse'][$id]; else $doc['city'] = ''; if (isset($doc['parse'][$id = 'state'])) @@ -2005,6 +2020,7 @@ private function getMassImportDocuments() $doc['firstName'] = $doc['lastName'] = $doc['address'] = $doc['city'] = $doc['state'] = $doc['zipCode'] = $doc['email'] = $doc['phone'] = $doc['education'] = $doc['skills'] = $doc['experience'] = ''; + $doc['address2'] = ''; } $doc['id'] = $ind; $documents[] = $doc; @@ -2018,6 +2034,32 @@ private function getMassImportDocuments() return array($documents, $success, $failed); } + private static function splitAddressForImport($address, $address2 = '') + { + $address = str_replace("\r\n", "\n", $address); + $address = trim($address); + $address2 = trim($address2); + + if ($address2 !== '') + { + $address2 = str_replace("\r\n", "\n", $address2); + $address2 = trim(str_replace("\n", ", ", $address2)); + return array($address, $address2); + } + + $parts = explode("\n", $address, 2); + $address1 = trim($parts[0]); + $address2 = ''; + if (isset($parts[1])) + { + $address2 = trim(str_replace("\n", ", ", $parts[1])); + } + + $address2 = str_replace("\r\n", "\n", $address2); + $address2 = trim(str_replace("\n", ", ", $address2)); + return array($address1, $address2); + } + private function deleteBulkResumes() { if (!isset($_SESSION['CATS']) || empty($_SESSION['CATS'])) diff --git a/modules/install/Schema.php b/modules/install/Schema.php index dcd0915ce..2454e9848 100755 --- a/modules/install/Schema.php +++ b/modules/install/Schema.php @@ -1334,6 +1334,42 @@ public static function get() COLLATE utf8_unicode_ci NOT NULL DEFAULT \'+1\' AFTER `date_format_ddmmyy`; ', + '366' => ' + ALTER IGNORE TABLE `candidate` ADD COLUMN `address2` TEXT COLLATE utf8_unicode_ci AFTER `address`; + ALTER IGNORE TABLE `contact` ADD COLUMN `address2` TEXT COLLATE utf8_unicode_ci AFTER `address`; + ALTER IGNORE TABLE `company` ADD COLUMN `address2` TEXT COLLATE utf8_unicode_ci AFTER `address`; + ', + '367' => ' + UPDATE candidate + SET address = REPLACE(address, \'\\r\\n\', \'\\n\') + WHERE address LIKE \'%\\r\\n%\'; + UPDATE candidate + SET + address2 = TRIM(REPLACE(SUBSTRING(address, INSTR(address, \'\\n\') + 1), \'\\n\', \', \')), + address = TRIM(SUBSTRING_INDEX(address, \'\\n\', 1)) + WHERE address IS NOT NULL + AND INSTR(address, \'\\n\') > 0; + + UPDATE contact + SET address = REPLACE(address, \'\\r\\n\', \'\\n\') + WHERE address LIKE \'%\\r\\n%\'; + UPDATE contact + SET + address2 = TRIM(REPLACE(SUBSTRING(address, INSTR(address, \'\\n\') + 1), \'\\n\', \', \')), + address = TRIM(SUBSTRING_INDEX(address, \'\\n\', 1)) + WHERE address IS NOT NULL + AND INSTR(address, \'\\n\') > 0; + + UPDATE company + SET address = REPLACE(address, \'\\r\\n\', \'\\n\') + WHERE address LIKE \'%\\r\\n%\'; + UPDATE company + SET + address2 = TRIM(REPLACE(SUBSTRING(address, INSTR(address, \'\\n\') + 1), \'\\n\', \', \')), + address = TRIM(SUBSTRING_INDEX(address, \'\\n\', 1)) + WHERE address IS NOT NULL + AND INSTR(address, \'\\n\') > 0; + ', ); } diff --git a/modules/settings/CareerPortalTemplateEdit.tpl b/modules/settings/CareerPortalTemplateEdit.tpl index e12c27032..ebdaa4db4 100755 --- a/modules/settings/CareerPortalTemplateEdit.tpl +++ b/modules/settings/CareerPortalTemplateEdit.tpl @@ -91,6 +91,7 @@ <option value="<input-firstName>">First Name *</option> <option value="<input-lastName>">Last Name *</option> <option value="<input-address>">Address Line</option> + <option value="<input-address2>">Address Line 2</option> <option value="<input-city>">City</option> <option value="<input-state>">State</option> <option value="<input-zip>">Zip Code</option> diff --git a/modules/settings/SettingsUI.php b/modules/settings/SettingsUI.php index 959bd54f4..7902609b2 100755 --- a/modules/settings/SettingsUI.php +++ b/modules/settings/SettingsUI.php @@ -2318,8 +2318,8 @@ private function onNewSiteName() $companies = new Companies($this->_siteID); $companyIDInternal = $companies->add( - 'Internal Postings', '', '', '', '', '', '', '', '', '', '', - '', '', 'Internal postings.', $this->_userID, $this->_userID + 'Internal Postings', '', '', '', '', '', '', '', '', '', '', 0, + 'Internal postings.', $this->_userID, $this->_userID ); $companies->setCompanyDefault($companyIDInternal); @@ -3286,8 +3286,8 @@ private function wizard_siteName() $companies = new Companies($this->_siteID); $companyIDInternal = $companies->add( - 'Internal Postings', '', '', '', '', '', '', '', '', '', '', - '', '', 'Internal postings.', $this->_userID, $this->_userID + 'Internal Postings', '', '', '', '', '', '', '', '', '', '', 0, + 'Internal postings.', $this->_userID, $this->_userID ); $companies->setCompanyDefault($companyIDInternal); diff --git a/src/OpenCATS/Entity/Company.php b/src/OpenCATS/Entity/Company.php index 034ef863e..da91e8c3b 100644 --- a/src/OpenCATS/Entity/Company.php +++ b/src/OpenCATS/Entity/Company.php @@ -6,6 +6,7 @@ class Company private $siteId; private $name; private $address; + private $address2; private $city; private $state; private $zipCode; @@ -44,6 +45,16 @@ function getAddress() { return $this->address; } + + function setAddress2($value) + { + $this->address2 = $value; + } + + function getAddress2() + { + return $this->address2; + } function setCity($value) { @@ -173,6 +184,7 @@ static function create( $siteId, $name, $address, + $address2, $city, $state, $zipCode, @@ -189,6 +201,7 @@ static function create( { $company = new Company($siteId, $name); $company->setAddress($address); + $company->setAddress2($address2); $company->setCity($city); $company->setState($state); $company->setZipCode($zipCode); diff --git a/src/OpenCATS/Entity/CompanyRepository.php b/src/OpenCATS/Entity/CompanyRepository.php index cc87a0ded..8fe4c27d5 100644 --- a/src/OpenCATS/Entity/CompanyRepository.php +++ b/src/OpenCATS/Entity/CompanyRepository.php @@ -19,6 +19,7 @@ function persist(Company $company, \History $history) "INSERT INTO company ( name, address, + address2, city, state, zip, @@ -51,11 +52,13 @@ function persist(Company $company, \History $history) %s, %s, %s, + %s, NOW(), NOW() )", $this->databaseConnection->makeQueryString($company->getName()), $this->databaseConnection->makeQueryString($company->getAddress()), + $this->databaseConnection->makeQueryString($company->getAddress2()), $this->databaseConnection->makeQueryString($company->getCity()), $this->databaseConnection->makeQueryString($company->getState()), $this->databaseConnection->makeQueryString($company->getZipCode()), @@ -127,4 +130,4 @@ function findByName($siteId, $companyName) ); return $this->databaseConnection->getAllAssoc($sql); } -} \ No newline at end of file +} diff --git a/src/OpenCATS/Tests/UnitTests/CompanyRepositoryTest.php b/src/OpenCATS/Tests/UnitTests/CompanyRepositoryTest.php index 9fb180eb9..c7a74fe04 100644 --- a/src/OpenCATS/Tests/UnitTests/CompanyRepositoryTest.php +++ b/src/OpenCATS/Tests/UnitTests/CompanyRepositoryTest.php @@ -16,6 +16,7 @@ class CompanyRepositoryTests extends TestCase const COMPANY_NAME = "Test Company Name"; const SITE_ID = -1; const ADDRESS = "O'Higgins 123"; + const ADDRESS2 = "Apt O'Higgins 4B"; const CITY = "Colonia"; const STATE = "Maldonado"; const ZIP_CODE = "31337"; @@ -33,11 +34,12 @@ class CompanyRepositoryTests extends TestCase function test_persist_CreatesNewCompany_InputValuesAreEscaped() { $databaseConnectionMock = $this->getDatabaseConnectionMock(); - $databaseConnectionMock->expects($this->exactly(11)) + $databaseConnectionMock->expects($this->exactly(12)) ->method('makeQueryString') ->withConsecutive( [$this->equalTo(self::COMPANY_NAME)], [$this->equalTo(self::ADDRESS)], + [$this->equalTo(self::ADDRESS2)], [$this->equalTo(self::CITY)], [$this->equalTo(self::STATE)], [$this->equalTo(self::ZIP_CODE)], @@ -122,6 +124,7 @@ private function createCompany() self::SITE_ID, self::COMPANY_NAME, self::ADDRESS, + self::ADDRESS2, self::CITY, self::STATE, self::ZIP_CODE, @@ -136,4 +139,4 @@ private function createCompany() self::OWNER ); } -} \ No newline at end of file +} diff --git a/src/OpenCATS/Tests/UnitTests/CompanyTest.php b/src/OpenCATS/Tests/UnitTests/CompanyTest.php index 13e315713..5eb2e1f66 100644 --- a/src/OpenCATS/Tests/UnitTests/CompanyTest.php +++ b/src/OpenCATS/Tests/UnitTests/CompanyTest.php @@ -7,6 +7,7 @@ class CompanyTest extends TestCase const COMPANY_NAME = "Test Company Name"; const SITE_ID = -1; const ADDRESS = "O'Higgins 123"; + const ADDRESS2 = "Apt 4B"; const CITY = "Colonia"; const STATE = "Maldonado"; const ZIP_CODE = "31337"; @@ -41,6 +42,12 @@ function test_Company_SetAddress_CompanyInstanceHasAddress() $this->company->setAddress(self::ADDRESS); $this->assertEquals(self::ADDRESS, $this->company->getAddress()); } + + function test_Company_SetAddress2_CompanyInstanceHasAddress2() + { + $this->company->setAddress2(self::ADDRESS2); + $this->assertEquals(self::ADDRESS2, $this->company->getAddress2()); + } function test_Company_SetCity_CompanyInstanceHasCity() { @@ -115,4 +122,4 @@ function test_Company_SetOwner_CompanyInstanceHasOwner() $this->company->setOwner(self::OWNER); $this->assertEquals(self::OWNER, $this->company->getOwner()); } -} \ No newline at end of file +} diff --git a/test/data/securityTests.sql b/test/data/securityTests.sql index dab18021c..5bf574348 100644 --- a/test/data/securityTests.sql +++ b/test/data/securityTests.sql @@ -12,10 +12,10 @@ VALUES (2008, 1, 'testerRoot', 'noreply@noreply.com', 'f5d1278e8109edd94e1e4197e04873b9', 500, 1, 1, '', '', 0, NULL, 'CATS=3b00bmdrn4vrc1eu2mv555p601', 15, 'a:9:{s:31:"home:ImportantPipelineDashboard";a:6:{i:0;a:2:{s:4:"name";s:10:"First Name";s:5:"width";i:85;}i:1;a:2:{s:4:"name";s:9:"Last Name";s:5:"width";i:75;}i:2;a:2:{s:4:"name";s:6:"Status";s:5:"width";i:75;}i:3;a:2:{s:4:"name";s:8:"Position";s:5:"width";i:275;}i:4;a:2:{s:4:"name";s:7:"Company";s:5:"width";i:210;}i:5;a:2:{s:4:"name";s:8:"Modified";s:5:"width";i:80;}}s:18:"home:CallsDataGrid";a:2:{i:0;a:2:{s:4:"name";s:4:"Time";s:5:"width";i:90;}i:1;a:2:{s:4:"name";s:4:"Name";s:5:"width";i:175;}}s:25:"activity:ActivityDataGrid";a:7:{i:0;a:2:{s:4:"name";s:4:"Date";s:5:"width";i:110;}i:1;a:2:{s:4:"name";s:10:"First Name";s:5:"width";i:85;}i:2;a:2:{s:4:"name";s:9:"Last Name";s:5:"width";i:75;}i:3;a:2:{s:4:"name";s:9:"Regarding";s:5:"width";i:125;}i:4;a:2:{s:4:"name";s:8:"Activity";s:5:"width";i:65;}i:5;a:2:{s:4:"name";s:5:"Notes";s:5:"width";i:240;}i:6;a:2:{s:4:"name";s:10:"Entered By";s:5:"width";i:60;}}s:37:"joborders:JobOrdersListByViewDataGrid";a:12:{i:0;a:2:{s:4:"name";s:11:"Attachments";s:5:"width";i:10;}i:1;a:2:{s:4:"name";s:2:"ID";s:5:"width";i:26;}i:2;a:2:{s:4:"name";s:5:"Title";s:5:"width";i:170;}i:3;a:2:{s:4:"name";s:7:"Company";s:5:"width";i:135;}i:4;a:2:{s:4:"name";s:4:"Type";s:5:"width";i:30;}i:5;a:2:{s:4:"name";s:6:"Status";s:5:"width";i:40;}i:6;a:2:{s:4:"name";s:7:"Created";s:5:"width";i:55;}i:7;a:2:{s:4:"name";s:3:"Age";s:5:"width";i:30;}i:8;a:2:{s:4:"name";s:9:"Submitted";s:5:"width";i:18;}i:9;a:2:{s:4:"name";s:8:"Pipeline";s:5:"width";i:18;}i:10;a:2:{s:4:"name";s:9:"Recruiter";s:5:"width";i:65;}i:11;a:2:{s:4:"name";s:5:"Owner";s:5:"width";i:55;}}s:39:"candidates:candidatesListByViewDataGrid";a:9:{i:0;a:2:{s:4:"name";s:11:"Attachments";s:5:"width";i:31;}i:1;a:2:{s:4:"name";s:10:"First Name";s:5:"width";i:75;}i:2;a:2:{s:4:"name";s:9:"Last Name";s:5:"width";i:85;}i:3;a:2:{s:4:"name";s:4:"City";s:5:"width";i:75;}i:4;a:2:{s:4:"name";s:5:"State";s:5:"width";i:50;}i:5;a:2:{s:4:"name";s:10:"Key Skills";s:5:"width";i:215;}i:6;a:2:{s:4:"name";s:5:"Owner";s:5:"width";i:65;}i:7;a:2:{s:4:"name";s:7:"Created";s:5:"width";i:60;}i:8;a:2:{s:4:"name";s:8:"Modified";s:5:"width";i:60;}}s:37:"companies:CompaniesListByViewDataGrid";a:9:{i:0;a:2:{s:4:"name";s:11:"Attachments";s:5:"width";i:10;}i:1;a:2:{s:4:"name";s:4:"Name";s:5:"width";i:255;}i:2;a:2:{s:4:"name";s:4:"Jobs";s:5:"width";i:40;}i:3;a:2:{s:4:"name";s:4:"City";s:5:"width";i:90;}i:4;a:2:{s:4:"name";s:5:"State";s:5:"width";i:50;}i:5;a:2:{s:4:"name";s:5:"Phone";s:5:"width";i:85;}i:6;a:2:{s:4:"name";s:5:"Owner";s:5:"width";i:65;}i:7;a:2:{s:4:"name";s:7:"Created";s:5:"width";i:60;}i:8;a:2:{s:4:"name";s:8:"Modified";s:5:"width";i:60;}}s:35:"contacts:ContactsListByViewDataGrid";a:9:{i:0;a:2:{s:4:"name";s:11:"Attachments";s:5:"width";i:10;}i:1;a:2:{s:4:"name";s:10:"First Name";s:5:"width";i:80;}i:2;a:2:{s:4:"name";s:9:"Last Name";s:5:"width";i:80;}i:3;a:2:{s:4:"name";s:7:"Company";s:5:"width";i:135;}i:4;a:2:{s:4:"name";s:5:"Title";s:5:"width";i:135;}i:5;a:2:{s:4:"name";s:10:"Work Phone";s:5:"width";i:85;}i:6;a:2:{s:4:"name";s:5:"Owner";s:5:"width";i:85;}i:7;a:2:{s:4:"name";s:7:"Created";s:5:"width";i:60;}i:8;a:2:{s:4:"name";s:8:"Modified";s:5:"width";i:60;}}s:19:"lists:ListsDataGrid";a:7:{i:0;a:2:{s:4:"name";s:5:"Count";s:5:"width";i:45;}i:1;a:2:{s:4:"name";s:11:"Description";s:5:"width";i:355;}i:2;a:2:{s:4:"name";s:9:"Data Type";s:5:"width";i:75;}i:3;a:2:{s:4:"name";s:9:"List Type";s:5:"width";i:75;}i:4;a:2:{s:4:"name";s:5:"Owner";s:5:"width";i:75;}i:5;a:2:{s:4:"name";s:7:"Created";s:5:"width";i:60;}i:6;a:2:{s:4:"name";s:8:"Modified";s:5:"width";i:60;}}s:53:"candidates:candidatesSavedListByViewDataGrid:s:1:"1";";a:9:{i:0;a:2:{s:4:"name";s:11:"Attachments";s:5:"width";i:31;}i:1;a:2:{s:4:"name";s:10:"First Name";s:5:"width";i:75;}i:2;a:2:{s:4:"name";s:9:"Last Name";s:5:"width";i:85;}i:3;a:2:{s:4:"name";s:4:"City";s:5:"width";i:75;}i:4;a:2:{s:4:"name";s:5:"State";s:5:"width";i:50;}i:5;a:2:{s:4:"name";s:10:"Key Skills";s:5:"width";i:200;}i:6;a:2:{s:4:"name";s:5:"Owner";s:5:"width";i:65;}i:7;a:2:{s:4:"name";s:8:"Modified";s:5:"width";i:60;}i:8;a:2:{s:4:"name";s:13:"Added To List";s:5:"width";i:75;}}}', 0, '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); INSERT INTO `company` -(`company_id`, `site_id`, `billing_contact`, `name`, `address`, `city`, `state`, `zip`, `phone1`, `phone2`, `url`, `key_technologies`, `notes`, `entered_by`, `owner`, `date_created`, `date_modified`, `is_hot`, `fax_number`, `import_id`, `default_company`) +(`company_id`, `site_id`, `billing_contact`, `name`, `address`, `address2`, `city`, `state`, `zip`, `phone1`, `phone2`, `url`, `key_technologies`, `notes`, `entered_by`, `owner`, `date_created`, `date_modified`, `is_hot`, `fax_number`, `import_id`, `default_company`) VALUES -(1, 1, NULL, 'Internal Postings', '', '', '', '', '', '', '', '', '', 0, 0, '2009-11-19 10:00:20', '2009-11-19 10:00:20', 0, '', NULL, 1), -(2, 1, NULL, 'Google', '', '', '', '', '', '', '', '', '', 1, 1, '2016-08-10 14:47:24', '2016-08-10 14:47:24', 0, '', NULL, 0); +(1, 1, NULL, 'Internal Postings', '', '', '', '', '', '', '', '', '', '', 0, 0, '2009-11-19 10:00:20', '2009-11-19 10:00:20', 0, '', NULL, 1), +(2, 1, NULL, 'Google', '', '', '', '', '', '', '', '', '', '', 1, 1, '2016-08-10 14:47:24', '2016-08-10 14:47:24', 0, '', NULL, 0); INSERT INTO `contact` (`contact_id`, `company_id`, `site_id`, `last_name`, `first_name`, `title`, `email1`, `email2`, `phone_work`, `phone_cell`, `phone_other`, `address`, `city`, `state`, `zip`, `is_hot`, `notes`, `entered_by`, `owner`, `date_created`, `date_modified`, `left_company`, `import_id`, `company_department_id`, `reports_to`) @@ -124,5 +124,3 @@ VALUES (358, 2008, 1, 700, 'UK Candidates', 'index.php?m=lists&a=showList&savedListID=1', '2016-08-10 15:06:19'); - - diff --git a/test/data/test.sql b/test/data/test.sql index dac142d3a..084e0feda 100644 --- a/test/data/test.sql +++ b/test/data/test.sql @@ -235,6 +235,7 @@ CREATE TABLE `candidate` ( `phone_cell` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `phone_work` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `address` text COLLATE utf8_unicode_ci, + `address2` text COLLATE utf8_unicode_ci, `city` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `state` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `zip` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, @@ -618,7 +619,7 @@ CREATE TABLE `career_portal_template` ( LOCK TABLES `career_portal_template` WRITE; /*!40000 ALTER TABLE `career_portal_template` DISABLE KEYS */; -INSERT INTO `career_portal_template` VALUES (56,'Blank Page','Left',''),(57,'Blank Page','Footer',''),(58,'Blank Page','Header',''),(59,'Blank Page','Content - Main',''),(60,'Blank Page','CSS',''),(61,'Blank Page','Content - Search Results',''),(62,'Blank Page','Content - Questionnaire',''),(63,'Blank Page','Content - Job Details',''),(64,'Blank Page','Content - Thanks for your Submission',''),(65,'Blank Page','Content - Apply for Position',''),(66,'CATS 2.0','Left',''),(67,'CATS 2.0','Footer','</div>'),(68,'CATS 2.0','Header','<div id=\"container\">\r\n <div id=\"logo\"><img src=\"images/careers_cats.gif\" alt=\"IMAGE: CATS Applicant Tracking System Careers Page\" /></div>\r\n <div id=\"actions\">\r\n <h2>Shortcuts:</h2>\r\n <a href=\"index.php\" onmouseover=\"buttonMouseOver(\'returnToMain\',true);\" onmouseout=\"buttonMouseOver(\'returnToMain\',false);\"><img src=\"images/careers_return.gif\" id=\"returnToMain\" alt=\"IMAGE: Return to Main\" /></a>\r\n<a href=\"<rssURL>\" onmouseover=\"buttonMouseOver(\'rssFeed\',true);\" onmouseout=\"buttonMouseOver(\'rssFeed\',false);\"><img src=\"images/careers_rss.gif\" id=\"rssFeed\" alt=\"IMAGE: RSS Feed\" /></a>\r\n <a href=\"index.php?m=careers&p=showAll\" onmouseover=\"buttonMouseOver(\'showAllJobs\',true);\" onmouseout=\"buttonMouseOver(\'showAllJobs\',false);\"><img src=\"images/careers_show.gif\" id=\"showAllJobs\" alt=\"IMAGE: Show All Jobs\" /></a>\r\n </div>'),(69,'CATS 2.0','Content - Main','<div id=\"careerContent\">\r\n <registeredCandidate>\r\n <h1>Available Openings at <siteName></h1>\r\n <div id=\"descriptive\">\r\n <p>Change your life today by becoming an integral part of our winning team.</p>\r\n <p>If you are interested, we invite you to view the <a href=\"index.php?m=careers&p=showAll\">current opening positions</a> at our company.</p><br /><br /><registeredLoginTitle><h1 style=\"padding:0;margin:0;border:0\">Have you applied with us before?</h1></registeredLoginTitle><registeredLogin>\r\n </div>\r\n <div id=\"detailsTools\">\r\n <h2>Perform an action:</h2>\r\n <ul>\r\n <li><a href=\"\">Visit our website</a></li>\r\n </ul>\r\n </div>\r\n</div>'),(70,'CATS 2.0','CSS','table.sortable\r\n{\r\ntext-align:left;\r\nempty-cells: show;\r\nwidth: 940px;\r\n}\r\ntd\r\n{\r\npadding:5px;\r\n}\r\ntr.rowHeading\r\n{\r\n background: #e0e0e0; border: 1px solid #cccccc; border-left: none; border-right: none;\r\n}\r\ntr.oddTableRow\r\n{\r\nbackground: #ebebeb; \r\n}\r\ntr.evenTableRow\r\n{\r\n background: #ffffff; \r\n}\r\na.sortheader:hover,\r\na.sortheader:link,\r\na.sortheader:visited\r\n{\r\ncolor:#000;\r\n}\r\n\r\nbody, html { margin: 0; padding: 0; background: #ffffff; font: normal 12px/14px Arial, Helvetica, sans-serif; color: #000000; }\r\n#container { margin: 0 auto; padding: 0; width: 940px; height: auto; }\r\n#logo { float: left; margin: 0; }\r\n #logo img { width: 424px; height: 103px; }\r\n#actions { float: right; margin: 0; width: 310px; height: 100px; background: #efefef; border: 1px solid #cccccc; }\r\n #actions img { float: left; margin: 2px 6px 2px 15px; width: 130px; height: 25px; }\r\n#footer { clear: both; margin: 20px auto 0 auto; width: 150px; }\r\n #footer img { width: 137px; height: 38px; }\r\n\r\na:link, a:active { color: #1763b9; }\r\na:hover { color: #c75a01; }\r\na:visited { color: #333333; }\r\nimg { border: none; }\r\n\r\nh1 { margin: 0 0 10px 0; font: bold 18px Arial, Helvetica, sans-serif; }\r\nh2 { margin: 8px 0 8px 15px; font: bold 14px Arial, Helvetica, sans-serif; }\r\nh3 { margin: 0; font: bold 14px Arial, Helvetica, sans-serif; }\r\np { font: normal 12px Arial, Helvetica, sans-serif; }\r\np.instructions { margin: 0 0 0 10px; font: italic 12px Arial, Helvetica, sans-serif; color: #666666; }\r\n\r\n\r\n/* CONTENTS ON PAGE SPECS */\r\n#careerContent { clear: both; padding: 15px 0 0 0; }\r\n\r\n \r\n/* DISPLAY JOB DETAILS */\r\n#detailsTable { width: 400px; }\r\n #detailsTable td.detailsHeader { width: 30%; }\r\ndiv#descriptive { float: left; width: 585px; }\r\ndiv#detailsTools { float: right; padding: 0 0 8px 0; width: 280px; background: #ffffff; border: 1px solid #cccccc; }\r\n div#detailsTools img { margin: 2px 6px 5px 15px; }\r\n\r\n/* DISPLAY APPLICATION FORM */\r\ndiv.applyBoxLeft, div.applyBoxRight { width: 450px; height: 470px; background: #f9f9f9; border: 1px solid #cccccc; border-top: none; }\r\ndiv.applyBoxLeft { float: left; margin: 0 10px 0 0; }\r\ndiv.applyBoxRight { float: right; margin: 0 0 0 10px; }\r\n div.applyBoxLeft div, div.applyBoxRight div { margin: 0 0 5px 0; padding: 3px 10px; background: #efefef; border-top: 1px solid #cccccc; border-bottom: 1px solid #cccccc; }\r\n div.applyBoxLeft table, div.applyBoxRight table { margin: 0 auto; width: 420px; }\r\n div.applyBoxLeft table td, div.applyBoxRight table td { padding: 3px; vertical-align: top; }\r\n td.label { text-align: right; width: 110px; }\r\n form#applyToJobForm { }\r\n form#applyToJobForm label { font-weight: bold; }\r\n form#applyToJobForm input.inputBoxName, form#applyToJobForm input.inputBoxNormal { width: 285px; height: 15px; }\r\n form#applyToJobForm input.submitButton { width: 197px; height: 27px; background: url(\'images/careers_submit.gif\') no-repeat; }\r\n\r\n form#applyToJobForm input.submitButtonDown { width: 197px; height: 27px; background: url(\'images/careers_submit-o.gif\') no-repeat; }\r\n form#applyToJobForm textarea { margin: 8px 0 0 0; width: 410px; height: 170px; }\r\n form#applyToJobForm textarea.inputBoxArea{ width: 285px; height: 70px; }\r\n\r\n'),(71,'CATS 2.0','Content - Search Results','<div id=\"careerContent\">\r\n <registeredCandidate>\r\n <h1>Current Available Openings, Recently Posted Jobs: <numberOfSearchResults></h1>\r\n<searchResultsTable>\r\n </div>'),(72,'CATS 2.0','Content - Questionnaire','<div id=\"careerContent\">\r\n<questionnaire>\r\n<br /><br />\r\n<div style=\"text-align: right;\">\r\n<submit value=\"Continue\">\r\n</div>\r\n</div>'),(73,'CATS 2.0','Content - Job Details','<div id=\"careerContent\">\r\n <registeredCandidate>\r\n <h1>Position Details: <title></h1>\r\n <table id=\"detailsTable\">\r\n <tr>\r\n <td class=\"detailsHeader\"><strong>Location:</strong></td>\r\n <td><city>, <state></td>\r\n </tr>\r\n <tr>\r\n <td class=\"detailsHeader\"><strong>Openings:</strong></td>\r\n <td><openings></td>\r\n </tr>\r\n <tr>\r\n <td class=\"detailsHeader\"><strong>Salary Range:</strong></td>\r\n <td><salary></td>\r\n </tr>\r\n </table>\r\n <div id=\"descriptive\">\r\n <p><strong>Description:</strong></p>\r\n <description>\r\n </div>\r\n <div id=\"detailsTools\">\r\n <h2>Perform an action:</h2>\r\n <a-applyToJob onmouseover=\"buttonMouseOver(\'applyToPosition\',true);\" onmouseout=\"buttonMouseOver(\'applyToPosition\',false);\"><img src=\"images/careers_apply.gif\" id=\"applyToPosition\" alt=\"IMAGE: Apply to Position\" /></a>\r\n </div>\r\n </div>'),(74,'CATS 2.0','Content - Thanks for your Submission','<div id=\"careerContent\">\r\n <h1>Application Submitted For: <title></h1>\r\n <div id=\"descriptive\">\r\n <p>Please check your email inbox — You should receive an email confirmation of your application.</p>\r\n <p>Thank you for submitting your application to us. We will review it shortly and make contact with you soon.</p>\r\n </div>\r\n <div id=\"detailsTools\">\r\n <h2>Perform an action:</h2>\r\n <ul>\r\n <li><a href=\"\">Visit our website</a></li>\r\n </ul>\r\n </div>\r\n </div>'),(75,'CATS 2.0','Content - Apply for Position','<div id=\"careerContent\">\r\n <h1>Applying to: <title></h1>\r\n <div class=\"applyBoxLeft\">\r\n <div><h3>1. Import Resume (or CV) and Populate Fields</h3></div>\r\n <table>\r\n <tr>\r\n <td>\r\n \r\n <input-resumeUploadPreview>\r\n </td>\r\n </tr>\r\n </table>\r\n <br />\r\n\r\n <div><h3>2. Tell us about yourself</h3></div>\r\n <p class=\"instructions\">All fields marked with asterisk (*) are required.</p>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"firstNameLabel\" for=\"firstName\">*First Name:</label></td>\r\n <td><input-firstName></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"lastNameLabel\" for=\"lastName\">*Last Name:</label></td>\r\n <td><input-lastName></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"emailLabel\" for=\"email\">*Email Adddress:</label></td>\r\n <td><input-email></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"emailConfirmLabel\" for=\"emailconfirm\">*Confirm Email:</label></td>\r\n <td><input-emailconfirm></td>\r\n </tr>\r\n </table>\r\n </div>\r\n \r\n <div class=\"applyBoxRight\">\r\n <div><h3>3. How may we contact you?</h3></div>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"homePhoneLabel\" for=\"homePhone\">Home Phone:</label></td>\r\n <td><input-phone-home></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"mobilePhoneLabel\" for=\"mobilePhone\">Mobile Phone:</label></td>\r\n <td><input-phone-cell></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"workPhoneLabel\" for=\"workPhone\">Work Phone:</label></td>\r\n <td><input-phone></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"bestTimeLabel\" for=\"bestTime\">*Best time to call:</label></td>\r\n <td><input-best-time-to-call></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"mailingAddressLabel\" for=\"mailingAddress\">Mailing Address:</label></td>\r\n <td><input-address></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"cityProvinceLabel\" for=\"cityProvince\">*City/Province:</label></td>\r\n <td><input-city></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"stateCountryLabel\" for=\"stateCountry\">*State/Country:</label></td>\r\n <td><input-state></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"zipPostalLabel\" for=\"zipPostal\">*Zip/Postal Code:</label></td>\r\n <td><input-zip></td>\r\n </tr>\r\n </table>\r\n <br />\r\n <div><h3>4. Additional Information</h3></div>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"keySkillsLabel\" for=\"keySkills\">*Key Skills:</label></td>\r\n <td><input-keySkills></td>\r\n </tr>\r\n <tr>\r\n <td> </td>\r\n <td><img src=\"images/careers_submit.gif\" onmouseover=\"buttonMouseOver(\'submitApplicationNow\',true)\" onmouseout=\"buttonMouseOver(\'submitApplicationNow\',false)\" style=\"cursor: pointer;\" id=\"submitApplicationNow\" alt=\"Submit Application Now\" onclick=\"if (applyValidate()) { document.applyToJobForm.submit(); }\" /></td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>'),(76,'CATS 2.0','Content - Candidate Registration','<div id=\"careerContent\">\r\n <h1><applyContent>Applying to <title></applyContent></h1>\r\n <center>\r\n <table cellpadding=\"0\" cellspacing=\"0\">\r\n <tr>\r\n <td><label id=\"emailLabel\" for=\"email\"><h2>Enter your e-mail address:</h2></label></td>\r\n <td><input-email></td>\r\n </tr>\r\n <tr>\r\n <td align=\"right\" valign=\"top\"><input-new></td>\r\n <td style=\"line-height: 18px;\">\r\n <applyContent>\r\n <strong>I have not registered on this website.</strong><br />\r\n (I haven\'t applied to any jobs online)\r\n </applyContent>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td align=\"right\" valign=\"top\"><input-registered></td>\r\n <td style=\"line-height: 20px;\">\r\n <strong>I have registered before</strong><br />\r\n and my last name is:<br />\r\n <input-lastName><br />\r\n and my zip code is:<br />\r\n <input-zip><br /><br />\r\n <input-rememberMe> Remember my information for future visits<br /><br />\r\n <input-submit><br /><br />\r\n </td>\r\n </tr>\r\n </table>\r\n </center>\r\n</div>\r\n'),(77,'CATS 2.0','Content - Candidate Profile','<div id=\"careerContent\"> <h1 style=\"padding: 0; margin: 0; border: 0;\">My Profile</h1><h3 style=\"font-weight: normal;\">Any changes you make to your profile will be updated on our website for all past and future jobs you apply for.</h3> <br /> <div class=\"applyBoxLeft\"> <div><h3>1. Tell us about yourself</h3></div> <p class=\"instructions\">All fields marked with asterisk (*) are required.</p> <table> <tr> <td class=\"label\"><label id=\"firstNameLabel\" for=\"firstName\">*First Name:</label></td> <td><input-firstName></td> </tr> <tr> <td class=\"label\"><label id=\"lastNameLabel\" for=\"lastName\">*Last Name:</label></td> <td><input-lastName></td> </tr> <tr> <td class=\"label\"><label id=\"emailLabel\" for=\"email\">*Email Adddress:</label></td> <td><input-email1></td> </tr> <tr> <td colspan=\"2\"> <input-resume> </td> </tr> </table> </div> <div class=\"applyBoxRight\"> <div><h3>2. How may we contact you?</h3></div> <table> <tr> <td class=\"label\"><label id=\"homePhoneLabel\" for=\"homePhone\">Home Phone:</label></td> <td><input-phoneHome></td> </tr> <tr> <td class=\"label\"><label id=\"mobilePhoneLabel\" for=\"mobilePhone\">Mobile Phone:</label></td> <td><input-phoneCell></td> </tr> <tr> <td class=\"label\"><label id=\"workPhoneLabel\" for=\"workPhone\">Work Phone:</label></td> <td><input-phoneWork></td> </tr> <tr> <td class=\"label\"><label id=\"bestTimeLabel\" for=\"bestTime\">*Best time to call:</label></td> <td><input-bestTimeToCall></td> </tr> <tr> <td class=\"label\"><label id=\"mailingAddressLabel\" for=\"mailingAddress\">Mailing Address:</label></td> <td><input-address></td> </tr> <tr> <td class=\"label\"><label id=\"cityProvinceLabel\" for=\"cityProvince\">*City/Province:</label></td> <td><input-city></td> </tr> <tr> <td class=\"label\"><label id=\"stateCountryLabel\" for=\"stateCountry\">*State/Country:</label></td> <td><input-state></td> </tr> <tr> <td class=\"label\"><label id=\"zipPostalLabel\" for=\"zipPostal\">*Zip/Postal Code:</label></td> <td><input-zip></td> </tr> </table> <br /> <div><h3>3. Additional Information</h3></div> <table> <tr> <td class=\"label\"><label id=\"keySkillsLabel\" for=\"keySkills\">*Key Skills:</label></td> <td><input-keySkills></td> </tr> <tr> <td> </td> <td style=\"padding-top: 40px;\"><input-submit></td> </tr> </table> </div></div>'); +INSERT INTO `career_portal_template` VALUES (56,'Blank Page','Left',''),(57,'Blank Page','Footer',''),(58,'Blank Page','Header',''),(59,'Blank Page','Content - Main',''),(60,'Blank Page','CSS',''),(61,'Blank Page','Content - Search Results',''),(62,'Blank Page','Content - Questionnaire',''),(63,'Blank Page','Content - Job Details',''),(64,'Blank Page','Content - Thanks for your Submission',''),(65,'Blank Page','Content - Apply for Position',''),(66,'CATS 2.0','Left',''),(67,'CATS 2.0','Footer','</div>'),(68,'CATS 2.0','Header','<div id=\"container\">\r\n <div id=\"logo\"><img src=\"images/careers_cats.gif\" alt=\"IMAGE: CATS Applicant Tracking System Careers Page\" /></div>\r\n <div id=\"actions\">\r\n <h2>Shortcuts:</h2>\r\n <a href=\"index.php\" onmouseover=\"buttonMouseOver(\'returnToMain\',true);\" onmouseout=\"buttonMouseOver(\'returnToMain\',false);\"><img src=\"images/careers_return.gif\" id=\"returnToMain\" alt=\"IMAGE: Return to Main\" /></a>\r\n<a href=\"<rssURL>\" onmouseover=\"buttonMouseOver(\'rssFeed\',true);\" onmouseout=\"buttonMouseOver(\'rssFeed\',false);\"><img src=\"images/careers_rss.gif\" id=\"rssFeed\" alt=\"IMAGE: RSS Feed\" /></a>\r\n <a href=\"index.php?m=careers&p=showAll\" onmouseover=\"buttonMouseOver(\'showAllJobs\',true);\" onmouseout=\"buttonMouseOver(\'showAllJobs\',false);\"><img src=\"images/careers_show.gif\" id=\"showAllJobs\" alt=\"IMAGE: Show All Jobs\" /></a>\r\n </div>'),(69,'CATS 2.0','Content - Main','<div id=\"careerContent\">\r\n <registeredCandidate>\r\n <h1>Available Openings at <siteName></h1>\r\n <div id=\"descriptive\">\r\n <p>Change your life today by becoming an integral part of our winning team.</p>\r\n <p>If you are interested, we invite you to view the <a href=\"index.php?m=careers&p=showAll\">current opening positions</a> at our company.</p><br /><br /><registeredLoginTitle><h1 style=\"padding:0;margin:0;border:0\">Have you applied with us before?</h1></registeredLoginTitle><registeredLogin>\r\n </div>\r\n <div id=\"detailsTools\">\r\n <h2>Perform an action:</h2>\r\n <ul>\r\n <li><a href=\"\">Visit our website</a></li>\r\n </ul>\r\n </div>\r\n</div>'),(70,'CATS 2.0','CSS','table.sortable\r\n{\r\ntext-align:left;\r\nempty-cells: show;\r\nwidth: 940px;\r\n}\r\ntd\r\n{\r\npadding:5px;\r\n}\r\ntr.rowHeading\r\n{\r\n background: #e0e0e0; border: 1px solid #cccccc; border-left: none; border-right: none;\r\n}\r\ntr.oddTableRow\r\n{\r\nbackground: #ebebeb; \r\n}\r\ntr.evenTableRow\r\n{\r\n background: #ffffff; \r\n}\r\na.sortheader:hover,\r\na.sortheader:link,\r\na.sortheader:visited\r\n{\r\ncolor:#000;\r\n}\r\n\r\nbody, html { margin: 0; padding: 0; background: #ffffff; font: normal 12px/14px Arial, Helvetica, sans-serif; color: #000000; }\r\n#container { margin: 0 auto; padding: 0; width: 940px; height: auto; }\r\n#logo { float: left; margin: 0; }\r\n #logo img { width: 424px; height: 103px; }\r\n#actions { float: right; margin: 0; width: 310px; height: 100px; background: #efefef; border: 1px solid #cccccc; }\r\n #actions img { float: left; margin: 2px 6px 2px 15px; width: 130px; height: 25px; }\r\n#footer { clear: both; margin: 20px auto 0 auto; width: 150px; }\r\n #footer img { width: 137px; height: 38px; }\r\n\r\na:link, a:active { color: #1763b9; }\r\na:hover { color: #c75a01; }\r\na:visited { color: #333333; }\r\nimg { border: none; }\r\n\r\nh1 { margin: 0 0 10px 0; font: bold 18px Arial, Helvetica, sans-serif; }\r\nh2 { margin: 8px 0 8px 15px; font: bold 14px Arial, Helvetica, sans-serif; }\r\nh3 { margin: 0; font: bold 14px Arial, Helvetica, sans-serif; }\r\np { font: normal 12px Arial, Helvetica, sans-serif; }\r\np.instructions { margin: 0 0 0 10px; font: italic 12px Arial, Helvetica, sans-serif; color: #666666; }\r\n\r\n\r\n/* CONTENTS ON PAGE SPECS */\r\n#careerContent { clear: both; padding: 15px 0 0 0; }\r\n\r\n \r\n/* DISPLAY JOB DETAILS */\r\n#detailsTable { width: 400px; }\r\n #detailsTable td.detailsHeader { width: 30%; }\r\ndiv#descriptive { float: left; width: 585px; }\r\ndiv#detailsTools { float: right; padding: 0 0 8px 0; width: 280px; background: #ffffff; border: 1px solid #cccccc; }\r\n div#detailsTools img { margin: 2px 6px 5px 15px; }\r\n\r\n/* DISPLAY APPLICATION FORM */\r\ndiv.applyBoxLeft, div.applyBoxRight { width: 450px; height: 470px; background: #f9f9f9; border: 1px solid #cccccc; border-top: none; }\r\ndiv.applyBoxLeft { float: left; margin: 0 10px 0 0; }\r\ndiv.applyBoxRight { float: right; margin: 0 0 0 10px; }\r\n div.applyBoxLeft div, div.applyBoxRight div { margin: 0 0 5px 0; padding: 3px 10px; background: #efefef; border-top: 1px solid #cccccc; border-bottom: 1px solid #cccccc; }\r\n div.applyBoxLeft table, div.applyBoxRight table { margin: 0 auto; width: 420px; }\r\n div.applyBoxLeft table td, div.applyBoxRight table td { padding: 3px; vertical-align: top; }\r\n td.label { text-align: right; width: 110px; }\r\n form#applyToJobForm { }\r\n form#applyToJobForm label { font-weight: bold; }\r\n form#applyToJobForm input.inputBoxName, form#applyToJobForm input.inputBoxNormal { width: 285px; height: 15px; }\r\n form#applyToJobForm input.submitButton { width: 197px; height: 27px; background: url(\'images/careers_submit.gif\') no-repeat; }\r\n\r\n form#applyToJobForm input.submitButtonDown { width: 197px; height: 27px; background: url(\'images/careers_submit-o.gif\') no-repeat; }\r\n form#applyToJobForm textarea { margin: 8px 0 0 0; width: 410px; height: 170px; }\r\n form#applyToJobForm textarea.inputBoxArea{ width: 285px; height: 70px; }\r\n\r\n'),(71,'CATS 2.0','Content - Search Results','<div id=\"careerContent\">\r\n <registeredCandidate>\r\n <h1>Current Available Openings, Recently Posted Jobs: <numberOfSearchResults></h1>\r\n<searchResultsTable>\r\n </div>'),(72,'CATS 2.0','Content - Questionnaire','<div id=\"careerContent\">\r\n<questionnaire>\r\n<br /><br />\r\n<div style=\"text-align: right;\">\r\n<submit value=\"Continue\">\r\n</div>\r\n</div>'),(73,'CATS 2.0','Content - Job Details','<div id=\"careerContent\">\r\n <registeredCandidate>\r\n <h1>Position Details: <title></h1>\r\n <table id=\"detailsTable\">\r\n <tr>\r\n <td class=\"detailsHeader\"><strong>Location:</strong></td>\r\n <td><city>, <state></td>\r\n </tr>\r\n <tr>\r\n <td class=\"detailsHeader\"><strong>Openings:</strong></td>\r\n <td><openings></td>\r\n </tr>\r\n <tr>\r\n <td class=\"detailsHeader\"><strong>Salary Range:</strong></td>\r\n <td><salary></td>\r\n </tr>\r\n </table>\r\n <div id=\"descriptive\">\r\n <p><strong>Description:</strong></p>\r\n <description>\r\n </div>\r\n <div id=\"detailsTools\">\r\n <h2>Perform an action:</h2>\r\n <a-applyToJob onmouseover=\"buttonMouseOver(\'applyToPosition\',true);\" onmouseout=\"buttonMouseOver(\'applyToPosition\',false);\"><img src=\"images/careers_apply.gif\" id=\"applyToPosition\" alt=\"IMAGE: Apply to Position\" /></a>\r\n </div>\r\n </div>'),(74,'CATS 2.0','Content - Thanks for your Submission','<div id=\"careerContent\">\r\n <h1>Application Submitted For: <title></h1>\r\n <div id=\"descriptive\">\r\n <p>Please check your email inbox — You should receive an email confirmation of your application.</p>\r\n <p>Thank you for submitting your application to us. We will review it shortly and make contact with you soon.</p>\r\n </div>\r\n <div id=\"detailsTools\">\r\n <h2>Perform an action:</h2>\r\n <ul>\r\n <li><a href=\"\">Visit our website</a></li>\r\n </ul>\r\n </div>\r\n </div>'),(75,'CATS 2.0','Content - Apply for Position','<div id=\"careerContent\">\r\n <h1>Applying to: <title></h1>\r\n <div class=\"applyBoxLeft\">\r\n <div><h3>1. Import Resume (or CV) and Populate Fields</h3></div>\r\n <table>\r\n <tr>\r\n <td>\r\n \r\n <input-resumeUploadPreview>\r\n </td>\r\n </tr>\r\n </table>\r\n <br />\r\n\r\n <div><h3>2. Tell us about yourself</h3></div>\r\n <p class=\"instructions\">All fields marked with asterisk (*) are required.</p>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"firstNameLabel\" for=\"firstName\">*First Name:</label></td>\r\n <td><input-firstName></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"lastNameLabel\" for=\"lastName\">*Last Name:</label></td>\r\n <td><input-lastName></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"emailLabel\" for=\"email\">*Email Adddress:</label></td>\r\n <td><input-email></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"emailConfirmLabel\" for=\"emailconfirm\">*Confirm Email:</label></td>\r\n <td><input-emailconfirm></td>\r\n </tr>\r\n </table>\r\n </div>\r\n \r\n <div class=\"applyBoxRight\">\r\n <div><h3>3. How may we contact you?</h3></div>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"homePhoneLabel\" for=\"homePhone\">Home Phone:</label></td>\r\n <td><input-phone-home></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"mobilePhoneLabel\" for=\"mobilePhone\">Mobile Phone:</label></td>\r\n <td><input-phone-cell></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"workPhoneLabel\" for=\"workPhone\">Work Phone:</label></td>\r\n <td><input-phone></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"bestTimeLabel\" for=\"bestTime\">*Best time to call:</label></td>\r\n <td><input-best-time-to-call></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"mailingAddressLabel\" for=\"mailingAddress\">Mailing Address:</label></td>\r\n <td><input-address></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"mailingAddress2Label\" for=\"mailingAddress2\">Mailing Address 2:</label></td>\r\n <td><input-address2></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"cityProvinceLabel\" for=\"cityProvince\">*City/Province:</label></td>\r\n <td><input-city></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"stateCountryLabel\" for=\"stateCountry\">*State/Country:</label></td>\r\n <td><input-state></td>\r\n </tr>\r\n <tr>\r\n <td class=\"label\"><label id=\"zipPostalLabel\" for=\"zipPostal\">*Zip/Postal Code:</label></td>\r\n <td><input-zip></td>\r\n </tr>\r\n </table>\r\n <br />\r\n <div><h3>4. Additional Information</h3></div>\r\n <table>\r\n <tr>\r\n <td class=\"label\"><label id=\"keySkillsLabel\" for=\"keySkills\">*Key Skills:</label></td>\r\n <td><input-keySkills></td>\r\n </tr>\r\n <tr>\r\n <td> </td>\r\n <td><img src=\"images/careers_submit.gif\" onmouseover=\"buttonMouseOver(\'submitApplicationNow\',true)\" onmouseout=\"buttonMouseOver(\'submitApplicationNow\',false)\" style=\"cursor: pointer;\" id=\"submitApplicationNow\" alt=\"Submit Application Now\" onclick=\"if (applyValidate()) { document.applyToJobForm.submit(); }\" /></td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>'),(76,'CATS 2.0','Content - Candidate Registration','<div id=\"careerContent\">\r\n <h1><applyContent>Applying to <title></applyContent></h1>\r\n <center>\r\n <table cellpadding=\"0\" cellspacing=\"0\">\r\n <tr>\r\n <td><label id=\"emailLabel\" for=\"email\"><h2>Enter your e-mail address:</h2></label></td>\r\n <td><input-email></td>\r\n </tr>\r\n <tr>\r\n <td align=\"right\" valign=\"top\"><input-new></td>\r\n <td style=\"line-height: 18px;\">\r\n <applyContent>\r\n <strong>I have not registered on this website.</strong><br />\r\n (I haven\'t applied to any jobs online)\r\n </applyContent>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td align=\"right\" valign=\"top\"><input-registered></td>\r\n <td style=\"line-height: 20px;\">\r\n <strong>I have registered before</strong><br />\r\n and my last name is:<br />\r\n <input-lastName><br />\r\n and my zip code is:<br />\r\n <input-zip><br /><br />\r\n <input-rememberMe> Remember my information for future visits<br /><br />\r\n <input-submit><br /><br />\r\n </td>\r\n </tr>\r\n </table>\r\n </center>\r\n</div>\r\n'),(77,'CATS 2.0','Content - Candidate Profile','<div id=\"careerContent\"> <h1 style=\"padding: 0; margin: 0; border: 0;\">My Profile</h1><h3 style=\"font-weight: normal;\">Any changes you make to your profile will be updated on our website for all past and future jobs you apply for.</h3> <br /> <div class=\"applyBoxLeft\"> <div><h3>1. Tell us about yourself</h3></div> <p class=\"instructions\">All fields marked with asterisk (*) are required.</p> <table> <tr> <td class=\"label\"><label id=\"firstNameLabel\" for=\"firstName\">*First Name:</label></td> <td><input-firstName></td> </tr> <tr> <td class=\"label\"><label id=\"lastNameLabel\" for=\"lastName\">*Last Name:</label></td> <td><input-lastName></td> </tr> <tr> <td class=\"label\"><label id=\"emailLabel\" for=\"email\">*Email Adddress:</label></td> <td><input-email1></td> </tr> <tr> <td colspan=\"2\"> <input-resume> </td> </tr> </table> </div> <div class=\"applyBoxRight\"> <div><h3>2. How may we contact you?</h3></div> <table> <tr> <td class=\"label\"><label id=\"homePhoneLabel\" for=\"homePhone\">Home Phone:</label></td> <td><input-phoneHome></td> </tr> <tr> <td class=\"label\"><label id=\"mobilePhoneLabel\" for=\"mobilePhone\">Mobile Phone:</label></td> <td><input-phoneCell></td> </tr> <tr> <td class=\"label\"><label id=\"workPhoneLabel\" for=\"workPhone\">Work Phone:</label></td> <td><input-phoneWork></td> </tr> <tr> <td class=\"label\"><label id=\"bestTimeLabel\" for=\"bestTime\">*Best time to call:</label></td> <td><input-bestTimeToCall></td> </tr> <tr> <td class=\"label\"><label id=\"mailingAddressLabel\" for=\"mailingAddress\">Mailing Address:</label></td> <td><input-address></td> </tr> <tr> <td class=\"label\"><label id=\"mailingAddress2Label\" for=\"mailingAddress2\">Mailing Address 2:</label></td> <td><input-address2></td> </tr> <tr> <td class=\"label\"><label id=\"cityProvinceLabel\" for=\"cityProvince\">*City/Province:</label></td> <td><input-city></td> </tr> <tr> <td class=\"label\"><label id=\"stateCountryLabel\" for=\"stateCountry\">*State/Country:</label></td> <td><input-state></td> </tr> <tr> <td class=\"label\"><label id=\"zipPostalLabel\" for=\"zipPostal\">*Zip/Postal Code:</label></td> <td><input-zip></td> </tr> </table> <br /> <div><h3>3. Additional Information</h3></div> <table> <tr> <td class=\"label\"><label id=\"keySkillsLabel\" for=\"keySkills\">*Key Skills:</label></td> <td><input-keySkills></td> </tr> <tr> <td> </td> <td style=\"padding-top: 40px;\"><input-submit></td> </tr> </table> </div></div>'); /*!40000 ALTER TABLE `career_portal_template` ENABLE KEYS */; UNLOCK TABLES; @@ -661,6 +662,7 @@ CREATE TABLE `company` ( `billing_contact` int(11) DEFAULT NULL, `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `address` text COLLATE utf8_unicode_ci, + `address2` text COLLATE utf8_unicode_ci, `city` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `state` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `zip` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, @@ -745,6 +747,7 @@ CREATE TABLE `contact` ( `phone_cell` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `phone_other` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `address` text COLLATE utf8_unicode_ci, + `address2` text COLLATE utf8_unicode_ci, `city` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `state` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `zip` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,