';
echo getClassicModuleTitle(
"Administration",
array(
"" .
translate('LBL_MODULE_NAME', 'Administration') .
"",
$mod_strings['LBL_AOP_ADMIN_MANAGE_AOP'],
),
false
);
$cfg = new Configurator();
$sugar_smarty = new Sugar_Smarty();
$errors = array();
if (!array_key_exists('aop', $cfg->config)) {
$cfg->config['aop'] = array(
'enable_aop' => 1,
'enable_portal' => '',
'joomla_url' => '',
'joomla_access_key' => '',
'distribution_method' => '',
'distribution_options' => '',
'distribution_user_id' => '',
'user_email_template_id' => '',
'contact_email_template_id' => '',
'case_creation_email_template_id' => '',
'case_closure_email_template_id' => '',
'joomla_account_creation_email_template_id' => '',
'support_from_address' => '',
'support_from_name' => '',
'case_status_changes' => json_encode(array()),
);
}
if (!array_key_exists('enable_aop', $cfg->config['aop'])) {
$cfg->config['aop']['enable_aop'] = 1;
}
if (isset($_REQUEST['do']) && $_REQUEST['do'] == 'save') {
$joomlaUrl = strtolower(trim($_REQUEST['joomla_url']));
if (!empty($joomlaUrl)) {
$cfg->config['aop']['joomla_url'] =
preg_match("@^https?://@", $joomlaUrl) ? $joomlaUrl : 'http://' . $joomlaUrl;
} else {
$cfg->config['aop']['joomla_url'] = '';
}
$cfg->config['aop']['enable_aop'] = !empty($_REQUEST['enable_aop']);
$cfg->config['aop']['enable_portal'] = !empty($_REQUEST['enable_portal']);
$cfg->config['aop']['joomla_access_key'] = $_REQUEST['joomla_access_key'];
$cfg->config['aop']['distribution_method'] = $_REQUEST['distribution_method'];
$cfg->config['aop']['distribution_user_id'] = $_REQUEST['distribution_user_id'];
$cfg->config['aop']['distribution_options'] = $_REQUEST['distribution_options'];
$cfg->config['aop']['user_email_template_id'] = $_REQUEST['user_email_template_id'];
$cfg->config['aop']['contact_email_template_id'] = $_REQUEST['contact_email_template_id'];
$cfg->config['aop']['case_creation_email_template_id'] = $_REQUEST['case_creation_email_template_id'];
$cfg->config['aop']['case_closure_email_template_id'] = $_REQUEST['case_closure_email_template_id'];
$cfg->config['aop']['joomla_account_creation_email_template_id'] =
$_REQUEST['joomla_account_creation_email_template_id'];
$cfg->config['aop']['support_from_address'] = $_REQUEST['support_from_address'];
$cfg->config['aop']['support_from_name'] = $_REQUEST['support_from_name'];
if(isset($_REQUEST['inbound_email_case_macro'])){
$cfg->config['inbound_email_case_subject_macro'] = $_REQUEST['inbound_email_case_macro'];
}
/*
* We save the case_status_changes array as json since the way config changes are persisted to config.php
* means that removing entries is tricky. json simplifies this.
*/
$cfg->config['aop']['case_status_changes'] = json_encode(array_combine($_POST['if_status'], $_POST['then_status']));
$cfg->saveConfig();
header('Location: index.php?module=Administration&action=index');
exit();
}
$distribStrings = $app_list_strings['dom_email_distribution_for_auto_create'];
unset($distribStrings['AOPDefault']);
$distributionMethod = get_select_options_with_id($distribStrings, $cfg->config['aop']['distribution_method']);
$distributionOptions = getAOPAssignField('distribution_options', $cfg->config['aop']['distribution_options']);
if (!empty($cfg->config['aop']['distribution_user_id'])) {
$distributionUserName = BeanFactory::getBean("Users", $cfg->config['aop']['distribution_user_id'])->name;
} else {
$distributionUserName = '';
}
$sugar_smarty->assign('distribution_user_name', $distributionUserName);
$emailTemplateList = get_bean_select_array(true, 'EmailTemplate', 'name', '', 'name');
$userEmailTemplateDropdown =
get_select_options_with_id($emailTemplateList, $cfg->config['aop']['user_email_template_id']);
$contactEmailTemplateDropdown =
get_select_options_with_id($emailTemplateList, $cfg->config['aop']['contact_email_template_id']);
$creationEmailTemplateDropdown =
get_select_options_with_id($emailTemplateList, $cfg->config['aop']['case_creation_email_template_id']);
$closureEmailTemplateDropdown =
get_select_options_with_id($emailTemplateList, $cfg->config['aop']['case_closure_email_template_id']);
$joomlaEmailTemplateDropdown =
get_select_options_with_id($emailTemplateList, $cfg->config['aop']['joomla_account_creation_email_template_id']);
$inboundEmailCaseMacro = $cfg->config['inbound_email_case_subject_macro'] ?? '';
$sugar_smarty->assign('inbound_email_case_macro', $inboundEmailCaseMacro);
$sugar_smarty->assign('USER_EMAIL_TEMPLATES', $userEmailTemplateDropdown);
$sugar_smarty->assign('CONTACT_EMAIL_TEMPLATES', $contactEmailTemplateDropdown);
$sugar_smarty->assign('CREATION_EMAIL_TEMPLATES', $creationEmailTemplateDropdown);
$sugar_smarty->assign('CLOSURE_EMAIL_TEMPLATES', $closureEmailTemplateDropdown);
$sugar_smarty->assign('JOOMLA_EMAIL_TEMPLATES', $joomlaEmailTemplateDropdown);
$sugar_smarty->assign('DISTRIBUTION_METHOD', $distributionMethod);
$sugar_smarty->assign('DISTRIBUTION_OPTIONS', $distributionOptions);
$sugar_smarty->assign('MOD', $mod_strings);
$sugar_smarty->assign('APP', $app_strings);
$sugar_smarty->assign('APP_LIST', $app_list_strings);
$sugar_smarty->assign('LANGUAGES', get_languages());
$sugar_smarty->assign("JAVASCRIPT", get_set_focus_js());
$sugar_smarty->assign('config', $cfg->config['aop']);
$sugar_smarty->assign('error', $errors);
$cBean = BeanFactory::getBean('Cases');
$statusDropdown = get_select_options($app_list_strings[$cBean->field_name_map['status']['options']], '');
$currentStatuses = '';
if ($cfg->config['aop']['case_status_changes']) {
foreach (json_decode($cfg->config['aop']['case_status_changes'], true) as $if => $then) {
$ifDropdown = get_select_options($app_list_strings[$cBean->field_name_map['status']['options']], $if);
$thenDropdown = get_select_options($app_list_strings[$cBean->field_name_map['status']['options']], $then);
$currentStatuses .= getStatusRowTemplate($mod_strings, $ifDropdown, $thenDropdown) . "\n";
}
}
$sugar_smarty->assign('currentStatuses', $currentStatuses);
$buttons = <<
EOQ;
$sugar_smarty->assign("BUTTONS", $buttons);
$sugar_smarty->display('modules/Administration/AOPAdmin.tpl');
$javascript = new javascript();
$javascript->setFormName('ConfigureSettings');
echo $javascript->getScript();
echo '';
?>
{$mod_strings['LBL_AOP_IF_STATUS']}: |
|
{$mod_strings['LBL_AOP_THEN_STATUS']}: |
|
|
EOF;
return $html;
}