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);
$prefs = $user->getPreference('globalSearch', 'search');
if (array_key_exists($beanDefs['module'], $prefs) == false) {
if (empty($prefs) || array_key_exists($beanDefs['module'], $prefs) == false) {
continue;
}
unset($prefs[$beanDefs['module']]);

View file

@ -611,6 +611,7 @@ class ModuleScanner
$checkFunction = false;
$possibleIssue = '';
$lastToken = false;
$return = false;
foreach ($tokens as $index=>$token) {
if (is_string($token[0])) {
switch ($token[0]) {
@ -622,7 +623,16 @@ class ModuleScanner
$issues[] = $possibleIssue;
}
break;
case ']':
if ($checkFunction){
$issues[] = $possibleIssue;
}
}
if ($return && $checkFunction){
$issues[] = $possibleIssue;
}
$checkFunction = false;
$possibleIssue = '';
} else {
@ -641,7 +651,8 @@ class ModuleScanner
$issues[]= translate('ML_INVALID_FUNCTION', 'Administration') . ' exit / die';
break;
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 (!in_array($token[1], $this->classBlackList)) {
break;
@ -688,6 +699,10 @@ class ModuleScanner
if (in_array($token[1], $this->blackListExempt)) {
break;
}
if ($lastToken[1] === 'return'){
$return = true;
}
}
// no break
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" />
</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)
[![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",
"This file is @generated automatically"
],
"content-hash": "8ddaa2e92629c2543c4b72cf48108edb",
"content-hash": "47bba1eb36fbd153ae6881e530f96a52",
"packages": [
{
"name": "composer/semver",
@ -3480,16 +3480,16 @@
},
{
"name": "smarty/smarty",
"version": "v4.3.1",
"version": "v4.5.3",
"source": {
"type": "git",
"url": "https://github.com/smarty-php/smarty.git",
"reference": "e28cb0915b4e3749bf57d4ebae2984e25395cfe5"
"reference": "9fc96a13dbaf546c3d7bcf95466726578cd4e0fa"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/e28cb0915b4e3749bf57d4ebae2984e25395cfe5",
"reference": "e28cb0915b4e3749bf57d4ebae2984e25395cfe5",
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/9fc96a13dbaf546c3d7bcf95466726578cd4e0fa",
"reference": "9fc96a13dbaf546c3d7bcf95466726578cd4e0fa",
"shasum": ""
},
"require": {
@ -3537,7 +3537,12 @@
"keywords": [
"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",

View file

@ -97,7 +97,7 @@ class M2MRelationship extends SugarRelationship
//Multiple links with same relationship name
else {
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);
} else {
return false;

View file

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

View file

@ -126,7 +126,11 @@ class HtmlSanitizer
if ($isEncoded) {
$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;
}

View file

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

View file

@ -61,7 +61,7 @@ class SuiteEditorConnector
{
public static function getSuiteSettings($html, $width)
{
return array(
$settings = [
'contents' => $html,
'textareaId' => 'body_text',
'elementId' => 'email_template_editor',
@ -69,7 +69,27 @@ class SuiteEditorConnector
'clickHandler' => "function(e){
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) {
editor.on('focus', function(e){
onClickTemplateBody();
@ -79,8 +99,12 @@ class SuiteEditorConnector
plugins: ['code', 'table', 'link', 'image'],
toolbar: ['fontselect | fontsizeselect | bold italic underline | forecolor backcolor | styleselect | outdent indent | link image'],
convert_urls: false,
}"
);
}";
}
return $settings;
}
/**

View file

@ -86,7 +86,6 @@ class SuiteEditorMozaik implements SuiteEditorInterface
$this->settings->elementId,
$this->settings->width,
$this->settings->group,
$this->settings->tinyMCESetup
));
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');
global $beanFiles,$beanList;
global $beanFiles,$beanList, $db;
$bean_name = $beanList[$_REQUEST['module']];
require_once($beanFiles[$bean_name]);
$focus = new $bean_name();
if (empty($_REQUEST['linked_id']) || empty($_REQUEST['linked_field']) || empty($_REQUEST['record'])) {
die("need linked_field, linked_id and record fields");
}
$linked_field = $_REQUEST['linked_field'];
$record = $_REQUEST['record'];
$linked_id = $_REQUEST['linked_id'];
$linked_field = $db->quote($_REQUEST['linked_field']);
$record = $db->quote($_REQUEST['record']);
$linked_id = $db->quote($_REQUEST['linked_id']);
if ($linked_field === 'aclroles') {
if (!ACLController::checkAccess($bean_name, 'edit', true)) {
ACLController::displayNoAccess();

View file

@ -6454,3 +6454,20 @@ function isWebToLeadAllowedRedirectHost(string $url): bool {
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) {
$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;

View file

@ -58,6 +58,21 @@ class SuiteValidator
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
* @return bool
@ -90,4 +105,20 @@ class SuiteValidator
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;
$project_name = $_POST['p_name'];
$template_id = $_POST['template_id'];
$template_id = $db->quote($_POST['template_id']);
$project_start = $_POST['start_date'];
$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
if ($project_start!='') {
@ -262,7 +265,7 @@ class AM_ProjectTemplatesController extends SugarController
include_once('modules/AM_ProjectTemplates/project_table.php');
$project_template = BeanFactory::newBean('AM_ProjectTemplates');
$pid = $_POST["pid"];
$pid = $db->quote($_POST["pid"]);
$project_template->retrieve($pid);
//Get project tasks

View file

@ -116,6 +116,13 @@ class templateParser
ENT_COMPAT, 'UTF-8');
$repl_arr[$key . "_" . $fieldName] = html_entity_decode((string) $focus->{$fieldName},
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 {
$repl_arr[$key . "_" . $fieldName] = $focus->{$fieldName};
}

View file

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

View file

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

View file

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

View file

@ -547,6 +547,7 @@
<input type="checkbox" name="update_exists_template" class="form-checkbox input-sm hidden">
</span>
</div>
{if !$hide_width_set}
<script>
{literal}
$(function(){
@ -555,6 +556,16 @@
}
});
{/literal}
</script>
{/if}
<script>
{literal}
function loadtemplate() {
if (document.getElementById('template_id').value) {
onEmailTemplateChange(document.getElementById('template_id'), '{$MOD.LBL_COPY_OF}');
}
}
{/literal}
</script>
</div>
<div id="template_messages"></div>

View file

@ -1,14 +1,11 @@
<?php
if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
/**
*
* SugarCRM Community Edition is a customer relationship management program developed by
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
*
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
* Copyright (C) 2011 - 2018 SalesAgility Ltd.
* Copyright (C) 2011 - 2024 SalesAgility Ltd.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License version 3 as published by the
@ -41,6 +38,9 @@ if (!defined('sugarEntry') || !sugarEntry) {
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
*/
if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
#[\AllowDynamicProperties]
class ListCurrency
@ -115,18 +115,22 @@ if (!defined('sugarEntry') || !sugarEntry) {
function get_rate(id){
return ConversionRates[id];
}
function ConvertToDollar(amount, rate){
return amount / rate;
}
function ConvertFromDollar(amount, rate){
return amount * rate;
}
function ConvertRate(id,fields){
for(var i = 0; i < fields.length; i++){
fields[i].value = toDecimal(ConvertFromDollar(toDecimal(ConvertToDollar(toDecimal(fields[i].value), lastRate)), ConversionRates[id]));
}
lastRate = ConversionRates[id];
for(var i = 0; i < fields.length; i++){
fields[i].value = toDecimal(ConvertFromDollar(toDecimal(ConvertToDollar(toDecimal(fields[i].value), lastRate)), ConversionRates[id]));
}
lastRate = ConversionRates[id];
}
function ConvertRateSingle(id,field){
var temp = field.innerHTML.substring(1, field.innerHTML.length);
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);
lastRate = ConversionRates[id];
}
function CurrencyConvertAll(form){
try {
var id = form.currency_id.options[form.currency_id.selectedIndex].value;
var fields = new Array();
var id = form.currency_id.options[form.currency_id.selectedIndex].value;
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]);
}
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);
ConvertRate(id, fields);
for(i in fields){
fields[i].value = formatNumber(fields[i].value, num_grp_sep, dec_sep);
}
for(i in fields){
fields[i].value = formatNumber(fields[i].value, num_grp_sep, dec_sep);
}
calculateAllLines();
} catch (err) {
// 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.
}
}
</script>
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_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'),
'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',
'label' => 'LBL_LIST_IN_QUEUE',
'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(
'basic_search' => array(
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'=>'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'),
),
'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' => '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',
'type' => 'datetime',
'comment' => 'Date record created',
'enable_range_search' => true,
'options' => 'date_range_search_dom',
),
'date_modified' => array(
'name' => 'date_modified',
'vname' => 'LBL_DATE_MODIFIED',
'type' => 'datetime',
'comment' => 'Date record last modified',
'enable_range_search' => true,
'options' => 'date_range_search_dom',
),
'user_id' => array(
'name' => 'user_id',

View file

@ -398,6 +398,12 @@ class EmailTemplate extends SugarBean
{
global $beanList, $app_list_strings;
$decimalTypes = [
'currency',
'decimal',
'float'
];
// generate User instance that owns this "Contact" for contact_user_* macros
$user = BeanFactory::newBean('Users');
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.
$macro_nv[$matches[0][$i][0]] = $value;

View file

@ -197,6 +197,9 @@ class EmailTemplateParser
if (isset($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;
}

View file

@ -5,7 +5,7 @@
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
*
* 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
* 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_TITLE' => 'Email List',
'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_TO_ADDR' => 'To',
'LBL_LIST_TYPE' => 'Type',
@ -273,7 +274,6 @@ $mod_strings = array(
'LBL_HAS_ATTACHMENT_INDICATOR' => 'Has Attachments',
'ERR_MISSING_REQUIRED_FIELDS' => 'Missing 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_OUTBOUND_ACCOUNT' => 'Add',
'LBL_EMAIL_ACCOUNTS_INBOUND' => 'Mail Account Properties',
@ -296,9 +296,7 @@ $mod_strings = array(
'LBL_MAILBOX_TYPE_PERSONAL' => 'Personal',
'LBL_MAILBOX_TYPE_GROUP' => 'Group',
'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_ADDRESS_BOOK_SEARCH_HELP' => 'Enter an email address, First Name, Last Name or Account Name to find recipients.',
'LBL_TEST_SETTINGS' => 'Test Settings',
'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',
@ -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_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.',
// 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'))
return;
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;
Dom.setStyle('panels', "height", targetHeight + "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');
}
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');
} elseif (isset($_POST['calendar_publish_key'])) {
$_POST['calendar_publish_key'] = '';
}
if (isset($_POST['subtheme'])) {
$this->setPreference('subtheme', $_POST['subtheme'], 0, 'global');
}

View file

@ -592,12 +592,23 @@
$(document).ready(function () {
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_none").css('display', 'none');
$('#cal_pub_key_span').html(key);
$('#ical_pub_key_span').html(key);
$('#search_pub_key_span').html(key);
$('#cal_pub_key_span').html(encodedKey);
$('#ical_pub_key_span').html(encodedKey);
$('#search_pub_key_span').html(encodedKey);
} else {
$(".calendar_publish_ok").css('display', 'none');
$(".calendar_publish_none").css('display', 'inline');

View file

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

View file

@ -3681,6 +3681,9 @@ select#sales_stage_advanced {
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"] {
width: 45%;
@ -3740,6 +3743,10 @@ select#sales_stage_advanced {
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"] {
width: 90%;
}
@ -3804,6 +3811,10 @@ select#sales_stage_advanced {
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"] {
width: 90%;
}

View file

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

View file

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