Squashed 'public/legacy/' changes from bb959a145..4f401678f

4f401678f SuiteCRM 7.12.2 Release
647fd6ad5 Fix #9382 - Outbound Emails editview Unsupported operand types fatal in php8
2b116b8a8 Fix #9374 - OAuth password creation Unsupported operand types fatal in php8
97fe07b7a Allow changing text colors when composing an email
eed4acacd Fix #9376 - allow workflows on import
5ca4e3e7f Fix Campaign Email settings removes Email settings
4b0dc4ffb fix #9383 - upgrade existing php code using each() function
0590b3690 Fix #8602 - Fix email view action return_action
2bf8e17cf Fix #8602 - Fix email message modal displayed buttons

git-subtree-dir: public/legacy
git-subtree-split: 4f401678fdb1f769ea897c82d4504ab8380ff9af
This commit is contained in:
Clemente Raposo 2021-12-15 16:20:24 +00:00
parent d075ac6581
commit 41c2374a54
28 changed files with 389 additions and 290 deletions

View file

@ -212,6 +212,7 @@ class ModuleScanner
'call_user_func',
'call_user_func_array',
'create_function',
'phpinfo',
//mutliple files per function call
@ -575,6 +576,7 @@ class ModuleScanner
// found <?, it's PHP
return true;
}
return false;
}
@ -588,13 +590,14 @@ class ModuleScanner
{
$issues = array();
if (!$this->isValidExtension($file)) {
$issues[] = translate('ML_INVALID_EXT');
$issues[] = translate('ML_INVALID_EXT', 'Administration');
$this->issues['file'][$file] = $issues;
return $issues;
}
if ($this->isConfigFile($file)) {
$issues[] = translate('ML_OVERRIDE_CORE_FILES');
$issues[] = translate('ML_OVERRIDE_CORE_FILES', 'Administration');
$this->issues['file'][$file] = $issues;
return $issues;
}
$contents = file_get_contents($file);
@ -609,7 +612,7 @@ class ModuleScanner
if (is_string($token[0])) {
switch ($token[0]) {
case '`':
$issues['backtick'] = translate('ML_INVALID_FUNCTION') . " '`'";
$issues['backtick'] = translate('ML_INVALID_FUNCTION', 'Administration') . " '`'";
// no break
case '(':
if ($checkFunction) {
@ -625,9 +628,15 @@ class ModuleScanner
case T_WHITESPACE: break;
case T_EVAL:
if (in_array('eval', $this->blackList) && !in_array('eval', $this->blackListExempt)) {
$issues[]= translate('ML_INVALID_FUNCTION') . ' eval()';
$issues[]= translate('ML_INVALID_FUNCTION', 'Administration') . ' eval()';
}
break;
case T_ECHO:
$issues[]= translate('ML_INVALID_FUNCTION', 'Administration') . ' echo';
break;
case T_EXIT:
$issues[]= translate('ML_INVALID_FUNCTION', 'Administration') . ' exit / die';
break;
case T_STRING:
$token[1] = strtolower($token[1]);
if ($lastToken !== false && $lastToken[0] == T_NEW) {
@ -651,21 +660,20 @@ class ModuleScanner
// check static blacklist for methods
if (!empty($this->methodsBlackList[$token[1]])) {
if ($this->methodsBlackList[$token[1]] == '*') {
$issues[]= translate('ML_INVALID_METHOD') . ' ' .$token[1]. '()';
$issues[]= translate('ML_INVALID_METHOD', 'Administration') . ' ' .$token[1]. '()';
break;
} else {
if ($lastToken[0] == T_DOUBLE_COLON && $index > 2 && $tokens[$index-2][0] == T_STRING) {
$classname = strtolower($tokens[$index-2][1]);
if (in_array($classname, $this->methodsBlackList[$token[1]])) {
$issues[]= translate('ML_INVALID_METHOD') . ' ' .$classname . '::' . $token[1]. '()';
break;
}
}
if ($lastToken[0] == T_DOUBLE_COLON && $index > 2 && $tokens[$index-2][0] == T_STRING) {
$classname = strtolower($tokens[$index-2][1]);
if (in_array($classname, $this->methodsBlackList[$token[1]])) {
$issues[]= translate('ML_INVALID_METHOD', 'Administration') . ' ' .$classname . '::' . $token[1]. '()';
break;
}
}
}
//this is a method call, check the black list
if (in_array($token[1], $this->methodsBlackList)) {
$issues[]= translate('ML_INVALID_METHOD') . ' ' .$token[1]. '()';
$issues[]= translate('ML_INVALID_METHOD', 'Administration') . ' ' .$token[1]. '()';
}
break;
}
@ -681,7 +689,7 @@ class ModuleScanner
// no break
case T_VARIABLE:
$checkFunction = true;
$possibleIssue = translate('ML_INVALID_FUNCTION') . ' ' . $token[1] . '()';
$possibleIssue = translate('ML_INVALID_FUNCTION', 'Administration') . ' ' . $token[1] . '()';
break;
default:
@ -866,18 +874,13 @@ class ModuleScanner
/**
*This function will take all issues of the current instance and print them to the screen
**/
public function displayIssues($package='Package')
public function displayIssues($package = 'Package')
{
echo '<h2>'.str_replace('{PACKAGE}', $package, translate('ML_PACKAGE_SCANNING')). '</h2><BR><h2 class="error">' . translate('ML_INSTALLATION_FAILED') . '</h2><br><p>' .str_replace('{PACKAGE}', $package, translate('ML_PACKAGE_NOT_CONFIRM')). '</p><ul><li>'. translate('ML_OBTAIN_NEW_PACKAGE') . '<li>' . translate('ML_RELAX_LOCAL').
'</ul></p><br>' . translate('ML_SUGAR_LOADING_POLICY') . ' <a href=" http://kb.sugarcrm.com/custom/module-loader-restrictions-for-sugar-open-cloud/">' . translate('ML_SUITE_KB') . '</a>.'.
'<br>' . translate('ML_AVAIL_RESTRICTION'). ' <a href=" http://developers.sugarcrm.com/wordpress/2009/08/14/module-loader-restrictions/">' . translate('ML_SUITE_DZ') . '</a>.<br><br>';
foreach ($this->issues as $type=>$issues) {
echo '<div class="error"><h2>'. ucfirst($type) .' ' . translate('ML_ISSUES') . '</h2> </div>';
foreach ($this->issues as $type => $issues) {
echo '<h2 class="error">' . ucfirst($type) . ' ' . translate('ML_ISSUES', 'Administration') . '</h2>';
echo '<div id="details' . $type . '" >';
foreach ($issues as $file=>$issue) {
$file = str_replace($this->pathToModule . '/', '', $file);
foreach ($issues as $file => $issue) {
$file = preg_replace('/.*\//', '', $file);
echo '<div style="position:relative;left:10px"><b>' . $file . '</b></div><div style="position:relative;left:20px">';
if (is_array($issue)) {
foreach ($issue as $i) {
@ -893,6 +896,36 @@ class ModuleScanner
echo "<br><input class='button' onclick='document.location.href=\"index.php?module=Administration&action=UpgradeWizard&view=module\"' type='button' value=\"" . translate('LBL_UW_BTN_BACK_TO_MOD_LOADER') . "\" />";
}
/**
*This function will take all issues of the current instance and add them to a string
**/
public function getIssuesLog($package = 'Package')
{
$message = '';
foreach ($this->issues as $type => $issues) {
$message .= '<h2 class="error">' . ucfirst($type) . ' ' . translate('ML_ISSUES',
'Administration') . '</h2>';
$message .= '<div id="details' . $type . '" >';
foreach ($issues as $file => $issue) {
$file = preg_replace('/.*\//', '', $file);
$message .= '<div style="position:relative;left:10px"><b>' . $file . '</b></div><div style="position:relative;left:20px">';
if (is_array($issue)) {
foreach ($issue as $i) {
$message .= "$i<br>";
}
} else {
$message .= "$issue<br>";
}
$message .= "</div>";
}
$message .= '</div>';
}
return $message;
}
/**
* Lock config settings
*/
@ -912,7 +945,7 @@ class ModuleScanner
{
$config_hash_after = md5(serialize($GLOBALS['sugar_config']));
if ($config_hash_after != $this->config_hash) {
$this->issues['file'][$file] = array(translate('ML_CONFIG_OVERRIDE'));
$this->issues['file'][$file] = array(translate('ML_CONFIG_OVERRIDE', 'Administration'));
return $this->issues;
}
return false;

View file

@ -2,7 +2,7 @@
<img width="180px" height="41px" src="https://suitecrm.com/wp-content/uploads/2017/12/logo.png" align="right" />
</a>
# SuiteCRM 8.0.0-beta-2
# SuiteCRM 7.12.2
[![LICENSE](https://img.shields.io/github/license/suitecrm/suitecrm.svg)](https://github.com/salesagility/suitecrm/blob/hotfix/LICENSE.txt)
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/salesagility/SuiteCRM-Core/issues)

View file

@ -206,7 +206,7 @@ if ((!isset($_REQUEST['isProfile']) && empty($_REQUEST['id'])) || empty($_REQUES
$mime_type = 'application/octet-stream';
break;
}
if ($doQuery && isset($query)) {
$rs = DBManagerFactory::getInstance()->query($query);
$row = DBManagerFactory::getInstance()->fetchByAssoc($rs);
@ -261,7 +261,14 @@ if ((!isset($_REQUEST['isProfile']) && empty($_REQUEST['id'])) || empty($_REQUES
}
} else {
header('Content-type: ' . $mime_type);
if (isset($_REQUEST['preview']) && $_REQUEST['preview'] === 'yes' && $mime_type !== 'text/html') {
$showPreview = false;
if (in_array($row['file_ext'], $sugar_config['allowed_preview'], true)) {
$showPreview = isset($_REQUEST['preview']) && $_REQUEST['preview'] === 'yes' && $mime_type !== 'text/html';
}
if ($showPreview === true) {
header('Content-Disposition: inline; filename="' . $name . '";');
} else {
header('Content-Disposition: attachment; filename="' . $name . '";');
@ -281,8 +288,8 @@ if ((!isset($_REQUEST['isProfile']) && empty($_REQUEST['id'])) || empty($_REQUES
ob_start();
echo clean_file_output(file_get_contents($download_location), $mime_type);
$output = ob_get_contents();
ob_end_clean();
echo $output;

View file

@ -1,5 +1,5 @@
<?php
// created: 2021-11-19 17:00:00
// created: 2021-12-15 17:00:00
$md5_string = array (
'./Api/Core/Config/ApiConfig.php' => '69a1e7b3d7755a2a63499a16ddae81cf',
'./Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8',
@ -102,7 +102,7 @@ $md5_string = array (
'./HandleAjaxCall.php' => '954cebdd8ea2ab1e5c03658b184322fd',
'./LICENSE.txt' => 'd3f150e4a5bed444763ebe8a81742a95',
'./ModuleInstall/ModuleInstaller.php' => '526a3e11024b84f3602f9857d69a8e47',
'./ModuleInstall/ModuleScanner.php' => '7ce0aaf0c2c4b05a6e9588ea36065a7f',
'./ModuleInstall/ModuleScanner.php' => '5bd029e1955c5c243ce4cc567cc99367',
'./ModuleInstall/PackageManager/ListViewPackages.php' => 'dd40ddc497010be809cb03c63499ac4f',
'./ModuleInstall/PackageManager/PackageController.php' => '03db58edbce570e532e1c55dbb657889',
'./ModuleInstall/PackageManager/PackageManager.php' => 'ad764627f0515370ef800ba88dfe49e8',
@ -115,7 +115,7 @@ $md5_string = array (
'./ModuleInstall/PackageManager/tpls/PackageManagerLicense.tpl' => 'df5e267d1df5ce08fb9406e42d5b4816',
'./ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl' => '98e396c0aa57329731fda19c790fffb2',
'./ModuleInstall/extensions.php' => '094f4650261f6efbab1b90b119829388',
'./README.md' => '907df202f6bfd978ccbff16441d12df6',
'./README.md' => 'ecdc892452414ccb5cb20142ad118de4',
'./RoboFile.php' => '045b82c1df69553824d0e4ffcce6e03c',
'./SugarSecurity.php' => '47e316b2d408e8c5192c8ea4a4f921b3',
'./TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c',
@ -522,7 +522,7 @@ $md5_string = array (
'./data/SugarBean.php' => 'd8544e7bffbd4eeea20053f52c5514bd',
'./deprecated.php' => 'f5f507fd6314f38d29c97e2cc2c62239',
'./dictionary.php' => 'b7c1370fb75a2940c04db74627c4462c',
'./download.php' => 'f2d366039d134ac463ff1e75634ce509',
'./download.php' => '1d337efcbfc68d524faab8c4460e107a',
'./emailmandelivery.php' => 'e079e094dd3d4e361670a179f50b1fdd',
'./export.php' => '299a444bd270a6149c02ae8b7bbb3726',
'./ical_server.php' => '36acd0eb4bdabcdb8c70497b5cc79d16',
@ -1631,7 +1631,7 @@ $md5_string = array (
'./include/javascript/jstree/test/visual/screenshots/mobile/home.png' => '446d85d3b0e0e7af49bfeaeb10a3a9a9',
'./include/javascript/jstree/test/visual/screenshots/mobile/mobile.png' => '4e76b00d1d4edd46e9342867b4f4e0af',
'./include/javascript/menu.js' => '700ccdcd392049e89935a3c3ba7ef73b',
'./include/javascript/message-box.js' => '97decd270298e718d7f6742efa6eb278',
'./include/javascript/message-box.js' => 'c78157615ad74518b32b6e2e26f37022',
'./include/javascript/moment.min.js' => '03c1d3ad0acf482f87368e3ea7af14c2',
'./include/javascript/mozaik/README.md' => 'de6a804f592e7e1fb3ae3f8fc2359edd',
'./include/javascript/mozaik/colorpicker/css/colorpicker.css' => 'e77424e5eaf875d3ed66b167db3936ed',
@ -2606,7 +2606,7 @@ $md5_string = array (
'./jssource/src_files/include/javascript/jsclass_async.js' => '6d2f3226cf797a3830fb0f96a49b8b2c',
'./jssource/src_files/include/javascript/jsclass_base.js' => '0e99f15d99c783d457d96e3198c0cb95',
'./jssource/src_files/include/javascript/menu.js' => '8e8add77d513333cc56ff829c23befbe',
'./jssource/src_files/include/javascript/message-box.js' => 'c4e1854f58023512499edd90d0e9172e',
'./jssource/src_files/include/javascript/message-box.js' => 'd91df716ac114fa9845be820ed756b1e',
'./jssource/src_files/include/javascript/phpjs/get_html_translation_table.js' => '9667941dd790119d552f99b6d6b73fdf',
'./jssource/src_files/include/javascript/phpjs/html_entity_decode.js' => '022ed687a9c7c55a21b4a2aaa848921d',
'./jssource/src_files/include/javascript/phpjs/htmlentities.js' => 'a4369a51c1d8d1670f78b68c28330424',
@ -3638,17 +3638,17 @@ $md5_string = array (
'./modules/AOW_Processed/metadata/subpanels/default.php' => 'a854bad4c87fee3ae01b971e88041b66',
'./modules/AOW_Processed/vardefs.php' => 'b8116bafbeac63b860466832c444da40',
'./modules/AOW_Processed/views/view.list.php' => '2f4404c998460f095e3affe63ce1958d',
'./modules/AOW_WorkFlow/AOW_WorkFlow.php' => '0a4595bcd982a7c89ab566321ab0227d',
'./modules/AOW_WorkFlow/AOW_WorkFlow.php' => '83b3009636ab14da43bb0e1b1f7112b6',
'./modules/AOW_WorkFlow/Dashlets/AOW_WorkFlowDashlet/AOW_WorkFlowDashlet.meta.php' => '307d5c5c4e36070f26fcd7019a7c3ce7',
'./modules/AOW_WorkFlow/Dashlets/AOW_WorkFlowDashlet/AOW_WorkFlowDashlet.php' => '9b68831e41b81207bf2e3a1a42b266b2',
'./modules/AOW_WorkFlow/Menu.php' => 'bda4b71d876e065f7661bce4a91bde57',
'./modules/AOW_WorkFlow/aow_utils.php' => '0f06117126fbfe5cc6fa498a6ddbb4b8',
'./modules/AOW_WorkFlow/controller.php' => '80bf5d8ed3fec47f72320c318719e630',
'./modules/AOW_WorkFlow/language/en_us.lang.php' => 'd3f5d7f63df072fe0d79bc5385dadbbf',
'./modules/AOW_WorkFlow/language/en_us.lang.php' => '3257fefa8880da77ef4c90c08fab9dad',
'./modules/AOW_WorkFlow/metadata/SearchFields.php' => '125fca8f181fd8c4fbb159fd71096bd7',
'./modules/AOW_WorkFlow/metadata/dashletviewdefs.php' => '113c2f1f0cd10818f564704bcca7c14c',
'./modules/AOW_WorkFlow/metadata/detailviewdefs.php' => 'ccf1b5c10936884a44e2f155ab71afeb',
'./modules/AOW_WorkFlow/metadata/editviewdefs.php' => 'af6bae5b500c168cee317f9f166a0a2a',
'./modules/AOW_WorkFlow/metadata/detailviewdefs.php' => 'd585f5d2191dc56f4f8bf2e9e218e45d',
'./modules/AOW_WorkFlow/metadata/editviewdefs.php' => '28914aa96a091ec183728f71006ae689',
'./modules/AOW_WorkFlow/metadata/listviewdefs.php' => '9068575782d803d94517c12954fb0a0e',
'./modules/AOW_WorkFlow/metadata/metafiles.php' => '7584c90c84e8a96b21d38eb28d5eeeb9',
'./modules/AOW_WorkFlow/metadata/popupdefs.php' => '63d9d82f9a867498d239b8774366302c',
@ -3656,7 +3656,7 @@ $md5_string = array (
'./modules/AOW_WorkFlow/metadata/searchdefs.php' => 'b87c0f0ee913106deaee64b8f53dce54',
'./modules/AOW_WorkFlow/metadata/subpaneldefs.php' => '622ff373a39724c4555fe77dac4f4466',
'./modules/AOW_WorkFlow/metadata/subpanels/default.php' => 'ad81319c7fcbcf54e938a93c865e1b57',
'./modules/AOW_WorkFlow/vardefs.php' => '627e2c280f00bb5350b6d275da79af70',
'./modules/AOW_WorkFlow/vardefs.php' => 'c82a06b7557d68cfbc6d44461bddf86f',
'./modules/Accounts/Account.js' => '88bd59a0507a3d56a0836b667c9de729',
'./modules/Accounts/Account.php' => 'e737265dbe8552f334032c6555b0cb7f',
'./modules/Accounts/AccountFormBase.php' => '03eb01512d8cec01a5022a25db83be5d',
@ -4544,7 +4544,7 @@ $md5_string = array (
'./modules/EmailMan/Forms.php' => 'd939f3555ef708f533a77c77b696ccd8',
'./modules/EmailMan/Menu.php' => '9fec01e70c034091a9fe652a61407886',
'./modules/EmailMan/action_view_map.php' => 'e4b8e3c021d90ed66c74caa7e1f8e4c5',
'./modules/EmailMan/controller.php' => '3af2309adb15b87358d1c08b35a7d280',
'./modules/EmailMan/controller.php' => '6a79f210b78331386f738a2d6e1a1c78',
'./modules/EmailMan/field_arrays.php' => '46faacb2ea303c961a1871ea613a455f',
'./modules/EmailMan/language/en_us.lang.php' => 'ba2d83e744656eeb3aae03f3dc5c0396',
'./modules/EmailMan/metadata/SearchFields.php' => '16ab0bf5917fd13e2bb8dd99c3444dd8',
@ -4648,7 +4648,7 @@ $md5_string = array (
'./modules/Emails/include/ComposeView/ComposeView.tpl' => '1ec29fbb9803c24e5ed8a12155668e58',
'./modules/Emails/include/ComposeView/ComposeViewBlank.tpl' => '22365ce6727ffb560e5ad3fc187f13f2',
'./modules/Emails/include/ComposeView/ComposeViewToolbar.tpl' => '656b26827857375278124e4610b9ff06',
'./modules/Emails/include/ComposeView/EmailsComposeView.js' => '5c836fdc4d36bb39c6b027f13f9724db',
'./modules/Emails/include/ComposeView/EmailsComposeView.js' => '65624a5e5985e5f9deee1e4725533462',
'./modules/Emails/include/DetailView/EmailsDetailView.php' => 'f95937f398f37afe3927ecc035b8b743',
'./modules/Emails/include/DetailView/EmailsDraftDetailView.php' => 'baafca815e89a4c0ec3df8b6192552ea',
'./modules/Emails/include/DetailView/EmailsNonImportedDetailView.php' => 'ef9ecbcf65fa6f03e32f94b6a9805b2f',
@ -4695,12 +4695,12 @@ $md5_string = array (
'./modules/Emails/metadata/composeviewdefs.php' => '4cc688ab31ce40c70a476304e890f5df',
'./modules/Emails/metadata/dashletviewdefs.php' => 'f1b4e7eed099e0302f5f9f89ca507d12',
'./modules/Emails/metadata/detaildraftviewdefs.php' => '49fc6d1b8885420494460fc1037bc6ea',
'./modules/Emails/metadata/detailviewdefs.php' => 'dc061470876aebf0a41c2e9841d103ef',
'./modules/Emails/metadata/detailviewdefs.php' => '0e6b0bc4f9e006978b6d33dc902a6779',
'./modules/Emails/metadata/editviewdefs.php' => 'ab93b79de12963a9ca0e112d50477958',
'./modules/Emails/metadata/importviewdefs.php' => '393b8a7c1f9d5b23bc75ce5d6dfdfc51',
'./modules/Emails/metadata/listviewdefs.php' => '6352a475112c82070f741f5f6386aff3',
'./modules/Emails/metadata/metafiles.php' => '9876f3a92c8fffb0b7d3aec6993c370d',
'./modules/Emails/metadata/nonimporteddetailviewdefs.php' => '1ad3f9ec3a06923de996e34a92f7aae4',
'./modules/Emails/metadata/nonimporteddetailviewdefs.php' => 'ae75f85d07dc926ff8a489cfad6c27a0',
'./modules/Emails/metadata/popupdefs.php' => 'ba85426b428b440975b08f5e9a016ece',
'./modules/Emails/metadata/qcmodulesdefs.php' => '478fea3bbc381ed9a686c7ccc4bc43b4',
'./modules/Emails/metadata/quickcreatedefs.php' => '874d3cf3d04e0514195610ede098428a',
@ -5193,7 +5193,7 @@ $md5_string = array (
'./modules/ModuleBuilder/parsers/parser.modifysubpanel.php' => '27b433079ba0b51495f59defd0bb348f',
'./modules/ModuleBuilder/parsers/parser.searchfields.php' => 'e4fb09e49c5247ac4744a8be34e4a686',
'./modules/ModuleBuilder/parsers/relationships/AbstractRelationship.php' => 'b83c367fd72d1133dd393e44385c1b0c',
'./modules/ModuleBuilder/parsers/relationships/AbstractRelationships.php' => 'ee74b56f73e591c5ef86a16a0c6ddd31',
'./modules/ModuleBuilder/parsers/relationships/AbstractRelationships.php' => 'e4e2cf6967656d21bd42106f0bf2b83b',
'./modules/ModuleBuilder/parsers/relationships/ActivitiesRelationship.php' => '5cd20dd7c88ca328d9fdc43592585fc9',
'./modules/ModuleBuilder/parsers/relationships/DeployedRelationships.php' => 'faa507ca4856cf7bec90833b6ab04970',
'./modules/ModuleBuilder/parsers/relationships/ManyToManyRelationship.php' => 'bc77bfba6dbb8f53578fa4ce8f526491',
@ -5277,7 +5277,7 @@ $md5_string = array (
'./modules/ModuleBuilder/views/view.package.php' => '98f14929cf217186a081488380427c5a',
'./modules/ModuleBuilder/views/view.popupview.php' => 'fd818423e7b49d9a39c746be70091967',
'./modules/ModuleBuilder/views/view.property.php' => 'af44584a8a61a1b8e11b0befa2847ad5',
'./modules/ModuleBuilder/views/view.relationship.php' => '93bb9749d35157c57b63088eb59f298a',
'./modules/ModuleBuilder/views/view.relationship.php' => '50ed2a210cb2d277e047b11eb41ff625',
'./modules/ModuleBuilder/views/view.relationships.php' => 'db321972c1dc7a533ca370b2408c1c6e',
'./modules/ModuleBuilder/views/view.resetmodule.php' => '59b291e348f014358a3f3b588bde2990',
'./modules/ModuleBuilder/views/view.searchview.php' => 'fbca76bd29e0bcdb3a4ca10e281ac57c',
@ -5322,12 +5322,12 @@ $md5_string = array (
'./modules/OAuth2Clients/js/PasswordCredentialsValidation.js' => 'd20b36468c15522c07606ddfe6204c64',
'./modules/OAuth2Clients/language/en_us.lang.php' => '41cc684474703a8d6f1c7ba76b4a900f',
'./modules/OAuth2Clients/metadata/SearchFields.php' => '0c30055d8ac347f228fe8fd18891c01e',
'./modules/OAuth2Clients/metadata/detailcredentialsviewdefs.php' => 'cfcc4106c19bbd7820f20b93ef92f831',
'./modules/OAuth2Clients/metadata/detailpasswordviewdefs.php' => '05bad4c0938bd89a725a95219d4b7ca3',
'./modules/OAuth2Clients/metadata/detailviewdefs.php' => '752ef40916c7b1da82415063ece8638b',
'./modules/OAuth2Clients/metadata/editcredentialsviewdefs.php' => 'ff8140e9404e2baacd2d7328e0bd0aeb',
'./modules/OAuth2Clients/metadata/editpasswordviewdefs.php' => '37d0505b27bba6fb6fe79378187f1a94',
'./modules/OAuth2Clients/metadata/editviewdefs.php' => '087f5db2a82577312f2d7a384ede2ec6',
'./modules/OAuth2Clients/metadata/detailcredentialsviewdefs.php' => '7b697367c75b861cc31f3908c891a424',
'./modules/OAuth2Clients/metadata/detailpasswordviewdefs.php' => 'a0ff587a982ccb98c693a95083d12c37',
'./modules/OAuth2Clients/metadata/detailviewdefs.php' => '06a24351d5c0c05134efb22a779562ef',
'./modules/OAuth2Clients/metadata/editcredentialsviewdefs.php' => '4d247876f3ba72caea12bf2218313357',
'./modules/OAuth2Clients/metadata/editpasswordviewdefs.php' => '03e345601ae7834a3db7eeeb23b50173',
'./modules/OAuth2Clients/metadata/editviewdefs.php' => 'e5f20eb75f4f9c90ebed7e913cea5dca',
'./modules/OAuth2Clients/metadata/listviewdefs.php' => '4282034fa7a8316948346787d4641c65',
'./modules/OAuth2Clients/metadata/metafiles.php' => '41cd83567c02ce1a8edc8634307f5cdd',
'./modules/OAuth2Clients/metadata/popupdefs.php' => '7a2066ca250a032afb73d2feb5026d5a',
@ -5425,8 +5425,8 @@ $md5_string = array (
'./modules/OutboundEmailAccounts/language/en_us.lang.php' => '9b9becdbac51bb11ec5009007f7aa682',
'./modules/OutboundEmailAccounts/metadata/SearchFields.php' => 'b1d3821e188938066156f0c85d4e37fe',
'./modules/OutboundEmailAccounts/metadata/dashletviewdefs.php' => '93e262245007ffc79f1ff9938e8bbac9',
'./modules/OutboundEmailAccounts/metadata/detailviewdefs.php' => '464e6ae2faa0d79b72999ca462dd9fa9',
'./modules/OutboundEmailAccounts/metadata/editviewdefs.php' => 'c52ee86e9832d7c210134710d98396d6',
'./modules/OutboundEmailAccounts/metadata/detailviewdefs.php' => '948df4801e3d229ea4bac06e247fd643',
'./modules/OutboundEmailAccounts/metadata/editviewdefs.php' => 'f28a1bf18ca13bcfe8229c1d5fa6eee4',
'./modules/OutboundEmailAccounts/metadata/listviewdefs.php' => 'b55ab9fcc7b7fe5dc24847570f53c5c6',
'./modules/OutboundEmailAccounts/metadata/metafiles.php' => 'd163cfdaa7fa3d697326f798bbcc6867',
'./modules/OutboundEmailAccounts/metadata/popupdefs.php' => '3464601d89e63838c93f7bfcd2142eec',
@ -5452,7 +5452,7 @@ $md5_string = array (
'./modules/Project/SubPanelView.php' => 'af95a6ef52973f660100c71164dd42fe',
'./modules/Project/action_view_map.php' => 'bfb14b59f2e972e576ab76d3d5aceac0',
'./modules/Project/chart.php' => '02539a509ab925faa9a81ccf04a9c058',
'./modules/Project/controller.php' => 'c901668f6b9a9c75dad1ca1cdafd39f6',
'./modules/Project/controller.php' => '76888c230e8c8b12b5e43cec7dcc8ac9',
'./modules/Project/css/style.css' => 'f46ccefd03710380a8079bede95341ce',
'./modules/Project/css/style_chart.css' => '233f2a964aeed0a7a4db10aaa8397a5b',
'./modules/Project/delete_project_tasks.php' => '1c2dab740529a1e5a2fbc0e0ce7965d9',
@ -6002,7 +6002,7 @@ $md5_string = array (
'./modules/UpgradeWizard/upgradeMetaHelper.php' => '74eb154592e08fec475b3e43908eee01',
'./modules/UpgradeWizard/upgradeTimeCounter.php' => '375d68c9195bec9cb46ae78ee780f854',
'./modules/UpgradeWizard/upgradeWizard.js' => 'f52a5ac0e7c17ab9bebdaf1149766a1c',
'./modules/UpgradeWizard/upload.php' => 'b736ead70ef9bbffb622b7ff247b6e6a',
'./modules/UpgradeWizard/upload.php' => 'c2a0d959177ea5dd45774299b55d4e21',
'./modules/UpgradeWizard/uw_ajax.php' => 'dc6dd5c6491829bdff9ad33b5f6162ee',
'./modules/UpgradeWizard/uw_emptyFunctions.php' => '78d1a2e170174830b7dd1522db706828',
'./modules/UpgradeWizard/uw_files.php' => 'c63402ed2d43b3c6477e8c30859cb32d',
@ -6328,7 +6328,7 @@ $md5_string = array (
'./soap.php' => 'e28988c2e0b8e2c484587b537a710525',
'./sugar_version.json' => 'bdfbcefae2f9af559bef6a36367df7bb',
'./sugar_version.php' => 'db7b6c8d51f87879fce1e6172eedfbed',
'./suitecrm_version.php' => 'e03f4bc7104206ab214f5952a78e38ea',
'./suitecrm_version.php' => 'cc4bc58fefbbe53ff0744c20358fa0fa',
'./themes/SuiteP/css/Dawn/color-palette.scss' => 'e64677d79e1d68c069bdc2dc661c4f99',
'./themes/SuiteP/css/Dawn/icons.scss' => 'd59f8c5855e7a8df09542a663835a196',
'./themes/SuiteP/css/Dawn/select.ico' => '22393ad23f16c3f1462455bae8f20279',
@ -9252,4 +9252,4 @@ $md5_string = array (
'./themes/default/less/wells.less' => '07cc7d04d7f7f344742f23886cbe5683',
'./vCard.php' => '3f5273501c464563e5b1247be28b69de',
'./vcal_server.php' => 'ce4752597ba62a99f791c467339d2500',
);
);

View file

@ -37,7 +37,7 @@
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
*/(function($){$.fn.messageBox=function(options){"use strict";var self=this;self.controls={};self.controls.modal={};if(typeof $.fn.modal==="undefined"){console.error('messageBox - Missing Dependency Required: Bootstrap model');return self;}
self.modal=$.fn.modal;var opts=$.extend({},$.fn.messageBox.defaults,options);self.show=function(){"use strict";self.controls.modal.container.modal('show');return self;};self.onOk=function(){"use strict";$(self).trigger('ok');return false;};self.onCancel=function(){"use strict";$(self).trigger('cancel');return false;};self.generateID=function(){"use strict";var characters=['a','b','c','d','e','f','1','2','3','4','5','6','7','8','9'];var format='0000000-0000-0000-0000-00000000000';var z=Array.prototype.map.call(format,function($obj){var min=0;var max=characters.length-1;if($obj=='0'){var index=Math.round(Math.random()*(max-min)+min);$obj=characters[index];}
return $obj;}).toString().replace(/(,)/g,'');return z;};self.setTitle=function(content){"use strict";self.controls.modal.container.find('.modal-title').html(content);};self.getTitle=function(){"use strict";return self.controls.modal.container.find('.modal-title');};self.setBody=function(content){"use strict";self.controls.modal.container.find('.modal-body').html(content);};self.getBody=function(){"use strict";return self.controls.modal.container.find('.modal-body');};self.showHeader=function(){"use strict";return self.controls.modal.container.find('.modal-header').show();};self.hideHeader=function(){"use strict";return self.controls.modal.container.find('.modal-header').hide();};self.showFooter=function(){"use strict";return self.controls.modal.container.find('.modal-footer').show();};self.hideFooter=function(){"use strict";return self.controls.modal.container.find('.modal-footer').hide();};self.headerContent='<button type="button" class="close btn-cancel" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title"></h4>';self.footerContent='<button class="button btn-ok" type="button">'+SUGAR.language.translate('','LBL_OK')+'</button> <button class="button btn-cancel" type="button">'+SUGAR.language.translate('','LBL_CANCEL_BUTTON_LABEL')+'</button> ';self.construct=function(constructOptions){"use strict";if(typeof self.controls.modal.container==="undefined"){if(typeof opts.onOK==="undefined"){opts.onOK=self.onOk;}
return $obj;}).toString().replace(/(,)/g,'');return z;};self.setTitle=function(content){"use strict";self.controls.modal.container.find('.modal-title').html(content);};self.getTitle=function(){"use strict";return self.controls.modal.container.find('.modal-title');};self.setBody=function(content){"use strict";self.controls.modal.container.find('.modal-body').html(content);};self.getBody=function(){"use strict";return self.controls.modal.container.find('.modal-body');};self.showHeader=function(){"use strict";return self.controls.modal.container.find('.modal-header').show();};self.hideHeader=function(){"use strict";return self.controls.modal.container.find('.modal-header').hide();};self.showFooter=function(){"use strict";return self.controls.modal.container.find('.modal-footer').show();};self.hideCancel=function(){"use strict";return self.controls.modal.container.find('.btn-cancel').hide();};self.hideOk=function(){"use strict";return self.controls.modal.container.find('.btn-ok').hide();};self.hideFooter=function(){"use strict";return self.controls.modal.container.find('.modal-footer').hide();};self.headerContent='<button type="button" class="close btn-cancel" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title"></h4>';self.footerContent='<button class="button btn-ok" type="button">'+SUGAR.language.translate('','LBL_OK')+'</button> <button class="button btn-cancel" type="button">'+SUGAR.language.translate('','LBL_CANCEL_BUTTON_LABEL')+'</button> ';self.construct=function(constructOptions){"use strict";if(typeof self.controls.modal.container==="undefined"){if(typeof opts.onOK==="undefined"){opts.onOK=self.onOk;}
if(typeof opts.onCancel==="undefined"){opts.onCancel=self.onCancel;}
if(typeof opts.headerContent==="undefined"){opts.headerContent=self.headerContent;}
if(typeof opts.footerContent==="undefined"){opts.footerContent=self.footerContent;}

View file

@ -166,6 +166,22 @@
return self.controls.modal.container.find('.modal-footer').show();
};
/**
*
*/
self.hideCancel = function() {
"use strict";
return self.controls.modal.container.find('.btn-cancel').hide();
};
/**
*
*/
self.hideOk = function() {
"use strict";
return self.controls.modal.container.find('.btn-ok').hide();
};
/**
*
*/

View file

@ -217,13 +217,14 @@ class AOW_WorkFlow extends Basic
*/
public function run_bean_flows(SugarBean $bean)
{
if (!defined('SUGARCRM_IS_INSTALLING') && (!isset($_REQUEST['module']) || $_REQUEST['module'] != 'Import')) {
$query = "SELECT id FROM aow_workflow WHERE aow_workflow.flow_module = '" . $bean->module_dir . "' AND aow_workflow.status = 'Active' AND (aow_workflow.run_when = 'Always' OR aow_workflow.run_when = 'On_Save' OR aow_workflow.run_when = 'Create') AND aow_workflow.deleted = 0 ";
$query = "SELECT id FROM aow_workflow WHERE aow_workflow.flow_module = '" . $bean->module_dir . "' AND aow_workflow.status = 'Active' AND (aow_workflow.run_when = 'Always' OR aow_workflow.run_when = 'On_Save' OR aow_workflow.run_when = 'Create') AND aow_workflow.deleted = 0 ";
$result = $this->db->query($query, false);
$flow = BeanFactory::newBean('AOW_WorkFlow');
while (($row = $bean->db->fetchByAssoc($result)) != null) {
$flow->retrieve($row['id']);
$result = $this->db->query($query, false);
$flow = BeanFactory::newBean('AOW_WorkFlow');
while (($row = $bean->db->fetchByAssoc($result)) != null) {
$flow->retrieve($row['id']);
if ((!defined('SUGARCRM_IS_INSTALLING') && (!isset($_REQUEST['module'])) || $_REQUEST['module'] != 'Import') || $flow->run_on_import) {
if ($flow->check_valid_bean($bean)) {
$flow->run_actions($bean, true);
}

View file

@ -76,5 +76,6 @@ $mod_strings = array(
'LBL_ACTION_LINES' => 'Actions',
'LBL_ADD_ACTION' => 'Add Action',
'LBL_MULTIPLE_RUNS' => 'Repeated Runs',
'LBL_RUN_WHEN' => 'Run'
'LBL_RUN_WHEN' => 'Run',
'LBL_RUN_ON_IMPORT' => 'Run on Import'
);

View file

@ -117,6 +117,11 @@ $viewdefs ['AOW_WorkFlow'] =
'name' => 'multiple_runs',
'label' => 'LBL_MULTIPLE_RUNS',
),
1 =>
array(
'name' => 'run_on_import',
'label' => 'LBL_RUN_ON_IMPORT',
),
),
4 =>
array(

View file

@ -108,6 +108,11 @@ $viewdefs ['AOW_WorkFlow'] =
'name' => 'multiple_runs',
'label' => 'LBL_MULTIPLE_RUNS',
),
1 =>
array(
'name' => 'run_on_import',
'label' => 'LBL_RUN_ON_IMPORT',
),
),
4 =>
array(

View file

@ -213,6 +213,14 @@ $dictionary['AOW_WorkFlow'] = array(
'bean_name' => 'AOW_Processed',
'source' => 'non-db',
),
'run_on_import' =>
array(
'name' => 'run_on_import',
'vname' => 'LBL_RUN_ON_IMPORT',
'type' => 'bool',
'default' => '0',
'reportable' => false,
),
),
'relationships' => array(
'aow_workflow_aow_conditions' =>

View file

@ -94,65 +94,67 @@ class EmailManController extends SugarController
$focus->saveConfig();
// save User defaults for emails
$configurator->config['email_default_delete_attachments'] = (isset($_REQUEST['email_default_delete_attachments'])) ? true : false;
$configurator->config['email_warning_notifications'] = (isset($_REQUEST['email_warning_notifications'])) ? true : false;
$configurator->config['email_enable_confirm_opt_in'] = isset($_REQUEST['email_enable_confirm_opt_in']) ? $_REQUEST['email_enable_confirm_opt_in'] : SugarEmailAddress::COI_STAT_DISABLED;
$configurator->config['email_enable_auto_send_opt_in'] = (isset($_REQUEST['email_enable_auto_send_opt_in'])) ? true : false;
$configurator->config['email_confirm_opt_in_email_template_id'] = isset($_REQUEST['email_template_id_opt_in']) ? $_REQUEST['email_template_id_opt_in'] : $configurator->config['aop']['confirm_opt_in_template_id'];
$configurator->config['email_allow_send_as_user'] = (isset($_REQUEST['mail_allowusersend']) && $_REQUEST['mail_allowusersend'] == '1') ? true : false;
///////////////////////////////////////////////////////////////////////////////
//// SECURITY
$security = array();
if (isset($_REQUEST['applet'])) {
$security['applet'] = 'applet';
}
if (isset($_REQUEST['base'])) {
$security['base'] = 'base';
}
if (isset($_REQUEST['embed'])) {
$security['embed'] = 'embed';
}
if (isset($_REQUEST['form'])) {
$security['form'] = 'form';
}
if (isset($_REQUEST['frame'])) {
$security['frame'] = 'frame';
}
if (isset($_REQUEST['frameset'])) {
$security['frameset'] = 'frameset';
}
if (isset($_REQUEST['iframe'])) {
$security['iframe'] = 'iframe';
}
if (isset($_REQUEST['import'])) {
$security['import'] = '\?import';
}
if (isset($_REQUEST['layer'])) {
$security['layer'] = 'layer';
}
if (isset($_REQUEST['link'])) {
$security['link'] = 'link';
}
if (isset($_REQUEST['object'])) {
$security['object'] = 'object';
}
if (isset($_REQUEST['style'])) {
$security['style'] = 'style';
}
if (isset($_REQUEST['xmp'])) {
$security['xmp'] = 'xmp';
}
$security['script'] = 'script';
if (empty($_POST['campaignConfig'])) {
// save User defaults for emails
$configurator->config['email_default_delete_attachments'] = (isset($_REQUEST['email_default_delete_attachments'])) ? true : false;
$configurator->config['email_warning_notifications'] = (isset($_REQUEST['email_warning_notifications'])) ? true : false;
$configurator->config['email_enable_confirm_opt_in'] = isset($_REQUEST['email_enable_confirm_opt_in']) ? $_REQUEST['email_enable_confirm_opt_in'] : SugarEmailAddress::COI_STAT_DISABLED;
$configurator->config['email_enable_auto_send_opt_in'] = (isset($_REQUEST['email_enable_auto_send_opt_in'])) ? true : false;
$configurator->config['email_confirm_opt_in_email_template_id'] = isset($_REQUEST['email_template_id_opt_in']) ? $_REQUEST['email_template_id_opt_in'] : $configurator->config['aop']['confirm_opt_in_template_id'];
$configurator->config['email_allow_send_as_user'] = (isset($_REQUEST['mail_allowusersend']) && $_REQUEST['mail_allowusersend'] == '1') ? true : false;
///////////////////////////////////////////////////////////////////////////////
//// SECURITY
$security = array();
if (isset($_REQUEST['applet'])) {
$security['applet'] = 'applet';
}
if (isset($_REQUEST['base'])) {
$security['base'] = 'base';
}
if (isset($_REQUEST['embed'])) {
$security['embed'] = 'embed';
}
if (isset($_REQUEST['form'])) {
$security['form'] = 'form';
}
if (isset($_REQUEST['frame'])) {
$security['frame'] = 'frame';
}
if (isset($_REQUEST['frameset'])) {
$security['frameset'] = 'frameset';
}
if (isset($_REQUEST['iframe'])) {
$security['iframe'] = 'iframe';
}
if (isset($_REQUEST['import'])) {
$security['import'] = '\?import';
}
if (isset($_REQUEST['layer'])) {
$security['layer'] = 'layer';
}
if (isset($_REQUEST['link'])) {
$security['link'] = 'link';
}
if (isset($_REQUEST['object'])) {
$security['object'] = 'object';
}
if (isset($_REQUEST['style'])) {
$security['style'] = 'style';
}
if (isset($_REQUEST['xmp'])) {
$security['xmp'] = 'xmp';
}
$security['script'] = 'script';
$configurator->config['email_xss'] = base64_encode(serialize($security));
$configurator->config['email_xss'] = base64_encode(serialize($security));
//// SECURITY
///////////////////////////////////////////////////////////////////////////////
//// SECURITY
///////////////////////////////////////////////////////////////////////////////
ksort($sugar_config);
ksort($sugar_config);
$configurator->handleOverride();
$configurator->handleOverride();
}
SugarThemeRegistry::clearAllCaches();
}

View file

@ -217,7 +217,7 @@
var valid = self.isValid();
if (valid === false) {
if (typeof messageBox !== "undefined") {
var mb = messageBox({size: 'lg'});
var mb = messageBox({size: 'lg', backdrop: 'static'});
mb.setTitle(SUGAR.language.translate('', 'ERR_INVALID_REQUIRED_FIELDS'));
mb.setBody(self.translatedErrorMessage);
@ -230,6 +230,7 @@
});
mb.show();
mb.hideCancel();
} else {
alert(self.translatedErrorMessage);
}
@ -467,12 +468,13 @@
$(self).trigger("sendEmail", [self]);
// Tell the user we are sending an email
var mb = messageBox();
var mb = messageBox({backdrop:'static'});
mb.hideHeader();
mb.hideFooter();
document.activeElement.blur();
mb.setBody('<div class="email-in-progress"><img src="themes/' + SUGAR.themes.theme_name + '/images/loading.gif"></div>');
mb.show();
mb.on('ok', function () {
"use strict";
mb.remove();
@ -533,11 +535,13 @@
mb.showHeader();
mb.setBody(response.errors.title);
mb.showFooter();
mb.hideCancel();
$(self).trigger("sentEmailError", [self, response]);
} else {
mb.showHeader();
mb.setBody(response.data.title);
mb.showFooter();
mb.hideCancel();
// If the user is viewing the form in the standard view
if ($(self).find('input[type="hidden"][name="return_module"]').val() !== '') {
@ -838,7 +842,7 @@
"use strict";
$(self).trigger("saveDraft", [self]);
// Tell the user we are sending an email
var mb = messageBox();
var mb = messageBox({backdrop:'static'});
mb.hideHeader();
mb.hideFooter();
mb.setBody('<div class="email-in-progress"><img src="themes/' + SUGAR.themes.theme_name + '/images/loading.gif"></div>');
@ -899,11 +903,13 @@
mb.showHeader();
mb.setBody(response.errors.title);
mb.showFooter();
mb.hideCancel();
$(self).trigger("saveEmailError", [self, response]);
} else {
mb.showHeader();
mb.setBody(response.data.title);
mb.showFooter();
mb.hideCancel();
$(self).trigger("saveEmailSuccess", [self, response]);
var id = undefined;
@ -1378,9 +1384,9 @@
"tinyMceOptions": {
skin_url: "themes/default/css",
skin: "",
plugins: "fullscreen",
plugins: "fullscreen textcolor",
menubar: false,
toolbar: ['fontselect | fontsizeselect | bold italic underline | styleselect'],
toolbar: ['fontselect | fontsizeselect | bold italic underline forecolor backcolor | styleselect'],
formats: {
bold: {inline: 'b'},
italic: {inline: 'i'},

View file

@ -47,17 +47,17 @@ $viewdefs[$module_name]['DetailView'] = array(
'DUPLICATE',
'DELETE',
[
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=DeleteFromImap&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgNo}&record={$bean->id}\';" value="{$MOD.LBL_BUTTON_DELETE_IMAP}">'
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=DeleteFromImap&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgNo}&record={$bean->id}&return_module=Emails&return_action=index\';" value="{$MOD.LBL_BUTTON_DELETE_IMAP}">'
],
'FIND_DUPLICATES',
array(
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=ReplyTo&return_module=Emails&return_action=index&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgno}&record={$bean->id}\';" value="{$MOD.LBL_BUTTON_REPLY_TITLE}">'
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=ReplyTo&return_module=Emails&return_action=index&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgno}&record={$bean->id}&return_module=Emails&return_action=index\';" value="{$MOD.LBL_BUTTON_REPLY_TITLE}">'
),
array(
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=ReplyToAll&return_module=Emails&return_action=index&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgno}&record={$bean->id}\';" value="{$MOD.LBL_BUTTON_REPLY_ALL}">'
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=ReplyToAll&return_module=Emails&return_action=index&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgno}&record={$bean->id}&return_module=Emails&return_action=index\';" value="{$MOD.LBL_BUTTON_REPLY_ALL}">'
),
array(
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=Forward&return_module=Emails&return_action=index&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgno}&record={$bean->id}\';" value="{$MOD.LBL_BUTTON_FORWARD}">'
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=Forward&return_module=Emails&return_action=index&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgno}&record={$bean->id}&return_module=Emails&return_action=index\';" value="{$MOD.LBL_BUTTON_FORWARD}">'
),
array(
'customCode' => '<input type=button onclick="openQuickCreateModal(\'Bugs\',\'&name={$bean->name}\',\'{$bean->from_addr_name}\');" value="{$MOD.LBL_CREATE} {$APP.LBL_EMAIL_QC_BUGS}">'

View file

@ -47,16 +47,16 @@ $viewdefs[$module_name]['DetailView'] = array(
'customCode' => '<input type=button data-action="emails-import-single" data-inbound-email-record="{$bean->inbound_email_record}" data-email-uid="{$bean->uid}" data-email-msgno="{$bean->msgNo}" value="{$MOD.LBL_IMPORT}">'
),
array(
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=ReplyTo&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgNo}&record={$bean->id}\';" value="{$MOD.LBL_BUTTON_REPLY_TITLE}">'
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=ReplyTo&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgNo}&record={$bean->id}&return_module=Emails&return_action=index\';" value="{$MOD.LBL_BUTTON_REPLY_TITLE}">'
),
array(
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=ReplyToAll&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgNo}&record={$bean->id}\';" value="{$MOD.LBL_BUTTON_REPLY_ALL}">'
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=ReplyToAll&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgNo}&record={$bean->id}&return_module=Emails&return_action=index\';" value="{$MOD.LBL_BUTTON_REPLY_ALL}">'
),
array(
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=Forward&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgNo}&record={$bean->id}\';" value="{$MOD.LBL_BUTTON_FORWARD}">'
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=Forward&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgNo}&record={$bean->id}&return_module=Emails&return_action=index\';" value="{$MOD.LBL_BUTTON_FORWARD}">'
),
[
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=DeleteFromImap&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgNo}&record={$bean->id}\';" value="{$MOD.LBL_BUTTON_DELETE_IMAP}">'
'customCode' => '<input type=button onclick="window.location.href=\'index.php?module=Emails&action=DeleteFromImap&folder=INBOX.TestInbox&folder=inbound&inbound_email_record={$bean->inbound_email_record}&uid={$bean->uid}&msgno={$bean->msgNo}&record={$bean->id}&return_module=Emails&return_action=index\';" value="{$MOD.LBL_BUTTON_DELETE_IMAP}">'
],
),
),

View file

@ -437,7 +437,9 @@ class AbstractRelationships
mkdir_recursive("$basepath/relationships") ;
$installDefs = array( ) ;
list($rhs_module, $properties) = each($relationshipMetaData) ;
$rhs_module = key($relationshipMetaData);
$properties = current($relationshipMetaData);
$filename = "$basepath/relationships/{$relationshipName}MetaData.php" ;
$GLOBALS [ 'log' ]->debug(get_class($this) . "->saveRelationshipMetaData(): saving the following to {$filename}" . print_r($properties, true)) ;
write_array_to_file('dictionary["' . $relationshipName . '"]', $properties, (string)($filename), 'w') ;

View file

@ -140,8 +140,8 @@ class ViewRelationship extends SugarView
}
} else {
$definition = array( ) ;
$firstModuleDefinition = each($relatableModules) ;
$definition [ 'rhs_module' ] = $firstModuleDefinition [ 'key' ] ;
$firstModuleDefinition = [key($relatableModules), current($relatableModules)];
$definition [ 'rhs_module' ] = $firstModuleDefinition[0];
$definition [ 'lhs_module' ] = $moduleName ;
$definition [ 'lhs_label' ] = translate($moduleName);
$definition [ 'relationship_type' ] = MB_MANYTOMANY ;

View file

@ -56,23 +56,23 @@ $viewdefs[$module_name]['DetailView'] = [
[
0 =>
[
'name' => 'name',
0 => 'name',
],
2 =>
[
'name' => 'is_confidential',
0 => 'is_confidential',
],
3 =>
[
'name' => 'id',
0 => 'id',
],
4 =>
[
'name' => 'allowed_grant_type',
0 => 'allowed_grant_type',
],
6 =>
[
'name' => 'assigned_user_name',
0 => 'assigned_user_name',
],
],
'LBL_PANEL_ASSIGNMENT' =>

View file

@ -56,19 +56,19 @@ $viewdefs[$module_name]['DetailView'] = [
[
0 =>
[
'name' => 'name',
0 => 'name',
],
2 =>
[
'name' => 'is_confidential',
0 => 'is_confidential',
],
3 =>
[
'name' => 'id',
0 => 'id',
],
4 =>
[
'name' => 'allowed_grant_type',
0 => 'allowed_grant_type',
],
],
'LBL_PANEL_ASSIGNMENT' =>

View file

@ -56,23 +56,23 @@ $viewdefs[$module_name]['DetailView'] = [
[
0 =>
[
'name' => 'name',
0 => 'name',
],
1 =>
[
'name' => 'redirect_url',
0 => 'redirect_url',
],
2 =>
[
'name' => 'is_confidential',
0 => 'is_confidential',
],
3 =>
[
'name' => 'id',
0 => 'id',
],
4 =>
[
'name' => 'allowed_grant_type',
0 => 'allowed_grant_type',
],
5 =>
[

View file

@ -61,7 +61,7 @@ $viewdefs[$module_name]['EditView'] = [
[
0 =>
[
'name' => 'name',
0 => 'name',
],
1 =>
[
@ -76,11 +76,11 @@ $viewdefs[$module_name]['EditView'] = [
],
2 =>
[
'name' => 'is_confidential',
0 => 'is_confidential',
],
4 =>
[
'name' => 'assigned_user_name',
0 => 'assigned_user_name',
],
],
],

View file

@ -61,7 +61,7 @@ $viewdefs[$module_name]['EditView'] = [
[
0 =>
[
'name' => 'name',
0 => 'name',
],
1 =>
[
@ -76,7 +76,7 @@ $viewdefs[$module_name]['EditView'] = [
],
2 =>
[
'name' => 'is_confidential',
0 => 'is_confidential',
],
],
],

View file

@ -56,19 +56,19 @@ $viewdefs[$module_name]['EditView'] = [
[
0 =>
[
'name' => 'name',
0 => 'name',
],
1 =>
[
'name' => 'redirect_url',
0 => 'redirect_url',
],
2 =>
[
'name' => 'is_confidential',
0 => 'is_confidential',
],
3 =>
[
'name' => 'allowed_grant_type',
0 => 'allowed_grant_type',
],
4 =>
[

View file

@ -1,6 +1,5 @@
<?php
$module_name = 'OutboundEmailAccounts';
$viewdefs [$module_name] =
$viewdefs ['OutboundEmailAccounts'] =
array(
'DetailView' =>
array(
@ -53,12 +52,7 @@ array(
0 =>
array(
0 => 'name',
//1 => 'assigned_user_name',
),
// 1 =>
// array (
// 0 => 'description',
// ),
),
'lbl_editview_panel1' =>
array(

View file

@ -1,119 +1,116 @@
<?php
$module_name = 'OutboundEmailAccounts';
$viewdefs [$module_name] =
$viewdefs ['OutboundEmailAccounts'] =
array(
'EditView' =>
array(
'EditView' =>
'templateMeta' =>
array(
'maxColumns' => '2',
'widths' =>
array(
'templateMeta' =>
array(
'maxColumns' => '2',
'widths' =>
array(
0 =>
array(
'label' => '10',
'field' => '30',
),
1 =>
array(
'label' => '10',
'field' => '30',
),
),
'useTabs' => false,
'tabDefs' =>
array(
'DEFAULT' =>
array(
'newTab' => false,
'panelDefault' => 'expanded',
),
'LBL_EDITVIEW_PANEL1' =>
array(
'newTab' => false,
'panelDefault' => 'expanded',
),
),
'syncDetailEditViews' => true,
),
'panels' =>
array(
'default' =>
array(
0 =>
array(
0 => 'name',
//1 => 'assigned_user_name',
),
// 1 =>
// array (
// 0 => 'description',
// ),
),
'lbl_editview_panel1' =>
array(
array(
'name' => 'smtp_from_name',
'label' => 'LBL_SMTP_FROM_NAME',
),
array(
'name' => 'smtp_from_addr',
'label' => 'LBL_SMTP_FROM_ADDR',
),
array(
'name' => 'email_provider_chooser',
'label' => 'LBL_CHOOSE_EMAIL_PROVIDER',
),
array(
0 =>
array(
'name' => 'mail_smtpserver',
'label' => 'LBL_SMTP_SERVERNAME',
),
1 =>
array(
'name' => 'mail_smtpport',
'label' => 'LBL_SMTP_PORT',
),
),
array(
0 =>
array(
'name' => 'mail_smtpauth_req',
'label' => 'LBL_SMTP_AUTH',
),
1 =>
array(
'name' => 'mail_smtpssl',
'studio' => 'visible',
'label' => 'LBL_SMTP_PROTOCOL',
),
),
array(
array(
'name' => 'mail_smtpuser',
'label' => 'LBL_USERNAME',
),
),
array(
array(
'name' => 'password_change',
'label' => 'LBL_PASSWORD',
),
),
array(
array(
'name' => 'sent_test_email_btn',
'label' => 'LBL_SEND_TEST_EMAIL',
),
),
),
),
0 =>
array(
'label' => '10',
'field' => '30',
),
1 =>
array(
'label' => '10',
'field' => '30',
),
),
);
'useTabs' => false,
'tabDefs' =>
array(
'DEFAULT' =>
array(
'newTab' => false,
'panelDefault' => 'expanded',
),
'LBL_EDITVIEW_PANEL1' =>
array(
'newTab' => false,
'panelDefault' => 'expanded',
),
),
'syncDetailEditViews' => true,
),
'panels' =>
array(
'default' =>
array(
0 =>
array(
0 => 'name',
),
),
'lbl_editview_panel1' =>
array(
array(
0 =>
array(
'name' => 'smtp_from_name',
'label' => 'LBL_SMTP_FROM_NAME',
),
),
array(
0 =>
array(
'name' => 'smtp_from_addr',
'label' => 'LBL_SMTP_FROM_ADDR',
),
),
array(
0 =>
array(
'name' => 'email_provider_chooser',
'label' => 'LBL_CHOOSE_EMAIL_PROVIDER',
),
),
array(
0 =>
array(
'name' => 'mail_smtpserver',
'label' => 'LBL_SMTP_SERVERNAME',
),
1 =>
array(
'name' => 'mail_smtpport',
'label' => 'LBL_SMTP_PORT',
),
),
array(
0 =>
array(
'name' => 'mail_smtpauth_req',
'label' => 'LBL_SMTP_AUTH',
),
1 =>
array(
'name' => 'mail_smtpssl',
'studio' => 'visible',
'label' => 'LBL_SMTP_PROTOCOL',
),
),
array(
array(
'name' => 'mail_smtpuser',
'label' => 'LBL_USERNAME',
),
),
array(
array(
'name' => 'password_change',
'label' => 'LBL_PASSWORD',
),
),
array(
array(
'name' => 'sent_test_email_btn',
'label' => 'LBL_SEND_TEST_EMAIL',
),
),
),
),
),
);

View file

@ -486,11 +486,13 @@ class ProjectController extends SugarController
{
global $mod_strings;
$start_date = $_REQUEST['start_date'];
$end_date = $_REQUEST['end_date'];
$resource_id = $_REQUEST['resource_id'];
$db = DBManagerFactory::getInstance();
$projects = explode(",", $_REQUEST['projects']);
$start_date = $db->quote($_REQUEST['start_date']);
$end_date = $db->quote($_REQUEST['end_date']);
$resource_id = $db->quote($_REQUEST['resource_id']);
$projects = explode(",", $db->quote($_REQUEST['projects']));
$project_where = "";
if (count($projects) > 1 || $projects[0] != '') {
$project_where = " AND project_id IN( '" . implode("','", $projects) . "' )";

View file

@ -118,12 +118,32 @@ switch ($run) {
$manifest_file = extractManifest($tempFile);
if (is_file($manifest_file)) {
require_once($manifest_file);
//SCAN THE MANIFEST FILE TO MAKE SURE NO COPIES OR ANYTHING ARE HAPPENING IN IT
require_once __DIR__ . '/../../ModuleInstall/ModuleScanner.php';
$ms = new ModuleScanner();
$ms->lockConfig();
$fileIssues = $ms->scanFile($manifest_file);
if (!empty($fileIssues)) {
$out .= '<h2>' . translate('ML_MANIFEST_ISSUE', 'Administration') . '</h2><br>';
$out .= $ms->getIssuesLog();
break;
}
list($manifest, $installdefs) = MSLoadManifest($manifest_file);
if ($ms->checkConfig($manifest_file)) {
$out .= '<h2>' . translate('ML_MANIFEST_ISSUE', 'Administration') . '</h2><br>';
$out .= $ms->getIssuesLog();
break;
}
$error = validate_manifest($manifest);
if (!empty($error)) {
$out = "<b><span class='error'>{$error}</span></b><br />";
break;
}
$upgrade_zip_type = $manifest['type'];
// exclude the bad permutations

View file

@ -4,5 +4,5 @@ if (!defined('sugarEntry') || !sugarEntry) {
}
$suitecrm_version = '8.0.0-rc';
$suitecrm_legacy = '7.12.1';
$suitecrm_timestamp = '2021-11-19 17:00:00';
$suitecrm_legacy = '7.12.2';
$suitecrm_timestamp = '2021-12-14 17:00:00';