0
0
Fork 0
mirror of https://github.com/salesagility/SuiteCRM.git synced 2025-02-06 23:10:03 +00:00
salesagility_SuiteCRM/modules/InboundEmail/DetailView.php
Matt Lorimer 2c48735fbe Merge branch 'hotfix-7.10.x' into hotfix
# Conflicts:
#	README.md
#	composer.lock
#	data/BeanFactory.php
#	files.md5
#	modules/AOD_Index/AOD_Index.php
#	modules/AOR_Conditions/conditionLines.php
#	modules/AOW_Conditions/conditionLines.php
#	modules/Activities/SetAcceptStatus.php
#	modules/Administration/views/view.backups.php
#	modules/Calendar/controller.php
#	modules/Campaigns/WizardCampaignSave.php
#	modules/Contacts/AcceptDecline.php
#	modules/Emails/Compose.php
#	modules/Opportunities/OpportunityFormBase.php
#	modules/Project/chart.php
#	modules/SavedSearch/index.php
#	service/v3_1/SugarWebServiceUtilv3_1.php
#	soap/SoapPortalHelper.php
#	suitecrm_version.php
#	tests/unit/phpunit/data/SugarBeanTest.php
#	tests/unit/phpunit/include/SugarFolders/SugarFolderTest.php
#	tests/unit/phpunit/modules/AOS_Products/AOS_ProductsTest.php
#	themes/SuiteP/css/Dawn/style.css
#	themes/SuiteP/css/Day/style.css
#	themes/SuiteP/css/Dusk/style.css
#	themes/SuiteP/css/Night/style.css
2020-03-30 10:50:29 +01:00

309 lines
12 KiB
PHP
Executable file

