Squashed 'public/legacy/' changes from e2aa790472..c009bb4487

c009bb4487 SuiteCRM 7.14.6 Release
a501e2a494 Fix format decimals on email template
9388fcce0a Fix Mozaik editor on campaigns
23060cd519 Fix tags in saving dropdown
98183bb40f Fix #10421 - Studio | Layout Editor CSS broken
376cdd86fa Fix #10503 - Item label in dropdown list is not displayed if it contains '<' character
c96182239d Fix #10099 - Workflow action create record on CRON set incorrect date field values from related entity
228c549390 Fix #9036 - change log level according it message
1ead013a45 Fix #9737 - Fix issue with campaigns displaying a blank email template
48a86eef51 Fix #10450 - Add check for empty value before searching array
1cc6fc8b54 Fix #10455 - Add Independent scrollbars for Toolbox and Layout within Studio Layout Editor
9c8da04bbf Fix #10488 - Expand the number of filters in message queue views
9158c58f26 Fix #9261 - Use decimal symbol configured in system and user
4a40068018 Fix #10445 - Calendar: Calls still show even using Settings: 'Show Calls' = NO
e3610fa635 Fix #507 - Workflows - Calculated Fields - related field won't show up as parameter
bfde626897 Fix #8332 - Recipient Type [Language]
e97708d29c Fix #10520 - Discount Calculation incorrect when changing Currency
171a9d2a0f Fix #5287 - Change secret field is too short

git-subtree-dir: public/legacy
git-subtree-split: c009bb448753e2dcc6deefe258c30c00395cbd07
This commit is contained in:
SAgility Dev 2024-10-25 07:29:21 +00:00
parent 8843760723
commit bc18e4771d
35 changed files with 382 additions and 120 deletions

View file

@ -671,7 +671,7 @@ class ModuleInstaller
} }
$user->retrieve($userId); $user->retrieve($userId);
$prefs = $user->getPreference('globalSearch', 'search'); $prefs = $user->getPreference('globalSearch', 'search');
if (array_key_exists($beanDefs['module'], $prefs) == false) { if (empty($prefs) || array_key_exists($beanDefs['module'], $prefs) == false) {
continue; continue;
} }
unset($prefs[$beanDefs['module']]); unset($prefs[$beanDefs['module']]);

View file

