function js_setup() { global $global_json; $global_json = getJSONobj(); require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); if (isset($_REQUEST['parent_type'])) { $sqs_objects = array('parent_name' => $qsd->getQSParent($_REQUEST['parent_type'])); } else { $sqs_objects = array('parent_name' => $qsd->getQSParent()); } /* if (isset($_REQUEST['parent_type']) && $_REQUEST['parent_type'] != 'Users') $sqs_objects = array('parent_name' => $qsd->getQSParent($_REQUEST['parent_type'])); else if (isset($_REQUEST['parent_type']) && $_REQUEST['parent_type'] == 'Users') $sqs_objects = array('parent_name' => $qsd->getQSUser()); else $sqs_objects = array('parent_name' => $qsd->getQSParent()); */ $quicksearch_js = '<script type="text/javascript" language="javascript">sqs_objects = ' . $global_json->encode($sqs_objects) . '</script>'; return $quicksearch_js; }
} if (isset($_REQUEST['return_action'])) { $ss->assign("RETURN_ACTION", $_REQUEST['return_action']); } if (isset($_REQUEST['return_id'])) { $ss->assign("RETURN_ID", $_REQUEST['return_id']); } // handle Create $module then Cancel if (empty($_REQUEST['return_id'])) { $ss->assign("RETURN_ACTION", 'index'); } $ss->assign("PRINT_URL", "index.php?" . $GLOBALS['request_string']); require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $qsd->setFormName('wizform'); $sqs_objects = array('parent_name' => $qsd->getQSParent(), 'assigned_user_name' => $qsd->getQSUser(), 'test_name' => getProspectListQSObjects('prospect_list_type_test', 'test_name', 'wiz_step3_test_name_id'), 'unsubscription_name' => getProspectListQSObjects('prospect_list_type_exempt', 'unsubscription_name', 'wiz_step3_unsubscription_name_id'), 'subscription_name' => getProspectListQSObjects('prospect_list_type_default', 'subscription_name', 'wiz_step3_subscription_name_id')); $quicksearch_js = '<script type="text/javascript" language="javascript">sqs_objects = ' . $json->encode($sqs_objects) . '</script>'; $ss->assign("JAVASCRIPT", $quicksearch_js); //set the campaign type based on wizardtype value from request object $campaign_type = 'newsletter'; if (isset($_REQUEST['wizardtype']) && $_REQUEST['wizardtype'] == 1 || $focus->campaign_type == 'NewsLetter') { $campaign_type = 'newsletter'; $ss->assign("CAMPAIGN_DIAGNOSTIC_LINK", diagnose()); } elseif (isset($_REQUEST['wizardtype']) && $_REQUEST['wizardtype'] == 2 || $focus->campaign_type == 'Email') { $campaign_type = 'email'; $ss->assign("CAMPAIGN_DIAGNOSTIC_LINK", diagnose()); } else { $campaign_type = 'general'; } //******** CAMPAIGN HEADER AND BUDGET UI DIV Stuff (both divs) **********/ /// Users Popup
$xtpl->assign("RETURN_ACTION", 'index'); } if (isset($_REQUEST['parent_id'])) { $xtpl->assign('parent_id', $_REQUEST['parent_id']); } if (isset($_REQUEST['parent_name'])) { $xtpl->assign('parent_name', $_REQUEST['parent_name']); } if (isset($_REQUEST['add_component'])) { $xtpl->assign('add_component', $_REQUEST['add_component']); } $xtpl->assign("CALENDAR_DATEFORMAT", $timedate->get_cal_date_format()); $xtpl->assign("THEME", $theme); require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $sqs_objects = array('parent_name' => $qsd->getQSParent(), 'assigned_user_name' => $qsd->getQSUser()); $sqs_objects['parent_name']['modules'] = array('Estimates'); $quicksearch_js = $qsd->getQSScripts(); $quicksearch_js .= '<script type="text/javascript" language="javascript">sqs_objects = ' . $json->encode($sqs_objects) . '</script>'; $xtpl->assign("JAVASCRIPT", get_set_focus_js() . get_validate_record_js() . get_layout_js() . $quicksearch_js); $xtpl->assign("IMAGE_PATH", $image_path); $xtpl->assign("PRINT_URL", "index.php?" . $GLOBALS['request_string']); $xtpl->assign("id", $focus->id); if (isset($focus->name)) { $xtpl->assign("NAME", $focus->name); } else { $xtpl->assign("NAME", ""); } //Add Custom Fields require_once 'modules/DynamicFields/templates/Files/EditView.php'; global $current_user;
$col_arr[2] = true; } else { $cols_name = $field_def['vname']; $col_arr[0] = $cols_name; $col_arr[1] = $field_def['name']; } if (!in_array($cols_name, $fields)) { array_push($fields, $col_arr); } $count++; } $xtpl->assign("WEB_POST_URL", $web_post_url); //$xtpl->assign("LEAD_SELECT_FIELDS",'MOD.LBL_SELECT_LEAD_FIELDS'); require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $sqs_objects = array('account_name' => $qsd->getQSParent(), 'assigned_user_name' => $qsd->getQSUser(), 'campaign_name' => $qsd->getQSCampaigns()); $quicksearch_js = '<script type="text/javascript" language="javascript">sqs_objects = ' . $json->encode($sqs_objects) . '</script>'; $xtpl->assign("JAVASCRIPT", $quicksearch_js); if (empty($focus->assigned_user_id) && empty($focus->id)) { $focus->assigned_user_id = $current_user->id; } if (empty($focus->assigned_name) && empty($focus->id)) { $focus->assigned_user_name = $current_user->user_name; } $xtpl->assign("ASSIGNED_USER_OPTIONS", get_select_options_with_id(get_user_array(TRUE, "Active", $focus->assigned_user_id), $focus->assigned_user_id)); $xtpl->assign("ASSIGNED_USER_NAME", $focus->assigned_user_name); $xtpl->assign("ASSIGNED_USER_ID", $focus->assigned_user_id); $xtpl->assign("REDIRECT_URL_DEFAULT", 'http://'); //required fields on Webtolead form $campaign = new Campaign(); $javascript = new javascript();
function createQuickSearchCode($formName = 'EditView', $vardef) { require_once 'include/QuickSearchDefaults.php'; $json = getJSONobj(); $dynamicParentTypePlaceHolder = "**@**"; //Placeholder for dynamic parent so smarty tags are not escaped in json encoding. $dynamicParentType = '{/literal}{if !empty($fields.parent_type.value)}{$fields.parent_type.value}{else}Accounts{/if}{literal}'; //Get the parent sqs definition $qsd = new QuickSearchDefaults(); $qsd->setFormName($formName); $sqsFieldArray = $qsd->getQSParent($dynamicParentTypePlaceHolder); $qsFieldName = $formName . "_" . $vardef['name']; //Build the javascript $quicksearch_js = '<script language="javascript">'; $quicksearch_js .= "if(typeof sqs_objects == 'undefined'){var sqs_objects = new Array;}"; $quicksearch_js .= "sqs_objects['{$qsFieldName}']=" . str_replace($dynamicParentTypePlaceHolder, $dynamicParentType, $json->encode($sqsFieldArray)) . ';'; return $quicksearch_js .= '</script>'; }
function getFormBody($prefix, $mod = 'Opportunities', $formname = '') { if (!ACLController::checkAccess('Opportunities', 'edit', true)) { return ''; } if (!empty($mod)) { global $current_language; $mod_strings = return_module_language($current_language, $mod); } else { global $mod_strings; } global $app_strings; global $app_list_strings; global $theme; global $current_user; global $sugar_config; global $timedate; // Unimplemented until jscalendar language files are fixed // global $current_language; // global $default_language; // global $cal_codes; $lbl_required_symbol = $app_strings['LBL_REQUIRED_SYMBOL']; $lbl_opportunity_name = $mod_strings['LBL_OPPORTUNITY_NAME']; $lbl_sales_stage = $mod_strings['LBL_SALES_STAGE']; $lbl_date_closed = $mod_strings['LBL_DATE_CLOSED']; $lbl_amount = $mod_strings['LBL_AMOUNT']; $ntc_date_format = $timedate->get_user_date_format(); $cal_dateformat = $timedate->get_cal_date_format(); $user_id = $current_user->id; // Unimplemented until jscalendar language files are fixed // $cal_lang = (empty($cal_codes[$current_language])) ? $cal_codes[$default_language] : $cal_codes[$current_language]; $cal_lang = "en"; $the_form = <<<EOQ <p> \t\t\t<input type="hidden" name="{$prefix}record" value=""> \t\t\t<input type="hidden" name="{$prefix}assigned_user_id" value='{$user_id}'> \t\t{$lbl_opportunity_name} <span class="required">{$lbl_required_symbol}</span><br> \t\t<input name='{$prefix}name' type="text" value=""> EOQ; if ($sugar_config['require_accounts']) { /////////////////////////////////////// /// /// SETUP ACCOUNT POPUP $popup_request_data = array('call_back_function' => 'set_return', 'form_name' => "{$prefix}OppSave", 'field_to_name_array' => array('id' => 'account_id', 'name' => 'account_name')); $json = getJSONobj(); $encoded_popup_request_data = $json->encode($popup_request_data); // /////////////////////////////////////// $the_form .= <<<EOQ \t\t{$mod_strings['LBL_ACCOUNT_NAME']} <span class="required">{$lbl_required_symbol}</span><br> \t\t<input class='sqsEnabled' autocomplete='off' id='qc_account_name' name='account_name' type='text' value="" size="16"><input id='qc_account_id' name='account_id' type="hidden" value=''> <input title="{$app_strings['LBL_SELECT_BUTTON_TITLE']}" accessKey="{$app_strings['LBL_SELECT_BUTTON_KEY']}" type="button" class="button" value='{$app_strings['LBL_SELECT_BUTTON_LABEL']}' name=btn1 \t\t\tonclick='open_popup("Accounts", 600, 400, "", true, false, {$encoded_popup_request_data});' /><br> EOQ; } $jsCalendarImage = SugarThemeRegistry::current()->getImageURL('jscalendar.gif'); $the_form .= <<<EOQ \t\t{$lbl_date_closed} <span class="required">{$lbl_required_symbol}</span> <br><span class="dateFormat">{$ntc_date_format}</span><br> \t\t<input name='{$prefix}date_closed' size='12' maxlength='10' id='{$prefix}jscal_field' type="text" value=""> <img src="{$jsCalendarImage}" alt="{$app_strings['LBL_ENTER_DATE']}" id="jscal_trigger" align="absmiddle"><br> \t\t{$lbl_sales_stage} <span class="required">{$lbl_required_symbol}</span><br> \t\t<select name='{$prefix}sales_stage'> EOQ; $the_form .= get_select_options_with_id($app_list_strings['sales_stage_dom'], ""); $the_form .= <<<EOQ \t\t</select><br> \t\t{$lbl_amount} <span class="required">{$lbl_required_symbol}</span><br> \t\t<input name='{$prefix}amount' type="text"></p> \t\t<input type='hidden' name='lead_source' value=''> \t\t<script type="text/javascript"> \t\tCalendar.setup ({ \t\t\tinputField : "{$prefix}jscal_field", daFormat : "{$cal_dateformat}", ifFormat : "{$cal_dateformat}", showsTime : false, button : "jscal_trigger", singleClick : true, step : 1, weekNumbers:false \t\t}); \t\t</script> EOQ; require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $sqs_objects = array('qc_account_name' => $qsd->getQSParent()); $sqs_objects['qc_account_name']['populate_list'] = array('qc_account_name', 'qc_account_id'); $quicksearch_js = '<script type="text/javascript" language="javascript">sqs_objects = ' . $json->encode($sqs_objects) . '</script>'; $the_form .= $quicksearch_js; $javascript = new javascript(); $javascript->setFormName($formname); $javascript->setSugarBean(new Opportunity()); $javascript->addRequiredFields($prefix); $the_form .= $javascript->getScript(); return $the_form; }
$xtpl->assign('CLASS', 'dataLabel'); require_once 'modules/Notes/NoteFormBase.php'; $noteForm = new NoteFormBase(); $postform = "<div id='contactnotelink'><p><a href='javascript:toggleDisplay(\"contactnote\");addToValidate(\"BusinessCard\", \"ContactNotesname\", \"varchar\", true,\"" . $mod_strings['LBL_NOTE_SUBJECT'] . "\");' class='tabFormLink'>{$mod_strings['LNK_NEW_NOTE']}</a></p></div>"; $postform .= '<div id="contactnote" style="display:none">' . '<input type=hidden name=CreateContactNote value=0>' . $noteForm->getFormBody('ContactNotes', 'Notes', 'BusinessCard', 85, false) . '</div>'; $xtpl->assign('POSTFORM', $postform); $xtpl->parse("main.form"); $xtpl->assign('HEADER', $app_strings['LBL_RELATED_RECORDS']); $xtpl->parse("main.hrrow"); $popup_request_data = array('call_back_function' => 'set_return', 'form_name' => 'BusinessCard', 'field_to_name_array' => array('id' => 'selectedAccount', 'name' => 'display_account_name')); $json = getJSONobj(); $encoded_contact_popup_request_data = $json->encode($popup_request_data); //Account require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $sqs_objects = array('display_account_name' => $qsd->getQSParent()); $sqs_objects['display_account_name']['populate_list'] = array('display_account_name', 'selectedAccount'); $quicksearch_js = $qsd->getQSScripts(); $quicksearch_js .= '<script type="text/javascript" language="javascript">sqs_objects = ' . $json->encode($sqs_objects) . '; addToValidateBinaryDependency(\'BusinessCard\', \'display_account_name\', \'alpha\', false, \'' . $app_strings['ERR_SQS_NO_MATCH_FIELD'] . $app_strings['LBL_ACCOUNT'] . '\', \'selectedAccount\' ); </script>'; $selectAccountButton = $quicksearch_js; $selectAccountButton .= '<script type=\'text/javascript\' src=\'include/javascript/popup_parent_helper.js?s=' . $sugar_version . '&c=' . $sugar_config['js_custom_version'] . '\'>' . "</script><div id='newaccountdivlink' style='display:inline' class='dataLabel'>{$mod_strings['LNK_SELECT_ACCOUNT']}: <input class='sqsEnabled' name='display_account_name' id='display_account_name' type=\"text\" value=\"\"><input name='selectedAccount' id='selectedAccount' type=\"hidden\" value=''> <input type='button' title=\"{$app_strings['LBL_SELECT_BUTTON_TITLE']}\" accessKey=\"{$app_strings['LBL_SELECT_BUTTON_KEY']}\" type=\"button\" class=\"button\" value='{$app_strings['LBL_SELECT_BUTTON_LABEL']}' name=btn1 LANGUAGE=javascript onclick='open_popup(\"Accounts\", 600, 400, \"\", true, false, {$encoded_contact_popup_request_data});'/> <input type='button' title=\"{$app_strings['LBL_CLEAR_BUTTON_TITLE']}\" accessKey=\"{$app_strings['LBL_CLEAR_BUTTON_KEY']}\" type=\"button\" class=\"button\" value='{$app_strings['LBL_CLEAR_BUTTON_LABEL']}' name=btn1 LANGUAGE=javascript onclick='document.forms[\"ConvertLead\"].selectedAccount.value=\"\";document.forms[\"ConvertLead\"].display_account_name.value=\"\"; '><br><b>{$app_strings['LBL_OR']}</b></div><br><br>"; $xtpl->assign('FORMHEADER', get_form_header($mod_strings['LNK_NEW_ACCOUNT'], '', '')); require_once 'modules/Accounts/AccountFormBase.php'; $accountForm = new AccountFormBase(); $xtpl->assign('CLASS', 'evenListRow'); $xtpl->assign('FORMBODY', $selectAccountButton . "<slot class='dataLabel'><input class='checkbox' type='checkbox' name='newaccount' onclick='document.forms[\"BusinessCard\"].selectedAccount.value=\"\";document.forms[\"BusinessCard\"].display_account_name.value=\"\";toggleDisplay(\"newaccountdiv\");'> " . $mod_strings['LNK_NEW_ACCOUNT'] . "</slot> <div id='newaccountdiv' style='display:none'>" . $accountForm->getWideFormBody('Accounts', 'Accounts', 'BusinessCard', '')); $xtpl->assign('FORMFOOTER', get_form_footer()); require_once 'modules/Notes/NoteFormBase.php'; $noteForm = new NoteFormBase();
/** * Renders the Import form from Smarty and returns HTML * @param array $vars request variable global * @param object $email Fetched email object * @param bool $addToAddressBook * @return array */ function getImportForm($vars, $email) { require_once 'include/json_config.php'; require_once "include/EditView/EditView2.php"; require_once "include/TemplateHandler/TemplateHandler.php"; require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $qsd->setFormName('ImportEditView'); global $app_strings; global $current_user; global $app_list_strings; $sqs_objects = array('ImportEditView_parent_name' => $qsd->getQSParent()); $smarty = new Sugar_Smarty(); $smarty->assign("APP", $app_strings); $showAssignTo = false; if (!isset($vars['showAssignTo']) || $vars['showAssignTo'] == true) { $showAssignTo = true; } // if if ($showAssignTo) { if (empty($email->assigned_user_id) && empty($email->id)) { $email->assigned_user_id = $current_user->id; } if (empty($email->assigned_name) && empty($email->id)) { $email->assigned_user_name = $current_user->user_name; } $sqs_objects['ImportEditView_assigned_user_name'] = $qsd->getQSUser(); } $smarty->assign("showAssignedTo", $showAssignTo); $showDelete = false; if (!isset($vars['showDelete']) || $vars['showDelete'] == true) { $showDelete = true; } $smarty->assign("showDelete", $showDelete); $smarty->assign("userId", $email->assigned_user_id); $smarty->assign("userName", $email->assigned_user_name); $parent_types = $app_list_strings['record_type_display']; $smarty->assign('parentOptions', get_select_options_with_id($parent_types, $email->parent_type)); $quicksearch_js = '<script type="text/javascript" language="javascript">sqs_objects = ' . $json->encode($sqs_objects) . '</script>'; $smarty->assign('SQS', $quicksearch_js); $meta = array(); $meta['html'] = $smarty->fetch("modules/Emails/templates/importRelate.tpl"); return $meta; }
function createQuickSearchCode($returnAsJavascript = true) { $sqs_objects = array(); require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $qsd->setFormName($this->form_name); for ($i = 0; $i < $this->numFields; $i++) { $name1 = "{$this->form_name}_{$this->name}_collection_{$i}"; if (!$this->skipModuleQuickSearch && preg_match('/(Campaigns|Teams|Users|Accounts)/si', $this->related_module, $matches)) { if ($matches[0] == 'Users') { $sqs_objects[$name1] = $qsd->getQSUser(); } else { if ($matches[0] == 'Campaigns') { $sqs_objects[$name1] = $qsd->getQSCampaigns(); } else { if ($matches[0] == 'Users') { $sqs_objects[$name1] = $qsd->getQSUser(); } else { if ($matches[0] == 'Accounts') { $nameKey = "{$this->name}_collection_{$i}"; $idKey = "id_{$this->name}_collection_{$i}"; //There are billingKey, shippingKey and additionalFields entries you can define in editviewdefs.php //entry to allow quick search to autocomplete fields with a suffix value of the //billing/shippingKey value (i.e. 'billingKey' => 'primary' in Contacts will populate //primary_XXX fields with the Account's billing address values). //addtionalFields are key/value pair of fields to fill from Accounts(key) to Contacts(value) $billingKey = isset($this->displayParams['billingKey']) ? $this->displayParams['billingKey'] : null; $shippingKey = isset($this->displayParams['shippingKey']) ? $this->displayParams['shippingKey'] : null; $additionalFields = isset($this->displayParams['additionalFields']) ? $this->displayParams['additionalFields'] : null; $sqs_objects[$name1] = $qsd->getQSAccount($nameKey, $idKey, $billingKey, $shippingKey, $additionalFields); } else { if ($matches[0] == 'Contacts') { $sqs_objects[$name1] = $qsd->getQSContact($name1, "id_" . $name1); } } } } } $temp_array = array('field_list' => array(), 'populate_list' => array()); foreach ($sqs_objects[$name1]['field_list'] as $k => $v) { if (!in_array($v, array('name', 'id'))) { $sqs_objects[$name1]['primary_field_list'][] = $v; $sqs_objects[$name1]['primary_populate_list'][] = $sqs_objects[$name1]['populate_list'][$k]; } else { $temp_array['field_list'][] = $v; $temp_array['populate_list'][] = $sqs_objects[$name1]['populate_list'][$k]; } } $sqs_objects[$name1]['field_list'] = $temp_array['field_list']; $sqs_objects[$name1]['populate_list'] = $temp_array['populate_list']; if (isset($this->displayParams['collection_field_list'])) { foreach ($this->displayParams['collection_field_list'] as $v) { $sqs_objects[$name1]['populate_list'][] = $v['vardefName'] . "_" . $this->name . "_collection_extra_" . $i; $sqs_objects[$name1]['field_list'][] = $v['vardefName']; } } } else { $sqs_objects[$name1] = $qsd->getQSParent($this->related_module); $sqs_objects[$name1]['populate_list'] = array("{$this->vardef['name']}_collection_{$i}", "id_{$this->vardef['name']}_collection_{$i}"); $sqs_objects[$name1]['field_list'] = array('name', 'id'); if (isset($this->displayParams['collection_field_list'])) { foreach ($this->displayParams['collection_field_list'] as $v) { $sqs_objects[$name1]['populate_list'][] = $v['vardefName'] . "_" . $this->name . "_collection_extra_" . $i; $sqs_objects[$name1]['field_list'][] = $v['vardefName']; } } if (isset($this->displayParams['field_to_name_array'])) { foreach ($this->displayParams['field_to_name_array'] as $k => $v) { /* * "primary_populate_list" and "primary_field_list" are used when the field is selected as a primary. * At this time the JS function changePrimary() will copy "primary_populate_list" and "primary_field_list" * into "populate_list" and "field_list" and remove the values from all the others which are secondaries. * "primary_populate_list" and "primary_field_list" contain the fields which has to be populated outside of * the collection field. For example the "Address Information" are populated with the "billing address" of the * selected account in a contact editview. */ $sqs_objects[$name1]['primary_populate_list'][] = $v; $sqs_objects[$name1]['primary_field_list'][] = $k; } } else { if (isset($field['field_list']) && isset($field['populate_list'])) { $sqs_objects[$name1]['primary_populate_list'] = array_merge($sqs_objects[$name1]['populate_list'], $field['field_list']); $sqs_objects[$name1]['primary_field_list'] = array_merge($sqs_objects[$name1]['field_list'], $field['populate_list']); } else { $sqs_objects[$name1]['primary_populate_list'] = array(); $sqs_objects[$name1]['primary_field_list'] = array(); } } } } $id = "{$this->form_name}_{$this->name}_collection_0"; if (!empty($sqs_objects) && count($sqs_objects) > 0) { foreach ($sqs_objects[$id]['field_list'] as $k => $v) { $this->field_to_name_array[$v] = $sqs_objects[$id]['populate_list'][$k]; } if ($returnAsJavascript) { $quicksearch_js = '<script language="javascript">'; $quicksearch_js .= "if(typeof sqs_objects == 'undefined'){var sqs_objects = new Array;}"; foreach ($sqs_objects as $sqsfield => $sqsfieldArray) { $quicksearch_js .= "sqs_objects['{$sqsfield}']={$this->json->encode($sqsfieldArray)};"; } return $quicksearch_js .= '</script>'; } else { return $sqs_objects; } } return ''; }
} else { $xtpl->assign('RETURN_ACTION', 'DetailView'); } if (isset($_REQUEST['return_id']) && !empty($_REQUEST['return_id'])) { $xtpl->assign('RETURN_ID', $_REQUEST['return_id']); } // handle Create $module then Cancel if (empty($_REQUEST['return_id']) && !isset($_REQUEST['type'])) { $xtpl->assign('RETURN_ACTION', 'index'); } $xtpl->assign('PRINT_URL', 'index.php?' . $GLOBALS['request_string']); /////////////////////////////////////////////////////////////////////////////// //// QUICKSEARCH CODE require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $sqs_objects = array('EditView_parent_name' => $qsd->getQSParent(), 'EditView_assigned_user_name' => $qsd->getQSUser()); $json = getJSONobj(); $sqs_objects_encoded = $json->encode($sqs_objects); $quicksearch_js = <<<EOQ \t\t<script type="text/javascript" language="javascript">sqs_objects = {$sqs_objects_encoded}; var dialog_loaded; \t\t\tfunction parent_typechangeQS() { \t\t\t\t//new_module = document.getElementById('parent_type').value; \t\t\t\tnew_module = document.EditView.parent_type.value; \t\t\t\tif(new_module == 'Contacts' || new_module == 'Leads' || typeof(disabledModules[new_module]) != 'undefined') { \t\t\t\t\tsqs_objects['EditView_parent_name']['disable'] = true; \t\t\t\t\tdocument.getElementById('parent_name').readOnly = true; \t\t\t\t} \t\t\t\telse { \t\t\t\t\tsqs_objects['EditView_parent_name']['disable'] = false; \t\t\t\t\tdocument.getElementById('parent_name').readOnly = false; \t\t\t\t}
$focus->retrieve($_REQUEST['record']); } if (isset($_REQUEST['isDuplicate']) && $_REQUEST['isDuplicate'] == 'true') { $focus->id = ""; } // Prepopulate either side of the relationship if passed in. safe_map('opportunity_name', $focus); safe_map('opportunity_id', $focus); safe_map('contact_name', $focus); safe_map('contact_id', $focus); safe_map('contact_role', $focus); $GLOBALS['log']->info("Contact opportunity relationship"); $json = getJSONobj(); require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $sqs_objects = array('opportunity_name' => $qsd->getQSParent()); $sqs_objects['opportunity_name']['populate_list'] = array('opportunity_name', 'opportunity_id'); $quicksearch_js = '<script type="text/javascript" language="javascript">sqs_objects = ' . $json->encode($sqs_objects) . '</script>'; echo $quicksearch_js; $xtpl = new XTemplate('modules/Contacts/ContactOpportunityRelationshipEdit.html'); $xtpl->assign("MOD", $mod_strings); $xtpl->assign("APP", $app_strings); $xtpl->assign("RETURN_URL", "&return_module={$currentModule}&return_action=DetailView&return_id={$focus->id}"); $xtpl->assign("RETURN_MODULE", $_REQUEST['return_module']); $xtpl->assign("RETURN_ACTION", $_REQUEST['return_action']); $xtpl->assign("RETURN_ID", $_REQUEST['return_id']); $xtpl->assign("PRINT_URL", "index.php?" . $GLOBALS['request_string']); $xtpl->assign("ID", $focus->id); $xtpl->assign("CONTACT", $contactName = array("NAME" => $focus->contact_name, "ID" => $focus->contact_id)); $xtpl->assign("OPPORTUNITY", $oppName = array("NAME" => $focus->opportunity_name, "ID" => $focus->opportunity_id)); echo get_module_title($mod_strings['LBL_MODULE_NAME'], $mod_strings['LBL_CONTACT_OPP_FORM_TITLE'] . " " . $contactName['NAME'] . " - " . $oppName['NAME'], true);
$xtpl->assign("RETURN_ACTION", $_REQUEST['return_action']); } if (isset($_REQUEST['return_id'])) { $xtpl->assign("RETURN_ID", $_REQUEST['return_id']); } // handle Create $module then Cancel if (empty($_REQUEST['return_id'])) { $xtpl->assign("RETURN_ACTION", 'index'); } $xtpl->assign("THEME", $theme); $xtpl->assign("IMAGE_PATH", $image_path); $xtpl->assign("PRINT_URL", "index.php?" . $GLOBALS['request_string']); $json = getJSONobj(); require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $sqs_objects = array('parent_name' => $qsd->getQSParent()); $quicksearch_js = $qsd->getQSScripts(); $quicksearch_js .= '<script type="text/javascript" language="javascript">sqs_objects = ' . $json->encode($sqs_objects) . ';changeQS();</script>'; // change the parent type of the quicksearch $xtpl->assign("JAVASCRIPT", get_set_focus_js() . get_validate_record_js() . $quicksearch_js); $xtpl->assign("ID", $focus->id); $xtpl->assign("PARENT_NAME", $focus->parent_name); $xtpl->assign("PARENT_RECORD_TYPE", $focus->parent_type); $xtpl->assign("PARENT_ID", $focus->parent_id); $xtpl->assign("CONTACT_NAME", $focus->contact_name); $xtpl->assign("CONTACT_PHONE", $focus->contact_phone); $xtpl->assign("CONTACT_EMAIL", $focus->contact_email); $xtpl->assign("CONTACT_ID", $focus->contact_id); $parent_types = $app_list_strings['record_type_display_notes']; $disabled_parent_types = ACLController::disabledModuleList($parent_types, false, 'list'); foreach ($disabled_parent_types as $disabled_parent_type) {
/** * createQuickSearchCode * This function creates the $sqs_objects array that will be used by the quicksearch Javascript * code. The $sqs_objects array is wrapped in a $json->encode call. * * @param $def The vardefs.php definitions * @param $defs2 The Meta-Data file definitions * */ function createQuickSearchCode($defs, $defs2, $view = '') { $sqs_objects = array(); require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $qsd->setFormName($view); if (preg_match("/^SearchForm_.+/", $view)) { $qsd->setFormName('search_form'); $parsedView = preg_replace("/^SearchForm_/", "", $view); //Loop through the Meta-Data fields to see which ones need quick search support foreach ($defs as $f) { $field = $f; $name = $qsd->form_name . '_' . $field['name']; if ($field['type'] == 'relate' && isset($field['module']) && preg_match('/_name$|_c$/si', $name)) { if (preg_match('/^(Campaigns|Teams|Users|Contacts|Accounts)$/si', $field['module'], $matches)) { if ($matches[0] == 'Campaigns') { $sqs_objects[$name . '_' . $parsedView] = $qsd->getQSCampaigns(); } else { if ($matches[0] == 'Users') { if (!empty($f['name']) && !empty($f['id_name'])) { $sqs_objects[$name . '_' . $parsedView] = $qsd->getQSUser($f['name'], $f['id_name']); } else { $sqs_objects[$name . '_' . $parsedView] = $qsd->getQSUser(); } } else { if ($matches[0] == 'Accounts') { $nameKey = $name; $idKey = isset($field['id_name']) ? $field['id_name'] : 'account_id'; //There are billingKey, shippingKey and additionalFields entries you can define in editviewdefs.php //entry to allow quick search to autocomplete fields with a suffix value of the //billing/shippingKey value (i.e. 'billingKey' => 'primary' in Contacts will populate //primary_XXX fields with the Account's billing address values). //addtionalFields are key/value pair of fields to fill from Accounts(key) to Contacts(value) $billingKey = isset($f['displayParams']['billingKey']) ? $f['displayParams']['billingKey'] : null; $shippingKey = isset($f['displayParams']['shippingKey']) ? $f['displayParams']['shippingKey'] : null; $additionalFields = isset($f['displayParams']['additionalFields']) ? $f['displayParams']['additionalFields'] : null; $sqs_objects[$name . '_' . $parsedView] = $qsd->getQSAccount($nameKey, $idKey, $billingKey, $shippingKey, $additionalFields); } else { if ($matches[0] == 'Contacts') { $sqs_objects[$name . '_' . $parsedView] = $qsd->getQSContact($field['name'], $field['id_name']); } } } } } else { $sqs_objects[$name . '_' . $parsedView] = $qsd->getQSParent($field['module']); if (!isset($field['field_list']) && !isset($field['populate_list'])) { $sqs_objects[$name . '_' . $parsedView]['populate_list'] = array($field['name'], $field['id_name']); $sqs_objects[$name . '_' . $parsedView]['field_list'] = array('name', 'id'); } else { $sqs_objects[$name . '_' . $parsedView]['populate_list'] = $field['field_list']; $sqs_objects[$name . '_' . $parsedView]['field_list'] = $field['populate_list']; } } } else { if ($field['type'] == 'parent') { $sqs_objects[$name . '_' . $parsedView] = $qsd->getQSParent(); } } //if-else } //foreach //_pp($sqs_objects); foreach ($sqs_objects as $name => $field) { foreach ($field['populate_list'] as $key => $fieldname) { $sqs_objects[$name]['populate_list'][$key] = $sqs_objects[$name]['populate_list'][$key] . '_' . $parsedView; } } } else { //Loop through the Meta-Data fields to see which ones need quick search support foreach ($defs2 as $f) { if (!isset($defs[$f['name']])) { continue; } $field = $defs[$f['name']]; $name = $qsd->form_name . '_' . $field['name']; if ($field['type'] == 'relate' && isset($field['module']) && (preg_match('/_name$|_c$/si', $name) || !empty($field['quicksearch']))) { if (!preg_match('/_c$/si', $name) && preg_match('/^(Campaigns|Teams|Users|Contacts|Accounts)$/si', $field['module'], $matches)) { if ($matches[0] == 'Campaigns') { $sqs_objects[$name] = $qsd->getQSCampaigns(); } else { if ($matches[0] == 'Users') { if ($field['name'] == 'reports_to_name') { $sqs_objects[$name] = $qsd->getQSUser('reports_to_name', 'reports_to_id'); } else { $sqs_objects[$name] = $qsd->getQSUser(); } } else { if ($matches[0] == 'Accounts') { $nameKey = $name; $idKey = isset($field['id_name']) ? $field['id_name'] : 'account_id'; //There are billingKey, shippingKey and additionalFields entries you can define in editviewdefs.php //entry to allow quick search to autocomplete fields with a suffix value of the //billing/shippingKey value (i.e. 'billingKey' => 'primary' in Contacts will populate //primary_XXX fields with the Account's billing address values). //addtionalFields are key/value pair of fields to fill from Accounts(key) to Contacts(value) $billingKey = SugarArray::staticGet($f, 'displayParams.billingKey'); $shippingKey = SugarArray::staticGet($f, 'displayParams.shippingKey'); $additionalFields = SugarArray::staticGet($f, 'displayParams.additionalFields'); $sqs_objects[$name] = $qsd->getQSAccount($nameKey, $idKey, $billingKey, $shippingKey, $additionalFields); } else { if ($matches[0] == 'Contacts') { $sqs_objects[$name] = $qsd->getQSContact($field['name'], $field['id_name']); if (preg_match('/_c$/si', $name) || !empty($field['quicksearch'])) { $sqs_objects[$name]['field_list'] = array('salutation', 'first_name', 'last_name', 'id'); } } } } } } else { $sqs_objects[$name] = $qsd->getQSParent($field['module']); if (!isset($field['field_list']) && !isset($field['populate_list'])) { $sqs_objects[$name]['populate_list'] = array($field['name'], $field['id_name']); // now handle quicksearches where the column to match is not 'name' but rather specified in 'rname' if (!isset($field['rname'])) { $sqs_objects[$name]['field_list'] = array('name', 'id'); } else { $sqs_objects[$name]['field_list'] = array($field['rname'], 'id'); $sqs_objects[$name]['order'] = $field['rname']; $sqs_objects[$name]['conditions'] = array(array('name' => $field['rname'], 'op' => 'like_custom', 'end' => '%', 'value' => '')); } } else { $sqs_objects[$name]['populate_list'] = $field['field_list']; $sqs_objects[$name]['field_list'] = $field['populate_list']; } } } else { if ($field['type'] == 'parent') { $sqs_objects[$name] = $qsd->getQSParent(); } } //if-else } //foreach } //Implement QuickSearch for the field if (!empty($sqs_objects) && count($sqs_objects) > 0) { $quicksearch_js = '<script language="javascript">'; $quicksearch_js .= "if(typeof sqs_objects == 'undefined'){var sqs_objects = new Array;}"; $json = getJSONobj(); foreach ($sqs_objects as $sqsfield => $sqsfieldArray) { $quicksearch_js .= "sqs_objects['{$sqsfield}']={$json->encode($sqsfieldArray)};"; } return $quicksearch_js . '</script>'; } return ''; }
require_once 'modules/Notes/NoteFormBase.php'; $noteForm = new NoteFormBase(); $postform = "<h5 class='dataLabel'><input class='checkbox' type='checkbox' name='newcontactnote' onclick='toggleDisplay(\"contactnote\");'> {$mod_strings['LNK_NEW_NOTE']}</h5>"; $postform .= '<div id="contactnote" style="display:none">' . $noteForm->getFormBody('ContactNotes', 'Notes', 'BusinessCard', 85) . '</div>'; $xtpl->assign('POSTFORM', $postform); $xtpl->parse("main.form"); $xtpl->assign('HEADER', $app_strings['LBL_RELATED_RECORDS']); $xtpl->parse("main.hrrow"); $popup_request_data = array('call_back_function' => 'set_return', 'form_name' => 'BusinessCard', 'field_to_name_array' => array('id' => 'selectedAccount', 'name' => 'display_account_name')); $json = getJSONobj(); $encoded_contact_popup_request_data = $json->encode($popup_request_data); //Account require_once 'include/QuickSearchDefaults.php'; $qsd = new QuickSearchDefaults(); $qsd->setFormName('BusinessCard'); $sqs_objects = array('BusinessCard_display_account_name' => $qsd->getQSParent()); $sqs_objects['BusinessCard_display_account_name']['populate_list'] = array('display_account_name', 'selectedAccount'); $quicksearch_js = '<script type="text/javascript" language="javascript"> sqs_objects = ' . $json->encode($sqs_objects) . '; addToValidateBinaryDependency(\'BusinessCard\', \'display_account_name\', \'alpha\', false, \'' . $app_strings['ERR_SQS_NO_MATCH_FIELD'] . $app_strings['LBL_ACCOUNT'] . '\', \'selectedAccount\' ); </script>'; $selectAccountButton = $quicksearch_js; $selectAccountButton .= "<div id='newaccountdivlink' style='display:inline' class='dataLabel'>{$mod_strings['LNK_SELECT_ACCOUNT']}: <input class='sqsEnabled' name='display_account_name' id='display_account_name' type=\"text\" value=\"\"><input name='selectedAccount' id='selectedAccount' type=\"hidden\" value=''> <input type='button' title=\"{$app_strings['LBL_SELECT_BUTTON_TITLE']}\" accessKey=\"{$app_strings['LBL_SELECT_BUTTON_KEY']}\" type=\"button\" class=\"button\" value='{$app_strings['LBL_SELECT_BUTTON_LABEL']}' name=btn1 LANGUAGE=javascript onclick='open_popup(\"Accounts\", 600, 400, \"\", true, false, {$encoded_contact_popup_request_data});'/> <input type='button' title=\"{$app_strings['LBL_CLEAR_BUTTON_TITLE']}\" accessKey=\"{$app_strings['LBL_CLEAR_BUTTON_KEY']}\" type=\"button\" class=\"button\" value='{$app_strings['LBL_CLEAR_BUTTON_LABEL']}' name=btn1 LANGUAGE=javascript onclick='document.forms[\"BusinessCard\"].selectedAccount.value=\"\";document.forms[\"BusinessCard\"].display_account_name.value=\"\"; '><br><b>{$app_strings['LBL_OR']}</b></div><br><br>"; $xtpl->assign('FORMHEADER', get_form_header($mod_strings['LNK_NEW_ACCOUNT'], '', '')); require_once 'modules/Accounts/AccountFormBase.php'; $accountForm = new AccountFormBase(); $xtpl->assign('CLASS', 'evenListRow'); $xtpl->assign('FORMBODY', $selectAccountButton . "<slot class='dataLabel'><input class='checkbox' type='checkbox' name='newaccount' onclick='document.forms[\"BusinessCard\"].selectedAccount.value=\"\";document.forms[\"BusinessCard\"].display_account_name.value=\"\";toggleDisplay(\"newaccountdiv\");'> " . $mod_strings['LNK_NEW_ACCOUNT'] . "</slot> <div id='newaccountdiv' style='display:none'>" . $accountForm->getWideFormBody('Accounts', 'Accounts', 'BusinessCard', '')); require_once 'modules/Notes/NoteFormBase.php'; $noteForm = new NoteFormBase(); $postform = "<div id='accountnotelink'><p><a href='javascript:toggleDisplay(\"accountnote\");'>{$mod_strings['LNK_NEW_NOTE']}</a></p></div>";