<?php
if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
/**
*
* SugarCRM Community Edition is a customer relationship management program developed by
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
*
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
* Copyright (C) 2011 - 2018 SalesAgility Ltd.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License version 3 as published by the
* Free Software Foundation with the addition of the following permission added
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along with
* this program; if not, see http://www.gnu.org/licenses or write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*
* You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
* SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "Powered by
* SugarCRM" logo and "Supercharged by SuiteCRM" logo. If the display of the logos is not
* reasonably feasible for technical reasons, the Appropriate Legal Notices must
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
*/
require_once('include/DetailView/DetailView.php');
require_once('include/SugarFolders/SugarFolders.php');
global $mod_strings;
global $app_strings;
global $sugar_config;
global $timedate;
global $theme;
/* start standard DetailView layout process */
$GLOBALS['log']->info("InboundEmails DetailView");
$focus = BeanFactory::newBean('InboundEmail');
$focus->retrieve($_REQUEST['record']);
if (empty($focus->id)) {
sugar_die($app_strings['ERROR_NO_RECORD']);
} // if
$focus->checkImap();
$detailView = new DetailView();
$offset=0;
/* end standard DetailView layout process */
$exServ = explode('::', $focus->service);
if ($focus->delete_seen == 1) {
$delete_seen = $mod_strings['LBL_MARK_READ_NO'];
} else {
$delete_seen = $mod_strings['LBL_MARK_READ_YES'];
}
// deferred
//$r = $focus->db->query("SELECT id, name FROM queues WHERE owner_id = '".$focus->id."'");
//$a = $focus->db->fetchByAssoc($r);
//$queue = '<a href="index.php?module=Queues&action=EditView&record='.$a['id'].'">'.$a['name'].'</a>';
$groupName = '';
if ($focus->group_id) {
//$group = BeanFactory::newBean('Groups');
//$group->retrieve($focus->group_id);
//$groupName = $group->user_name;
}
if ($focus->template_id) {
$et = BeanFactory::newBean('EmailTemplates');
$et->retrieve($focus->template_id);
$emailTemplate = $et->name;
} else {
$emailTemplate = $mod_strings['LBL_NONE'];
}
$ssl = $app_list_strings['dom_email_bool']['bool_false'];
$allow_outbound_group_usage = $app_list_strings['dom_email_bool']['bool_false'];
$tls = $app_list_strings['dom_email_bool']['bool_false'];
$ca = $app_list_strings['dom_email_bool']['bool_false'];
if (!empty($focus->service)) {
// will always have 2 values: /tls || /notls and /validate-cert || /novalidate-cert
$exServ = explode('::', $focus->service);
if ($exServ[0] == 'tls') {
$tls = $app_list_strings['dom_email_bool']['bool_true'];
}
if ($exServ[1] == 'validate-cert') {
$cert = $app_list_strings['dom_email_bool']['bool_true'];
}
if (isset($exServ[2]) && !empty($exServ[2]) && $exServ[2] == 'ssl') {
$ssl = $app_list_strings['dom_email_bool']['bool_true'];
}
}
// FROM NAME FROM ADDRESS STRINGS
$email = BeanFactory::newBean('Emails');
$from = $email->getSystemDefaultEmail();
$default_from_name = $from['name'];
$default_from_addr = $from['email'];
$from_name = '';
$from_addr = '';
$reply_to_name = '';
$reply_to_addr = '';
$distrib_method ='';
$filterDomain = '';
$trashFolder = '';
$sentFolder = '';
$distributionMethod = '';
$create_case_email_template='';
$create_case_email_template_name = $mod_strings['LBL_NONE'];
$leaveMessagesOnMailServer = $app_strings['LBL_EMAIL_NO'];
//$fromNameAddr = $fromName.' &lt;'.$from['email'].'&gt; <br><em>('.$mod_strings['LBL_SYSTEM_DEFAULT'].')</em>';
//$replyNameAddr = $mod_strings['LBL_SAME_AS_ABOVE'];
$onlySince = $mod_strings['LBL_ONLY_SINCE_NO'];
if (!empty($focus->stored_options)) {
// FROM NAME and Address
$storedOptions = unserialize(base64_decode($focus->stored_options));
$from_name = (isset($storedOptions['from_name']) ? $storedOptions['from_name'] : "");
$from_addr = (isset($storedOptions['from_addr']) ? $storedOptions['from_addr'] : "");
isValidEmailAddress($from_addr);
$reply_to_name = (isset($storedOptions['reply_to_name'])) ? $storedOptions['reply_to_name'] : "";
$reply_to_addr = (isset($storedOptions['reply_to_addr'])) ? $storedOptions['reply_to_addr'] : "";
// only-since option
if ($storedOptions['only_since']) {
$onlySince = $mod_strings['LBL_ONLY_SINCE_YES'];
} else {
$onlySince = $mod_strings['LBL_ONLY_SINCE_NO'];
}
// filter-domain
if (isset($storedOptions['filter_domain']) && !empty($storedOptions['filter_domain'])) {
$filterDomain = $storedOptions['filter_domain'];
} else {
$filterDomain = $app_strings['NTC_NO_ITEMS_DISPLAY'];
}
// Trash Folder
if (isset($storedOptions['trashFolder']) && !empty($storedOptions['trashFolder'])) {
$trashFolder = $storedOptions['trashFolder'];
} else {
$trashFolder = $mod_strings['LBL_NONE'];
}
// Sent Folder
if (isset($storedOptions['sentFolder']) && !empty($storedOptions['sentFolder'])) {
$sentFolder = $storedOptions['sentFolder'];
} else {
$sentFolder = $mod_strings['LBL_NONE'];
}
if (!isset($storedOptions['leaveMessagesOnMailServer']) || $storedOptions['leaveMessagesOnMailServer'] == 1) {
$leaveMessagesOnMailServer = $app_strings['LBL_EMAIL_YES'];
} else {
$leaveMessagesOnMailServer = $app_strings['LBL_EMAIL_NO'];
} // else
if (!isset($storedOptions['leaveMessagesOnMailServer']) || $storedOptions['leaveMessagesOnMailServer'] == 1) {
$leaveMessagesOnMailServer = $app_strings['LBL_EMAIL_YES'];
} else {
$leaveMessagesOnMailServer = $app_strings['LBL_EMAIL_NO'];
} // else
$distrib_method = (isset($storedOptions['distrib_method'])) ? $storedOptions['distrib_method'] : "";
$create_case_email_template = (isset($storedOptions['create_case_email_template'])) ? $storedOptions['create_case_email_template'] : "";
$email_num_autoreplies_24_hours = (isset($storedOptions['email_num_autoreplies_24_hours'])) ? $storedOptions['email_num_autoreplies_24_hours'] : $focus->defaultEmailNumAutoreplies24Hours;
if (isset($storedOptions['allow_outbound_group_usage']) && $storedOptions['allow_outbound_group_usage'] == 1) {
$allow_outbound_group_usage = $app_list_strings['dom_email_bool']['bool_true'];
}
}
if (!empty($create_case_email_template)) {
$et = BeanFactory::newBean('EmailTemplates');
$et->retrieve($create_case_email_template);
$create_case_email_template_name = $et->name;
}
if (!empty($distrib_method)) {
$distributionMethod = $app_list_strings['dom_email_distribution_for_auto_create'][$distrib_method];
} // if
$xtpl = new XTemplate('modules/InboundEmail/DetailView.html');
//// ERRORS from Save
if (isset($_REQUEST['error'])) {
$xtpl->assign('ERROR', "<div class='error'>".$mod_strings['ERR_NO_OPTS_SAVED']."</div>");
}
//cma, June 24,2008 - Fix bug 21670. User status and group/personal statements are not localized.
$userStatus = $mod_strings['LBL_STATUS_ACTIVE'];
if ('Inactive' == $focus->status) {
$userStatus = $mod_strings['LBL_STATUS_INACTIVE'];
}
$xtpl->assign('MODULE_TITLE', getClassicModuleTitle('InboundEmail', array($mod_strings['LBL_MODULE_NAME'],$focus->name), true));
$xtpl->assign('MOD', $mod_strings);
$xtpl->assign('APP', $app_strings);
$xtpl->assign('CREATED_BY', $focus->created_by_name);
$xtpl->assign('MODIFIED_BY', $focus->modified_by_name);
$xtpl->assign('GRIDLINE', $gridline);
$xtpl->assign('PRINT_URL', 'index.php?'.$GLOBALS['request_string']);
$xtpl->assign('ID', $focus->id);
$xtpl->assign('STATUS', $userStatus);
$xtpl->assign('SERVER_URL', $focus->server_url);
$xtpl->assign('USER', $focus->email_user);
$xtpl->assign('NAME', $focus->name);
$xtpl->assign('MAILBOX', $focus->mailbox);
$xtpl->assign('TRASHFOLDER', $trashFolder);
$xtpl->assign('SENTFOLDER', $sentFolder);
$protocol = filterInboundEmailPopSelection($app_list_strings['dom_email_server_type']);
$xtpl->assign('SERVER_TYPE', $protocol[$focus->protocol]);
$xtpl->assign('SSL', $ssl);
$xtpl->assign('TLS', $tls);
$xtpl->assign('CERT', $ca);
$xtpl->assign('MARK_READ', $delete_seen);
$xtpl->assign('ALLOW_OUTBOUND_GROUP_USAGE', $allow_outbound_group_usage);
// deferred
//$xtpl->assign('QUEUE', $queue);
$createCaseRowStyle = "display:none";
$leaveMessagesOnMailServerStyle = "display:none";
if ($focus->is_personal) {
$xtpl->assign('EDIT_GROUP_FOLDER_STYLE', "display:none");
} else {
$is_auto_import = $app_list_strings['checkbox_dom']['2'];
if (!empty($focus->groupfolder_id)) {
$is_auto_import = $app_list_strings['checkbox_dom']['1'];
$leaveMessagesOnMailServerStyle = "display:''";
} // if
$xtpl->assign('IS_AUTO_IMPORT_ENABLED', $is_auto_import);
$xtpl->assign('EDIT_GROUP_FOLDER_STYLE', "display:''");
if ($focus->isMailBoxTypeCreateCase()) {
$createCaseRowStyle = "display:''";
}
}
$xtpl->assign('LEAVEMESSAGESONMAILSERVER_STYLE', $leaveMessagesOnMailServerStyle);
$xtpl->assign('LEAVEMESSAGESONMAILSERVER', $leaveMessagesOnMailServer);
$xtpl->assign('CREATE_CASE_ROW_STYLE', $createCaseRowStyle);
$xtpl->assign('DISTRIBUTION_METHOD', $distributionMethod);
$xtpl->assign('CREATE_CASE_EMAIL_TEMPLATE', $create_case_email_template_name);
if ($focus->isPop3Protocol()) {
$xtpl->assign('TRASH_SENT_FOLDER_STYLE', "display:none");
} else {
$xtpl->assign('TRASH_SENT_FOLDER_STYLE', "display:''");
} // else
$possibleAction = "pick";
if (!isset($app_list_strings['dom_mailbox_type'][$focus->mailbox_type])) {
$possibleAction = $app_list_strings['dom_mailbox_type']['pick'];
} else {
$possibleAction = $app_list_strings['dom_mailbox_type'][$focus->mailbox_type];
}
if ($focus->mailbox_type == 'createcase') {
$is_create_case = $app_list_strings['checkbox_dom']['1'];
} else {
$is_create_case = $app_list_strings['checkbox_dom']['2'];
}
$xtpl->assign('GROUP_NAME', $groupName);
$xtpl->assign('IS_CREATE_CASE', $is_create_case);
$xtpl->assign('EMAIL_TEMPLATE', $emailTemplate);
$xtpl->assign('FROM_NAME', $from_name);
$xtpl->assign('FROM_ADDR', $from_addr);
isValidEmailAddress($from_addr);
$xtpl->assign('DEFAULT_FROM_NAME', $default_from_name);
$xtpl->assign('DEFAULT_FROM_ADDR', $default_from_addr);
$xtpl->assign('REPLY_TO_NAME', $reply_to_name);
$xtpl->assign('REPLY_TO_ADDR', $reply_to_addr);
$xtpl->assign('ONLY_SINCE', $onlySince);
$xtpl->assign('FILTER_DOMAIN', $filterDomain);
$xtpl->assign('EMAIL_NUM_AUTOREPLIES_24_HOURS', $email_num_autoreplies_24_hours);
if (!empty($focus->port)) {
$xtpl->assign('PORT', $focus->port);
}
if ($focus->handleIsPersonal()) {
$xtpl->assign('LBL_GROUP_QUEUE', $mod_strings['LBL_ASSIGN_TO_USER']);
} else {
$xtpl->assign('LBL_GROUP_QUEUE', $mod_strings['LBL_GROUP_QUEUE']);
}
//Overrides for bounce mailbox accounts
if ($focus->mailbox_type == 'bounce') {
$xtpl->assign('MODULE_TITLE', getClassicModuleTitle('InboundEmail', array($mod_strings['LBL_BOUNCE_MODULE_NAME'],$focus->name), true));
} else {
if ($focus->is_personal == '1') {
$xtpl->assign('MODULE_TITLE', getClassicModuleTitle('InboundEmail', array($mod_strings['LBL_PERSONAL_MODULE_NAME'],$focus->name), true));
}
}
$xtpl->parse('main');
$xtpl->out('main');