@ -611,6 +611,7 @@ class ModuleScanner
$checkFunction = false; $checkFunction = false;
$possibleIssue = ''; $possibleIssue = '';
$lastToken = false; $lastToken = false;
$return = false;
foreach ($tokens as $index=>$token) { foreach ($tokens as $index=>$token) {
if (is_string($token[0])) { if (is_string($token[0])) {
switch ($token[0]) { switch ($token[0]) {
@ -622,7 +623,16 @@ class ModuleScanner
$issues[] = $possibleIssue; $issues[] = $possibleIssue;
} }
break; break;
case ']':
if ($checkFunction){
$issues[] = $possibleIssue;
}
} }
if ($return && $checkFunction){
$issues[] = $possibleIssue;
}
$checkFunction = false; $checkFunction = false;
$possibleIssue = ''; $possibleIssue = '';
} else { } else {
@ -641,7 +651,8 @@ class ModuleScanner
$issues[]= translate('ML_INVALID_FUNCTION', 'Administration') . ' exit / die'; $issues[]= translate('ML_INVALID_FUNCTION', 'Administration') . ' exit / die';
break; break;
case T_STRING: case T_STRING:
$token[1] = strtolower($token[1]); case T_CONSTANT_ENCAPSED_STRING:
$token[1] = trim(strtolower($token[1]),'\'"');
if ($lastToken !== false && $lastToken[0] == T_NEW) { if ($lastToken !== false && $lastToken[0] == T_NEW) {
if (!in_array($token[1], $this->classBlackList)) { if (!in_array($token[1], $this->classBlackList)) {
break; break;
@ -688,6 +699,10 @@ class ModuleScanner
if (in_array($token[1], $this->blackListExempt)) { if (in_array($token[1], $this->blackListExempt)) {
break; break;
} }
if ($lastToken[1] === 'return'){
$return = true;
}
} }
// no break // no break
case T_VARIABLE: case T_VARIABLE:

View file

@ -2,7 +2,7 @@
<img width="180px" height="41px" src="https://suitecrm.com/wp-content/uploads/2017/12/logo.png" align="right" /> <img width="180px" height="41px" src="https://suitecrm.com/wp-content/uploads/2017/12/logo.png" align="right" />
</a> </a>
# SuiteCRM 7.14.5 # SuiteCRM 7.14.6
[![Build Status](https://travis-ci.org/salesagility/SuiteCRM.svg?branch=hotfix)](https://travis-ci.org/salesagility/SuiteCRM) [![Build Status](https://travis-ci.org/salesagility/SuiteCRM.svg?branch=hotfix)](https://travis-ci.org/salesagility/SuiteCRM)
[![codecov](https://codecov.io/gh/salesagility/SuiteCRM/branch/hotfix/graph/badge.svg)](https://codecov.io/gh/salesagility/SuiteCRM/branch/hotfix) [![codecov](https://codecov.io/gh/salesagility/SuiteCRM/branch/hotfix/graph/badge.svg)](https://codecov.io/gh/salesagility/SuiteCRM/branch/hotfix)

17
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "8ddaa2e92629c2543c4b72cf48108edb", "content-hash": "47bba1eb36fbd153ae6881e530f96a52",
"packages": [ "packages": [
{ {
"name": "composer/semver", "name": "composer/semver",
@ -3480,16 +3480,16 @@
}, },
{ {
"name": "smarty/smarty", "name": "smarty/smarty",
"version": "v4.3.1", "version": "v4.5.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/smarty-php/smarty.git", "url": "https://github.com/smarty-php/smarty.git",
"reference": "e28cb0915b4e3749bf57d4ebae2984e25395cfe5" "reference": "9fc96a13dbaf546c3d7bcf95466726578cd4e0fa"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/e28cb0915b4e3749bf57d4ebae2984e25395cfe5", "url": "https://api.github.com/repos/smarty-php/smarty/zipball/9fc96a13dbaf546c3d7bcf95466726578cd4e0fa",
"reference": "e28cb0915b4e3749bf57d4ebae2984e25395cfe5", "reference": "9fc96a13dbaf546c3d7bcf95466726578cd4e0fa",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3537,7 +3537,12 @@
"keywords": [ "keywords": [
"templating" "templating"
], ],
"time": "2023-03-28T19:47:03+00:00" "support": {
"forum": "https://github.com/smarty-php/smarty/discussions",
"issues": "https://github.com/smarty-php/smarty/issues",
"source": "https://github.com/smarty-php/smarty/tree/v4.5.3"
},
"time": "2024-05-28T21:46:01+00:00"
}, },
{ {
"name": "soundasleep/html2text", "name": "soundasleep/html2text",

View file

@ -97,7 +97,7 @@ class M2MRelationship extends SugarRelationship
//Multiple links with same relationship name //Multiple links with same relationship name
else { else {
if (is_array($results)) { if (is_array($results)) {
$GLOBALS['log']->error("Warning: Multiple links found for relationship {$this->name} within module {$module}"); $GLOBALS['log']->warn("Multiple links found for relationship {$this->name} within module {$module}");
return $this->getMostAppropriateLinkedDefinition($results); return $this->getMostAppropriateLinkedDefinition($results);
} else { } else {
return false; return false;

View file

@ -1,5 +1,5 @@
<?php <?php
// created: 2024-07-23 17:00:00 // created: 2024-10-23 17:00:00
$md5_string = array ( $md5_string = array (
'./Api/Core/Config/ApiConfig.php' => '7c960715776e20734ce8839f7d75f277', './Api/Core/Config/ApiConfig.php' => '7c960715776e20734ce8839f7d75f277',
'./Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8', './Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8',
@ -102,8 +102,8 @@ $md5_string = array (
'./HandleAjaxCall.php' => 'ba153f75c1522957ebe5780bb1401814', './HandleAjaxCall.php' => 'ba153f75c1522957ebe5780bb1401814',
'./LICENSE.txt' => 'd3f150e4a5bed444763ebe8a81742a95', './LICENSE.txt' => 'd3f150e4a5bed444763ebe8a81742a95',
'./ModuleInstall/ExtensionManager.php' => '02f7b94b3f10b904299dbbbf84629004', './ModuleInstall/ExtensionManager.php' => '02f7b94b3f10b904299dbbbf84629004',
'./ModuleInstall/ModuleInstaller.php' => '4a284071b31ad18cccaaca6a971f6ca1', './ModuleInstall/ModuleInstaller.php' => '0d683f27d498421d08c17e122b9e0683',
'./ModuleInstall/ModuleScanner.php' => '3f9ce4a2deabfb0734b65acd71043550', './ModuleInstall/ModuleScanner.php' => 'bf9727afe8a45e77ce2b1aea5359809b',
'./ModuleInstall/PackageManager/ListViewPackages.php' => '020c6c30fa03ccc2be2092fcd0cf5260', './ModuleInstall/PackageManager/ListViewPackages.php' => '020c6c30fa03ccc2be2092fcd0cf5260',
'./ModuleInstall/PackageManager/PackageController.php' => '16f99425f4d88521d260cb248df4274f', './ModuleInstall/PackageManager/PackageController.php' => '16f99425f4d88521d260cb248df4274f',
'./ModuleInstall/PackageManager/PackageManager.php' => 'cf868ae4c182cb6e691ffc373f912f68', './ModuleInstall/PackageManager/PackageManager.php' => 'cf868ae4c182cb6e691ffc373f912f68',
@ -116,7 +116,7 @@ $md5_string = array (
'./ModuleInstall/PackageManager/tpls/PackageManagerLicense.tpl' => 'df5e267d1df5ce08fb9406e42d5b4816', './ModuleInstall/PackageManager/tpls/PackageManagerLicense.tpl' => 'df5e267d1df5ce08fb9406e42d5b4816',
'./ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl' => '98e396c0aa57329731fda19c790fffb2', './ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl' => '98e396c0aa57329731fda19c790fffb2',
'./ModuleInstall/extensions.php' => 'de30837895f67175b7fbc04274a837a6', './ModuleInstall/extensions.php' => 'de30837895f67175b7fbc04274a837a6',
'./README.md' => 'bc368c439352a540a0288f2b2cde6936', './README.md' => 'ceb5060b8df3e66197b7308c0c484fc1',
'./RoboFile.php' => '1b4201de0ee50e259424ce2f408e5e87', './RoboFile.php' => '1b4201de0ee50e259424ce2f408e5e87',
'./SugarSecurity.php' => '84975dd9146d968458af123842c6c370', './SugarSecurity.php' => '84975dd9146d968458af123842c6c370',
'./TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c', './TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c',
@ -508,14 +508,14 @@ $md5_string = array (
'./build/travis-ci-apache' => 'e1e212c4eaf679b6ec620cd0b12f4571', './build/travis-ci-apache' => 'e1e212c4eaf679b6ec620cd0b12f4571',
'./campaign_tracker.php' => '6ee1a89fc24a8db14faba32f6ae8ca15', './campaign_tracker.php' => '6ee1a89fc24a8db14faba32f6ae8ca15',
'./composer.json' => '1f1f485a488eb64c21478bba117346a2', './composer.json' => '1f1f485a488eb64c21478bba117346a2',
'./composer.lock' => 'f1cad98b6629b228dcfb03807f5b0340', './composer.lock' => '36fc0286574f66e03f06494239596efd',
'./cron.php' => '9d3563bad78e2349325c8b0f268ecb96', './cron.php' => '9d3563bad78e2349325c8b0f268ecb96',
'./crossdomain.xml' => '24b7711640c652b21aa89c9d83d6ec13', './crossdomain.xml' => '24b7711640c652b21aa89c9d83d6ec13',
'./data/BeanFactory.php' => 'acc415aa759a183c2fda2ad51b5f4665', './data/BeanFactory.php' => 'acc415aa759a183c2fda2ad51b5f4665',
'./data/Link.php' => '499a295f3e5e248c76270c10adf169a4', './data/Link.php' => '499a295f3e5e248c76270c10adf169a4',
'./data/Link2.php' => '952dd8bca38c01d0b33cc244ec1988dd', './data/Link2.php' => '952dd8bca38c01d0b33cc244ec1988dd',
'./data/Relationships/EmailAddressRelationship.php' => 'd4f10346966b0d9d4ff3698ae4458ee0', './data/Relationships/EmailAddressRelationship.php' => 'd4f10346966b0d9d4ff3698ae4458ee0',
'./data/Relationships/M2MRelationship.php' => 'd44a54ddd5d4cd30d14d33704a1c93fb', './data/Relationships/M2MRelationship.php' => 'afc42367f7eaae5de60ef3dba16438ee',
'./data/Relationships/One2MBeanRelationship.php' => '2b7d9f21d371c4501e526e0bfcc084c2', './data/Relationships/One2MBeanRelationship.php' => '2b7d9f21d371c4501e526e0bfcc084c2',
'./data/Relationships/One2MRelationship.php' => '1a3a85d5c631712095e52384ef8398ad', './data/Relationships/One2MRelationship.php' => '1a3a85d5c631712095e52384ef8398ad',
'./data/Relationships/One2OneBeanRelationship.php' => '377b23eb680efa4c39046f5beec41aaf', './data/Relationships/One2OneBeanRelationship.php' => '377b23eb680efa4c39046f5beec41aaf',
@ -583,7 +583,7 @@ $md5_string = array (
'./include/HTTP_WebDAV_Server/Tools/_parse_proppatch.php' => 'e5c3cbd080bc0e5869f0bc1dadb1e8be', './include/HTTP_WebDAV_Server/Tools/_parse_proppatch.php' => 'e5c3cbd080bc0e5869f0bc1dadb1e8be',
'./include/HTTP_WebDAV_Server/dav.txt' => 'c5235ed64efa685da638c6dcdb6a9708', './include/HTTP_WebDAV_Server/dav.txt' => 'c5235ed64efa685da638c6dcdb6a9708',
'./include/HTTP_WebDAV_Server/license.txt' => 'a45bb1bbeed9e26b26c5763df1d3913d', './include/HTTP_WebDAV_Server/license.txt' => 'a45bb1bbeed9e26b26c5763df1d3913d',
'./include/HtmlSanitizer.php' => 'f40ab2a60144b73aecca811a536957d6', './include/HtmlSanitizer.php' => 'aa6c9f1125b713da4d9dd72d172f97ab',
'./include/Imap/Imap2Handler.php' => '3142f90b0ed93390662b424196957a9c', './include/Imap/Imap2Handler.php' => '3142f90b0ed93390662b424196957a9c',
'./include/Imap/ImapHandler.php' => 'e27ca4ebd7cde0b2787e9eeb1bc8ed1b', './include/Imap/ImapHandler.php' => 'e27ca4ebd7cde0b2787e9eeb1bc8ed1b',
'./include/Imap/ImapHandlerException.php' => '11b15b3480f04a04c256ee2ad22da21e', './include/Imap/ImapHandlerException.php' => '11b15b3480f04a04c256ee2ad22da21e',
@ -692,7 +692,7 @@ $md5_string = array (
'./include/QuickSearchDefaults.php' => '0886cc24cdeac6f161417013851a29d1', './include/QuickSearchDefaults.php' => '0886cc24cdeac6f161417013851a29d1',
'./include/RefreshDatabase.php' => '2f8393d844bd4f327b6880b349fd7dd7', './include/RefreshDatabase.php' => '2f8393d844bd4f327b6880b349fd7dd7',
'./include/SearchForm/SearchForm.php' => '9c999a18e3b9c749dbdfa68da985fbe2', './include/SearchForm/SearchForm.php' => '9c999a18e3b9c749dbdfa68da985fbe2',
'./include/SearchForm/SearchForm2.php' => '427124cb4302578fa314816f391b51e0', './include/SearchForm/SearchForm2.php' => '64748d433c54f6d8962e1c2c74cb8d77',
'./include/SearchForm/SugarSpot.php' => '5996d87e6a9be7d5f3a90279a364541c', './include/SearchForm/SugarSpot.php' => '5996d87e6a9be7d5f3a90279a364541c',
'./include/SearchForm/tpls/SearchFormGeneric.tpl' => '98cd213b9bf117885df0f452f8f804f6', './include/SearchForm/tpls/SearchFormGeneric.tpl' => '98cd213b9bf117885df0f452f8f804f6',
'./include/SearchForm/tpls/SearchFormGenericAdvanced.tpl' => 'fc5daccc733525ed9841c730bcbf8bb7', './include/SearchForm/tpls/SearchFormGenericAdvanced.tpl' => 'fc5daccc733525ed9841c730bcbf8bb7',
@ -1255,10 +1255,10 @@ $md5_string = array (
'./include/Sugarpdf/sugarpdf/sugarpdf.smarty.php' => '3123177f2bb0240b00e37c433d149c66', './include/Sugarpdf/sugarpdf/sugarpdf.smarty.php' => '3123177f2bb0240b00e37c433d149c66',
'./include/Sugarpdf/sugarpdf_config.php' => '01452207250f2f90396b4543eeecfde6', './include/Sugarpdf/sugarpdf_config.php' => '01452207250f2f90396b4543eeecfde6',
'./include/Sugarpdf/sugarpdf_default.php' => 'ed59f131878639034df56183b7a121a2', './include/Sugarpdf/sugarpdf_default.php' => 'ed59f131878639034df56183b7a121a2',
'./include/SuiteEditor/SuiteEditorConnector.php' => 'a776d9b9a8512fa5f5b00c4c9c417698', './include/SuiteEditor/SuiteEditorConnector.php' => 'b82475b5fccb723f0283dbeac1c4f539',
'./include/SuiteEditor/SuiteEditorDirectHTML.php' => 'b5f7f66a383397e4a541e0ce51fef039', './include/SuiteEditor/SuiteEditorDirectHTML.php' => 'b5f7f66a383397e4a541e0ce51fef039',
'./include/SuiteEditor/SuiteEditorInterface.php' => 'cdf72097a74c1ca0bf8cbd2f4b5cdb8e', './include/SuiteEditor/SuiteEditorInterface.php' => 'cdf72097a74c1ca0bf8cbd2f4b5cdb8e',
'./include/SuiteEditor/SuiteEditorMozaik.php' => 'a44e4f678cbcaf8c823486be62ab98a3', './include/SuiteEditor/SuiteEditorMozaik.php' => '586fcd3ac4b2a39d71196716bf316e2d',
'./include/SuiteEditor/SuiteEditorSettings.php' => '9b21fe20fb23cbeba38f3a10f867c754', './include/SuiteEditor/SuiteEditorSettings.php' => '9b21fe20fb23cbeba38f3a10f867c754',
'./include/SuiteEditor/SuiteEditorSettingsForDirectHTML.php' => '645e6b1379c220af8a79373823a6bb6f', './include/SuiteEditor/SuiteEditorSettingsForDirectHTML.php' => '645e6b1379c220af8a79373823a6bb6f',
'./include/SuiteEditor/SuiteEditorSettingsForMozaik.php' => '043f70f2bdd47dd292eeeff504c1e569', './include/SuiteEditor/SuiteEditorSettingsForMozaik.php' => '043f70f2bdd47dd292eeeff504c1e569',
@ -1402,7 +1402,7 @@ $md5_string = array (
'./include/fonts/Times-Italic.afm' => 'c41212e70e19627889aefef85212a47d', './include/fonts/Times-Italic.afm' => 'c41212e70e19627889aefef85212a47d',
'./include/fonts/Times-Roman.afm' => 'f257a72c31f6a864f4e0994b1771628c', './include/fonts/Times-Roman.afm' => 'f257a72c31f6a864f4e0994b1771628c',
'./include/formbase.php' => 'cb1644b60281877cac33d718293775c8', './include/formbase.php' => 'cb1644b60281877cac33d718293775c8',
'./include/generic/DeleteRelationship.php' => '11024145b897e8e8337d3da0d8712d77', './include/generic/DeleteRelationship.php' => 'c345e9ba51991a3bdb5371a1f95bd1da',
'./include/generic/LayoutManager.php' => 'c47a2cb97997c9a9c8cfbd20b0a8e83b', './include/generic/LayoutManager.php' => 'c47a2cb97997c9a9c8cfbd20b0a8e83b',
'./include/generic/Save2.php' => 'e0389f61b2069723400fd8835f82d720', './include/generic/Save2.php' => 'e0389f61b2069723400fd8835f82d720',
'./include/generic/SugarWidgets/SugarWidget.php' => '0e55de3e8acaa1c505cdfe14d396062c', './include/generic/SugarWidgets/SugarWidget.php' => '0e55de3e8acaa1c505cdfe14d396062c',
@ -2417,7 +2417,7 @@ $md5_string = array (
'./include/utils/db_utils.php' => 'f8d2c7ccb0547cdb4b885012215953eb', './include/utils/db_utils.php' => 'f8d2c7ccb0547cdb4b885012215953eb',
'./include/utils/encryption_utils.php' => 'cf87e84efe3764464056e6473aac9c79', './include/utils/encryption_utils.php' => 'cf87e84efe3764464056e6473aac9c79',
'./include/utils/external_cache.php' => '7439d9b6252e242a9c852ecb58df44ec', './include/utils/external_cache.php' => '7439d9b6252e242a9c852ecb58df44ec',
'./include/utils/file_utils.php' => 'e9090db71a0f8137f9c8672734c02ed1', './include/utils/file_utils.php' => 'a7469aa40d7d51c6c9d0baba3ca7d8ed',
'./include/utils/layout_utils.php' => 'a9dd36868cebf30587573df43eca4a5b', './include/utils/layout_utils.php' => 'a9dd36868cebf30587573df43eca4a5b',
'./include/utils/logic_utils.php' => 'df0882131989fd10f9855cc3b66d4572', './include/utils/logic_utils.php' => 'df0882131989fd10f9855cc3b66d4572',
'./include/utils/mvc_utils.php' => '756f795eecb2cfad8802d5c7ec9bf32f', './include/utils/mvc_utils.php' => '756f795eecb2cfad8802d5c7ec9bf32f',
@ -2428,7 +2428,7 @@ $md5_string = array (
'./include/utils/recaptcha_utils.php' => '73f5eddf707788c1dff4b7d07dc82656', './include/utils/recaptcha_utils.php' => '73f5eddf707788c1dff4b7d07dc82656',
'./include/utils/security_utils.php' => 'e953d0b673df3df313ecf1ac975e8f57', './include/utils/security_utils.php' => 'e953d0b673df3df313ecf1ac975e8f57',
'./include/utils/sugar_file_utils.php' => 'b455044cfb5f8371884a1bc713dcfd7d', './include/utils/sugar_file_utils.php' => 'b455044cfb5f8371884a1bc713dcfd7d',
'./include/utils.php' => '382e5b511ca6de2157fa5cd56f02cc38', './include/utils.php' => '4e01260c33400fb08f48c31164922ebf',
'./include/vCard.php' => '5bbc76ef3b778e5587cd1883e636ea41', './include/vCard.php' => '5bbc76ef3b778e5587cd1883e636ea41',
'./include/ytree/ExtNode.php' => 'e13e1d0a4be0b76118a256a7562661f7', './include/ytree/ExtNode.php' => 'e13e1d0a4be0b76118a256a7562661f7',
'./include/ytree/JQueryTree.php' => '765d0ce7a2ef6c1cd2b5fa1aff84e872', './include/ytree/JQueryTree.php' => '765d0ce7a2ef6c1cd2b5fa1aff84e872',
@ -2876,7 +2876,7 @@ $md5_string = array (
'./lib/Utility/StringUtils.php' => '7408307bc51643889f51611fd63d6ce8', './lib/Utility/StringUtils.php' => '7408307bc51643889f51611fd63d6ce8',
'./lib/Utility/StringValidator.php' => 'a6043de790c3b9b5b78fe485f613134f', './lib/Utility/StringValidator.php' => 'a6043de790c3b9b5b78fe485f613134f',
'./lib/Utility/SuiteLogger.php' => '84bfe58093d322ade04c296d1365cdc1', './lib/Utility/SuiteLogger.php' => '84bfe58093d322ade04c296d1365cdc1',
'./lib/Utility/SuiteValidator.php' => '75362c30b6ed2387437565b1340a03c3', './lib/Utility/SuiteValidator.php' => '45ad426a08e6a0fe94ee2da82d7b8573',
'./log_file_restricted.html' => '155a93e5d6349e5d7f0280ece884c3a9', './log_file_restricted.html' => '155a93e5d6349e5d7f0280ece884c3a9',
'./maintenance.php' => '779f8dac6809dfa06293a732a5865409', './maintenance.php' => '779f8dac6809dfa06293a732a5865409',
'./metadata/accounts_bugsMetaData.php' => '63e4a98d2832a333b821fe62541b4de4', './metadata/accounts_bugsMetaData.php' => '63e4a98d2832a333b821fe62541b4de4',
@ -3027,7 +3027,7 @@ $md5_string = array (
'./modules/AM_ProjectTemplates/Dashlets/AM_ProjectTemplatesDashlet/AM_ProjectTemplatesDashlet.php' => '99d0e7fabe24cabb0c3e6ea8e4587bc2', './modules/AM_ProjectTemplates/Dashlets/AM_ProjectTemplatesDashlet/AM_ProjectTemplatesDashlet.php' => '99d0e7fabe24cabb0c3e6ea8e4587bc2',
'./modules/AM_ProjectTemplates/Menu.php' => '22283ea4e04291611a47f85a7eff708c', './modules/AM_ProjectTemplates/Menu.php' => '22283ea4e04291611a47f85a7eff708c',
'./modules/AM_ProjectTemplates/Save.php' => 'bcda2aecaafcb00c78fb7c756ac754df', './modules/AM_ProjectTemplates/Save.php' => 'bcda2aecaafcb00c78fb7c756ac754df',
'./modules/AM_ProjectTemplates/controller.php' => 'c90ecb77379ce9dcfc2292644afb638d', './modules/AM_ProjectTemplates/controller.php' => '21a1a9e2912aaf2a1bbd44e462551b47',
'./modules/AM_ProjectTemplates/create_project.js' => '2f40efcbe5989c91e74e773085bfc95f', './modules/AM_ProjectTemplates/create_project.js' => '2f40efcbe5989c91e74e773085bfc95f',
'./modules/AM_ProjectTemplates/css/style.css' => '7d95119a176531a4aa36a189c4cd2614', './modules/AM_ProjectTemplates/css/style.css' => '7d95119a176531a4aa36a189c4cd2614',
'./modules/AM_ProjectTemplates/gantt.php' => '5b1067ef2055df2169c345a5a009eece', './modules/AM_ProjectTemplates/gantt.php' => '5b1067ef2055df2169c345a5a009eece',
@ -3485,7 +3485,7 @@ $md5_string = array (
'./modules/AOS_PDF_Templates/samples/smpl_Quote_Group_Sample.php' => '56295ceac9c33d891122c13ef94c119c', './modules/AOS_PDF_Templates/samples/smpl_Quote_Group_Sample.php' => '56295ceac9c33d891122c13ef94c119c',
'./modules/AOS_PDF_Templates/samples/smpl_Quote_Sample.php' => '2c3097b5ddc49a58c3753beb93c14f2b', './modules/AOS_PDF_Templates/samples/smpl_Quote_Sample.php' => '2c3097b5ddc49a58c3753beb93c14f2b',
'./modules/AOS_PDF_Templates/sendEmail.php' => 'ad8d8ce6f78f93dec805cf73bd5f7572', './modules/AOS_PDF_Templates/sendEmail.php' => 'ad8d8ce6f78f93dec805cf73bd5f7572',
'./modules/AOS_PDF_Templates/templateParser.php' => 'a4240e4979829b5a58ade3c2af05fcdf', './modules/AOS_PDF_Templates/templateParser.php' => 'd58140322e5dd29798144cece05119d9',
'./modules/AOS_PDF_Templates/vardefs.php' => 'c2222325b41dca6b38ceec42dc1d622a', './modules/AOS_PDF_Templates/vardefs.php' => 'c2222325b41dca6b38ceec42dc1d622a',
'./modules/AOS_PDF_Templates/views/view.detail.php' => '226618d1d2cc62700ac0c7e53d166455', './modules/AOS_PDF_Templates/views/view.detail.php' => '226618d1d2cc62700ac0c7e53d166455',
'./modules/AOS_PDF_Templates/views/view.edit.php' => 'cf04ae20b0b07e64ec8569d0da459379', './modules/AOS_PDF_Templates/views/view.edit.php' => 'cf04ae20b0b07e64ec8569d0da459379',
@ -3588,9 +3588,9 @@ $md5_string = array (
'./modules/AOW_Actions/actions/actionBase.php' => '6714b312224fd75d7be513a637f8d355', './modules/AOW_Actions/actions/actionBase.php' => '6714b312224fd75d7be513a637f8d355',
'./modules/AOW_Actions/actions/actionComputeField.css' => '4f63069fbf5aee464d8b0f24e7049276', './modules/AOW_Actions/actions/actionComputeField.css' => '4f63069fbf5aee464d8b0f24e7049276',
'./modules/AOW_Actions/actions/actionComputeField.js' => '2f39d2288a3dbe7dc85b3b185ce1fdc5', './modules/AOW_Actions/actions/actionComputeField.js' => '2f39d2288a3dbe7dc85b3b185ce1fdc5',
'./modules/AOW_Actions/actions/actionComputeField.php' => '68fb03836513c4b464c32e93d3f59bf7', './modules/AOW_Actions/actions/actionComputeField.php' => 'efc807cf7f6b11e4c7286a6123d64e23',
'./modules/AOW_Actions/actions/actionCreateRecord.js' => 'd74993b3fd078cbd54a445c6b3470eda', './modules/AOW_Actions/actions/actionCreateRecord.js' => 'd74993b3fd078cbd54a445c6b3470eda',
'./modules/AOW_Actions/actions/actionCreateRecord.php' => '00707767820b2dabcc7833557a8dfdbd', './modules/AOW_Actions/actions/actionCreateRecord.php' => '2935207f114b130af2f0c205636993c0',
'./modules/AOW_Actions/actions/actionModifyRecord.php' => 'bc62f7e9bcd0a7d014e85b50a9cb0c01', './modules/AOW_Actions/actions/actionModifyRecord.php' => 'bc62f7e9bcd0a7d014e85b50a9cb0c01',
'./modules/AOW_Actions/actions/actionSendEmail.js' => 'e919423e47a93740dc522e812815c156', './modules/AOW_Actions/actions/actionSendEmail.js' => 'e919423e47a93740dc522e812815c156',
'./modules/AOW_Actions/actions/actionSendEmail.php' => 'fd5b82969e9de58390fb13d569a35b84', './modules/AOW_Actions/actions/actionSendEmail.php' => 'fd5b82969e9de58390fb13d569a35b84',
@ -3871,7 +3871,7 @@ $md5_string = array (
'./modules/Bugs/views/view.edit.php' => '72fb9b9b89068476faff4a114360498b', './modules/Bugs/views/view.edit.php' => '72fb9b9b89068476faff4a114360498b',
'./modules/Calendar/Cal.js' => 'bc6138c43cd476b7b51b084745f54cf5', './modules/Calendar/Cal.js' => 'bc6138c43cd476b7b51b084745f54cf5',
'./modules/Calendar/Calendar.php' => '7e5720ffee5b1882eb1abc19f38f2cdb', './modules/Calendar/Calendar.php' => '7e5720ffee5b1882eb1abc19f38f2cdb',
'./modules/Calendar/CalendarActivity.php' => 'b9324a684bbcbd3384ee1424e7d11383', './modules/Calendar/CalendarActivity.php' => '05c07a94d7b58d2b4edd428804285d7c',
'./modules/Calendar/CalendarDisplay.php' => '2d1248541058ef8fb05bab5b8fcb0973', './modules/Calendar/CalendarDisplay.php' => '2d1248541058ef8fb05bab5b8fcb0973',
'./modules/Calendar/CalendarGrid.php' => 'bba76087327652142e8f20f40e56582f', './modules/Calendar/CalendarGrid.php' => 'bba76087327652142e8f20f40e56582f',
'./modules/Calendar/CalendarUtils.php' => '1b1540220608ea41fd6d21ce3f2e6d94', './modules/Calendar/CalendarUtils.php' => '1b1540220608ea41fd6d21ce3f2e6d94',
@ -4113,7 +4113,7 @@ $md5_string = array (
'./modules/Campaigns/WizardEmailSetupSave.php' => '33cad06ea50246a004c9060ed191c577', './modules/Campaigns/WizardEmailSetupSave.php' => '33cad06ea50246a004c9060ed191c577',
'./modules/Campaigns/WizardHome.html' => '347b5be091dfc343497a518fd5aae913', './modules/Campaigns/WizardHome.html' => '347b5be091dfc343497a518fd5aae913',
'./modules/Campaigns/WizardHome.php' => '8a0827d9aaa4a5508cf0d2d65e61bab8', './modules/Campaigns/WizardHome.php' => '8a0827d9aaa4a5508cf0d2d65e61bab8',
'./modules/Campaigns/WizardMarketing.html' => '063cb04668d59f49dd6eb626067baa97', './modules/Campaigns/WizardMarketing.html' => '961476129a3dcf566dccba599b24e342',
'./modules/Campaigns/WizardMarketing.php' => '4c15cba6e5951de24f54b9c2a3762106', './modules/Campaigns/WizardMarketing.php' => '4c15cba6e5951de24f54b9c2a3762106',
'./modules/Campaigns/WizardMarketingSave.php' => '4ee0c0a8629ec7c6e2c48dd02229c041', './modules/Campaigns/WizardMarketingSave.php' => '4ee0c0a8629ec7c6e2c48dd02229c041',
'./modules/Campaigns/WizardNewsletter.html' => '2b6fa060ccc79e53c21b75fb6788bffb', './modules/Campaigns/WizardNewsletter.html' => '2b6fa060ccc79e53c21b75fb6788bffb',
@ -4367,7 +4367,7 @@ $md5_string = array (
'./modules/Currencies/EditView.js' => 'b7256d35ff8f5a6d6704d58848e4cda9', './modules/Currencies/EditView.js' => 'b7256d35ff8f5a6d6704d58848e4cda9',
'./modules/Currencies/EditView.tpl' => '052a918216921ffde803259b43d1b366', './modules/Currencies/EditView.tpl' => '052a918216921ffde803259b43d1b366',
'./modules/Currencies/Forms.php' => '19f6de6cfb192b8ce230ff9536c8fca5', './modules/Currencies/Forms.php' => '19f6de6cfb192b8ce230ff9536c8fca5',
'./modules/Currencies/ListCurrency.php' => '8acebf925b404d190020428a2056bfd1', './modules/Currencies/ListCurrency.php' => '1ae248af686645c5c0df8c052a2c801c',
'./modules/Currencies/ListView.html' => '6c257863d5e65f446f7a913684a61318', './modules/Currencies/ListView.html' => '6c257863d5e65f446f7a913684a61318',
'./modules/Currencies/Menu.php' => 'be48d6684a7ee6dd36643fe9bc738e48', './modules/Currencies/Menu.php' => 'be48d6684a7ee6dd36643fe9bc738e48',
'./modules/Currencies/field_arrays.php' => '993895b7b7000dfcb97740c673ac536c', './modules/Currencies/field_arrays.php' => '993895b7b7000dfcb97740c673ac536c',
@ -4535,15 +4535,15 @@ $md5_string = array (
'./modules/EmailMan/controller.php' => 'a12eb6ae69fab8d14e010630abc0b46b', './modules/EmailMan/controller.php' => 'a12eb6ae69fab8d14e010630abc0b46b',
'./modules/EmailMan/field_arrays.php' => '46faacb2ea303c961a1871ea613a455f', './modules/EmailMan/field_arrays.php' => '46faacb2ea303c961a1871ea613a455f',
'./modules/EmailMan/language/en_us.lang.php' => 'be07937f7e44faea4d8f11b168ad8d23', './modules/EmailMan/language/en_us.lang.php' => 'be07937f7e44faea4d8f11b168ad8d23',
'./modules/EmailMan/metadata/SearchFields.php' => '16ab0bf5917fd13e2bb8dd99c3444dd8', './modules/EmailMan/metadata/SearchFields.php' => '56aede9b0ebd49f3972935673bac30cc',
'./modules/EmailMan/metadata/listviewdefs.php' => '947b4f415e1a9940a0997390400c35f1', './modules/EmailMan/metadata/listviewdefs.php' => '23583155b46abb268a12674f93bcd832',
'./modules/EmailMan/metadata/searchdefs.php' => 'e7b2db84571e69a69c7faeebbb864331', './modules/EmailMan/metadata/searchdefs.php' => '3806918473b30c120991e614633e8300',
'./modules/EmailMan/metadata/subpanels/default.php' => '7b41db3ccd203cf7b32e133951c48df3', './modules/EmailMan/metadata/subpanels/default.php' => '7b41db3ccd203cf7b32e133951c48df3',
'./modules/EmailMan/subpanels/default.php' => '7b41db3ccd203cf7b32e133951c48df3', './modules/EmailMan/subpanels/default.php' => '7b41db3ccd203cf7b32e133951c48df3',
'./modules/EmailMan/testOutboundEmail.php' => '8caf6009a210a1e769bea85908b2aed5', './modules/EmailMan/testOutboundEmail.php' => '8caf6009a210a1e769bea85908b2aed5',
'./modules/EmailMan/tpls/campaignconfig.tpl' => 'ce45ccf79ccb1822b742834c2cd5dca9', './modules/EmailMan/tpls/campaignconfig.tpl' => 'ce45ccf79ccb1822b742834c2cd5dca9',
'./modules/EmailMan/tpls/config.tpl' => '252bff413d5c10839704fc4d56820d3e', './modules/EmailMan/tpls/config.tpl' => '252bff413d5c10839704fc4d56820d3e',
'./modules/EmailMan/vardefs.php' => 'f5e39c351297da9370d7ec2ae55a9cb7', './modules/EmailMan/vardefs.php' => '4b91abea944a008fe5c85ce8a7922886',
'./modules/EmailMan/views/view.campaignconfig.php' => 'a784916baea73367ac2cfc2e250bdc10', './modules/EmailMan/views/view.campaignconfig.php' => 'a784916baea73367ac2cfc2e250bdc10',
'./modules/EmailMan/views/view.config.php' => '1006c3942282dbbf9df182ad22c2bbf7', './modules/EmailMan/views/view.config.php' => '1006c3942282dbbf9df182ad22c2bbf7',
'./modules/EmailMan/views/view.list.php' => 'a2310bb8c36fa6b58f7ea42b46f4f028', './modules/EmailMan/views/view.list.php' => 'a2310bb8c36fa6b58f7ea42b46f4f028',
@ -4575,10 +4575,10 @@ $md5_string = array (
'./modules/EmailTemplates/EditViewMain.html' => 'a00c0cf1c50700412f98236bec193944', './modules/EmailTemplates/EditViewMain.html' => 'a00c0cf1c50700412f98236bec193944',
'./modules/EmailTemplates/EmailTemplate.css' => '35fde7e2b6e4dd8ac8727d019f242938', './modules/EmailTemplates/EmailTemplate.css' => '35fde7e2b6e4dd8ac8727d019f242938',
'./modules/EmailTemplates/EmailTemplate.js' => '535797d1ff5460c2bbe7d591ea396f57', './modules/EmailTemplates/EmailTemplate.js' => '535797d1ff5460c2bbe7d591ea396f57',
'./modules/EmailTemplates/EmailTemplate.php' => 'ef48ea6f5d8e0612f1a30f69a4f5e075', './modules/EmailTemplates/EmailTemplate.php' => 'e67f704f413db2ce55948f052a0e1b44',
'./modules/EmailTemplates/EmailTemplateData.php' => 'b97302a107ca48a2d100829200c2b385', './modules/EmailTemplates/EmailTemplateData.php' => 'b97302a107ca48a2d100829200c2b385',
'./modules/EmailTemplates/EmailTemplateFormBase.php' => '349d7cbd96a34de49989f80918d41a1c', './modules/EmailTemplates/EmailTemplateFormBase.php' => '349d7cbd96a34de49989f80918d41a1c',
'./modules/EmailTemplates/EmailTemplateParser.php' => '072e6cee4ab01ae2cf3d234b332d23cc', './modules/EmailTemplates/EmailTemplateParser.php' => 'd1383ec1a9f1c0fcb992c56bb7b14742',
'./modules/EmailTemplates/Menu.php' => '6a5ae0bbf46ff87bc16079b7689c38c5', './modules/EmailTemplates/Menu.php' => '6a5ae0bbf46ff87bc16079b7689c38c5',
'./modules/EmailTemplates/PopupDocumentsCampaignTemplate.html' => '364d78151773593a6be29438a0eb2021', './modules/EmailTemplates/PopupDocumentsCampaignTemplate.html' => '364d78151773593a6be29438a0eb2021',
'./modules/EmailTemplates/PopupDocumentsCampaignTemplate.php' => '24bac7246e3b684ad8c91412ca85f490', './modules/EmailTemplates/PopupDocumentsCampaignTemplate.php' => '24bac7246e3b684ad8c91412ca85f490',
@ -4677,7 +4677,7 @@ $md5_string = array (
'./modules/Emails/javascript/init.js' => '92ce172cf845e6f872de69160bfcfc9f', './modules/Emails/javascript/init.js' => '92ce172cf845e6f872de69160bfcfc9f',
'./modules/Emails/javascript/vars.js' => 'c85754028c6207fb4fb31d74fe5e81af', './modules/Emails/javascript/vars.js' => 'c85754028c6207fb4fb31d74fe5e81af',
'./modules/Emails/javascript/viewPrintable.js' => 'fc1988ab7e2587bdf9eafda6771a71cb', './modules/Emails/javascript/viewPrintable.js' => 'fc1988ab7e2587bdf9eafda6771a71cb',
'./modules/Emails/language/en_us.lang.php' => '92303f9eda207766a236e397aecf7cef', './modules/Emails/language/en_us.lang.php' => 'a00c5bca7bef5d7a641e6a104da322fb',
'./modules/Emails/metadata/SearchFields.php' => 'b47b2a03cb7952ee3bd2573beef9cd65', './modules/Emails/metadata/SearchFields.php' => 'b47b2a03cb7952ee3bd2573beef9cd65',
'./modules/Emails/metadata/additionalDetails.php' => '78f4d63b70d1a901a49a36ee79ffcd83', './modules/Emails/metadata/additionalDetails.php' => '78f4d63b70d1a901a49a36ee79ffcd83',
'./modules/Emails/metadata/composeviewdefs.php' => '4cc688ab31ce40c70a476304e890f5df', './modules/Emails/metadata/composeviewdefs.php' => '4cc688ab31ce40c70a476304e890f5df',
@ -5215,7 +5215,7 @@ $md5_string = array (
'./modules/ModuleBuilder/javascript/JSTransaction.js' => '279f694326dd942559adff933b408784', './modules/ModuleBuilder/javascript/JSTransaction.js' => '279f694326dd942559adff933b408784',
'./modules/ModuleBuilder/javascript/ModuleBuilder.js' => 'c3e7167295194f96d725c301d64361f0', './modules/ModuleBuilder/javascript/ModuleBuilder.js' => 'c3e7167295194f96d725c301d64361f0',
'./modules/ModuleBuilder/javascript/SimpleList.js' => '5b24e05531c646a8eab12eef33bafd33', './modules/ModuleBuilder/javascript/SimpleList.js' => '5b24e05531c646a8eab12eef33bafd33',
'./modules/ModuleBuilder/javascript/studio2.js' => 'a166be6664505f842e098ee91773294a', './modules/ModuleBuilder/javascript/studio2.js' => '43b13571ef3ba49d3bfa4a5e6e38a5b0',
'./modules/ModuleBuilder/javascript/studio2FieldDD.js' => 'ab41e4287f0fa1c1dcfbe424b4d53f12', './modules/ModuleBuilder/javascript/studio2FieldDD.js' => 'ab41e4287f0fa1c1dcfbe424b4d53f12',
'./modules/ModuleBuilder/javascript/studio2ListDD.js' => '9a720dba2684d8991a583c1c6312e102', './modules/ModuleBuilder/javascript/studio2ListDD.js' => '9a720dba2684d8991a583c1c6312e102',
'./modules/ModuleBuilder/javascript/studio2PanelDD.js' => '93a5285c7147e8deea8afc555e2e79ca', './modules/ModuleBuilder/javascript/studio2PanelDD.js' => '93a5285c7147e8deea8afc555e2e79ca',
@ -6091,7 +6091,7 @@ $md5_string = array (
'./modules/Users/SetTimezone.tpl' => 'f0fb5ed64fae81a5657ebc8f167967c9', './modules/Users/SetTimezone.tpl' => 'f0fb5ed64fae81a5657ebc8f167967c9',
'./modules/Users/UpdateTourStatus.php' => 'cc111e28e6df1d96b98678661dd42490', './modules/Users/UpdateTourStatus.php' => 'cc111e28e6df1d96b98678661dd42490',
'./modules/Users/User.js' => '351f8d8e74bd1bd0a56dcc2bae31b147', './modules/Users/User.js' => '351f8d8e74bd1bd0a56dcc2bae31b147',
'./modules/Users/User.php' => '7d98deef5b524d1485533c34d4db3aa7', './modules/Users/User.php' => '98cda4e2cfb0e2da86bad7fb2ac4f060',
'./modules/Users/UserEditView.js' => '421e1c38f1ee78933134b987b7c3c251', './modules/Users/UserEditView.js' => '421e1c38f1ee78933134b987b7c3c251',
'./modules/Users/UserEmailOptions.tpl' => '96b848efbf7f6d4fee7b6bf13a1a1aee', './modules/Users/UserEmailOptions.tpl' => '96b848efbf7f6d4fee7b6bf13a1a1aee',
'./modules/Users/UserEmailSettings.tpl' => '5d9ff3379f63dcf7c5efbbcc3e88d8ed', './modules/Users/UserEmailSettings.tpl' => '5d9ff3379f63dcf7c5efbbcc3e88d8ed',
@ -6150,7 +6150,7 @@ $md5_string = array (
'./modules/Users/password_utils.php' => 'c445ba371decfae7afb76ad09c060e8a', './modules/Users/password_utils.php' => 'c445ba371decfae7afb76ad09c060e8a',
'./modules/Users/reassignUserRecords.php' => '30e62154022301ff65b8dc18678a4c06', './modules/Users/reassignUserRecords.php' => '30e62154022301ff65b8dc18678a4c06',
'./modules/Users/tpls/DetailView.tpl' => '2b5edc433a18eab9e1dc24f55c015ced', './modules/Users/tpls/DetailView.tpl' => '2b5edc433a18eab9e1dc24f55c015ced',
'./modules/Users/tpls/EditViewFooter.tpl' => '93dc94ea8a18f27d7cfa5d52ec5ba431', './modules/Users/tpls/EditViewFooter.tpl' => '830b7580c48f286122dcd2751077396d',
'./modules/Users/tpls/EditViewGroup.tpl' => '97bbb48546d0b13a60dac111abb8358a', './modules/Users/tpls/EditViewGroup.tpl' => '97bbb48546d0b13a60dac111abb8358a',
'./modules/Users/tpls/EditViewHeader.tpl' => '099f5e4896d623b64d44f243c33941b2', './modules/Users/tpls/EditViewHeader.tpl' => '099f5e4896d623b64d44f243c33941b2',
'./modules/Users/tpls/QuickEditFooter.tpl' => 'a7a723ca20a7e8deaaca503c1e759ced', './modules/Users/tpls/QuickEditFooter.tpl' => 'a7a723ca20a7e8deaaca503c1e759ced',
@ -6371,7 +6371,7 @@ $md5_string = array (
'./soap.php' => 'e28988c2e0b8e2c484587b537a710525', './soap.php' => 'e28988c2e0b8e2c484587b537a710525',
'./sugar_version.json' => 'bdfbcefae2f9af559bef6a36367df7bb', './sugar_version.json' => 'bdfbcefae2f9af559bef6a36367df7bb',
'./sugar_version.php' => 'db7b6c8d51f87879fce1e6172eedfbed', './sugar_version.php' => 'db7b6c8d51f87879fce1e6172eedfbed',
'./suitecrm_version.php' => '84bae8768f8baee762217c2682addd3d', './suitecrm_version.php' => 'a429684edc393ef148fd5fa748f0f33d',
'./themes/SuiteP/css/Dawn/color-palette.scss' => 'e64677d79e1d68c069bdc2dc661c4f99', './themes/SuiteP/css/Dawn/color-palette.scss' => 'e64677d79e1d68c069bdc2dc661c4f99',
'./themes/SuiteP/css/Dawn/icons.scss' => 'd59f8c5855e7a8df09542a663835a196', './themes/SuiteP/css/Dawn/icons.scss' => 'd59f8c5855e7a8df09542a663835a196',
'./themes/SuiteP/css/Dawn/select.ico' => '22393ad23f16c3f1462455bae8f20279', './themes/SuiteP/css/Dawn/select.ico' => '22393ad23f16c3f1462455bae8f20279',
@ -6495,9 +6495,9 @@ $md5_string = array (
'./themes/SuiteP/css/suitep-base/cases.scss' => '24388474c9ceb4734d9b078377263f82', './themes/SuiteP/css/suitep-base/cases.scss' => '24388474c9ceb4734d9b078377263f82',
'./themes/SuiteP/css/suitep-base/dashboard.scss' => 'a7f15c2915f3b14277c2dc2191b80377', './themes/SuiteP/css/suitep-base/dashboard.scss' => 'a7f15c2915f3b14277c2dc2191b80377',
'./themes/SuiteP/css/suitep-base/detailview.scss' => 'a7ece4c3b5ab6c3cc9b2637ac46cf9b3', './themes/SuiteP/css/suitep-base/detailview.scss' => 'a7ece4c3b5ab6c3cc9b2637ac46cf9b3',
'./themes/SuiteP/css/suitep-base/editview.scss' => '71ccf720dcef0f64f1ec84237d0be812', './themes/SuiteP/css/suitep-base/editview.scss' => '15bb682ed4554d73ddfb259d4c3e030f',
'./themes/SuiteP/css/suitep-base/email.scss' => '812aae974e2c6e066d8a81511d99b28a', './themes/SuiteP/css/suitep-base/email.scss' => '812aae974e2c6e066d8a81511d99b28a',
'./themes/SuiteP/css/suitep-base/forms.scss' => 'e1626b89c1cf4ac8fc16c5f5532c8ac0', './themes/SuiteP/css/suitep-base/forms.scss' => 'bc6901a8dee6b6f0dbc144fbc27254cd',
'./themes/SuiteP/css/suitep-base/jstree.scss' => '946510970bb0774a31a01c2fb57a9552', './themes/SuiteP/css/suitep-base/jstree.scss' => '946510970bb0774a31a01c2fb57a9552',
'./themes/SuiteP/css/suitep-base/listview.scss' => '46898f8372bdd796e5ddeed167bd0c30', './themes/SuiteP/css/suitep-base/listview.scss' => '46898f8372bdd796e5ddeed167bd0c30',
'./themes/SuiteP/css/suitep-base/login.scss' => '25d85a91770e80b7b0357cece6eb5c4b', './themes/SuiteP/css/suitep-base/login.scss' => '25d85a91770e80b7b0357cece6eb5c4b',
@ -6510,7 +6510,7 @@ $md5_string = array (
'./themes/SuiteP/css/suitep-base/projects.scss' => '31d48a58629a823d0db72dd3ae976770', './themes/SuiteP/css/suitep-base/projects.scss' => '31d48a58629a823d0db72dd3ae976770',
'./themes/SuiteP/css/suitep-base/search.scss' => '46d20b582efae0b654f662773cbc833d', './themes/SuiteP/css/suitep-base/search.scss' => '46d20b582efae0b654f662773cbc833d',
'./themes/SuiteP/css/suitep-base/sidebar.scss' => 'a5c5b91891d118985a7f8565bbf9f557', './themes/SuiteP/css/suitep-base/sidebar.scss' => 'a5c5b91891d118985a7f8565bbf9f557',
'./themes/SuiteP/css/suitep-base/studio.scss' => '6e6b30fbb83a9df9252e82d43bc93379', './themes/SuiteP/css/suitep-base/studio.scss' => '75fee18eeddb45d7f93a2273d8055afc',
'./themes/SuiteP/css/suitep-base/suitepicon-glyphs.scss' => 'dce95397aa56304167c12d7331d78682', './themes/SuiteP/css/suitep-base/suitepicon-glyphs.scss' => 'dce95397aa56304167c12d7331d78682',
'./themes/SuiteP/css/suitep-base/suitepicon.eot' => '15c1ff15c6e7c638bf4d506deed14719', './themes/SuiteP/css/suitep-base/suitepicon.eot' => '15c1ff15c6e7c638bf4d506deed14719',
'./themes/SuiteP/css/suitep-base/suitepicon.json' => '0095ce0c163dab77687f007684489fa0', './themes/SuiteP/css/suitep-base/suitepicon.json' => '0095ce0c163dab77687f007684489fa0',

View file

@ -126,7 +126,11 @@ class HtmlSanitizer
if ($isEncoded) { if ($isEncoded) {
$dirtyHtml = from_html($dirtyHtml); $dirtyHtml = from_html($dirtyHtml);
} }
$dirtyHtml = filter_var($dirtyHtml, FILTER_SANITIZE_STRIPPED, FILTER_FLAG_NO_ENCODE_QUOTES);
if (preg_match('/([a-z]+)(?![^>]*\/>)[^>]*/', $dirtyHtml)) {
$dirtyHtml = strip_tags($dirtyHtml);
}
return $isEncoded ? to_html($dirtyHtml) : $dirtyHtml; return $isEncoded ? to_html($dirtyHtml) : $dirtyHtml;
} }

View file

@ -951,7 +951,7 @@ class SearchForm
$this->searchFields[$real_field]['value'] = $this->searchFields[$field]['value']; $this->searchFields[$real_field]['value'] = $this->searchFields[$field]['value'];
$this->searchFields[$real_field]['operator'] = $this->searchFields[$field]['operator']; $this->searchFields[$real_field]['operator'] = $this->searchFields[$field]['operator'];
$params['value'] = $this->searchFields[$field]['value']; $params['value'] = $db->quote($this->searchFields[$field]['value']);
$params['operator'] = $this->searchFields[$field]['operator']; $params['operator'] = $this->searchFields[$field]['operator'];
unset($this->searchFields[$field]['value']); unset($this->searchFields[$field]['value']);
$field = $real_field; $field = $real_field;
@ -1049,7 +1049,7 @@ class SearchForm
} }
} }
} else { } else {
$field_value = $parms['value']; $field_value = $db->quote($parms['value']);
} }
//set db_fields array. //set db_fields array.

View file

@ -61,7 +61,7 @@ class SuiteEditorConnector
{ {
public static function getSuiteSettings($html, $width) public static function getSuiteSettings($html, $width)
{ {
return array( $settings = [
'contents' => $html, 'contents' => $html,
'textareaId' => 'body_text', 'textareaId' => 'body_text',
'elementId' => 'email_template_editor', 'elementId' => 'email_template_editor',
@ -69,7 +69,27 @@ class SuiteEditorConnector
'clickHandler' => "function(e){ 'clickHandler' => "function(e){
onClickTemplateBody(); onClickTemplateBody();
}", }",
'tinyMCESetup' => "{ ];
if($_REQUEST["module"] == "Campaigns"){
//use loadtemplate() to populate template body on TinyMCE initialisation rather than page load for campaigns
$settings['tinyMCESetup'] = "{
setup: function(editor) {
editor.on('focus', function(e){
onClickTemplateBody();
});
editor.on('init', function(e){
loadtemplate();
});
},
height : '480',
plugins: ['code', 'table', 'link', 'image'],
toolbar: ['fontselect | fontsizeselect | bold italic underline | forecolor backcolor | styleselect | outdent indent | link image'],
convert_urls: false,
}";
}else{
//default TinyMCESetup settings
$settings['tinyMCESetup'] = "{
setup: function(editor) { setup: function(editor) {
editor.on('focus', function(e){ editor.on('focus', function(e){
onClickTemplateBody(); onClickTemplateBody();
@ -79,8 +99,12 @@ class SuiteEditorConnector
plugins: ['code', 'table', 'link', 'image'], plugins: ['code', 'table', 'link', 'image'],
toolbar: ['fontselect | fontsizeselect | bold italic underline | forecolor backcolor | styleselect | outdent indent | link image'], toolbar: ['fontselect | fontsizeselect | bold italic underline | forecolor backcolor | styleselect | outdent indent | link image'],
convert_urls: false, convert_urls: false,
}" }";
); }
return $settings;
} }
/** /**

View file

@ -86,7 +86,6 @@ class SuiteEditorMozaik implements SuiteEditorInterface
$this->settings->elementId, $this->settings->elementId,
$this->settings->width, $this->settings->width,
$this->settings->group, $this->settings->group,
$this->settings->tinyMCESetup
)); ));
return $smarty->fetch(get_custom_file_if_exists('include/SuiteEditor/tpls/SuiteEditorMozaik.tpl')); return $smarty->fetch(get_custom_file_if_exists('include/SuiteEditor/tpls/SuiteEditorMozaik.tpl'));
} }

View file

@ -61,16 +61,16 @@ ARGS:
require_once('include/formbase.php'); require_once('include/formbase.php');
global $beanFiles,$beanList; global $beanFiles,$beanList, $db;
$bean_name = $beanList[$_REQUEST['module']]; $bean_name = $beanList[$_REQUEST['module']];
require_once($beanFiles[$bean_name]); require_once($beanFiles[$bean_name]);
$focus = new $bean_name(); $focus = new $bean_name();
if (empty($_REQUEST['linked_id']) || empty($_REQUEST['linked_field']) || empty($_REQUEST['record'])) { if (empty($_REQUEST['linked_id']) || empty($_REQUEST['linked_field']) || empty($_REQUEST['record'])) {
die("need linked_field, linked_id and record fields"); die("need linked_field, linked_id and record fields");
} }
$linked_field = $_REQUEST['linked_field']; $linked_field = $db->quote($_REQUEST['linked_field']);
$record = $_REQUEST['record']; $record = $db->quote($_REQUEST['record']);
$linked_id = $_REQUEST['linked_id']; $linked_id = $db->quote($_REQUEST['linked_id']);
if ($linked_field === 'aclroles') { if ($linked_field === 'aclroles') {
if (!ACLController::checkAccess($bean_name, 'edit', true)) { if (!ACLController::checkAccess($bean_name, 'edit', true)) {
ACLController::displayNoAccess(); ACLController::displayNoAccess();

View file

@ -6454,3 +6454,20 @@ function isWebToLeadAllowedRedirectHost(string $url): bool {
return false; return false;
} }
/**
* Set the proper decimal separator according to the user/system configuration
*
* @param Decimal $decimalValue
* @param Boolean $userSetting. Indicates whether to choose user or system configuration
* @return Decimal
*/
function formatDecimalInConfigSettings($decimalValue, $userSetting = false) {
global $current_user, $sugar_config;
if ($userSetting) {
$user_dec_sep = (!empty($current_user->id) ? $current_user->getPreference('dec_sep') : null);
}
$dec_sep = empty($user_dec_sep) ? $sugar_config['default_decimal_seperator'] : $user_dec_sep;
return str_replace('.', $dec_sep, $decimalValue);
}

View file

@ -140,7 +140,7 @@ function write_override_label_to_file($the_name, $the_array, $the_file, $mode =
} }
foreach ($the_array as $labelName => $labelValue) { foreach ($the_array as $labelName => $labelValue) {
$the_string .= '$' . "{$the_name}['{$labelName}'] = '{$labelValue}';\n"; $the_string .= '$' . "{$the_name}['" . addslashes($labelName) . "'] = '" . addslashes($labelValue) ."';\n";
} }
return sugar_file_put_contents($the_file, $the_string, LOCK_EX) !== false; return sugar_file_put_contents($the_file, $the_string, LOCK_EX) !== false;

View file

@ -58,6 +58,21 @@ class SuiteValidator
return is_numeric($id) || (is_string($id) && preg_match($pattern, $id)); return is_numeric($id) || (is_string($id) && preg_match($pattern, $id));
} }
/**
* @param string|null $key
* @return bool
*/
public function isValidKey(?string $key): bool
{
if (empty($key)) {
return false;
}
$pattern = $this->getKeyValidationPattern();
return is_numeric($key) || preg_match($pattern, $key);
}
/** /**
* @param string $fieldname * @param string $fieldname
* @return bool * @return bool
@ -90,4 +105,20 @@ class SuiteValidator
return $pattern; return $pattern;
} }
/**
* @return string
*/
protected function getKeyValidationPattern(): string
{
global $sugar_config;
if (!empty($sugar_config['key_validation_pattern'])) {
$pattern = $sugar_config['key_validation_pattern'];
} else {
$pattern = '/^[A-Z0-9\-\_\.]*$/i';
}
return $pattern;
}
} }

View file

@ -39,12 +39,15 @@ class AM_ProjectTemplatesController extends SugarController
global $current_user, $db, $mod_strings; global $current_user, $db, $mod_strings;
$project_name = $_POST['p_name']; $project_name = $_POST['p_name'];
$template_id = $_POST['template_id']; $template_id = $db->quote($_POST['template_id']);
$project_start = $_POST['start_date']; $project_start = $_POST['start_date'];
$copy_all = isset($_POST['copy_all_tasks']) ? 1 : 0; $copy_all = isset($_POST['copy_all_tasks']) ? 1 : 0;
$copy_tasks = isset($_POST['tasks']) ? $_POST['tasks'] : array() ;
$copy_tasks = array();
if (isset($_POST['tasks']) && is_array($_POST['tasks'])) {
$copy_tasks = $_POST['tasks'];
}
//Get project start date //Get project start date
if ($project_start!='') { if ($project_start!='') {
@ -262,7 +265,7 @@ class AM_ProjectTemplatesController extends SugarController
include_once('modules/AM_ProjectTemplates/project_table.php'); include_once('modules/AM_ProjectTemplates/project_table.php');
$project_template = BeanFactory::newBean('AM_ProjectTemplates'); $project_template = BeanFactory::newBean('AM_ProjectTemplates');
$pid = $_POST["pid"]; $pid = $db->quote($_POST["pid"]);
$project_template->retrieve($pid); $project_template->retrieve($pid);
//Get project tasks //Get project tasks

View file

@ -116,6 +116,13 @@ class templateParser
ENT_COMPAT, 'UTF-8'); ENT_COMPAT, 'UTF-8');
$repl_arr[$key . "_" . $fieldName] = html_entity_decode((string) $focus->{$fieldName}, $repl_arr[$key . "_" . $fieldName] = html_entity_decode((string) $focus->{$fieldName},
ENT_COMPAT, 'UTF-8'); ENT_COMPAT, 'UTF-8');
} elseif ($field_def['type'] == 'decimal' || $field_def['type'] == 'float') {
if ($_REQUEST['entryPoint'] == 'formLetter') {
$value = formatDecimalInConfigSettings($focus->$fieldName, true);
} else {
$value = formatDecimalInConfigSettings($focus->$fieldName, false);
}
$repl_arr[$key . "_" . $fieldName] = $value;
} else { } else {
$repl_arr[$key . "_" . $fieldName] = $focus->{$fieldName}; $repl_arr[$key . "_" . $fieldName] = $focus->{$fieldName};
} }

View file

@ -453,7 +453,6 @@ class actionComputeField extends actionBase
</div> </div>
</fieldset>"; </fieldset>";
if (count($params) > 0) {
$parameters = $this->createJavascriptArrayFromParams($params, 'parameter'); $parameters = $this->createJavascriptArrayFromParams($params, 'parameter');
$parameterTypes = $this->createJavascriptArrayFromParams($params, 'parameterType'); $parameterTypes = $this->createJavascriptArrayFromParams($params, 'parameterType');
$formulas = $this->createJavascriptArrayFromParams($params, 'formula'); $formulas = $this->createJavascriptArrayFromParams($params, 'formula');
@ -462,6 +461,7 @@ class actionComputeField extends actionBase
$relationParameterFields = $this->createJavascriptArrayFromParams($params, 'relationParameterField'); $relationParameterFields = $this->createJavascriptArrayFromParams($params, 'relationParameterField');
$relationParameterTypes = $this->createJavascriptArrayFromParams($params, 'relationParameterType'); $relationParameterTypes = $this->createJavascriptArrayFromParams($params, 'relationParameterType');
$html .= " $html .= "
<script id ='aow_script$line' type='text/javascript'> <script id ='aow_script$line' type='text/javascript'>
computers[$line] = new FieldComputer($line, '$containerName', $parameters, $parameterTypes, $formulas, $formulaContents, $relationParameters, $relationParameterFields, $relationParameterTypes); computers[$line] = new FieldComputer($line, '$containerName', $parameters, $parameterTypes, $formulas, $formulaContents, $relationParameters, $relationParameterFields, $relationParameterTypes);
@ -475,7 +475,7 @@ class actionComputeField extends actionBase
$('#relationParameterSelect$line').change(); $('#relationParameterSelect$line').change();
function onFieldChange$line(dropdown, valueDropdown) { function onFieldChange$line(dropdown, valueDropdown) {
var value = $(dropdown).find('option:selected').attr('dataType'); var value = $(dropdown).find('option:selected').attr('dataType');
if (value == 'enum' || value == 'multienum' || value == 'dynamicenum') { if (value == 'enum' || value == 'multienum' || value == 'dynamicenum') {
$(valueDropdown).show(); $(valueDropdown).show();
} else { } else {
@ -493,12 +493,8 @@ class actionComputeField extends actionBase
$('#$containerName .computeFieldParametersContainer').find('.parameterSelect').change(); $('#$containerName .computeFieldParametersContainer').find('.parameterSelect').change();
$('#$containerName .computeFieldRelationParametersContainer').find('.relationParameterFieldSelect:visible').change(); $('#$containerName .computeFieldRelationParametersContainer').find('.relationParameterFieldSelect:visible').change();
</script>"; </script>
} </div>";
$html .= "
</div>
";
return $html; return $html;
} }

View file

@ -287,7 +287,8 @@ class actionCreateRecord extends actionBase
$date = $params['value'][$key][0]; $date = $params['value'][$key][0];
} else { } else {
$dateToUse = $params['value'][$key][0]; $dateToUse = $params['value'][$key][0];
$date = $bean->$dateToUse; $bean->retrieve($bean->id);
$date = $timedate->fromUser($bean->$dateToUse)->asDB();
} }
if ($params['value'][$key][1] !== 'now') { if ($params['value'][$key][1] !== 'now') {

View file

@ -5,7 +5,7 @@
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
* *
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd. * SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
* Copyright (C) 2011 - 2018 SalesAgility Ltd. * Copyright (C) 2011 - 2024 SalesAgility Ltd.
* *
* This program is free software; you can redistribute it and/or modify it under * 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 * the terms of the GNU Affero General Public License version 3 as published by the
@ -226,7 +226,8 @@ class CalendarActivity
} }
foreach ($activities as $key => $activity) { foreach ($activities as $key => $activity) {
if ($key === 'Tasks' && !$show_tasks) { if ($key === 'Tasks' && !$show_tasks ||
$key === 'Calls' && !$show_calls) {
continue; continue;
} }

View file

@ -547,6 +547,7 @@
<input type="checkbox" name="update_exists_template" class="form-checkbox input-sm hidden"> <input type="checkbox" name="update_exists_template" class="form-checkbox input-sm hidden">
</span> </span>
</div> </div>
{if !$hide_width_set}
<script> <script>
{literal} {literal}
$(function(){ $(function(){
@ -555,6 +556,16 @@
} }
}); });
{/literal} {/literal}
</script>
{/if}
<script>
{literal}
function loadtemplate() {
if (document.getElementById('template_id').value) {
onEmailTemplateChange(document.getElementById('template_id'), '{$MOD.LBL_COPY_OF}');
}
}
{/literal}
</script> </script>
</div> </div>
<div id="template_messages"></div> <div id="template_messages"></div>
@ -1133,7 +1144,7 @@
if(oe_stored_options[mailbox.value]) { if(oe_stored_options[mailbox.value]) {
var focusOe = oe_stored_options[mailbox.value]; var focusOe = oe_stored_options[mailbox.value];
// from name // from name
if(!fn.value) { if(!fn.value) {
var fromName = focusOe.smtp_from_name ? focusOe.smtp_from_name : ( var fromName = focusOe.smtp_from_name ? focusOe.smtp_from_name : (
focusOe.from_name ? focusOe.from_name : ( focusOe.from_name ? focusOe.from_name : (
@ -1420,7 +1431,7 @@ function determine_back(){
<!-- BEGIN: NoInbound2 --> <!-- BEGIN: NoInbound2 -->
<tr> <tr>
<td valign="top" scope="row"> <td valign="top" scope="row">
{$MOD.LBL_ATTACHMENTS}: {$MOD.LBL_ATTACHMENTS}:
</td> </td>
<td colspan="2" nowrap id="attachments_container"> <td colspan="2" nowrap id="attachments_container">
{$ATTACHMENTS} {$ATTACHMENTS}
@ -1443,7 +1454,7 @@ function determine_back(){
<input type="hidden" id="documentId" name="seldoc" tabindex="0" /> <input type="hidden" id="documentId" name="seldoc" tabindex="0" />
<input type="hidden" id="docRevId" name="seldoc" tabindex="0" /> <input type="hidden" id="docRevId" name="seldoc" tabindex="0" />
<input type="hidden" id="documentType" name="seldoc" tabindex="0" /> <input type="hidden" id="documentType" name="seldoc" tabindex="0" />
<input type="hidden" name="attach_to_template_id" id="attach_to_template_id" value="{$TEMPLATE_ID}"> <input type="hidden" name="attach_to_template_id" id="attach_to_template_id" value="{$TEMPLATE_ID}">
<input type="hidden" name="campaign_id" value="{$CAMPAIGN_ID}"> <input type="hidden" name="campaign_id" value="{$CAMPAIGN_ID}">

View file

@ -1,14 +1,11 @@
<?php <?php
if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
/** /**
* *
* SugarCRM Community Edition is a customer relationship management program developed by * SugarCRM Community Edition is a customer relationship management program developed by
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
* *
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd. * SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
* Copyright (C) 2011 - 2018 SalesAgility Ltd. * Copyright (C) 2011 - 2024 SalesAgility Ltd.
* *
* This program is free software; you can redistribute it and/or modify it under * 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 * the terms of the GNU Affero General Public License version 3 as published by the
@ -41,6 +38,9 @@ if (!defined('sugarEntry') || !sugarEntry) {
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM". * display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
*/ */
if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
#[\AllowDynamicProperties] #[\AllowDynamicProperties]
class ListCurrency class ListCurrency
@ -115,18 +115,22 @@ if (!defined('sugarEntry') || !sugarEntry) {
function get_rate(id){ function get_rate(id){
return ConversionRates[id]; return ConversionRates[id];
} }
function ConvertToDollar(amount, rate){ function ConvertToDollar(amount, rate){
return amount / rate; return amount / rate;
} }
function ConvertFromDollar(amount, rate){ function ConvertFromDollar(amount, rate){
return amount * rate; return amount * rate;
} }
function ConvertRate(id,fields){ function ConvertRate(id,fields){
for(var i = 0; i < fields.length; i++){ for(var i = 0; i < fields.length; i++){
fields[i].value = toDecimal(ConvertFromDollar(toDecimal(ConvertToDollar(toDecimal(fields[i].value), lastRate)), ConversionRates[id])); fields[i].value = toDecimal(ConvertFromDollar(toDecimal(ConvertToDollar(toDecimal(fields[i].value), lastRate)), ConversionRates[id]));
}
lastRate = ConversionRates[id];
} }
lastRate = ConversionRates[id];
}
function ConvertRateSingle(id,field){ function ConvertRateSingle(id,field){
var temp = field.innerHTML.substring(1, field.innerHTML.length); var temp = field.innerHTML.substring(1, field.innerHTML.length);
unformattedNumber = unformatNumber(temp, num_grp_sep, dec_sep); unformattedNumber = unformatNumber(temp, num_grp_sep, dec_sep);
@ -134,31 +138,31 @@ if (!defined('sugarEntry') || !sugarEntry) {
field.innerHTML = CurrencySymbols[id] + formatNumber(toDecimal(ConvertFromDollar(ConvertToDollar(unformattedNumber, lastRate), ConversionRates[id])), num_grp_sep, dec_sep, 2, 2); field.innerHTML = CurrencySymbols[id] + formatNumber(toDecimal(ConvertFromDollar(ConvertToDollar(unformattedNumber, lastRate), ConversionRates[id])), num_grp_sep, dec_sep, 2, 2);
lastRate = ConversionRates[id]; lastRate = ConversionRates[id];
} }
function CurrencyConvertAll(form){ function CurrencyConvertAll(form){
try { try {
var id = form.currency_id.options[form.currency_id.selectedIndex].value; var id = form.currency_id.options[form.currency_id.selectedIndex].value;
var fields = new Array(); var fields = new Array();
for(i in currencyFields){
var field = currencyFields[i];
if(typeof(form[field]) != 'undefined'){
form[field].value = unformatNumber(form[field].value, num_grp_sep, dec_sep);
fields.push(form[field]);
}
}
ConvertRate(id, fields);
for(i in fields){
fields[i].value = formatNumber(fields[i].value, num_grp_sep, dec_sep);
}
for(i in currencyFields){
var field = currencyFields[i];
if(typeof(form[field]) != 'undefined'){
form[field].value = unformatNumber(form[field].value, num_grp_sep, dec_sep);
fields.push(form[field]);
}
}
ConvertRate(id, fields);
for(i in fields){
fields[i].value = formatNumber(fields[i].value, num_grp_sep, dec_sep);
}
calculateAllLines();
} catch (err) { } catch (err) {
// Do nothing, if we can't find the currency_id field we will just not attempt to convert currencies // Do nothing, if we can't find the currency_id field we will just not attempt to convert currencies
// This typically only happens in lead conversion and quick creates, where the currency_id field may be named somethnig else or hidden deep inside a sub-form. // This typically only happens in lead conversion and quick creates, where the currency_id field may be named somethnig else or hidden deep inside a sub-form.
} }
} }
</script> </script>
EOQ; EOQ;

View file

@ -47,4 +47,52 @@ $searchFields['EmailMan'] =
'to_name'=> array('query_type'=>'default','db_field'=>array('contacts.first_name','contacts.last_name','leads.first_name','leads.last_name','prospects.first_name','prospects.last_name')), 'to_name'=> array('query_type'=>'default','db_field'=>array('contacts.first_name','contacts.last_name','leads.first_name','leads.last_name','prospects.first_name','prospects.last_name')),
'to_email'=> array('query_type'=>'default','db_field'=>array('contacts.email1','leads.email1','prospects.email1')), 'to_email'=> array('query_type'=>'default','db_field'=>array('contacts.email1','leads.email1','prospects.email1')),
'current_user_only'=> array('query_type'=>'default','db_field'=>array('assigned_user_id'),'my_items'=>true, 'vname' => 'LBL_CURRENT_USER_FILTER', 'type' => 'bool'), 'current_user_only'=> array('query_type'=>'default','db_field'=>array('assigned_user_id'),'my_items'=>true, 'vname' => 'LBL_CURRENT_USER_FILTER', 'type' => 'bool'),
'message_name' => array( 'query_type'=>'default','db_field'=>array('email_marketing.name')),
'send_attempts' => array( 'query_type'=>'default','db_field'=>array('emailman.send_attempts')),
'in_queue' => array( 'query_type'=>'default','db_field'=>array('emailman.in_queue')),
'range_send_date_time' => array(
'query_type' => 'default',
'enable_range_search' => true,
'is_date_field' => true,
),
'start_range_send_date_time' => array(
'query_type' => 'default',
'enable_range_search' => true,
'is_date_field' => true,
),
'end_range_send_date_time' => array(
'query_type' => 'default',
'enable_range_search' => true,
'is_date_field' => true,
),
'range_date_entered' => array(
'query_type' => 'default',
'enable_range_search' => true,
'is_date_field' => true,
),
'start_range_date_entered' => array(
'query_type' => 'default',
'enable_range_search' => true,
'is_date_field' => true,
),
'end_range_date_entered' => array(
'query_type' => 'default',
'enable_range_search' => true,
'is_date_field' => true,
),
'range_date_modified' => array(
'query_type' => 'default',
'enable_range_search' => true,
'is_date_field' => true,
),
'start_range_date_modified' => array(
'query_type' => 'default',
'enable_range_search' => true,
'is_date_field' => true,
),
'end_range_date_modified' => array(
'query_type' => 'default',
'enable_range_search' => true,
'is_date_field' => true,
),
); );

View file

@ -81,4 +81,20 @@ $listViewDefs['EmailMan'] = array(
'width' => '10', 'width' => '10',
'label' => 'LBL_LIST_IN_QUEUE', 'label' => 'LBL_LIST_IN_QUEUE',
'default' => true), 'default' => true),
'DATE_ENTERED' => array(
'width' => '10',
'label' => 'LBL_DATE_ENTERED',
'default' => false),
'DATE_MODIFIED' => array(
'width' => '10',
'label' => 'LBL_DATE_MODIFIED',
'default' => false),
'MODIFIED_USER_ID' => array(
'width' => '10',
'label' => 'LBL_MODIFIED_USER',
'default' => false),
'USER_ID' => array(
'width' => '10',
'label' => 'LBL_USER_ID',
'default' => false),
); );

View file

@ -51,14 +51,28 @@
), ),
'layout' => array( 'layout' => array(
'basic_search' => array( 'basic_search' => array(
array('name'=>'campaign_name', 'label'=>'LBL_LIST_CAMPAIGN',), array('name'=>'campaign_name', 'label'=>'LBL_LIST_CAMPAIGN'),
array('name'=>'current_user_only', 'label'=>'LBL_CURRENT_USER_FILTER', 'type'=>'bool'),
),
'advanced_search' => array(
array('name'=>'campaign_name', 'label'=>'LBL_LIST_CAMPAIGN',),
array('name'=>'to_name', 'label'=>'LBL_LIST_RECIPIENT_NAME'), array('name'=>'to_name', 'label'=>'LBL_LIST_RECIPIENT_NAME'),
array('name'=>'to_email', 'label'=>'LBL_LIST_RECIPIENT_EMAIL'), array('name'=>'to_email', 'label'=>'LBL_LIST_RECIPIENT_EMAIL'),
array('name'=>'message_name', 'label'=>'LBL_LIST_MESSAGE_NAME'),
array('name'=>'send_date_time', 'label'=>'LBL_SEND_DATE_TIME'),
array('name'=>'send_attempts', 'label'=>'LBL_SEND_ATTEMPTS'),
array('name'=>'in_queue', 'label'=>'LBL_IN_QUEUE'),
),
'advanced_search' => array(
array('name'=>'campaign_name', 'label'=>'LBL_LIST_CAMPAIGN'),
array('name'=>'to_name', 'label'=>'LBL_LIST_RECIPIENT_NAME'),
array('name'=>'to_email', 'label'=>'LBL_LIST_RECIPIENT_EMAIL'),
array('name'=>'message_name', 'label'=>'LBL_LIST_MESSAGE_NAME'),
array('name'=>'send_date_time', 'label'=>'LBL_SEND_DATE_TIME'),
array('name'=>'send_attempts', 'label'=>'LBL_SEND_ATTEMPTS'),
array('name'=>'in_queue', 'label'=>'LBL_IN_QUEUE'),
array('name'=>'current_user_only', 'label'=>'LBL_CURRENT_USER_FILTER', 'type'=>'bool'), array('name'=>'current_user_only', 'label'=>'LBL_CURRENT_USER_FILTER', 'type'=>'bool'),
array('name' => 'date_entered', 'label' => 'LBL_DATE_ENTERED' ),
array('name' => 'date_modified', 'label' => 'LBL_DATE_MODIFIED' ),
array('name' => 'modified_user_id', 'label' => 'LBL_MODIFIED_USER'),
array('name' => 'user_id', 'label' => 'LBL_USER_ID' ),
), ),
), ),
); );

View file

@ -48,12 +48,16 @@ array( 'table' => 'emailman', 'comment' => 'Email campaign queue', 'fields' => a
'vname' => 'LBL_DATE_ENTERED', 'vname' => 'LBL_DATE_ENTERED',
'type' => 'datetime', 'type' => 'datetime',
'comment' => 'Date record created', 'comment' => 'Date record created',
'enable_range_search' => true,
'options' => 'date_range_search_dom',
), ),
'date_modified' => array( 'date_modified' => array(
'name' => 'date_modified', 'name' => 'date_modified',
'vname' => 'LBL_DATE_MODIFIED', 'vname' => 'LBL_DATE_MODIFIED',
'type' => 'datetime', 'type' => 'datetime',
'comment' => 'Date record last modified', 'comment' => 'Date record last modified',
'enable_range_search' => true,
'options' => 'date_range_search_dom',
), ),
'user_id' => array( 'user_id' => array(
'name' => 'user_id', 'name' => 'user_id',

View file

@ -398,6 +398,12 @@ class EmailTemplate extends SugarBean
{ {
global $beanList, $app_list_strings; global $beanList, $app_list_strings;
$decimalTypes = [
'currency',
'decimal',
'float'
];
// generate User instance that owns this "Contact" for contact_user_* macros // generate User instance that owns this "Contact" for contact_user_* macros
$user = BeanFactory::newBean('Users'); $user = BeanFactory::newBean('Users');
if (isset($focus->assigned_user_id) && !empty($focus->assigned_user_id)) { if (isset($focus->assigned_user_id) && !empty($focus->assigned_user_id)) {
@ -470,6 +476,10 @@ class EmailTemplate extends SugarBean
} }
} }
if (in_array($focus->field_defs[$field_name]['type'], $decimalTypes)){
$value = formatDecimalInConfigSettings($value, false);
}
//generate name value pair array of macros and corresponding values for the targed. //generate name value pair array of macros and corresponding values for the targed.
$macro_nv[$matches[0][$i][0]] = $value; $macro_nv[$matches[0][$i][0]] = $value;

View file

@ -197,6 +197,9 @@ class EmailTemplateParser
if (isset($app_list_strings[$enum][$this->module->$attribute])) { if (isset($app_list_strings[$enum][$this->module->$attribute])) {
$this->module->$attribute = $app_list_strings[$enum][$this->module->$attribute]; $this->module->$attribute = $app_list_strings[$enum][$this->module->$attribute];
} }
} else if (($this->module->field_name_map[$attribute]['type']) && (($this->module->field_name_map[$attribute]['type']) === 'decimal' || ($this->module->field_name_map[$attribute]['type']) === 'float')) {
$value = formatDecimalInConfigSettings($this->module->$attribute, false);
return $value;
} }
return $this->module->$attribute; return $this->module->$attribute;
} }

View file

@ -5,7 +5,7 @@
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
* *
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd. * SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
* Copyright (C) 2011 - 2019 SalesAgility Ltd. * Copyright (C) 2011 - 2024 SalesAgility Ltd.
* *
* This program is free software; you can redistribute it and/or modify it under * 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 * the terms of the GNU Affero General Public License version 3 as published by the
@ -169,7 +169,8 @@ $mod_strings = array(
'LBL_LIST_FORM_SENT_TITLE' => 'Sent Emails', 'LBL_LIST_FORM_SENT_TITLE' => 'Sent Emails',
'LBL_LIST_FORM_TITLE' => 'Email List', 'LBL_LIST_FORM_TITLE' => 'Email List',
'LBL_LIST_FROM_ADDR' => 'From', 'LBL_LIST_FROM_ADDR' => 'From',
'LBL_LIST_RELATED_TO' => 'Recipient Type', //'LBL_LIST_RELATED_TO' => 'Recipient Type' (previous value)
'LBL_LIST_RELATED_TO' => 'Related To',
'LBL_LIST_SUBJECT' => 'Subject', 'LBL_LIST_SUBJECT' => 'Subject',
'LBL_LIST_TO_ADDR' => 'To', 'LBL_LIST_TO_ADDR' => 'To',
'LBL_LIST_TYPE' => 'Type', 'LBL_LIST_TYPE' => 'Type',
@ -273,7 +274,6 @@ $mod_strings = array(
'LBL_HAS_ATTACHMENT_INDICATOR' => 'Has Attachments', 'LBL_HAS_ATTACHMENT_INDICATOR' => 'Has Attachments',
'ERR_MISSING_REQUIRED_FIELDS' => 'Missing required field', 'ERR_MISSING_REQUIRED_FIELDS' => 'Missing required field',
'ERR_INVALID_REQUIRED_FIELDS' => 'Invalid required field', 'ERR_INVALID_REQUIRED_FIELDS' => 'Invalid required field',
'LBL_FILTER_BY_RELATED_BEAN' => 'Only show recipients related to',
'LBL_ADD_INBOUND_ACCOUNT' => 'Add', 'LBL_ADD_INBOUND_ACCOUNT' => 'Add',
'LBL_ADD_OUTBOUND_ACCOUNT' => 'Add', 'LBL_ADD_OUTBOUND_ACCOUNT' => 'Add',
'LBL_EMAIL_ACCOUNTS_INBOUND' => 'Mail Account Properties', 'LBL_EMAIL_ACCOUNTS_INBOUND' => 'Mail Account Properties',
@ -296,9 +296,7 @@ $mod_strings = array(
'LBL_MAILBOX_TYPE_PERSONAL' => 'Personal', 'LBL_MAILBOX_TYPE_PERSONAL' => 'Personal',
'LBL_MAILBOX_TYPE_GROUP' => 'Group', 'LBL_MAILBOX_TYPE_GROUP' => 'Group',
'LBL_MAILBOX_TYPE_GROUP_FOLDER' => 'Group - Auto-Import', 'LBL_MAILBOX_TYPE_GROUP_FOLDER' => 'Group - Auto-Import',
'LBL_SEARCH_FOR' => 'Search For',
'LBL_EMAIL_INBOUND_TYPE_HELP' => '<b>Personal</b>: Email account accessible by you. Only you can manage and import emails from this account.<br><b>Group</b>: Email account accessible by members of specified teams. Team members can manage and import emails from this account.<br><b>Group - auto-import</b>: Email account accessible by members of specified teams. Emails are automatically imported as records.', 'LBL_EMAIL_INBOUND_TYPE_HELP' => '<b>Personal</b>: Email account accessible by you. Only you can manage and import emails from this account.<br><b>Group</b>: Email account accessible by members of specified teams. Team members can manage and import emails from this account.<br><b>Group - auto-import</b>: Email account accessible by members of specified teams. Emails are automatically imported as records.',
'LBL_ADDRESS_BOOK_SEARCH_HELP' => 'Enter an email address, First Name, Last Name or Account Name to find recipients.',
'LBL_TEST_SETTINGS' => 'Test Settings', 'LBL_TEST_SETTINGS' => 'Test Settings',
'LBL_EMPTY_EMAIL_BODY' => '<p><span style="color: #888888;"><em>This Message Has No Content</em></span></p>', 'LBL_EMPTY_EMAIL_BODY' => '<p><span style="color: #888888;"><em>This Message Has No Content</em></span></p>',
'LBL_HAS_EMPTY_EMAIL_SUBJECT' => 'Please specify the subject', 'LBL_HAS_EMPTY_EMAIL_SUBJECT' => 'Please specify the subject',
@ -387,7 +385,7 @@ $mod_strings = array(
'LBL_LIST_DATE_MODIFIED' => 'Last Modified', 'LBL_LIST_DATE_MODIFIED' => 'Last Modified',
'LNK_IMPORT_CAMPAIGNS' => 'Import Campaign', 'LNK_IMPORT_CAMPAIGNS' => 'Import Campaign',
// Email Validation Error messages. Typicaly for Email Validation: // Email Validation Error messages. Typicaly for Email Validation:
'ERR_FIELD_FROM_IS_NOT_SET' => 'From field is not set.', 'ERR_FIELD_FROM_IS_NOT_SET' => 'From field is not set.',
'ERR_FIELD_FROM_IS_EMPTY' => 'From field is empty.', 'ERR_FIELD_FROM_IS_EMPTY' => 'From field is empty.',
@ -411,4 +409,9 @@ $mod_strings = array(
'ERR_FIELD_FROM_ADDR_NAME_INVALID_EMAIL_PART_TO_FIELD_FROM_ADDR' => 'From address and name pair does not match to from address.', 'ERR_FIELD_FROM_ADDR_NAME_INVALID_EMAIL_PART_TO_FIELD_FROM_ADDR' => 'From address and name pair does not match to from address.',
'ERR_FIELD_FROM_ADDR_NAME_INVALID_EMAIL_PART_TO_FIELD_FROMNAME' => 'From address and name pair does not match to from-name.', 'ERR_FIELD_FROM_ADDR_NAME_INVALID_EMAIL_PART_TO_FIELD_FROMNAME' => 'From address and name pair does not match to from-name.',
'ERR_FIELD_FROM_ADDR_NAME_INVALID_EMAIL_PART_TO_FIELD_FROM_NAME' => 'From address and name pair does not match to from name.', 'ERR_FIELD_FROM_ADDR_NAME_INVALID_EMAIL_PART_TO_FIELD_FROM_NAME' => 'From address and name pair does not match to from name.',
// Address book (not in current use)
'LBL_ADDRESS_BOOK_SEARCH_HELP' => 'Enter an email address, First Name, Last Name or Account Name to find recipients.',
'LBL_SEARCH_FOR' => 'Search For',
'LBL_FILTER_BY_RELATED_BEAN' => 'Only show recipients related to',
); );

View file

@ -193,7 +193,7 @@ Studio2 = {
if (!Dom.get('panels')) if (!Dom.get('panels'))
return; return;
var body = document.getElementById('mbtabs'); var body = document.getElementById('mbtabs');
var targetHeight = body.clientHeight - (Dom.getY('panels') - Dom.getY(body)) - 32; var targetHeight = body.clientHeight - (Dom.getY('toolbox') - Dom.getY(body)) - 32;
if (Studio2.isIE) targetHeight -= 10; if (Studio2.isIE) targetHeight -= 10;
Dom.setStyle('panels', "height", targetHeight + "px"); Dom.setStyle('panels', "height", targetHeight + "px");
Dom.setStyle('panels', "width" , ((Studio2.fieldwidth * 2) + 112) + "px"); Dom.setStyle('panels', "width" , ((Studio2.fieldwidth * 2) + 112) + "px");

View file

@ -976,9 +976,14 @@ class User extends Person implements EmailInterface
$this->setPreference('default_email_charset', $_REQUEST['default_email_charset'], 0, 'global'); $this->setPreference('default_email_charset', $_REQUEST['default_email_charset'], 0, 'global');
} }
if (isset($_POST['calendar_publish_key'])) { $isValidator = new \SuiteCRM\Utility\SuiteValidator();
if (isset($_POST['calendar_publish_key']) && $isValidator->isValidKey($_POST['calendar_publish_key'])) {
$this->setPreference('calendar_publish_key', $_POST['calendar_publish_key'], 0, 'global'); $this->setPreference('calendar_publish_key', $_POST['calendar_publish_key'], 0, 'global');
} elseif (isset($_POST['calendar_publish_key'])) {
$_POST['calendar_publish_key'] = '';
} }
if (isset($_POST['subtheme'])) { if (isset($_POST['subtheme'])) {
$this->setPreference('subtheme', $_POST['subtheme'], 0, 'global'); $this->setPreference('subtheme', $_POST['subtheme'], 0, 'global');
} }

View file

@ -592,12 +592,23 @@
$(document).ready(function () { $(document).ready(function () {
var checkKey = function (key) { var checkKey = function (key) {
if (key != '') { var validation = /^[A-Z0-9\-_.]*$/i;
if (key != '' && validation.test(key)) {
var encodedKey = key.replace(/[&<>'"]/g, function(tag) {
return ({
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
"'": '&#39;',
'"': '&quot;'
}[tag]);
})
$(".calendar_publish_ok").css('display', 'inline'); $(".calendar_publish_ok").css('display', 'inline');
$(".calendar_publish_none").css('display', 'none'); $(".calendar_publish_none").css('display', 'none');
$('#cal_pub_key_span').html(key); $('#cal_pub_key_span').html(encodedKey);
$('#ical_pub_key_span').html(key); $('#ical_pub_key_span').html(encodedKey);
$('#search_pub_key_span').html(key); $('#search_pub_key_span').html(encodedKey);
} else { } else {
$(".calendar_publish_ok").css('display', 'none'); $(".calendar_publish_ok").css('display', 'none');
$(".calendar_publish_none").css('display', 'inline'); $(".calendar_publish_none").css('display', 'inline');

View file

@ -3,5 +3,5 @@ if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point'); die('Not A Valid Entry Point');
} }
$suitecrm_version = '7.14.5'; $suitecrm_version = '7.14.6';
$suitecrm_timestamp = '2024-07-25 12:00:00'; $suitecrm_timestamp = '2024-10-31 12:00:00';

View file

@ -3681,6 +3681,9 @@ select#sales_stage_advanced {
width: 45%; width: 45%;
} }
.col-sm-12 .col-sm-8.edit-view-field input[type="password"] {
width: 45%;
}
.col-sm-12 [type=varchar].col-sm-8.edit-view-field input[type="text"] { .col-sm-12 [type=varchar].col-sm-8.edit-view-field input[type="text"] {
width: 45%; width: 45%;
@ -3740,6 +3743,10 @@ select#sales_stage_advanced {
width: 45.0%; width: 45.0%;
} }
.col-sm-12 .col-sm-8.edit-view-field input[type="password"] {
width: 45%;
}
.col-sm-12 .edit-view-field input[type="text"] { .col-sm-12 .edit-view-field input[type="text"] {
width: 90%; width: 90%;
} }
@ -3804,6 +3811,10 @@ select#sales_stage_advanced {
width: 45.0%; width: 45.0%;
} }
.col-sm-12 .col-sm-8.edit-view-field input[type="password"] {
width: 45%;
}
.col-sm-6 .edit-view-field input[type="text"] { .col-sm-6 .edit-view-field input[type="text"] {
width: 90%; width: 90%;
} }

View file

@ -1804,6 +1804,11 @@ font[color=red] {
width: 100%; width: 100%;
} }
.edit-view-field input[type="password"] {
margin-bottom: 8px;
width: 100%;
}
.edit-view-row-item .col-sm-2 { .edit-view-row-item .col-sm-2 {
width: 33.333333%; width: 33.333333%;
} }

View file

@ -281,3 +281,17 @@ body > .le_panel .le_edit, #toolbox .le_panel .le_edit {
#factory-module table.wizardButtonDown { #factory-module table.wizardButtonDown {
border: 1px solid $color-46; border: 1px solid $color-46;
} }
#layoutEditor {
position: relative;
}
#layoutEditor #panels {
position: absolute;
right: 0;
}
#layoutEditor #toolbox {
position: absolute;
left: 0;
}