Squashed 'public/legacy/' changes from 92c30d9960..ee41ae127f

ee41ae127f SuiteCRM 7.13.3 Release
710b977fe9 Fix #10009 - Cannot configure Module Menu Filters on PHP8+
096b87c982 Fix #9153 - Adding dynamicenum case option for export
0cf566c131 Fix #8897 - Adding missing relationship for SurveyResponses module
c25ec3546c Fix #9470 - Set fdow in Calendar popup date selector
1d8ee63779 Fix #9326 - Adding decimal and float case option for export to use user-defined decimal separator
8ecc413cea Fix #9476 - Mass assign security groups only assigns selected on current page
8c8dacb256 Fix #9542 - added checks for count methods
c7eeca8db8 Fix #7759, #8273 - Double compose button in subpanels
e022f2e094 Fix #9621 - Workflows Calculate Field Actions don't translate dynamicenum fields
461f50a089 Fix #9764 - Add extra To addresses to CC field
4cf46d154d Fix salesagility#9768 - Do not convert link URLs in TinyMCE
c5ad471977 Fix #9783 - Compose view quick search
45c5c2a8d0 Fix #9780 - Popup does not show after creating a user
637c15e048 Fix #9812 - Decimal number calculations workflows
c025ca0659 Fix #9817 - Typo
a8cc7d8d5c Fix #9828 - $mod_strings not in scope for line 395 of the same file
41ef82116b Fix #9849 - allowed_preview is defined twice in the array
646d655e8e Fix #9875 SugarFeed shows 0 seconds ago and negative interval for certain datetime formats
f2fa7c3940 Fix #9902 - Workflow - Some Date calculations fail with certain formats
e28458a79d Fix #9930 - Recurrent calendar items
7a9c5f2490 Fix #9602 - ProspectLists save function has a duplication issue
b3e757172a Fix #9963 - Upgrade league/oauth2-server to latest version
6e61173aa3 Fix #9974 - External Providers saving with no type
1b0b5d6007 Fix #9974 - inbound emails saving with no type

git-subtree-dir: public/legacy
git-subtree-split: ee41ae127ff74a9182c42af4e1c63db32e2f1fec
This commit is contained in:
Clemente Raposo 2023-05-08 12:35:02 +01:00
parent 444c2169fe
commit 601c0c039b
43 changed files with 356 additions and 201 deletions

16
.github/SECURITY.md vendored
View file

@ -2,20 +2,8 @@
## Supported Versions ## Supported Versions
For a complete compatibility matrix, please see the documentation [here](https://docs.suitecrm.com/admin/compatibility-matrix/). For a list of supported versions, please see the documentation [Supported Versions](https://docs.suitecrm.com/community/supported-versions/) page.
| Version | Supported |
| ------- | ------------------ |
| 7.11.x | :heavy_check_mark: |
| 7.10.x | :heavy_check_mark: |
| ≤7.8.x | :x: |
## Reporting a Vulnerability ## Reporting a Vulnerability
We take Security seriously here at SuiteCRM so if you have discovered a security risk report it by For details on how to report a vulnerability please check our [Security Policy](https://docs.suitecrm.com/community/security-policy/) page.
emailing [security@suitecrm.com](mailto:security@suitecrm.com). This will be delivered to the product team who handle security issues.
Please don't disclose security bugs publicly until they have been handled by the security team.
Your email will be acknowledged within 24 hours during the business week (Mon - Fri), and youll receive a more
detailed response to your email within 72 hours during the business week (Mon - Fri) indicating the next steps in
handling your report.

View file

@ -26,6 +26,14 @@ return CustomLoader::mergeCustomArray([
$shouldCheckPermissions = OsHelper::getOS() !== OsHelper::OS_WINDOWS; $shouldCheckPermissions = OsHelper::getOS() !== OsHelper::OS_WINDOWS;
$oauth2EncKey = $GLOBALS['sugar_config']['oauth2_encryption_key'] ?? '';
if (empty($oauth2EncKey)) {
$oauth2EncKey = 'SCRM-DEFK';
if (isset($GLOBALS['log'])) {
$GLOBALS['log']->fatal('WARNING: `oauth2_encryption_key` not set in config.php');
}
}
$server = new AuthorizationServer( $server = new AuthorizationServer(
new ClientRepository( new ClientRepository(
new ClientEntity(), new ClientEntity(),
@ -41,24 +49,9 @@ return CustomLoader::mergeCustomArray([
null, null,
$shouldCheckPermissions $shouldCheckPermissions
), ),
new CryptKey( $oauth2EncKey
sprintf('file://%s/%s', $baseDir, ApiConfig::OAUTH2_PUBLIC_KEY),
null,
$shouldCheckPermissions
)
); );
$oauth2EncKey = isset($GLOBALS['sugar_config']['oauth2_encryption_key'])
? $GLOBALS['sugar_config']['oauth2_encryption_key'] : '';
if (empty($oauth2EncKey)) {
$oauth2EncKey = 'SCRM-DEFK';
if (isset($GLOBALS['log'])) {
$GLOBALS['log']->fatal('WARNING: `oauth2_encryption_key` not set in config.php');
}
}
$server->setEncryptionKey($oauth2EncKey);
// Client credentials grant // Client credentials grant
$server->enableGrantType( $server->enableGrantType(
new ClientCredentialsGrant(), new ClientCredentialsGrant(),

View file

@ -24,4 +24,9 @@ class ClientEntity implements ClientEntityInterface
{ {
$this->redirectUri = $uri; $this->redirectUri = $uri;
} }
public function setIsConfidential($confidential)
{
$this->isConfidential = $confidential;
}
} }

View file

@ -30,18 +30,24 @@ class ClientRepository implements ClientRepositoryInterface
/** /**
* @inheritdoc * @inheritdoc
*/ */
public function getClientEntity($clientIdentifier, $grantType, $clientSecret = null, $mustValidateSecret = true) public function getClientEntity($clientIdentifier)
{ {
/** @var \OAuth2Clients $client */ /** @var \OAuth2Clients $client */
$client = $this->beanManager->getBeanSafe(\OAuth2Clients::class, $clientIdentifier); $client = $this->beanManager->getBeanSafe(\OAuth2Clients::class, $clientIdentifier);
if ($mustValidateSecret && hash('sha256', $clientSecret) !== $client->secret) {
return null;
}
$this->clientEntity->setIdentifier($clientIdentifier); $this->clientEntity->setIdentifier($clientIdentifier);
$this->clientEntity->setName($client->name); $this->clientEntity->setName($client->name);
$this->clientEntity->setRedirectUri(isset($client->redirect_uri) ? $client->redirect_uri : ''); $this->clientEntity->setRedirectUri($client->redirect_uri ?? '');
$this->clientEntity->setIsConfidential($client->is_confidential ?? false);
return $this->clientEntity; return $this->clientEntity;
} }
public function validateClient($clientIdentifier, $clientSecret, $grantType)
{
/** @var \OAuth2Clients $client */
$client = $this->beanManager->getBeanSafe(\OAuth2Clients::class, $clientIdentifier);
return hash('sha256', $clientSecret) === $client->secret && $grantType === $client->allowed_grant_type;
}
} }

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.13.2 # SuiteCRM 7.13.3
[![LICENSE](https://img.shields.io/github/license/suitecrm/suitecrm.svg)](https://github.com/salesagility/suitecrm/blob/hotfix/LICENSE.txt) [![LICENSE](https://img.shields.io/github/license/suitecrm/suitecrm.svg)](https://github.com/salesagility/suitecrm/blob/hotfix/LICENSE.txt)
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/salesagility/SuiteCRM-Core/issues) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/salesagility/SuiteCRM-Core/issues)

12
composer.lock generated
View file

@ -2634,16 +2634,16 @@
}, },
{ {
"name": "phpseclib/phpseclib", "name": "phpseclib/phpseclib",
"version": "3.0.17", "version": "3.0.19",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpseclib/phpseclib.git", "url": "https://github.com/phpseclib/phpseclib.git",
"reference": "dbc2307d5c69aeb22db136c52e91130d7f2ca761" "reference": "cc181005cf548bfd8a4896383bb825d859259f95"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/dbc2307d5c69aeb22db136c52e91130d7f2ca761", "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/cc181005cf548bfd8a4896383bb825d859259f95",
"reference": "dbc2307d5c69aeb22db136c52e91130d7f2ca761", "reference": "cc181005cf548bfd8a4896383bb825d859259f95",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2724,7 +2724,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/phpseclib/phpseclib/issues", "issues": "https://github.com/phpseclib/phpseclib/issues",
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.17" "source": "https://github.com/phpseclib/phpseclib/tree/3.0.19"
}, },
"funding": [ "funding": [
{ {
@ -2740,7 +2740,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-10-24T10:51:50+00:00" "time": "2023-03-05T17:13:09+00:00"
}, },
{ {
"name": "pimple/pimple", "name": "pimple/pimple",

View file

@ -1,5 +1,5 @@
<?php <?php
// created: 2023-02-27 17:00:00 // created: 2023-04-18 17:00:00
$md5_string = array ( $md5_string = array (
'./Api/Core/Config/ApiConfig.php' => '69a1e7b3d7755a2a63499a16ddae81cf', './Api/Core/Config/ApiConfig.php' => '69a1e7b3d7755a2a63499a16ddae81cf',
'./Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8', './Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8',
@ -17,7 +17,7 @@ $md5_string = array (
'./Api/V8/Config/services/factories.php' => 'abedc3b0445f9076cf55fb81f922999b', './Api/V8/Config/services/factories.php' => 'abedc3b0445f9076cf55fb81f922999b',
'./Api/V8/Config/services/globals.php' => 'd1bdcccf5150b16b84fc8192f63affdd', './Api/V8/Config/services/globals.php' => 'd1bdcccf5150b16b84fc8192f63affdd',
'./Api/V8/Config/services/helpers.php' => 'd15737677999e4f7307443aa83da8afa', './Api/V8/Config/services/helpers.php' => 'd15737677999e4f7307443aa83da8afa',
'./Api/V8/Config/services/middlewares.php' => 'a7e3340374c5bfb6b26b4d99e61a8935', './Api/V8/Config/services/middlewares.php' => '29a5b5660def75ac119fe9bc7bdb9a53',
'./Api/V8/Config/services/params.php' => '9fd77ca190fbcea45ad11f156d5db9b7', './Api/V8/Config/services/params.php' => '9fd77ca190fbcea45ad11f156d5db9b7',
'./Api/V8/Config/services/services.php' => '1c6d1cc19c087015430b4b965705e2fb', './Api/V8/Config/services/services.php' => '1c6d1cc19c087015430b4b965705e2fb',
'./Api/V8/Config/services/validators.php' => '884d713ad8ed932500039acaf285fa45', './Api/V8/Config/services/validators.php' => '884d713ad8ed932500039acaf285fa45',
@ -52,11 +52,11 @@ $md5_string = array (
'./Api/V8/JsonApi/Response/RelationshipResponse.php' => '8a9824924da4a9ef5640ce9ec1e9c7cb', './Api/V8/JsonApi/Response/RelationshipResponse.php' => '8a9824924da4a9ef5640ce9ec1e9c7cb',
'./Api/V8/Middleware/ParamsMiddleware.php' => 'd05b267a88e6a36a2558cd8931961861', './Api/V8/Middleware/ParamsMiddleware.php' => 'd05b267a88e6a36a2558cd8931961861',
'./Api/V8/OAuth2/Entity/AccessTokenEntity.php' => '1b53023bd78223ddac6400d29af48d96', './Api/V8/OAuth2/Entity/AccessTokenEntity.php' => '1b53023bd78223ddac6400d29af48d96',
'./Api/V8/OAuth2/Entity/ClientEntity.php' => '248eb82b0426a4671e3cd64693f8527d', './Api/V8/OAuth2/Entity/ClientEntity.php' => '8a948d82e84eaf8f32e3ad5c46cea9dd',
'./Api/V8/OAuth2/Entity/RefreshTokenEntity.php' => '64d0cf96978dd4bf7e8bc837580eed7c', './Api/V8/OAuth2/Entity/RefreshTokenEntity.php' => '64d0cf96978dd4bf7e8bc837580eed7c',
'./Api/V8/OAuth2/Entity/UserEntity.php' => 'a44c52eb54ef1372d513f3e109f3d108', './Api/V8/OAuth2/Entity/UserEntity.php' => 'a44c52eb54ef1372d513f3e109f3d108',
'./Api/V8/OAuth2/Repository/AccessTokenRepository.php' => 'de0a2861e710deb9fdfa961c1d02ad3e', './Api/V8/OAuth2/Repository/AccessTokenRepository.php' => 'de0a2861e710deb9fdfa961c1d02ad3e',
'./Api/V8/OAuth2/Repository/ClientRepository.php' => '6ffd84f5fb058688af763b4988afd270', './Api/V8/OAuth2/Repository/ClientRepository.php' => '090628beafc7a308aeaf83b20f81cb18',
'./Api/V8/OAuth2/Repository/RefreshTokenRepository.php' => '48555f23e91d557b41a1f9c7baa6425d', './Api/V8/OAuth2/Repository/RefreshTokenRepository.php' => '48555f23e91d557b41a1f9c7baa6425d',
'./Api/V8/OAuth2/Repository/ScopeRepository.php' => 'd659a64126adaef03952a8187d76608f', './Api/V8/OAuth2/Repository/ScopeRepository.php' => 'd659a64126adaef03952a8187d76608f',
'./Api/V8/OAuth2/Repository/UserRepository.php' => '91fef170d05002a8215747e0365e67d7', './Api/V8/OAuth2/Repository/UserRepository.php' => '91fef170d05002a8215747e0365e67d7',
@ -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' => '92d28c27542d1ec479f07123ef7231cf', './README.md' => 'b20a248fa6702bc317e0b5db7d784a01',
'./RoboFile.php' => '045b82c1df69553824d0e4ffcce6e03c', './RoboFile.php' => '045b82c1df69553824d0e4ffcce6e03c',
'./SugarSecurity.php' => '47e316b2d408e8c5192c8ea4a4f921b3', './SugarSecurity.php' => '47e316b2d408e8c5192c8ea4a4f921b3',
'./TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c', './TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c',
@ -507,8 +507,8 @@ $md5_string = array (
'./build/push_output.sh' => 'cde8cd38e3b0c4e988ec4be7d81faa89', './build/push_output.sh' => 'cde8cd38e3b0c4e988ec4be7d81faa89',
'./build/travis-ci-apache' => 'e1e212c4eaf679b6ec620cd0b12f4571', './build/travis-ci-apache' => 'e1e212c4eaf679b6ec620cd0b12f4571',
'./campaign_tracker.php' => '321e43ca8b664e6ca57ae5589e8c0667', './campaign_tracker.php' => '321e43ca8b664e6ca57ae5589e8c0667',
'./composer.json' => '6bd6f8c467d45fa7b42f41a565c3c15b', './composer.json' => '2823f5a7f99159cec8dab6b36249e0fb',
'./composer.lock' => '0fe6766d5b5428b16abaa4da96e2af12', './composer.lock' => 'ad7c44c6eb91e2484a68386053ada8a8',
'./cron.php' => '0b8b6bd839a2232a8da074b31feaa708', './cron.php' => '0b8b6bd839a2232a8da074b31feaa708',
'./crossdomain.xml' => '24b7711640c652b21aa89c9d83d6ec13', './crossdomain.xml' => '24b7711640c652b21aa89c9d83d6ec13',
'./data/BeanFactory.php' => '3007bf65ebc77baa76c338ce6a068790', './data/BeanFactory.php' => '3007bf65ebc77baa76c338ce6a068790',
@ -665,7 +665,7 @@ $md5_string = array (
'./include/MVC/View/views/view.vcard.php' => 'e7bddb455a4f14ad36ecde6470c71b68', './include/MVC/View/views/view.vcard.php' => 'e7bddb455a4f14ad36ecde6470c71b68',
'./include/MVC/View/views/view.xml.php' => '2a7ed1f6384a9c362c4a61f5d7d8b8d2', './include/MVC/View/views/view.xml.php' => '2a7ed1f6384a9c362c4a61f5d7d8b8d2',
'./include/MVC/preDispatch.php' => 'f1720fa7dea86c02e0663227c2c08203', './include/MVC/preDispatch.php' => 'f1720fa7dea86c02e0663227c2c08203',
'./include/MassUpdate.php' => 'e1e7bb76e9479209bc9fdb54411eae97', './include/MassUpdate.php' => '31962debf6e06728dff2e7e8f1b59310',
'./include/MySugar/DashletsDialog/DashletsDialog.php' => '0b7c1af1bb21b3af9b735178de2f3a89', './include/MySugar/DashletsDialog/DashletsDialog.php' => '0b7c1af1bb21b3af9b735178de2f3a89',
'./include/MySugar/MySugar.php' => 'eaffdea2231df9ec4a457fb57d499ca4', './include/MySugar/MySugar.php' => 'eaffdea2231df9ec4a457fb57d499ca4',
'./include/MySugar/dashboardstyle.css' => '4cce65e52281263e484140a1d4b8d2e2', './include/MySugar/dashboardstyle.css' => '4cce65e52281263e484140a1d4b8d2e2',
@ -913,7 +913,7 @@ $md5_string = array (
'./include/SugarFields/Fields/Datetime/SugarFieldDatetime.php' => 'b8af991b751ff491d59598e131496081', './include/SugarFields/Fields/Datetime/SugarFieldDatetime.php' => 'b8af991b751ff491d59598e131496081',
'./include/SugarFields/Fields/Datetimecombo/Datetimecombo.js' => '943fe4f97ca790d58abeedcfb704d3e4', './include/SugarFields/Fields/Datetimecombo/Datetimecombo.js' => '943fe4f97ca790d58abeedcfb704d3e4',
'./include/SugarFields/Fields/Datetimecombo/EditView.tpl' => '08ec47bdf15639c759cab09a00b09070', './include/SugarFields/Fields/Datetimecombo/EditView.tpl' => '08ec47bdf15639c759cab09a00b09070',
'./include/SugarFields/Fields/Datetimecombo/RangeSearchForm.tpl' => '8c2e3b3d4ba9a274bac3cec52d8ab452', './include/SugarFields/Fields/Datetimecombo/RangeSearchForm.tpl' => 'c1e863e4edb0152dfb3936bb6bf7ae90',
'./include/SugarFields/Fields/Datetimecombo/SearchView.tpl' => 'ed305267b63968f4f603154ad7344a79', './include/SugarFields/Fields/Datetimecombo/SearchView.tpl' => 'ed305267b63968f4f603154ad7344a79',
'./include/SugarFields/Fields/Datetimecombo/SugarFieldDatetimecombo.php' => '73008c0cdd41970570617b3f5a5dbfd0', './include/SugarFields/Fields/Datetimecombo/SugarFieldDatetimecombo.php' => '73008c0cdd41970570617b3f5a5dbfd0',
'./include/SugarFields/Fields/Download/DetailView.tpl' => 'e05dbaa1b573284715b870612087e6cb', './include/SugarFields/Fields/Download/DetailView.tpl' => 'e05dbaa1b573284715b870612087e6cb',
@ -1227,7 +1227,7 @@ $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' => '30ded6167f0dd3abda0f18487659633b', './include/SuiteEditor/SuiteEditorConnector.php' => 'a776d9b9a8512fa5f5b00c4c9c417698',
'./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' => 'a44e4f678cbcaf8c823486be62ab98a3',
@ -1305,7 +1305,7 @@ $md5_string = array (
'./include/SuiteGraphs/rgraph/scripts/jsmin' => '9631c7fbf2f120539f148a7550209634', './include/SuiteGraphs/rgraph/scripts/jsmin' => '9631c7fbf2f120539f148a7550209634',
'./include/SuiteGraphs/rgraph/scripts/jsmin.txt' => '9d43948e40a94c857c47a869da01d385', './include/SuiteGraphs/rgraph/scripts/jsmin.txt' => '9d43948e40a94c857c47a869da01d385',
'./include/SuiteMozaik.php' => '8060bf6d838174cfa0df04e311a6f8a7', './include/SuiteMozaik.php' => '8060bf6d838174cfa0df04e311a6f8a7',
'./include/TemplateHandler/TemplateHandler.php' => '80f3e44aebe28d25481f3a45f24c1926', './include/TemplateHandler/TemplateHandler.php' => 'f815b572b2c4db21a58c9ab698416a21',
'./include/TestCaseAbstract.php' => '4a9fb42e6c0229f8c8101183320e17bf', './include/TestCaseAbstract.php' => '4a9fb42e6c0229f8c8101183320e17bf',
'./include/TimeDate.php' => '7dabddc78edd8048ed129b080a488579', './include/TimeDate.php' => '7dabddc78edd8048ed129b080a488579',
'./include/URIFilter.php' => 'bafc11e1aab5f2eb3839569f5109ee63', './include/URIFilter.php' => 'bafc11e1aab5f2eb3839569f5109ee63',
@ -1350,7 +1350,7 @@ $md5_string = array (
'./include/dir_inc.php' => '4ec954313ef7c8b164ec1232a1ec1bd7', './include/dir_inc.php' => '4ec954313ef7c8b164ec1232a1ec1bd7',
'./include/entryPoint.php' => '6c03ccc488eae94ac702743421951115', './include/entryPoint.php' => '6c03ccc488eae94ac702743421951115',
'./include/entryPointConfirmOptInConnector.php' => '66fed04564c4f4182f3b277d5b6dfafc', './include/entryPointConfirmOptInConnector.php' => '66fed04564c4f4182f3b277d5b6dfafc',
'./include/export_utils.php' => '5f539efced9a07f53e78663126d1fc5d', './include/export_utils.php' => '1e623019f674e2a29b4039768ec6f92f',
'./include/externalAPI/Base/ExternalAPIBase.php' => 'e52639773bbdaa1d9e3308fd7a41e392', './include/externalAPI/Base/ExternalAPIBase.php' => 'e52639773bbdaa1d9e3308fd7a41e392',
'./include/externalAPI/Base/ExternalAPIPlugin.php' => '9f8d318d518a9f950fd0d80a6bac7c20', './include/externalAPI/Base/ExternalAPIPlugin.php' => '9f8d318d518a9f950fd0d80a6bac7c20',
'./include/externalAPI/Base/ExternalOAuthAPIPlugin.php' => 'fd065e2de29e6fa0dfc86956e2c86230', './include/externalAPI/Base/ExternalOAuthAPIPlugin.php' => 'fd065e2de29e6fa0dfc86956e2c86230',
@ -1443,7 +1443,7 @@ $md5_string = array (
'./include/generic/SugarWidgets/SugarWidgetSubPanelTopButton.php' => '73ebbe4637525a45798ba4e0d5c365d9', './include/generic/SugarWidgets/SugarWidgetSubPanelTopButton.php' => '73ebbe4637525a45798ba4e0d5c365d9',
'./include/generic/SugarWidgets/SugarWidgetSubPanelTopButtonQuickCreate.php' => '6946d51342aebdc39995af316bea01c5', './include/generic/SugarWidgets/SugarWidgetSubPanelTopButtonQuickCreate.php' => '6946d51342aebdc39995af316bea01c5',
'./include/generic/SugarWidgets/SugarWidgetSubPanelTopButton_c.php' => '4ac7dc01f8edc3ba751645cd14c11da5', './include/generic/SugarWidgets/SugarWidgetSubPanelTopButton_c.php' => '4ac7dc01f8edc3ba751645cd14c11da5',
'./include/generic/SugarWidgets/SugarWidgetSubPanelTopComposeEmailButton.php' => '8b4d187c36d140ad08bcf9675d3ec750', './include/generic/SugarWidgets/SugarWidgetSubPanelTopComposeEmailButton.php' => '7067242d738d9fa30c6a1ef575f30984',
'./include/generic/SugarWidgets/SugarWidgetSubPanelTopCreateAccountNameButton.php' => '7c8026d84033b772fb86a537e5f5220f', './include/generic/SugarWidgets/SugarWidgetSubPanelTopCreateAccountNameButton.php' => '7c8026d84033b772fb86a537e5f5220f',
'./include/generic/SugarWidgets/SugarWidgetSubPanelTopCreateCampaignLogEntryButton.php' => 'ec6f42ed41fdba39de226e44a0041aec', './include/generic/SugarWidgets/SugarWidgetSubPanelTopCreateCampaignLogEntryButton.php' => 'ec6f42ed41fdba39de226e44a0041aec',
'./include/generic/SugarWidgets/SugarWidgetSubPanelTopCreateCampaignMarketingEmailButton.php' => 'abe7be4f90fdf815b3d59687dd0823b5', './include/generic/SugarWidgets/SugarWidgetSubPanelTopCreateCampaignMarketingEmailButton.php' => 'abe7be4f90fdf815b3d59687dd0823b5',
@ -1505,7 +1505,7 @@ $md5_string = array (
'./include/images/tour/profile_link.png' => '672c8e5595b6beb00b29d4cf7360ca59', './include/images/tour/profile_link.png' => '672c8e5595b6beb00b29d4cf7360ca59',
'./include/images/university.png' => 'd779a477591af9d7236120e86647e7df', './include/images/university.png' => 'd779a477591af9d7236120e86647e7df',
'./include/images/university2.png' => '346083109b89352e3a4b77cc249c56df', './include/images/university2.png' => '346083109b89352e3a4b77cc249c56df',
'./include/javascript/EmailsComposeViewModal.js' => 'f3e5e7623ee85de221dd60d3c7cfcb3f', './include/javascript/EmailsComposeViewModal.js' => '18ba828fcff89d1e5828eb7f7f0fd940',
'./include/javascript/ajaxUI.js' => '35ec428357ec0b09e18594c631fa7e3f', './include/javascript/ajaxUI.js' => '35ec428357ec0b09e18594c631fa7e3f',
'./include/javascript/alerts.js' => '5c5a51e2923a0977b83eaa2548382f8d', './include/javascript/alerts.js' => '5c5a51e2923a0977b83eaa2548382f8d',
'./include/javascript/bindWithDelay.js' => '9e9858d872371595cc135dad5ae079ee', './include/javascript/bindWithDelay.js' => '9e9858d872371595cc135dad5ae079ee',
@ -1684,7 +1684,7 @@ $md5_string = array (
'./include/javascript/quickCompose.js' => '047d7eea0263fa0c2cd9bdb53ecf6258', './include/javascript/quickCompose.js' => '047d7eea0263fa0c2cd9bdb53ecf6258',
'./include/javascript/quicksearch.js' => '97475c83c2614b54f3a0dd63edb2dfb2', './include/javascript/quicksearch.js' => '97475c83c2614b54f3a0dd63edb2dfb2',
'./include/javascript/report_additionals.js' => '094fef2462c9d640ee3ef4dc7af613d0', './include/javascript/report_additionals.js' => '094fef2462c9d640ee3ef4dc7af613d0',
'./include/javascript/sugar_3.js' => '1648c3c6a4f2e6ba8eecb9425f897251', './include/javascript/sugar_3.js' => '3be088993cbe4b3d3a733d4b758b8acc',
'./include/javascript/sugar_connection_event_listener.js' => 'c8a148e865988e17f9b0328de44803a7', './include/javascript/sugar_connection_event_listener.js' => 'c8a148e865988e17f9b0328de44803a7',
'./include/javascript/sugar_yui_overrides.js' => 'd99ea792b967d53cef54e0b870acdd88', './include/javascript/sugar_yui_overrides.js' => 'd99ea792b967d53cef54e0b870acdd88',
'./include/javascript/sugarwidgets/SugarYUILoader.js' => '959d552199b65eab09ed534ade65b064', './include/javascript/sugarwidgets/SugarYUILoader.js' => '959d552199b65eab09ed534ade65b064',
@ -2400,7 +2400,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' => '1c1915cad8c88feb0edbf5bbaee106c4', './include/utils/sugar_file_utils.php' => '1c1915cad8c88feb0edbf5bbaee106c4',
'./include/utils.php' => 'c480479dc541aa24577afd445574a9d5', './include/utils.php' => '1e3e93fc5e6ea40782efdb5aaf7b5f8c',
'./include/vCard.php' => '44052bbedcdaba3fdf67cfc10a112e75', './include/vCard.php' => '44052bbedcdaba3fdf67cfc10a112e75',
'./include/ytree/ExtNode.php' => '000d4ccbdb6e0a7628c636128781b5e3', './include/ytree/ExtNode.php' => '000d4ccbdb6e0a7628c636128781b5e3',
'./include/ytree/JQueryTree.php' => '3712d2224b93818b990b876f8405b745', './include/ytree/JQueryTree.php' => '3712d2224b93818b990b876f8405b745',
@ -2550,7 +2550,7 @@ $md5_string = array (
'./jssource/src_files/include/SugarFields/Fields/File/SugarFieldFile.js' => '5673fcbe388ef5af0fe7eca8dddf68d9', './jssource/src_files/include/SugarFields/Fields/File/SugarFieldFile.js' => '5673fcbe388ef5af0fe7eca8dddf68d9',
'./jssource/src_files/include/SugarFields/Fields/Time/Time.js' => '22a9dadf3e02d6c7ee71b3d50639fc10', './jssource/src_files/include/SugarFields/Fields/Time/Time.js' => '22a9dadf3e02d6c7ee71b3d50639fc10',
'./jssource/src_files/include/connectors/formatters/default/company_detail.js' => 'c0225f1761182495ea499b5dcbc60efa', './jssource/src_files/include/connectors/formatters/default/company_detail.js' => 'c0225f1761182495ea499b5dcbc60efa',
'./jssource/src_files/include/javascript/EmailsComposeViewModal.js' => '51b2ed7cb42b4198e4c5ecb438c56bcb', './jssource/src_files/include/javascript/EmailsComposeViewModal.js' => '74dd4532c759be8c557b5acc3d777159',
'./jssource/src_files/include/javascript/ajaxUI.js' => 'fd171bf28ec63478d1518753b48d1a6f', './jssource/src_files/include/javascript/ajaxUI.js' => 'fd171bf28ec63478d1518753b48d1a6f',
'./jssource/src_files/include/javascript/alerts.js' => '4cc19550e5d856a240b80c6317666eee', './jssource/src_files/include/javascript/alerts.js' => '4cc19550e5d856a240b80c6317666eee',
'./jssource/src_files/include/javascript/calendar.js' => 'ca77fc30f0070b4ffbfa48cef294a76f', './jssource/src_files/include/javascript/calendar.js' => 'ca77fc30f0070b4ffbfa48cef294a76f',
@ -2573,7 +2573,7 @@ $md5_string = array (
'./jssource/src_files/include/javascript/quickCompose.js' => '31c8e3efcf325c0c805018587fa585cb', './jssource/src_files/include/javascript/quickCompose.js' => '31c8e3efcf325c0c805018587fa585cb',
'./jssource/src_files/include/javascript/quicksearch.js' => '0329400df3d1b8e4eab0765f8fe9f2e4', './jssource/src_files/include/javascript/quicksearch.js' => '0329400df3d1b8e4eab0765f8fe9f2e4',
'./jssource/src_files/include/javascript/report_additionals.js' => 'baca991df446eaf401dda47d1685fad1', './jssource/src_files/include/javascript/report_additionals.js' => 'baca991df446eaf401dda47d1685fad1',
'./jssource/src_files/include/javascript/sugar_3.js' => '6dc9b5bab2dd6bf363cec7dff16aa248', './jssource/src_files/include/javascript/sugar_3.js' => '771fe4c868309601b2349fb1367cac2e',
'./jssource/src_files/include/javascript/sugar_connection_event_listener.js' => '431e88e62c5a7005693189d1e9d8e916', './jssource/src_files/include/javascript/sugar_connection_event_listener.js' => '431e88e62c5a7005693189d1e9d8e916',
'./jssource/src_files/include/javascript/sugar_yui_overrides.js' => 'efbf74aa5e7d0af070ae7faab7725538', './jssource/src_files/include/javascript/sugar_yui_overrides.js' => 'efbf74aa5e7d0af070ae7faab7725538',
'./jssource/src_files/include/javascript/sugarwidgets/SugarYUILoader.js' => 'abc59adf77cf85c0424dbcb6c356bee8', './jssource/src_files/include/javascript/sugarwidgets/SugarYUILoader.js' => 'abc59adf77cf85c0424dbcb6c356bee8',
@ -2602,7 +2602,7 @@ $md5_string = array (
'./jssource/src_files/modules/Accounts/Account.js' => '6d64bb3ea8c66d71c154ba70cca2e118', './jssource/src_files/modules/Accounts/Account.js' => '6d64bb3ea8c66d71c154ba70cca2e118',
'./jssource/src_files/modules/Administration/javascript/Administration.js' => 'd6ceb885790e2541eecfec634e6ab255', './jssource/src_files/modules/Administration/javascript/Administration.js' => 'd6ceb885790e2541eecfec634e6ab255',
'./jssource/src_files/modules/Administration/javascript/Async.js' => 'f062dbc229f6307d094319abaebb2c7c', './jssource/src_files/modules/Administration/javascript/Async.js' => 'f062dbc229f6307d094319abaebb2c7c',
'./jssource/src_files/modules/Calendar/Cal.js' => '3b871a0b63105ae7a682fb4bfa2fc523', './jssource/src_files/modules/Calendar/Cal.js' => '4a93979d5a83795c93084c548e476d3a',
'./jssource/src_files/modules/Campaigns/DetailView.js' => '1396aec60d5e7a6737c455c4d8b39200', './jssource/src_files/modules/Campaigns/DetailView.js' => '1396aec60d5e7a6737c455c4d8b39200',
'./jssource/src_files/modules/Campaigns/WebToLead.js' => 'e64509ddd0e0ff5bc5cfbeaaae358883', './jssource/src_files/modules/Campaigns/WebToLead.js' => 'e64509ddd0e0ff5bc5cfbeaaae358883',
'./jssource/src_files/modules/Campaigns/wizard.js' => 'a4f7ae104e285c343542a99ce42b7770', './jssource/src_files/modules/Campaigns/wizard.js' => 'a4f7ae104e285c343542a99ce42b7770',
@ -2682,7 +2682,7 @@ $md5_string = array (
'./lib/API/OAuth2/.htaccess' => '4fe6db46ff1074349c8ffbb840c30de9', './lib/API/OAuth2/.htaccess' => '4fe6db46ff1074349c8ffbb840c30de9',
'./lib/API/OAuth2/Entities/AccessTokenEntity.php' => '7ae1d3fb58d93978e8802c6107c9b593', './lib/API/OAuth2/Entities/AccessTokenEntity.php' => '7ae1d3fb58d93978e8802c6107c9b593',
'./lib/API/OAuth2/Entities/AuthCodeEntity.php' => 'a706d552fe2a097564054bb53ba395dd', './lib/API/OAuth2/Entities/AuthCodeEntity.php' => 'a706d552fe2a097564054bb53ba395dd',
'./lib/API/OAuth2/Entities/ClientEntity.php' => 'e34f5af49b6cb98c39bd54c7efc4f3ef', './lib/API/OAuth2/Entities/ClientEntity.php' => '80670314ff11b61a041927ba0b56c616',
'./lib/API/OAuth2/Entities/RefreshTokenEntity.php' => '6cb5c21827a7e9cc2d1f7daf4f3e85c7', './lib/API/OAuth2/Entities/RefreshTokenEntity.php' => '6cb5c21827a7e9cc2d1f7daf4f3e85c7',
'./lib/API/OAuth2/Entities/ScopeEntity.php' => '195f52de4555f43b9e7acdedfe0813f8', './lib/API/OAuth2/Entities/ScopeEntity.php' => '195f52de4555f43b9e7acdedfe0813f8',
'./lib/API/OAuth2/Entities/UserEntity.php' => '48c5de4290e11e0138eed5c24373425c', './lib/API/OAuth2/Entities/UserEntity.php' => '48c5de4290e11e0138eed5c24373425c',
@ -2694,7 +2694,7 @@ $md5_string = array (
'./lib/API/OAuth2/README.md' => '234c6e1b678f70e885d02420b9c455ff', './lib/API/OAuth2/README.md' => '234c6e1b678f70e885d02420b9c455ff',
'./lib/API/OAuth2/Repositories/AccessTokenRepository.php' => '88a3f5a9e3869759af0cae5ee520f288', './lib/API/OAuth2/Repositories/AccessTokenRepository.php' => '88a3f5a9e3869759af0cae5ee520f288',
'./lib/API/OAuth2/Repositories/AuthCodeRepository.php' => 'be361c081aff6b102eaf5e2b8d1a5389', './lib/API/OAuth2/Repositories/AuthCodeRepository.php' => 'be361c081aff6b102eaf5e2b8d1a5389',
'./lib/API/OAuth2/Repositories/ClientRepository.php' => 'ddd015a458c983f24eccc3c11aeb22d2', './lib/API/OAuth2/Repositories/ClientRepository.php' => '0abcf1553d09aa0409c4fdceede7c034',
'./lib/API/OAuth2/Repositories/RefreshTokenRepository.php' => '74b1dbf688ac3ef7289b324400a69bed', './lib/API/OAuth2/Repositories/RefreshTokenRepository.php' => '74b1dbf688ac3ef7289b324400a69bed',
'./lib/API/OAuth2/Repositories/ScopeRepository.php' => '7040aafea10ace42cc275adc44a2515f', './lib/API/OAuth2/Repositories/ScopeRepository.php' => '7040aafea10ace42cc275adc44a2515f',
'./lib/API/OAuth2/Repositories/UserRepository.php' => '8ff1a576ddad72f26edb2ed21ab3370d', './lib/API/OAuth2/Repositories/UserRepository.php' => '8ff1a576ddad72f26edb2ed21ab3370d',
@ -3557,13 +3557,13 @@ $md5_string = array (
'./modules/AOS_Quotes/views/view.detail.php' => '7050a7beda6b696f1bc19dc5da86d2bd', './modules/AOS_Quotes/views/view.detail.php' => '7050a7beda6b696f1bc19dc5da86d2bd',
'./modules/AOS_Quotes/views/view.edit.php' => 'd7febe2bec502ba7d36aa5d4d8d6207c', './modules/AOS_Quotes/views/view.edit.php' => 'd7febe2bec502ba7d36aa5d4d8d6207c',
'./modules/AOW_Actions/AOW_Action.php' => '4dbe91f2bac732292e9992f89a73b852', './modules/AOW_Actions/AOW_Action.php' => '4dbe91f2bac732292e9992f89a73b852',
'./modules/AOW_Actions/FormulaCalculator.php' => 'b8e36954646d4716949264e2fc2808af', './modules/AOW_Actions/FormulaCalculator.php' => 'ca0ad3d6019656144ae5666f79067790',
'./modules/AOW_Actions/actionLines.js' => 'de3626663801a14f67f46649d6983fd6', './modules/AOW_Actions/actionLines.js' => 'de3626663801a14f67f46649d6983fd6',
'./modules/AOW_Actions/actionLines.php' => '6bb52c4830237a808c51e18b8c7e954c', './modules/AOW_Actions/actionLines.php' => '6bb52c4830237a808c51e18b8c7e954c',
'./modules/AOW_Actions/actions/actionBase.php' => 'cc44a21a3198ee703b0390c7df0bcf49', './modules/AOW_Actions/actions/actionBase.php' => 'cc44a21a3198ee703b0390c7df0bcf49',
'./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' => '81159ddc7e2d91425e9db4fbea2ef075', './modules/AOW_Actions/actions/actionComputeField.php' => '680aa3489a3af38d4586f9d57a04fe9f',
'./modules/AOW_Actions/actions/actionCreateRecord.js' => 'd74993b3fd078cbd54a445c6b3470eda', './modules/AOW_Actions/actions/actionCreateRecord.js' => 'd74993b3fd078cbd54a445c6b3470eda',
'./modules/AOW_Actions/actions/actionCreateRecord.php' => '537fbede6eeb62ac3ba1e5e77c6e4ada', './modules/AOW_Actions/actions/actionCreateRecord.php' => '537fbede6eeb62ac3ba1e5e77c6e4ada',
'./modules/AOW_Actions/actions/actionModifyRecord.php' => 'a382c7b13f2896df64d70055ad92b2d0', './modules/AOW_Actions/actions/actionModifyRecord.php' => 'a382c7b13f2896df64d70055ad92b2d0',
@ -3844,7 +3844,7 @@ $md5_string = array (
'./modules/Bugs/vardefs.php' => '855c5012b57a7060f7c62cd437532019', './modules/Bugs/vardefs.php' => '855c5012b57a7060f7c62cd437532019',
'./modules/Bugs/views/view.detail.php' => 'cf1a69a74ff14047728196953d63e53b', './modules/Bugs/views/view.detail.php' => 'cf1a69a74ff14047728196953d63e53b',
'./modules/Bugs/views/view.edit.php' => 'f406f3c7f19e15cd646373151994fa1c', './modules/Bugs/views/view.edit.php' => 'f406f3c7f19e15cd646373151994fa1c',
'./modules/Calendar/Cal.js' => '106379c83260c2472f7c65114d7a9fdb', './modules/Calendar/Cal.js' => 'bc6138c43cd476b7b51b084745f54cf5',
'./modules/Calendar/Calendar.php' => '8b5970e1adbf735e0d7f5222012f48ec', './modules/Calendar/Calendar.php' => '8b5970e1adbf735e0d7f5222012f48ec',
'./modules/Calendar/CalendarActivity.php' => '9e55048969b6abcb58443296057f8fce', './modules/Calendar/CalendarActivity.php' => '9e55048969b6abcb58443296057f8fce',
'./modules/Calendar/CalendarDisplay.php' => 'fd05f849dff1db7bb47713be26e6a3d2', './modules/Calendar/CalendarDisplay.php' => 'fd05f849dff1db7bb47713be26e6a3d2',
@ -4022,7 +4022,7 @@ $md5_string = array (
'./modules/CampaignLog/metadata/subpanels/default.php' => '9383d139ae417578b7c03083b9e6ba2a', './modules/CampaignLog/metadata/subpanels/default.php' => '9383d139ae417578b7c03083b9e6ba2a',
'./modules/CampaignLog/vardefs.php' => '0279a427e36779734ca01a0e5cbe0cc5', './modules/CampaignLog/vardefs.php' => '0279a427e36779734ca01a0e5cbe0cc5',
'./modules/CampaignTrackers/CampaignTracker.php' => 'da574620bcf7b37822c4e6bb581f1f08', './modules/CampaignTrackers/CampaignTracker.php' => 'da574620bcf7b37822c4e6bb581f1f08',
'./modules/CampaignTrackers/DetailView.html' => 'ada3001b4092fc1dabbce8b8e7ac1452', './modules/CampaignTrackers/DetailView.html' => '8cb6bb4cd9751f106908cde8530b857e',
'./modules/CampaignTrackers/DetailView.php' => '6c3394e0140f5f5f0db95d392a4deb55', './modules/CampaignTrackers/DetailView.php' => '6c3394e0140f5f5f0db95d392a4deb55',
'./modules/CampaignTrackers/EditView.html' => '3487ab500ce49be8c7bca18661aae85b', './modules/CampaignTrackers/EditView.html' => '3487ab500ce49be8c7bca18661aae85b',
'./modules/CampaignTrackers/EditView.php' => '32b4ad96e104b9ef6c8de33941a44b94', './modules/CampaignTrackers/EditView.php' => '32b4ad96e104b9ef6c8de33941a44b94',
@ -4166,27 +4166,27 @@ $md5_string = array (
'./modules/Charts/Dashlets/MyPipelineBySalesStageDashlet/MyPipelineBySalesStageDashlet.data.php' => 'db145e4a88bb0123a85711fc11086944', './modules/Charts/Dashlets/MyPipelineBySalesStageDashlet/MyPipelineBySalesStageDashlet.data.php' => 'db145e4a88bb0123a85711fc11086944',
'./modules/Charts/Dashlets/MyPipelineBySalesStageDashlet/MyPipelineBySalesStageDashlet.en_us.lang.php' => '37653e556058a7d870d9068d0cb6ba66', './modules/Charts/Dashlets/MyPipelineBySalesStageDashlet/MyPipelineBySalesStageDashlet.en_us.lang.php' => '37653e556058a7d870d9068d0cb6ba66',
'./modules/Charts/Dashlets/MyPipelineBySalesStageDashlet/MyPipelineBySalesStageDashlet.meta.php' => '653575a48fa00ea0f255b77d1c71b1cf', './modules/Charts/Dashlets/MyPipelineBySalesStageDashlet/MyPipelineBySalesStageDashlet.meta.php' => '653575a48fa00ea0f255b77d1c71b1cf',
'./modules/Charts/Dashlets/MyPipelineBySalesStageDashlet/MyPipelineBySalesStageDashlet.php' => 'a15176af7907c7bb663ef129dfd9480e', './modules/Charts/Dashlets/MyPipelineBySalesStageDashlet/MyPipelineBySalesStageDashlet.php' => '9657e9b2f8a1c7f22ace761b9ac7d7bb',
'./modules/Charts/Dashlets/OpportunitiesByLeadSourceByOutcomeDashlet/OpportunitiesByLeadSourceByOutcomeConfigure.tpl' => 'fc2d41ca60cc48e8aaadeff33b86a382', './modules/Charts/Dashlets/OpportunitiesByLeadSourceByOutcomeDashlet/OpportunitiesByLeadSourceByOutcomeConfigure.tpl' => 'fc2d41ca60cc48e8aaadeff33b86a382',
'./modules/Charts/Dashlets/OpportunitiesByLeadSourceByOutcomeDashlet/OpportunitiesByLeadSourceByOutcomeDashlet.data.php' => 'f48481748e948d7e34f5f4d107337cf0', './modules/Charts/Dashlets/OpportunitiesByLeadSourceByOutcomeDashlet/OpportunitiesByLeadSourceByOutcomeDashlet.data.php' => 'f48481748e948d7e34f5f4d107337cf0',
'./modules/Charts/Dashlets/OpportunitiesByLeadSourceByOutcomeDashlet/OpportunitiesByLeadSourceByOutcomeDashlet.en_us.lang.php' => '2cd6f4ad46a1ab7d5eda7fd7b0fc74ac', './modules/Charts/Dashlets/OpportunitiesByLeadSourceByOutcomeDashlet/OpportunitiesByLeadSourceByOutcomeDashlet.en_us.lang.php' => '2cd6f4ad46a1ab7d5eda7fd7b0fc74ac',
'./modules/Charts/Dashlets/OpportunitiesByLeadSourceByOutcomeDashlet/OpportunitiesByLeadSourceByOutcomeDashlet.meta.php' => 'bcf1fd2ac113bdc8fcd2f6e96c51a003', './modules/Charts/Dashlets/OpportunitiesByLeadSourceByOutcomeDashlet/OpportunitiesByLeadSourceByOutcomeDashlet.meta.php' => 'bcf1fd2ac113bdc8fcd2f6e96c51a003',
'./modules/Charts/Dashlets/OpportunitiesByLeadSourceByOutcomeDashlet/OpportunitiesByLeadSourceByOutcomeDashlet.php' => 'd10584b71ecae05337e09416a8e6d5bd', './modules/Charts/Dashlets/OpportunitiesByLeadSourceByOutcomeDashlet/OpportunitiesByLeadSourceByOutcomeDashlet.php' => '05b29826395af568d7e4ee5c835c0438',
'./modules/Charts/Dashlets/OpportunitiesByLeadSourceDashlet/OpportunitiesByLeadSourceConfigure.tpl' => '2cf2e807cc447c1598aea3d505cc75ab', './modules/Charts/Dashlets/OpportunitiesByLeadSourceDashlet/OpportunitiesByLeadSourceConfigure.tpl' => '2cf2e807cc447c1598aea3d505cc75ab',
'./modules/Charts/Dashlets/OpportunitiesByLeadSourceDashlet/OpportunitiesByLeadSourceDashlet.data.php' => '0218cf7d787951c29c1f3b04dca27951', './modules/Charts/Dashlets/OpportunitiesByLeadSourceDashlet/OpportunitiesByLeadSourceDashlet.data.php' => '0218cf7d787951c29c1f3b04dca27951',
'./modules/Charts/Dashlets/OpportunitiesByLeadSourceDashlet/OpportunitiesByLeadSourceDashlet.en_us.lang.php' => 'edd88945059f81c532d016f95444a98a', './modules/Charts/Dashlets/OpportunitiesByLeadSourceDashlet/OpportunitiesByLeadSourceDashlet.en_us.lang.php' => 'edd88945059f81c532d016f95444a98a',
'./modules/Charts/Dashlets/OpportunitiesByLeadSourceDashlet/OpportunitiesByLeadSourceDashlet.meta.php' => 'bf1bb6cd51103d14eeacaff384e40b8f', './modules/Charts/Dashlets/OpportunitiesByLeadSourceDashlet/OpportunitiesByLeadSourceDashlet.meta.php' => 'bf1bb6cd51103d14eeacaff384e40b8f',
'./modules/Charts/Dashlets/OpportunitiesByLeadSourceDashlet/OpportunitiesByLeadSourceDashlet.php' => 'a04d3590123fedf06307669ae9532645', './modules/Charts/Dashlets/OpportunitiesByLeadSourceDashlet/OpportunitiesByLeadSourceDashlet.php' => '02e47ce89a90cf141b5454dcfd5074d8',
'./modules/Charts/Dashlets/OutcomeByMonthDashlet/OutcomeByMonthConfigure.tpl' => '7ad6e7c4257461f7feee56097396246c', './modules/Charts/Dashlets/OutcomeByMonthDashlet/OutcomeByMonthConfigure.tpl' => '7ad6e7c4257461f7feee56097396246c',
'./modules/Charts/Dashlets/OutcomeByMonthDashlet/OutcomeByMonthDashlet.data.php' => '16949b783f0a69792b6835e71c5c9603', './modules/Charts/Dashlets/OutcomeByMonthDashlet/OutcomeByMonthDashlet.data.php' => '16949b783f0a69792b6835e71c5c9603',
'./modules/Charts/Dashlets/OutcomeByMonthDashlet/OutcomeByMonthDashlet.en_us.lang.php' => 'eee5d2fd10a5dcb2894534c62a76e8ad', './modules/Charts/Dashlets/OutcomeByMonthDashlet/OutcomeByMonthDashlet.en_us.lang.php' => 'eee5d2fd10a5dcb2894534c62a76e8ad',
'./modules/Charts/Dashlets/OutcomeByMonthDashlet/OutcomeByMonthDashlet.meta.php' => '70ea288301c466bb9ee60f20d51b8d41', './modules/Charts/Dashlets/OutcomeByMonthDashlet/OutcomeByMonthDashlet.meta.php' => '70ea288301c466bb9ee60f20d51b8d41',
'./modules/Charts/Dashlets/OutcomeByMonthDashlet/OutcomeByMonthDashlet.php' => '39825a53b6d4bb9be403cd3f352fc80a', './modules/Charts/Dashlets/OutcomeByMonthDashlet/OutcomeByMonthDashlet.php' => 'b0111e98d1b6fc34f28839ae8f80d002',
'./modules/Charts/Dashlets/PipelineBySalesStageDashlet/PipelineBySalesStageConfigure.tpl' => '3c086ab793adc64ffff1bbbcf18ee44f', './modules/Charts/Dashlets/PipelineBySalesStageDashlet/PipelineBySalesStageConfigure.tpl' => '3c086ab793adc64ffff1bbbcf18ee44f',
'./modules/Charts/Dashlets/PipelineBySalesStageDashlet/PipelineBySalesStageDashlet.data.php' => '98c44d741c97fa63549c1177c063c582', './modules/Charts/Dashlets/PipelineBySalesStageDashlet/PipelineBySalesStageDashlet.data.php' => '98c44d741c97fa63549c1177c063c582',
'./modules/Charts/Dashlets/PipelineBySalesStageDashlet/PipelineBySalesStageDashlet.en_us.lang.php' => '126f0a5dcb381d4f7fc057cd7bb7fc45', './modules/Charts/Dashlets/PipelineBySalesStageDashlet/PipelineBySalesStageDashlet.en_us.lang.php' => '126f0a5dcb381d4f7fc057cd7bb7fc45',
'./modules/Charts/Dashlets/PipelineBySalesStageDashlet/PipelineBySalesStageDashlet.meta.php' => '4ae341b9fb86bae9af35a6025a212bdc', './modules/Charts/Dashlets/PipelineBySalesStageDashlet/PipelineBySalesStageDashlet.meta.php' => '4ae341b9fb86bae9af35a6025a212bdc',
'./modules/Charts/Dashlets/PipelineBySalesStageDashlet/PipelineBySalesStageDashlet.php' => '394769d6159a0e3ff8ab077193ba94b8', './modules/Charts/Dashlets/PipelineBySalesStageDashlet/PipelineBySalesStageDashlet.php' => 'd0eae425809765cabaf12ebe4e4bc09c',
'./modules/Charts/Dashlets/PredefinedChartDashletScript.tpl' => 'a84073e4b5722d39e693f023eb7813b1', './modules/Charts/Dashlets/PredefinedChartDashletScript.tpl' => 'a84073e4b5722d39e693f023eb7813b1',
'./modules/Charts/DynamicAction.php' => '6c9664747a453c6ee31a4fd782e9b485', './modules/Charts/DynamicAction.php' => '6c9664747a453c6ee31a4fd782e9b485',
'./modules/Charts/PredefinedChart.php' => 'd0dda7dc2f45335974c808153a5a8eed', './modules/Charts/PredefinedChart.php' => 'd0dda7dc2f45335974c808153a5a8eed',
@ -4585,7 +4585,7 @@ $md5_string = array (
'./modules/Emails/EmailUI.php' => '7cc23aa2caa633911ea7db193a6f2a70', './modules/Emails/EmailUI.php' => '7cc23aa2caa633911ea7db193a6f2a70',
'./modules/Emails/EmailUIAjax.php' => '474940d575ae666cd0b00437f75e76d4', './modules/Emails/EmailUIAjax.php' => '474940d575ae666cd0b00437f75e76d4',
'./modules/Emails/EmailValidatorException.php' => 'cb225382f8842456d005769be4f3752d', './modules/Emails/EmailValidatorException.php' => 'cb225382f8842456d005769be4f3752d',
'./modules/Emails/EmailsController.php' => 'f65ff3b077e89ce9d3e4d9002d8d89ed', './modules/Emails/EmailsController.php' => '28c277df9e14bc1235dbd6605fa3e8c9',
'./modules/Emails/EmailsControllerActionGetFromFields.php' => '79f7a51f4969318d92e273efd42c961f', './modules/Emails/EmailsControllerActionGetFromFields.php' => '79f7a51f4969318d92e273efd42c961f',
'./modules/Emails/EmailsDataAddress.php' => 'a5f8b75980e59788f7eb2a8339e7703f', './modules/Emails/EmailsDataAddress.php' => 'a5f8b75980e59788f7eb2a8339e7703f',
'./modules/Emails/EmailsDataAddressCollector.php' => 'ac58f57fb9df4b7dd52d4cff78cbc59c', './modules/Emails/EmailsDataAddressCollector.php' => 'ac58f57fb9df4b7dd52d4cff78cbc59c',
@ -4608,10 +4608,10 @@ $md5_string = array (
'./modules/Emails/controller.php' => '65d6d5ad5e977930403a2b89cb15004a', './modules/Emails/controller.php' => '65d6d5ad5e977930403a2b89cb15004a',
'./modules/Emails/field_arrays.php' => 'f8ad985446f13141ea7365aa8565c500', './modules/Emails/field_arrays.php' => 'f8ad985446f13141ea7365aa8565c500',
'./modules/Emails/include/ComposeView/ComposeView.php' => '45b1a69671ca5c5f2a8ab1455e9f730c', './modules/Emails/include/ComposeView/ComposeView.php' => '45b1a69671ca5c5f2a8ab1455e9f730c',
'./modules/Emails/include/ComposeView/ComposeView.tpl' => '02a1b64bfde0a319fcac90b1b9ebda13', './modules/Emails/include/ComposeView/ComposeView.tpl' => 'c84113fe9c29883d6722824c32111a71',
'./modules/Emails/include/ComposeView/ComposeViewBlank.tpl' => '22365ce6727ffb560e5ad3fc187f13f2', './modules/Emails/include/ComposeView/ComposeViewBlank.tpl' => '22365ce6727ffb560e5ad3fc187f13f2',
'./modules/Emails/include/ComposeView/ComposeViewToolbar.tpl' => '656b26827857375278124e4610b9ff06', './modules/Emails/include/ComposeView/ComposeViewToolbar.tpl' => '656b26827857375278124e4610b9ff06',
'./modules/Emails/include/ComposeView/EmailsComposeView.js' => '38f9a7aefa68cb1c453cf39e3a7bf54d', './modules/Emails/include/ComposeView/EmailsComposeView.js' => '65fcff78a6d86eb59bf4fe841df3b79e',
'./modules/Emails/include/DetailView/EmailsDetailView.php' => 'f95937f398f37afe3927ecc035b8b743', './modules/Emails/include/DetailView/EmailsDetailView.php' => 'f95937f398f37afe3927ecc035b8b743',
'./modules/Emails/include/DetailView/EmailsDraftDetailView.php' => 'baafca815e89a4c0ec3df8b6192552ea', './modules/Emails/include/DetailView/EmailsDraftDetailView.php' => 'baafca815e89a4c0ec3df8b6192552ea',
'./modules/Emails/include/DetailView/EmailsNonImportedDetailView.php' => 'ef9ecbcf65fa6f03e32f94b6a9805b2f', './modules/Emails/include/DetailView/EmailsNonImportedDetailView.php' => 'ef9ecbcf65fa6f03e32f94b6a9805b2f',
@ -4750,7 +4750,7 @@ $md5_string = array (
'./modules/Employees/views/view.list.php' => '3fac70b690d87e7e7dd95f5e2602d129', './modules/Employees/views/view.list.php' => '3fac70b690d87e7e7dd95f5e2602d129',
'./modules/ExternalOAuthConnection/ExternalOAuthConnection.php' => 'cbb2e64b88e64434b92fd0fcbd8e2ac4', './modules/ExternalOAuthConnection/ExternalOAuthConnection.php' => 'cbb2e64b88e64434b92fd0fcbd8e2ac4',
'./modules/ExternalOAuthConnection/Menu.php' => '6ae8433d8a70354ed103bf6c9c227b8a', './modules/ExternalOAuthConnection/Menu.php' => '6ae8433d8a70354ed103bf6c9c227b8a',
'./modules/ExternalOAuthConnection/controller.php' => 'bfc8e833c3a36ac58f6ffa562573ae55', './modules/ExternalOAuthConnection/controller.php' => 'f2b4e030365c48b92d08be2210e8cf3a',
'./modules/ExternalOAuthConnection/entrypoint/redirectToExternalOAuth.php' => '5c7689fab50bbb50b2b10c9a5bf497c8', './modules/ExternalOAuthConnection/entrypoint/redirectToExternalOAuth.php' => '5c7689fab50bbb50b2b10c9a5bf497c8',
'./modules/ExternalOAuthConnection/entrypoint/setExternalOAuthToken.php' => '7b079da4660ddb159a9b529bd05905f8', './modules/ExternalOAuthConnection/entrypoint/setExternalOAuthToken.php' => '7b079da4660ddb159a9b529bd05905f8',
'./modules/ExternalOAuthConnection/js/authenticate.js' => '2f9c2092d9fe9735c3b860d693d87969', './modules/ExternalOAuthConnection/js/authenticate.js' => '2f9c2092d9fe9735c3b860d693d87969',
@ -4773,7 +4773,7 @@ $md5_string = array (
'./modules/ExternalOAuthConnection/views/view.list.php' => 'bf6a7674a1b649099afa941fb7d2e0ba', './modules/ExternalOAuthConnection/views/view.list.php' => 'bf6a7674a1b649099afa941fb7d2e0ba',
'./modules/ExternalOAuthProvider/ExternalOAuthProvider.php' => 'ff4f5725e6ea98b07c06317087b54d30', './modules/ExternalOAuthProvider/ExternalOAuthProvider.php' => 'ff4f5725e6ea98b07c06317087b54d30',
'./modules/ExternalOAuthProvider/Menu.php' => '1d5f42e855c60778bb371e2451bd7c44', './modules/ExternalOAuthProvider/Menu.php' => '1d5f42e855c60778bb371e2451bd7c44',
'./modules/ExternalOAuthProvider/controller.php' => '4092c7ff3987c1df62c2180a0708c7de', './modules/ExternalOAuthProvider/controller.php' => 'ca4c0caf7ab8de22f2ccb3d49c7b4e91',
'./modules/ExternalOAuthProvider/language/en_us.lang.php' => '250b259d406bce7a9bf834e1b9a4c936', './modules/ExternalOAuthProvider/language/en_us.lang.php' => '250b259d406bce7a9bf834e1b9a4c936',
'./modules/ExternalOAuthProvider/metadata/SearchFields.php' => '0238216ef6c3eb39b0a71e70bb58d592', './modules/ExternalOAuthProvider/metadata/SearchFields.php' => '0238216ef6c3eb39b0a71e70bb58d592',
'./modules/ExternalOAuthProvider/metadata/detailviewdefs.php' => 'de6eaf9ac35fe3ae956553769281345d', './modules/ExternalOAuthProvider/metadata/detailviewdefs.php' => 'de6eaf9ac35fe3ae956553769281345d',
@ -5332,7 +5332,7 @@ $md5_string = array (
'./modules/Notes/tpls/QuickCreate.tpl' => '329a21edbab2d4181cf6db7fc28edd3a', './modules/Notes/tpls/QuickCreate.tpl' => '329a21edbab2d4181cf6db7fc28edd3a',
'./modules/Notes/vardefs.php' => 'b9ef43050cd204496c101efbb2bac717', './modules/Notes/vardefs.php' => 'b9ef43050cd204496c101efbb2bac717',
'./modules/OAuth2Clients/Menu.php' => '543ff4403826bdf5cb75db86bfb26530', './modules/OAuth2Clients/Menu.php' => '543ff4403826bdf5cb75db86bfb26530',
'./modules/OAuth2Clients/OAuth2Clients.php' => 'c8d96775b766e4c90fa78f1c23688a09', './modules/OAuth2Clients/OAuth2Clients.php' => '04a5864daa02df2919507b2ac16f8eb3',
'./modules/OAuth2Clients/controller.php' => 'bf680521d60e7e64e7966415f1a3e79c', './modules/OAuth2Clients/controller.php' => 'bf680521d60e7e64e7966415f1a3e79c',
'./modules/OAuth2Clients/js/ClientCredentialsValidation.js' => 'f8652093bb42e1082e8a1b69a6a73f74', './modules/OAuth2Clients/js/ClientCredentialsValidation.js' => 'f8652093bb42e1082e8a1b69a6a73f74',
'./modules/OAuth2Clients/js/PasswordCredentialsValidation.js' => 'd20b36468c15522c07606ddfe6204c64', './modules/OAuth2Clients/js/PasswordCredentialsValidation.js' => 'd20b36468c15522c07606ddfe6204c64',
@ -5574,7 +5574,7 @@ $md5_string = array (
'./modules/ProspectLists/Popup_picker.html' => '242e9467d08481a15f24f9dc62663a94', './modules/ProspectLists/Popup_picker.html' => '242e9467d08481a15f24f9dc62663a94',
'./modules/ProspectLists/ProspectList.php' => '4b34527c253a2637e2f6b4ff72990bb8', './modules/ProspectLists/ProspectList.php' => '4b34527c253a2637e2f6b4ff72990bb8',
'./modules/ProspectLists/ProspectListFormBase.php' => '36adb8d278a608299c2d6ff183af7fd2', './modules/ProspectLists/ProspectListFormBase.php' => '36adb8d278a608299c2d6ff183af7fd2',
'./modules/ProspectLists/Save.php' => '9b3bad7aff47a312451e34a44f63fee8', './modules/ProspectLists/Save.php' => '80045359c8b035593ab8197bbc7f985c',
'./modules/ProspectLists/SubPanelView.html' => '12a8e783bd44a156e193bc1be8247cda', './modules/ProspectLists/SubPanelView.html' => '12a8e783bd44a156e193bc1be8247cda',
'./modules/ProspectLists/SubPanelView.php' => 'c2f9c067fc5a8b04272ea96b2b865ddc', './modules/ProspectLists/SubPanelView.php' => 'c2f9c067fc5a8b04272ea96b2b865ddc',
'./modules/ProspectLists/TargetListUpdate.php' => 'fb273882f80b2dacdcb28239ddfe8e97', './modules/ProspectLists/TargetListUpdate.php' => 'fb273882f80b2dacdcb28239ddfe8e97',
@ -5710,7 +5710,7 @@ $md5_string = array (
'./modules/SchedulersJobs/language/en_us.lang.php' => '213c773d3b36dfdc0b2932d936fe091b', './modules/SchedulersJobs/language/en_us.lang.php' => '213c773d3b36dfdc0b2932d936fe091b',
'./modules/SchedulersJobs/metadata/subpanels/default.php' => '40952b491d66cd328be1237e7dc0750c', './modules/SchedulersJobs/metadata/subpanels/default.php' => '40952b491d66cd328be1237e7dc0750c',
'./modules/SchedulersJobs/vardefs.php' => 'd0606930f15664bf4b40846afead6d3d', './modules/SchedulersJobs/vardefs.php' => 'd0606930f15664bf4b40846afead6d3d',
'./modules/SecurityGroups/AssignGroups.php' => 'd27ab498ec58d4e232b7f7ec607e410c', './modules/SecurityGroups/AssignGroups.php' => '36a0479e931f51d46c5fb8c16aaffe2f',
'./modules/SecurityGroups/Forms.php' => 'd41d8cd98f00b204e9800998ecf8427e', './modules/SecurityGroups/Forms.php' => 'd41d8cd98f00b204e9800998ecf8427e',
'./modules/SecurityGroups/MassAssign.php' => '12fe7e2a54311bba14fba390fda8a523', './modules/SecurityGroups/MassAssign.php' => '12fe7e2a54311bba14fba390fda8a523',
'./modules/SecurityGroups/Menu.php' => '17fdeb091b747acd1b2a698bc3a88bbc', './modules/SecurityGroups/Menu.php' => '17fdeb091b747acd1b2a698bc3a88bbc',
@ -5778,7 +5778,7 @@ $md5_string = array (
'./modules/Studio/DropDowns/EditView.tpl' => '1daa9d2575cfd5788576f7c8f06940a5', './modules/Studio/DropDowns/EditView.tpl' => '1daa9d2575cfd5788576f7c8f06940a5',
'./modules/Studio/Forms.php' => 'f1b9c09d71cbf6919f46b99b9a0286d3', './modules/Studio/Forms.php' => 'f1b9c09d71cbf6919f46b99b9a0286d3',
'./modules/Studio/JSTransaction.js' => '54c0f25b68890452424d8819eeead469', './modules/Studio/JSTransaction.js' => '54c0f25b68890452424d8819eeead469',
'./modules/Studio/SaveTabs.php' => '75d018757e60ea2eaf6439edae57b1ea', './modules/Studio/SaveTabs.php' => 'c094c676c1e7b64b9f2d2f393724c280',
'./modules/Studio/TabGroups/EditViewTabs.php' => '0d3792d18876f5dfbf3599510dc04bb3', './modules/Studio/TabGroups/EditViewTabs.php' => '0d3792d18876f5dfbf3599510dc04bb3',
'./modules/Studio/TabGroups/EditViewTabs.tpl' => '943135f9e634454cbcc1a7d678d054a7', './modules/Studio/TabGroups/EditViewTabs.tpl' => '943135f9e634454cbcc1a7d678d054a7',
'./modules/Studio/TabGroups/TabGroupHelper.php' => 'c56673375908c7ceb08d28a23204b572', './modules/Studio/TabGroups/TabGroupHelper.php' => 'c56673375908c7ceb08d28a23204b572',
@ -5803,7 +5803,7 @@ $md5_string = array (
'./modules/SugarFeed/Dashlets/SugarFeedDashlet/UserPostForm.tpl' => 'ef42d6abc5fd5f672d6540224aa3730e', './modules/SugarFeed/Dashlets/SugarFeedDashlet/UserPostForm.tpl' => 'ef42d6abc5fd5f672d6540224aa3730e',
'./modules/SugarFeed/Forms.php' => 'd41d8cd98f00b204e9800998ecf8427e', './modules/SugarFeed/Forms.php' => 'd41d8cd98f00b204e9800998ecf8427e',
'./modules/SugarFeed/Menu.php' => '22842b6d2806ee33c75378a3ce284121', './modules/SugarFeed/Menu.php' => '22842b6d2806ee33c75378a3ce284121',
'./modules/SugarFeed/SugarFeed.php' => 'c2587f755157c000474ed565a0253e42', './modules/SugarFeed/SugarFeed.php' => 'ae0dfdefaa62cf798f9e1603fc9cdf46',
'./modules/SugarFeed/SugarFeedFlush.php' => 'c5861f849a67f9129ddd03006f336ea3', './modules/SugarFeed/SugarFeedFlush.php' => 'c5861f849a67f9129ddd03006f336ea3',
'./modules/SugarFeed/action_view_map.php' => 'ef827ccc71707c55e2f4aeee52a3ea38', './modules/SugarFeed/action_view_map.php' => 'ef827ccc71707c55e2f4aeee52a3ea38',
'./modules/SugarFeed/feedLogicBase.php' => 'bfb4cbeba25d3e81b7acfc1316aef90b', './modules/SugarFeed/feedLogicBase.php' => 'bfb4cbeba25d3e81b7acfc1316aef90b',
@ -5893,7 +5893,7 @@ $md5_string = array (
'./modules/SurveyResponses/metadata/studio.php' => 'd1a4aee4586f29bc1d22f2719b156bd1', './modules/SurveyResponses/metadata/studio.php' => 'd1a4aee4586f29bc1d22f2719b156bd1',
'./modules/SurveyResponses/metadata/subpanels/default.php' => 'fcece223dc6df7455f9d979e50d17ef1', './modules/SurveyResponses/metadata/subpanels/default.php' => 'fcece223dc6df7455f9d979e50d17ef1',
'./modules/SurveyResponses/tpls/detailquestionresponses.tpl' => 'e721176cde9db9ee091ae29b11e68ac8', './modules/SurveyResponses/tpls/detailquestionresponses.tpl' => 'e721176cde9db9ee091ae29b11e68ac8',
'./modules/SurveyResponses/vardefs.php' => '0282afec38f3202a4227f3596e3e9b2c', './modules/SurveyResponses/vardefs.php' => '19965a10a71f556459d978ed5a52990c',
'./modules/Surveys/Dashlets/SurveysDashlet/SurveysDashlet.meta.php' => '8a0be697554c54281b29bd9bc8facfd8', './modules/Surveys/Dashlets/SurveysDashlet/SurveysDashlet.meta.php' => '8a0be697554c54281b29bd9bc8facfd8',
'./modules/Surveys/Dashlets/SurveysDashlet/SurveysDashlet.php' => '533474ccb58910c160091f6898494202', './modules/Surveys/Dashlets/SurveysDashlet/SurveysDashlet.php' => '533474ccb58910c160091f6898494202',
'./modules/Surveys/Entry/Survey.php' => '61d81ae614ff0e25a75763a52ef1eeb6', './modules/Surveys/Entry/Survey.php' => '61d81ae614ff0e25a75763a52ef1eeb6',
@ -6093,7 +6093,7 @@ $md5_string = array (
'./modules/Users/authentication/SugarAuthenticate/FactorAuthEmailCode.tpl' => '7d47d05738a22f219f9a96ee5393792c', './modules/Users/authentication/SugarAuthenticate/FactorAuthEmailCode.tpl' => '7d47d05738a22f219f9a96ee5393792c',
'./modules/Users/authentication/SugarAuthenticate/FactorAuthFactory.php' => '02b5b7c4588faf6268b79741850379c4', './modules/Users/authentication/SugarAuthenticate/FactorAuthFactory.php' => '02b5b7c4588faf6268b79741850379c4',
'./modules/Users/authentication/SugarAuthenticate/FactorAuthInterface.php' => '01bb1e373dcf4cc53dc3ff41f0040d00', './modules/Users/authentication/SugarAuthenticate/FactorAuthInterface.php' => '01bb1e373dcf4cc53dc3ff41f0040d00',
'./modules/Users/authentication/SugarAuthenticate/SugarAuthenticate.php' => 'b4b7219975758e1c1ef4d10725e5c495', './modules/Users/authentication/SugarAuthenticate/SugarAuthenticate.php' => '7844f2aa29e40d890a7ecd80605e060b',
'./modules/Users/authentication/SugarAuthenticate/SugarAuthenticateUser.php' => 'c59bb9e71e48bed5bb9322ec9416e7b9', './modules/Users/authentication/SugarAuthenticate/SugarAuthenticateUser.php' => 'c59bb9e71e48bed5bb9322ec9416e7b9',
'./modules/Users/controller.php' => '65021ed13247766dc3353cdbf8e8dada', './modules/Users/controller.php' => '65021ed13247766dc3353cdbf8e8dada',
'./modules/Users/entryPointSaveGoogleApiKey.php' => 'af2395a659fbe4c935ac555e4f3b592b', './modules/Users/entryPointSaveGoogleApiKey.php' => 'af2395a659fbe4c935ac555e4f3b592b',
@ -6355,7 +6355,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' => 'b94f5eb3153f82f1259c2f4b62d036d9', './suitecrm_version.php' => 'b2203e609053399bc053aa7df09524eb',
'./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',

View file

@ -1238,17 +1238,17 @@ EOQ;
*/ */
public function addDate($displayname, $varname) public function addDate($displayname, $varname)
{ {
global $timedate; global $timedate, $app_strings, $app_list_strings, $theme, $current_user;
//letrium ltd //letrium ltd
$displayname = addslashes($displayname); $displayname = addslashes($displayname);
$userformat = '(' . $timedate->get_user_date_format() . ')'; $userformat = '(' . $timedate->get_user_date_format() . ')';
$cal_dateformat = $timedate->get_cal_date_format(); $cal_dateformat = $timedate->get_cal_date_format();
global $app_strings, $app_list_strings, $theme; $cal_fdow = $current_user->get_first_day_of_week() ? $current_user->get_first_day_of_week() : '0';
$javascriptend = <<<EOQ $javascriptend = <<<EOQ
<script type="text/javascript"> <script type="text/javascript">
Calendar.setup ({ Calendar.setup ({
inputField : "${varname}jscal_field", daFormat : "$cal_dateformat", ifFormat : "$cal_dateformat", showsTime : false, button : "${varname}jscal_trigger", singleClick : true, step : 1, weekNumbers:false inputField : "${varname}jscal_field", daFormat : "$cal_dateformat", ifFormat : "$cal_dateformat", showsTime : false, button : "${varname}jscal_trigger", singleClick : true, step : 1, startWeekday: $cal_fdow, weekNumbers:false
}); });
</script> </script>
EOQ; EOQ;
@ -1296,10 +1296,10 @@ EOQ;
*/ */
public function addDatetime($displayname, $varname) public function addDatetime($displayname, $varname)
{ {
global $timedate; global $timedate, $app_strings, $app_list_strings, $theme, $current_user;
$userformat = $timedate->get_user_time_format(); $userformat = $timedate->get_user_time_format();
$cal_dateformat = $timedate->get_cal_date_format(); $cal_dateformat = $timedate->get_cal_date_format();
global $app_strings, $app_list_strings, $theme; $cal_fdow = $current_user->get_first_day_of_week() ? $current_user->get_first_day_of_week() : '0';
$javascriptend = <<<EOQ $javascriptend = <<<EOQ
@ -1337,6 +1337,7 @@ EOQ;
button : "{$varname}_trigger", button : "{$varname}_trigger",
singleClick : true, singleClick : true,
step : 1, step : 1,
startWeekday: $cal_fdow,
weekNumbers:false weekNumbers:false
}); });

View file

@ -101,6 +101,7 @@ button : "start_range_{$id}_trigger",
singleClick : true, singleClick : true,
dateStr : "{$date_value}", dateStr : "{$date_value}",
step : 1, step : 1,
startWeekday: {$CALENDAR_FDOW|default:'0'},
weekNumbers:false weekNumbers:false
{rdelim} {rdelim}
); );
@ -126,6 +127,7 @@ button : "end_range_{$id}_trigger",
singleClick : true, singleClick : true,
dateStr : "{$date_value}", dateStr : "{$date_value}",
step : 1, step : 1,
startWeekday: {$CALENDAR_FDOW|default:'0'},
weekNumbers:false weekNumbers:false
{rdelim} {rdelim}
); );

View file

@ -78,6 +78,7 @@ class SuiteEditorConnector
height : '480', height : '480',
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,
}" }"
); );
} }

View file

@ -171,7 +171,7 @@ class TemplateHandler
); );
$contents = $this->ss->fetch($tpl); $contents = $this->ss->fetch($tpl);
// Insert validation and quick search stuff here // Insert validation and quick search stuff here
if ($view === 'EditView' || $ajaxSave || $view === 'ConvertLead' || strpos($view, 'QuickCreate')) { if ($view === 'EditView' || $ajaxSave || $view === 'ConvertLead' || $view === 'ComposeView' || strpos($view, 'QuickCreate')) {
global $dictionary, $beanList, $app_strings, $mod_strings; global $dictionary, $beanList, $app_strings, $mod_strings;
$mod = $beanList[$module]; $mod = $beanList[$module];

View file

@ -278,6 +278,13 @@ function export($type, $records = null, $members = false, $sample=false)
require_once('modules/Currencies/Currency.php'); require_once('modules/Currencies/Currency.php');
$value = currency_format_number($value); $value = currency_format_number($value);
break; break;
// Fix Issue 9326 - Adding Decimal and Float case to retrieve user-defined decimal separator
case 'decimal':
case 'float':
$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;
$value = str_replace('.', $dec_sep, $value);
break;
//if our value is a datetime field, then apply the users locale //if our value is a datetime field, then apply the users locale
case 'datetime': case 'datetime':
@ -305,7 +312,9 @@ function export($type, $records = null, $members = false, $sample=false)
$value = implode(",", $valueArray); $value = implode(",", $valueArray);
break; break;
// Fix Issue 9153 - Exporting DynamicDropdown fields return keys
case 'dynamicenum':
case 'enum': case 'enum':
if (isset($focus->field_name_map[$fields_array[$key]]['options']) && if (isset($focus->field_name_map[$fields_array[$key]]['options']) &&
isset($app_list_strings[$focus->field_name_map[$fields_array[$key]]['options']]) && isset($app_list_strings[$focus->field_name_map[$fields_array[$key]]['options']]) &&

View file

@ -101,13 +101,12 @@ class SugarWidgetSubPanelTopComposeEmailButton extends SugarWidgetSubPanelTopBut
$emailUI = new EmailUI(); $emailUI = new EmailUI();
$emailUI->appendTick = false; $emailUI->appendTick = false;
$button = '<a class="email-link" onclick="$(document).openComposeViewModal(this);" data-module="' $button = '<div type="hidden" onclick="currentModule=\''
. $bean->module_name . '" data-record-id="' . $bean->module_name . '\';$(document).openComposeViewModal(this);" data-module="'
. $bean->id . '" data-module-name="' . $bean->module_name . '" data-record-id="'
. $bean->name .'" data-email-address="' . $bean->id . '" data-module-name="'
. $bean->email1 .'">' . $bean->name .'" data-email-address="'
. $app_strings['LBL_COMPOSE_EMAIL_BUTTON_LABEL'] . $bean->email1 .'">';
. '</a>';
} }
return $button; return $button;

View file

@ -36,7 +36,7 @@
* reasonably feasible for technical reasons, the Appropriate Legal Notices must * reasonably feasible for technical reasons, the Appropriate Legal Notices must
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM". * display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
*/(function($){$.fn.EmailsComposeViewModal=function(options){"use strict";var self=this;var opts=$.extend({},$.fn.EmailsComposeViewModal.defaults,options);self.handleClick=function(e){"use strict";var self=this;self.emailComposeView=null;var opts=$.extend({},$.fn.EmailsComposeViewModal.defaults);var composeBox=$('<div></div>').appendTo(opts.contentSelector);composeBox.messageBox({"showHeader":false,"showFooter":false,"size":'lg'});composeBox.setBody('<div class="email-in-progress"><img src="themes/'+SUGAR.themes.theme_name+'/images/loading.gif"></div>');composeBox.show();$.ajax({type:"GET",cache:false,url:'index.php?module=Emails&action=ComposeView&in_popup=1'}).done(function(data){if(data.length===0){console.error("Unable to display ComposeView");composeBox.setBody(SUGAR.language.translate('','ERR_AJAX_LOAD'));return;} */(function($){$.fn.EmailsComposeViewModal=function(options){"use strict";var self=this;var opts=$.extend({},$.fn.EmailsComposeViewModal.defaults,options);self.handleClick=function(e){"use strict";var self=this;self.emailComposeView=null;var opts=$.extend({},$.fn.EmailsComposeViewModal.defaults);var composeBox=$('<div></div>').appendTo(opts.contentSelector);composeBox.messageBox({"showHeader":false,"showFooter":false,"size":'lg'});composeBox.setBody('<div class="email-in-progress"><img src="themes/'+SUGAR.themes.theme_name+'/images/loading.gif"></div>');composeBox.show();$.ajax({type:"GET",cache:false,url:'index.php?module=Emails&action=ComposeView&in_popup=1'}).done(function(data){if(data.length===0){console.error("Unable to display ComposeView");composeBox.setBody(SUGAR.language.translate('','ERR_AJAX_LOAD'));return;}
composeBox.setBody(data);self.emailComposeView=composeBox.controls.modal.body.find('.compose-view').EmailsComposeView();$(self.emailComposeView).on('sentEmail',function(event,composeView){composeBox.hide();composeBox.remove();});$(self.emailComposeView).on('disregardDraft',function(event,composeView){if(typeof messageBox!=="undefined"){var mb=messageBox({size:'lg'});mb.setTitle(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_DRAFT_TITLE'));mb.setBody(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_DRAFT_BODY'));mb.on('ok',function(){mb.remove();composeBox.hide();composeBox.remove();});mb.on('cancel',function(){mb.remove();});mb.show();}else{if(confirm(self.translatedErrorMessage)){composeBox.hide();composeBox.remove();}}});composeBox.on('cancel',function(){composeBox.remove();});composeBox.on('hide.bs.modal',function(){composeBox.remove();});}).fail(function(data){composeBox.controls.modal.content.html(SUGAR.language.translate('','LBL_EMAIL_ERROR_GENERAL_TITLE'));});return $(self);};self.construct=function(){"use strict";$(opts.buttonSelector).click(self.handleClick)};self.destruct=function(){};self.construct();return $(self);};$.fn.openComposeViewModal=function(source){"use strict";window.event.preventDefault();window.event.stopImmediatePropagation();var self=this;self.emailComposeView=null;var opts=$.extend({},$.fn.EmailsComposeViewModal.defaults);var composeBox=$('<div></div>').appendTo(opts.contentSelector);composeBox.messageBox({"showHeader":false,"showFooter":false,"size":'lg'});composeBox.setBody('<div class="email-in-progress"><img src="themes/'+SUGAR.themes.theme_name+'/images/loading.gif"></div>');composeBox.show();var relatedId=$('[name="record"]').val();var ids='&ids=';if($(source).attr('data-record-id')!==''){ids=ids+$(source).attr('data-record-id');relatedId=$(source).attr('data-record-id');} composeBox.setBody(data);self.emailComposeView=composeBox.controls.modal.body.find('.compose-view').EmailsComposeView();$(self.emailComposeView).on('sentEmail',function(event,composeView){composeBox.hide();composeBox.remove();});$(self.emailComposeView).on('disregardDraft',function(event,composeView){if(typeof messageBox!=="undefined"){var mb=messageBox({size:'lg'});mb.setTitle(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_DRAFT_TITLE'));mb.setBody(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_DRAFT_BODY'));mb.on('ok',function(){mb.remove();composeBox.hide();composeBox.remove();});mb.on('cancel',function(){mb.remove();});mb.show();}else{if(confirm(self.translatedErrorMessage)){composeBox.hide();composeBox.remove();}}});composeBox.on('cancel',function(){composeBox.remove();});composeBox.on('hide.bs.modal',function(){composeBox.remove();});$("#emails_email_templates_name").change(function(){$.fn.EmailsComposeView.onTemplateChange()});}).fail(function(data){composeBox.controls.modal.content.html(SUGAR.language.translate('','LBL_EMAIL_ERROR_GENERAL_TITLE'));});return $(self);};self.construct=function(){"use strict";$(opts.buttonSelector).click(self.handleClick)};self.destruct=function(){};self.construct();return $(self);};$.fn.openComposeViewModal=function(source){"use strict";window.event.preventDefault();window.event.stopImmediatePropagation();var self=this;self.emailComposeView=null;var opts=$.extend({},$.fn.EmailsComposeViewModal.defaults);var composeBox=$('<div></div>').appendTo(opts.contentSelector);composeBox.messageBox({"showHeader":false,"showFooter":false,"size":'lg'});composeBox.setBody('<div class="email-in-progress"><img src="themes/'+SUGAR.themes.theme_name+'/images/loading.gif"></div>');composeBox.show();var relatedId=$('[name="record"]').val();var ids='&ids=';if($(source).attr('data-record-id')!==''){ids=ids+$(source).attr('data-record-id');relatedId=$(source).attr('data-record-id');}
else{var inputs=document.MassUpdate.elements;for(var i=0;i<inputs.length;i++){if(inputs[i].name==='mass[]'&&inputs[i].checked){ids=ids+inputs[i].value+',';}}} else{var inputs=document.MassUpdate.elements;for(var i=0;i<inputs.length;i++){if(inputs[i].name==='mass[]'&&inputs[i].checked){ids=ids+inputs[i].value+',';}}}
var targetModule=currentModule;if($(source).attr('data-module')!==''){targetModule=$(source).attr('data-module');} var targetModule=currentModule;if($(source).attr('data-module')!==''){targetModule=$(source).attr('data-module');}
var url='index.php?module=Emails&action=ComposeView&in_popup=1&targetModule='+targetModule+ids+'&relatedModule='+currentModule+'&relatedId='+relatedId;$.ajax({type:"GET",cache:false,url:url}).done(function(data){if(data.length===0){console.error("Unable to display ComposeView");composeBox.setBody(SUGAR.language.translate('','ERR_AJAX_LOAD'));return;} var url='index.php?module=Emails&action=ComposeView&in_popup=1&targetModule='+targetModule+ids+'&relatedModule='+currentModule+'&relatedId='+relatedId;$.ajax({type:"GET",cache:false,url:url}).done(function(data){if(data.length===0){console.error("Unable to display ComposeView");composeBox.setBody(SUGAR.language.translate('','ERR_AJAX_LOAD'));return;}
@ -47,4 +47,4 @@ populateEmailAddress=$(this).attr('data-record-email');if(dataEmailAddress!=='')
if(populateEmailAddress!==''){if(targetCount>0){targetList=targetList+',';} if(populateEmailAddress!==''){if(targetCount>0){targetList=targetList+',';}
targetList=targetList+dataEmailName+' <'+populateEmailAddress+'>';targetCount++;}});if(targetCount>0){$(self.emailComposeView).find('#to_addrs_names').val(targetList);} targetList=targetList+dataEmailName+' <'+populateEmailAddress+'>';targetCount++;}});if(targetCount>0){$(self.emailComposeView).find('#to_addrs_names').val(targetList);}
if(targetCount<2){$(self.emailComposeView).find('#parent_type').val(populateModule);$(self.emailComposeView).find('#parent_name').val(populateModuleName);$(self.emailComposeView).find('#parent_id').val(populateModuleRecord);} if(targetCount<2){$(self.emailComposeView).find('#parent_type').val(populateModule);$(self.emailComposeView).find('#parent_name').val(populateModuleName);$(self.emailComposeView).find('#parent_id').val(populateModuleRecord);}
$(self.emailComposeView).on('sentEmail',function(event,composeView){composeBox.hide();composeBox.remove();});$(self.emailComposeView).on('disregardDraft',function(event,composeView){if(typeof messageBox!=="undefined"){var mb=messageBox({size:'lg'});mb.setTitle(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_DRAFT_TITLE'));mb.setBody(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_DRAFT_BODY'));mb.on('ok',function(){mb.remove();composeBox.hide();composeBox.remove();});mb.on('cancel',function(){mb.remove();});mb.show();}else{if(confirm(self.translatedErrorMessage)){composeBox.hide();composeBox.remove();}}});composeBox.on('cancel',function(){composeBox.remove();});composeBox.on('hide.bs.modal',function(e){e.preventDefault();var mb=messageBox({size:'lg'});mb.setTitle(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_EMAIL_TITLE'));mb.setBody(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_EMAIL_BODY'));mb.on('ok',function(){mb.remove();composeBox.hide();composeBox.remove();});mb.on('cancel',function(){mb.remove();});mb.show();});}).fail(function(data){composeBox.controls.modal.content.html(SUGAR.language.translate('','LBL_EMAIL_ERROR_GENERAL_TITLE'));});return $(self);};$.fn.EmailsComposeViewModal.defaults={'selected':'INBOX','buttonSelector':'[data-action=emails-show-compose-modal]','contentSelector':'#content'};}(jQuery)); $(self.emailComposeView).on('sentEmail',function(event,composeView){composeBox.hide();composeBox.remove();});$(self.emailComposeView).on('disregardDraft',function(event,composeView){if(typeof messageBox!=="undefined"){var mb=messageBox({size:'lg'});mb.setTitle(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_DRAFT_TITLE'));mb.setBody(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_DRAFT_BODY'));mb.on('ok',function(){mb.remove();composeBox.hide();composeBox.remove();});mb.on('cancel',function(){mb.remove();});mb.show();}else{if(confirm(self.translatedErrorMessage)){composeBox.hide();composeBox.remove();}}});composeBox.on('cancel',function(){composeBox.remove();});composeBox.on('hide.bs.modal',function(e){e.preventDefault();var mb=messageBox({size:'lg'});mb.setTitle(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_EMAIL_TITLE'));mb.setBody(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_EMAIL_BODY'));mb.on('ok',function(){mb.remove();composeBox.hide();composeBox.remove();});mb.on('cancel',function(){mb.remove();});mb.show();});$("#emails_email_templates_name").change(function(){$.fn.EmailsComposeView.onTemplateChange()});}).fail(function(data){composeBox.controls.modal.content.html(SUGAR.language.translate('','LBL_EMAIL_ERROR_GENERAL_TITLE'));});return $(self);};$.fn.EmailsComposeViewModal.defaults={'selected':'INBOX','buttonSelector':'[data-action=emails-show-compose-modal]','contentSelector':'#content'};}(jQuery));

View file

@ -573,8 +573,9 @@ URL+='&create='+create;if(metadata!=''&&metadata!=undefined){URL+='&metadata='+m
if(popup_request_data.jsonObject){var request_data=popup_request_data.jsonObject;}else{var request_data=popup_request_data;} if(popup_request_data.jsonObject){var request_data=popup_request_data.jsonObject;}else{var request_data=popup_request_data;}
var field_to_name_array_url='';if(request_data&&request_data.field_to_name_array!=undefined){for(var key in request_data.field_to_name_array){if(key.toLowerCase()!='id'){field_to_name_array_url+='&field_to_name[]='+encodeURIComponent(key.toLowerCase());}}} var field_to_name_array_url='';if(request_data&&request_data.field_to_name_array!=undefined){for(var key in request_data.field_to_name_array){if(key.toLowerCase()!='id'){field_to_name_array_url+='&field_to_name[]='+encodeURIComponent(key.toLowerCase());}}}
if(field_to_name_array_url){URL+=field_to_name_array_url;} if(field_to_name_array_url){URL+=field_to_name_array_url;}
win=SUGAR.util.openWindow(URL,windowName,windowFeatures);if(window.focus){win.focus();} win=SUGAR.util.openWindow(URL,windowName,windowFeatures);if(win){if(win.focus){win.focus();}
win.popupCount=popupCount;return win;} win.popupCount=popupCount;return win;}
return;}
var from_popup_return=false;function replaceHTMLChars(value){return value.replace(/&amp;/gi,'&').replace(/&lt;/gi,'<').replace(/&gt;/gi,'>').replace(/&#039;/gi,'\'').replace(/&quot;/gi,'"');} var from_popup_return=false;function replaceHTMLChars(value){return value.replace(/&amp;/gi,'&').replace(/&lt;/gi,'<').replace(/&gt;/gi,'>').replace(/&#039;/gi,'\'').replace(/&quot;/gi,'"');}
function set_return_basic(popup_reply_data,filter){var form_name=popup_reply_data.form_name;var name_to_value_array=popup_reply_data.name_to_value_array;for(var the_key in name_to_value_array){if(the_key=='toJSON'){} function set_return_basic(popup_reply_data,filter){var form_name=popup_reply_data.form_name;var name_to_value_array=popup_reply_data.name_to_value_array;for(var the_key in name_to_value_array){if(the_key=='toJSON'){}
else if(the_key.match(filter)){var displayValue=replaceHTMLChars(name_to_value_array[the_key]);if(window.document.forms[form_name]&&window.document.forms[form_name].elements[the_key]){if(window.document.forms[form_name].elements[the_key].tagName=='SELECT'){var selectField=window.document.forms[form_name].elements[the_key];for(var i=0;i<selectField.options.length;i++){if(selectField.options[i].text==displayValue){selectField.options[i].selected=true;SUGAR.util.callOnChangeListers(selectField);break;}}}else{window.document.forms[form_name].elements[the_key].value=displayValue;SUGAR.util.callOnChangeListers(window.document.forms[form_name].elements[the_key]);}}}}} else if(the_key.match(filter)){var displayValue=replaceHTMLChars(name_to_value_array[the_key]);if(window.document.forms[form_name]&&window.document.forms[form_name].elements[the_key]){if(window.document.forms[form_name].elements[the_key].tagName=='SELECT'){var selectField=window.document.forms[form_name].elements[the_key];for(var i=0;i<selectField.options.length;i++){if(selectField.options[i].text==displayValue){selectField.options[i].selected=true;SUGAR.util.callOnChangeListers(selectField);break;}}}else{window.document.forms[form_name].elements[the_key].value=displayValue;SUGAR.util.callOnChangeListers(window.document.forms[form_name].elements[the_key]);}}}}}

View file

@ -504,13 +504,6 @@ function get_sugar_config_defaults(): array
'jpg' 'jpg'
], ],
'upload_maxsize' => 30000000, 'upload_maxsize' => 30000000,
'allowed_preview' => [
'pdf',
'gif',
'png',
'jpeg',
'jpg'
],
'import_max_execution_time' => 3600, 'import_max_execution_time' => 3600,
// 'use_php_code_json' => returnPhpJsonStatus(), // 'use_php_code_json' => returnPhpJsonStatus(),
'verify_client_ip' => true, 'verify_client_ip' => true,

View file

@ -97,6 +97,9 @@
composeBox.on('hide.bs.modal', function () { composeBox.on('hide.bs.modal', function () {
composeBox.remove(); composeBox.remove();
}); });
$( "#emails_email_templates_name" ).change(function() {
$.fn.EmailsComposeView.onTemplateChange()
});
}).fail(function (data) { }).fail(function (data) {
composeBox.controls.modal.content.html(SUGAR.language.translate('', 'LBL_EMAIL_ERROR_GENERAL_TITLE')); composeBox.controls.modal.content.html(SUGAR.language.translate('', 'LBL_EMAIL_ERROR_GENERAL_TITLE'));
}); });
@ -252,6 +255,9 @@
}); });
mb.show(); mb.show();
}); });
$( "#emails_email_templates_name" ).change(function() {
$.fn.EmailsComposeView.onTemplateChange()
});
}).fail(function (data) { }).fail(function (data) {
composeBox.controls.modal.content.html(SUGAR.language.translate('', 'LBL_EMAIL_ERROR_GENERAL_TITLE')); composeBox.controls.modal.content.html(SUGAR.language.translate('', 'LBL_EMAIL_ERROR_GENERAL_TITLE'));
}); });

View file

@ -4510,17 +4510,15 @@ function open_popup(module_name, width, height, initial_filter, close_popup, hid
if (field_to_name_array_url) { if (field_to_name_array_url) {
URL += field_to_name_array_url; URL += field_to_name_array_url;
} }
win = SUGAR.util.openWindow(URL, windowName, windowFeatures); win = SUGAR.util.openWindow(URL, windowName, windowFeatures);
if(win) {
if (window.focus) { $(win).focus(function(){
// put the focus on the popup if the browser supports the focus() method win.focus();
win.focus(); });
win.popupCount = popupCount;
return win;
} }
return '';
win.popupCount = popupCount;
return win;
} }
/** /**

View file

@ -288,6 +288,8 @@ CAL.repeat_type_selected = function () {
} }
CAL.load_form = function (module_name, record, edit_all_recurrences, cal_event) { CAL.load_form = function (module_name, record, edit_all_recurrences, cal_event) {
CAL.disable_creating = true; CAL.disable_creating = true;
CAL.reset_edit_dialog();
CAL.disable_buttons();
var e; var e;
var to_open = true; var to_open = true;

View file

@ -63,4 +63,9 @@ class ClientEntity implements ClientEntityInterface
{ {
$this->redirectUri = $uri; $this->redirectUri = $uri;
} }
public function setIsConfidential($confidential)
{
$this->isConfidential = $confidential;
}
} }

View file

@ -42,7 +42,6 @@ namespace SuiteCRM\API\OAuth2\Repositories;
use League\OAuth2\Server\Repositories\ClientRepositoryInterface; use League\OAuth2\Server\Repositories\ClientRepositoryInterface;
use SuiteCRM\API\OAuth2\Entities\ClientEntity; use SuiteCRM\API\OAuth2\Entities\ClientEntity;
use SuiteCRM\API\OAuth2\Exception\GrantTypeNotAllowedForClient;
class ClientRepository implements ClientRepositoryInterface class ClientRepository implements ClientRepositoryInterface
{ {
@ -50,7 +49,7 @@ class ClientRepository implements ClientRepositoryInterface
* {@inheritdoc} * {@inheritdoc}
* @return null|ClientEntity * @return null|ClientEntity
*/ */
public function getClientEntity($clientIdentifier, $grantType, $clientSecret = null, $mustValidateSecret = true) public function getClientEntity($clientIdentifier)
{ {
$client = new \OAuth2Clients(); $client = new \OAuth2Clients();
$client->retrieve($clientIdentifier); $client->retrieve($clientIdentifier);
@ -58,25 +57,23 @@ class ClientRepository implements ClientRepositoryInterface
return null; return null;
} }
if ($client->allowed_grant_type !== $grantType) {
throw new GrantTypeNotAllowedForClient();
}
if (
$mustValidateSecret === true
&& (bool)$client->is_confidential === true
&& hash('sha256', $clientSecret) !== $client->secret
) {
return null;
}
$clientEntity = new ClientEntity(); $clientEntity = new ClientEntity();
$clientEntity->setIdentifier($clientIdentifier); $clientEntity->setIdentifier($clientIdentifier);
$clientEntity->setName($client->name); $clientEntity->setName($client->name);
$clientEntity->setRedirectUri($client->redirect_uri ?? '');
$redirect_url = isset($client->redirect_uri) ? $client->redirect_uri : ''; $clientEntity->setIsConfidential($client->is_confidential ?? false);
$clientEntity->setRedirectUri($redirect_url);
return $clientEntity; return $clientEntity;
} }
public function validateClient($clientIdentifier, $clientSecret, $grantType)
{
$client = new \OAuth2Clients();
$client->retrieve($clientIdentifier);
if (empty($client->id)) {
return null;
}
return hash('sha256', $clientSecret) === $client->secret && $grantType === $client->allowed_grant_type;
}
} }

View file

@ -403,9 +403,9 @@ class FormulaCalculator
return date($params[0], strtotime($params[1])); return date($params[0], strtotime($params[1]));
} }
if (($params = $this->evaluateFunctionParams("datediff", $text, $childItems)) != null) { if (($params = $this->evaluateFunctionParams("datediff", $text, $childItems)) != null) {
$d1 = new DateTime($params[0]); $d1 = new DateTime($this->getDBFormat($params[0]));
$d2 = new DateTime($params[1]); $d2 = new DateTime($this->getDBFormat($params[1]));
$diff = $d1->diff($d2); $diff = $d1->diff($d2);
switch ($params[2]) { switch ($params[2]) {
@ -660,7 +660,7 @@ class FormulaCalculator
{ {
$prefix = $isTime ? 'PT' : 'P'; $prefix = $isTime ? 'PT' : 'P';
$datetime = new DateTime($datestring); $datetime = new DateTime($this->getDBFormat($datestring));
if ($isAdd) { if ($isAdd) {
$datetime->add(new DateInterval($prefix . $ammount . $type)); $datetime->add(new DateInterval($prefix . $ammount . $type));
@ -849,4 +849,43 @@ class FormulaCalculator
{ {
return sprintf("%0" . $digits . "d", $value); return sprintf("%0" . $digits . "d", $value);
} }
/**
* Outputs date and datetime values in DB format
*
* @param String $date
* @return String
*/
private function getDBFormat($date) {
// 1) If WF is thrown by the after_save LH, the bean is already loaded and the date/datetime value
// is properly formatted, so will only change the timezone value from UTC to user's one.
// 2) If WF is run by the scheduler task, will change date/datetime value to DB format.
$formatDate = 'Y-m-d';
$validDate = DateTime::createFromFormat($formatDate, $date);
$formatDateTime = 'Y-m-d H:i:s';
$validDateTime = DateTime::createFromFormat($formatDateTime, $date);
if ($validDate && $validDate->format($formatDate) === $date) {
// Nothing to do
return $date;
} else if ($validDateTime && $validDateTime->format($formatDateTime) === $date) {
// Set TZ to user's TZ
global $timedate, $current_user;
$date = $timedate->fromDb($date);
$date = $timedate->tzUser($date, $current_user);
return $date->format('Y-m-d H:i:s');
} else { // In this case the WF is run by the cron
global $current_user, $timedate;
if(strpos($date, " ") !== false){
$type = 'datetime';
} else{
$type = 'date';
}
$date = $timedate->fromUserType($date, $type, $current_user);
if ($date) {
return $date->asDb(false);
}
return null;
}
}
} }

View file

@ -103,12 +103,13 @@ class actionComputeField extends actionBase
$relateFields = $this->getAllRelatedFields($bean); $relateFields = $this->getAllRelatedFields($bean);
for ($i = 0; $i < count($formulas); $i++) { for ($i = 0; $i < count($formulas); $i++) {
if (array_key_exists($formulas[$i], $relateFields) && isset($relateFields[$formulas[$i]]['id_name'])) { if (array_key_exists($formulas[$i], $relateFields) && isset($relateFields[$formulas[$i]]['id_name'])) {
$bean->{$relateFields[$formulas[$i]]['id_name']} = $calcValue = $calculator->calculateFormula($formulaContents[$i]);
$calculator->calculateFormula($formulaContents[$i]); $bean->{$relateFields[$formulas[$i]]['id_name']} = ( is_numeric($calcValue) ? (float)$calcValue : $calcValue );
} else { } else {
$bean->{$formulas[$i]} = $calculator->calculateFormula($formulaContents[$i]); $calcValue = $calculator->calculateFormula($formulaContents[$i]);
$bean->{$formulas[$i]} = ( is_numeric($calcValue) ? (float)$calcValue : $calcValue );
} }
} }
@ -152,7 +153,7 @@ class actionComputeField extends actionBase
if ($parameterTypes[$i] == actionComputeField::FORMATTED_VALUE) { if ($parameterTypes[$i] == actionComputeField::FORMATTED_VALUE) {
$dataType = $bean->field_name_map[$parameters[$i]]['type']; $dataType = $bean->field_name_map[$parameters[$i]]['type'];
if ($dataType == 'enum') { if ($dataType == 'enum' || $dataType == 'dynamicenum') {
$resolvedParameters[$i] = $resolvedParameters[$i] =
$GLOBALS['app_list_strings'][$bean->field_defs[$parameters[$i]]['options']][$bean->{$parameters[$i]}]; $GLOBALS['app_list_strings'][$bean->field_defs[$parameters[$i]]['options']][$bean->{$parameters[$i]}];
} else { } else {

View file

@ -75,7 +75,7 @@ field_name="contact_invitees";if(v.module=="Lead")
field_name="lead_invitees";var str=CAL.get(field_name).value;CAL.get(field_name).value=str+v.fields.id+",";});} field_name="lead_invitees";var str=CAL.get(field_name).value;CAL.get(field_name).value=str+v.fields.id+",";});}
CAL.repeat_type_selected=function(){var rt;if(rt=CAL.get("repeat_type")){if(rt.value=='Weekly'){var nodes=CAL.query(".weeks_checks_div");CAL.each(nodes,function(i,v){nodes[i].style.display="block";});}else{var nodes=CAL.query(".weeks_checks_div");CAL.each(nodes,function(i,v){nodes[i].style.display="none";});} CAL.repeat_type_selected=function(){var rt;if(rt=CAL.get("repeat_type")){if(rt.value=='Weekly'){var nodes=CAL.query(".weeks_checks_div");CAL.each(nodes,function(i,v){nodes[i].style.display="block";});}else{var nodes=CAL.query(".weeks_checks_div");CAL.each(nodes,function(i,v){nodes[i].style.display="none";});}
if(rt.value==''){CAL.get("repeat_interval").setAttribute("disabled","disabled");CAL.get("repeat_end_date").setAttribute("disabled","disabled");}else{CAL.get("repeat_interval").removeAttribute("disabled");CAL.get("repeat_end_date").removeAttribute("disabled");}}} if(rt.value==''){CAL.get("repeat_interval").setAttribute("disabled","disabled");CAL.get("repeat_end_date").setAttribute("disabled","disabled");}else{CAL.get("repeat_interval").removeAttribute("disabled");CAL.get("repeat_end_date").removeAttribute("disabled");}}}
CAL.load_form=function(module_name,record,edit_all_recurrences,cal_event){CAL.disable_creating=true;var e;var to_open=true;if(module_name!="Meetings"&&module_name!="Calls"){to_open=false;} CAL.load_form=function(module_name,record,edit_all_recurrences,cal_event){CAL.disable_creating=true;CAL.reset_edit_dialog();CAL.disable_buttons();var e;var to_open=true;if(module_name!="Meetings"&&module_name!="Calls"){to_open=false;}
if(module_name=="Tasks"){var url='index.php?to_pdf=1&module=Home&action=AdditionalDetailsRetrieve&bean='+cal_event.module+'&id='+cal_event.record;var body=SUGAR.language.translate('app_strings','LBL_LOADING_PAGE');$.ajax(url).done(function(data){SUGAR.util.globalEval(data);$('.modal-cal-tasks-edit .modal-body .container-fluid').html(result.body);}).fail(function(){$('.modal-cal-tasks-edit .modal-body .container-fluid').html(SUGAR.language.translate('app_strings','LBL_EMAIL_ERROR_GENERAL_TITLE'));}).always(function(){});$('.modal-cal-tasks-edit .modal-body .container-fluid').html(body);$('.modal-cal-tasks-edit').modal('show');$('#btn-view-task').unbind().click(function(){window.location.assign('index.php?module='+cal_event.module+'&action=DetailView&record='+cal_event.record);});$('#btn-tasks-full-form').unbind().click(function(){window.location.assign('index.php?module='+cal_event.module+'&action=EditView&record='+cal_event.record);});}else if(module_name=="FP_events"){var url='index.php?to_pdf=1&module=Home&action=AdditionalDetailsRetrieve&bean='+cal_event.module+'&id='+cal_event.record;var body=SUGAR.language.translate('app_strings','LBL_LOADING_PAGE');$.ajax(url).done(function(data){SUGAR.util.globalEval(data);$('.modal-cal-events-edit .modal-body .container-fluid').html(result.body);}).fail(function(){$('.modal-cal-events-edit .modal-body .container-fluid').html(SUGAR.language.translate('app_strings','LBL_EMAIL_ERROR_GENERAL_TITLE'));}).always(function(){});$('.modal-cal-events-edit .modal-body .container-fluid').html(body);$('.modal-cal-events-edit').modal('show');$('#btn-view-events').unbind().click(function(){window.location.assign('index.php?module='+cal_event.module+'&action=DetailView&record='+cal_event.record);});$('#btn-events-full-form').unbind().click(function(){window.location.assign('index.php?module='+cal_event.module+'&action=EditView&record='+cal_event.record);});} if(module_name=="Tasks"){var url='index.php?to_pdf=1&module=Home&action=AdditionalDetailsRetrieve&bean='+cal_event.module+'&id='+cal_event.record;var body=SUGAR.language.translate('app_strings','LBL_LOADING_PAGE');$.ajax(url).done(function(data){SUGAR.util.globalEval(data);$('.modal-cal-tasks-edit .modal-body .container-fluid').html(result.body);}).fail(function(){$('.modal-cal-tasks-edit .modal-body .container-fluid').html(SUGAR.language.translate('app_strings','LBL_EMAIL_ERROR_GENERAL_TITLE'));}).always(function(){});$('.modal-cal-tasks-edit .modal-body .container-fluid').html(body);$('.modal-cal-tasks-edit').modal('show');$('#btn-view-task').unbind().click(function(){window.location.assign('index.php?module='+cal_event.module+'&action=DetailView&record='+cal_event.record);});$('#btn-tasks-full-form').unbind().click(function(){window.location.assign('index.php?module='+cal_event.module+'&action=EditView&record='+cal_event.record);});}else if(module_name=="FP_events"){var url='index.php?to_pdf=1&module=Home&action=AdditionalDetailsRetrieve&bean='+cal_event.module+'&id='+cal_event.record;var body=SUGAR.language.translate('app_strings','LBL_LOADING_PAGE');$.ajax(url).done(function(data){SUGAR.util.globalEval(data);$('.modal-cal-events-edit .modal-body .container-fluid').html(result.body);}).fail(function(){$('.modal-cal-events-edit .modal-body .container-fluid').html(SUGAR.language.translate('app_strings','LBL_EMAIL_ERROR_GENERAL_TITLE'));}).always(function(){});$('.modal-cal-events-edit .modal-body .container-fluid').html(body);$('.modal-cal-events-edit').modal('show');$('#btn-view-events').unbind().click(function(){window.location.assign('index.php?module='+cal_event.module+'&action=DetailView&record='+cal_event.record);});$('#btn-events-full-form').unbind().click(function(){window.location.assign('index.php?module='+cal_event.module+'&action=EditView&record='+cal_event.record);});}
if(to_open&&CAL.records_openable){CAL.get("form_content").style.display="none";CAL.disable_buttons();CAL.get("title-cal-edit").innerHTML=CAL.lbl_loading;CAL.repeat_tab_handle(module_name);ajaxStatus.showStatus(SUGAR.language.get('app_strings','LBL_LOADING'));params={};if(edit_all_recurrences){params={stay_on_tab:true};} if(to_open&&CAL.records_openable){CAL.get("form_content").style.display="none";CAL.disable_buttons();CAL.get("title-cal-edit").innerHTML=CAL.lbl_loading;CAL.repeat_tab_handle(module_name);ajaxStatus.showStatus(SUGAR.language.get('app_strings','LBL_LOADING'));params={};if(edit_all_recurrences){params={stay_on_tab:true};}
CAL.open_edit_dialog(params);CAL.get("record").value="";if(!edit_all_recurrences){edit_all_recurrences="";} CAL.open_edit_dialog(params);CAL.get("record").value="";if(!edit_all_recurrences){edit_all_recurrences="";}

View file

@ -73,7 +73,7 @@
</tr> </tr>
<tr> <tr>
<td width="25%"><span>{MOD.LBL_EDIT_OPT_OUT}</span></td> <td width="25%"><span>{MOD.LBL_EDIT_OPT_OUT}</span></td>
<td width="75%"><span><input name="is_optout" id=="is_optout" class="checkbox" type="checkbox" disabled {IS_OPTOUT_CHECKED}/></span></td> <td width="75%"><span><input name="is_optout" id="is_optout" class="checkbox" type="checkbox" disabled {IS_OPTOUT_CHECKED}/></span></td>
</tr> </tr>
<tr> <tr>
<td width="25%"><span>{MOD.LBL_EDIT_TRACKER_URL}</span></span></td> <td width="25%"><span>{MOD.LBL_EDIT_TRACKER_URL}</span></span></td>
@ -89,4 +89,4 @@
</tr> </tr>
</table> </table>
<!-- END: main --> <!-- END: main -->

View file

@ -85,7 +85,7 @@ class MyPipelineBySalesStageDashlet extends DashletGenericChart
global $app_list_strings; global $app_list_strings;
$selected_datax = array(); $selected_datax = array();
if (count($this->mypbss_sales_stages) > 0) { if (isset($this->mypbss_sales_stages) && count($this->mypbss_sales_stages) > 0) {
foreach ($this->mypbss_sales_stages as $key) { foreach ($this->mypbss_sales_stages as $key) {
$selected_datax[] = $key; $selected_datax[] = $key;
} }
@ -316,7 +316,7 @@ EOD;
$tempx = $user_sales_stage; $tempx = $user_sales_stage;
//set $datax using selected sales stage keys //set $datax using selected sales stage keys
if (count($tempx) > 0) { if (isset($tempx) && count($tempx) > 0) {
foreach ($tempx as $key) { foreach ($tempx as $key) {
$datax[$key] = $app_list_strings['sales_stage_dom'][$key]; $datax[$key] = $app_list_strings['sales_stage_dom'][$key];
array_push($selected_datax, $key); array_push($selected_datax, $key);
@ -379,7 +379,7 @@ EOD;
" AND opportunities.date_closed >= ". DBManagerFactory::getInstance()->convert("'".$this->mypbss_date_start."'", 'date'). " AND opportunities.date_closed >= ". DBManagerFactory::getInstance()->convert("'".$this->mypbss_date_start."'", 'date').
" AND opportunities.date_closed <= ". DBManagerFactory::getInstance()->convert("'".$this->mypbss_date_end."'", 'date') . " AND opportunities.date_closed <= ". DBManagerFactory::getInstance()->convert("'".$this->mypbss_date_end."'", 'date') .
" AND opportunities.assigned_user_id = users.id AND opportunities.deleted=0 "; " AND opportunities.assigned_user_id = users.id AND opportunities.deleted=0 ";
if (count($this->mypbss_sales_stages) > 0) { if (isset($this->mypbss_sales_stages) && count($this->mypbss_sales_stages) > 0) {
$query .= " AND opportunities.sales_stage IN ('" . implode("','", $this->mypbss_sales_stages) . "') "; $query .= " AND opportunities.sales_stage IN ('" . implode("','", $this->mypbss_sales_stages) . "') ";
} }
$query .= " GROUP BY opportunities.sales_stage ,users.user_name,opportunities.assigned_user_id"; $query .= " GROUP BY opportunities.sales_stage ,users.user_name,opportunities.assigned_user_id";

View file

@ -136,7 +136,7 @@ class OpportunitiesByLeadSourceByOutcomeDashlet extends DashletGenericChart
$url_params = array(); $url_params = array();
if (count($this->lsbo_ids) > 0) { if (isset($this->lsbo_ids) && count($this->lsbo_ids) > 0) {
$url_params['assigned_user_id'] = array_values($this->lsbo_ids); $url_params['assigned_user_id'] = array_values($this->lsbo_ids);
} }
@ -255,10 +255,10 @@ EOD;
$query = "SELECT lead_source,sales_stage,sum(amount_usdollar/1000) as total, ". $query = "SELECT lead_source,sales_stage,sum(amount_usdollar/1000) as total, ".
"count(*) as opp_count FROM opportunities "; "count(*) as opp_count FROM opportunities ";
$query .= " WHERE opportunities.deleted=0 "; $query .= " WHERE opportunities.deleted=0 ";
if (count($this->lsbo_ids) > 0) { if (isset($this->lsbo_ids) && count($this->lsbo_ids) > 0) {
$query .= "AND opportunities.assigned_user_id IN ('".implode("','", $this->lsbo_ids)."') "; $query .= "AND opportunities.assigned_user_id IN ('".implode("','", $this->lsbo_ids)."') ";
} }
if (count($this->lsbo_lead_sources) > 0) { if (isset($this->lsbo_lead_sources) && count($this->lsbo_lead_sources) > 0) {
$query .= "AND opportunities.lead_source IN ('".implode("','", $this->lsbo_lead_sources)."') "; $query .= "AND opportunities.lead_source IN ('".implode("','", $this->lsbo_lead_sources)."') ";
} else { } else {
$query .= "AND opportunities.lead_source IN ('".implode("','", array_keys($GLOBALS['app_list_strings']['lead_source_dom']))."') "; $query .= "AND opportunities.lead_source IN ('".implode("','", array_keys($GLOBALS['app_list_strings']['lead_source_dom']))."') ";

View file

@ -251,10 +251,10 @@ EOD;
$query = "SELECT lead_source,sum(amount_usdollar/1000) as total,count(*) as opp_count ". $query = "SELECT lead_source,sum(amount_usdollar/1000) as total,count(*) as opp_count ".
"FROM opportunities "; "FROM opportunities ";
$query .= "WHERE opportunities.deleted=0 "; $query .= "WHERE opportunities.deleted=0 ";
if (count($this->pbls_ids) > 0) { if (isset($this->pbls_ids) && count($this->pbls_ids) > 0) {
$query .= "AND opportunities.assigned_user_id IN ('".implode("','", $this->pbls_ids)."') "; $query .= "AND opportunities.assigned_user_id IN ('".implode("','", $this->pbls_ids)."') ";
} }
if (count($this->pbls_lead_sources) > 0) { if (isset($this->pbls_lead_sources) && count($this->pbls_lead_sources) > 0) {
$query .= "AND opportunities.lead_source IN ('".implode("','", $this->pbls_lead_sources)."') "; $query .= "AND opportunities.lead_source IN ('".implode("','", $this->pbls_lead_sources)."') ";
} else { } else {
$query .= "AND opportunities.lead_source IN ('".implode("','", array_keys($GLOBALS['app_list_strings']['lead_source_dom']))."') "; $query .= "AND opportunities.lead_source IN ('".implode("','", array_keys($GLOBALS['app_list_strings']['lead_source_dom']))."') ";

View file

@ -249,7 +249,7 @@ EOD;
$query .= " WHERE opportunities.date_closed >= ".DBManagerFactory::getInstance()->convert("'".$this->obm_date_start."'", 'date') . $query .= " WHERE opportunities.date_closed >= ".DBManagerFactory::getInstance()->convert("'".$this->obm_date_start."'", 'date') .
" AND opportunities.date_closed <= ".DBManagerFactory::getInstance()->convert("'".$this->obm_date_end."'", 'date') . " AND opportunities.date_closed <= ".DBManagerFactory::getInstance()->convert("'".$this->obm_date_end."'", 'date') .
" AND opportunities.deleted=0"; " AND opportunities.deleted=0";
if (count($this->obm_ids) > 0) { if (isset($this->obm_ids) && count($this->obm_ids) > 0) {
$query .= " AND opportunities.assigned_user_id IN ('" . implode("','", $this->obm_ids) . "')"; $query .= " AND opportunities.assigned_user_id IN ('" . implode("','", $this->obm_ids) . "')";
} }
$query .= " GROUP BY sales_stage,". $query .= " GROUP BY sales_stage,".

View file

@ -269,7 +269,7 @@ EOD;
$tempx = $user_sales_stage; $tempx = $user_sales_stage;
//set $datax using selected sales stage keys //set $datax using selected sales stage keys
if (count($tempx) > 0) { if (isset($tempx) && count($tempx) > 0) {
foreach ($tempx as $key) { foreach ($tempx as $key) {
$datax[$key] = $app_list_strings['sales_stage_dom'][$key]; $datax[$key] = $app_list_strings['sales_stage_dom'][$key];
$selected_datax[] = $key; $selected_datax[] = $key;

View file

@ -814,6 +814,21 @@ class EmailsController extends SugarController
$this->bean->parent_name = $parent_name; $this->bean->parent_name = $parent_name;
} }
$arrayOfToNames = explode(", ", $this->bean->to_addrs_names);
$mailbox = BeanFactory::getBean('InboundEmail', $this->bean->mailbox_id);
if(count($arrayOfToNames) > 1){
foreach($arrayOfToNames as $name){
if($name !== $mailbox->email_user){
if(!empty($this->bean->cc_addrs_names)){
$this->bean->cc_addrs_names .= ', ' .$name;
} else {
$this->bean->cc_addrs_names = $name;
}
}
}
}
if ($mode === self::COMPOSE_BEAN_MODE_REPLY_TO || $mode === self::COMPOSE_BEAN_MODE_REPLY_TO_ALL) { if ($mode === self::COMPOSE_BEAN_MODE_REPLY_TO || $mode === self::COMPOSE_BEAN_MODE_REPLY_TO_ALL) {
// Move email addresses from the "from" field to the "to" field // Move email addresses from the "from" field to the "to" field
$this->bean->to_addrs = $this->bean->from_addr; $this->bean->to_addrs = $this->bean->from_addr;

View file

@ -261,6 +261,9 @@
{rdelim} {rdelim}
{rdelim}{/if}); {rdelim}{/if});
{rdelim}); {rdelim});
$( "#emails_email_templates_name" ).change(function() {ldelim}
$.fn.EmailsComposeView.onTemplateChange()
{rdelim});
</script> </script>
{/if} {/if}
</form> </form>

View file

@ -1553,6 +1553,41 @@
}); });
}; };
$.fn.EmailsComposeView.onTemplateChange = function (args) {
var confirmed = function (args) {
var args = JSON.parse(args);
var form = $('[name="' + args.form_name + '"]');
$.post('index.php?entryPoint=emailTemplateData', {
emailTemplateId: args.name_to_value_array.emails_email_templates_idb
}, function (jsonResponse) {
var response = JSON.parse(jsonResponse);
$.fn.EmailsComposeView.loadAttachmentDataFromAjaxResponse(response);
$(form).find('[name="name"]').val(response.data.subject);
tinymce.activeEditor.setContent(response.data.body_from_html, {format: 'html'});
$.fn.EmailsComposeView.updateSignature();
});
set_return(args);
};
var mb = messageBox();
mb.setTitle(SUGAR.language.translate('Emails', 'LBL_CONFIRM_APPLY_EMAIL_TEMPLATE_TITLE'));
mb.setBody(SUGAR.language.translate('Emails', 'LBL_CONFIRM_APPLY_EMAIL_TEMPLATE_BODY'));
mb.show();
mb.on('ok', function () {
"use strict";
var id=$('#emails_email_templates_idb').val();
var name=$('#emails_email_templates_name').val();
args = JSON.stringify({"form_name":"ComposeView","name_to_value_array":{"emails_email_templates_idb": id,"emails_email_templates_name": name}})
confirmed(args);
mb.remove();
});
mb.on('cancel', function () {
"use strict";
mb.remove();
});
}
$.fn.EmailsComposeView.onParentSelect = function (args) { $.fn.EmailsComposeView.onParentSelect = function (args) {
set_return(args); set_return(args);
if (isValidEmail(args.name_to_value_array.email1)) { if (isValidEmail(args.name_to_value_array.email1)) {
@ -1574,13 +1609,14 @@
$.fn.EmailsComposeView.defaults = { $.fn.EmailsComposeView.defaults = {
"tinyMceOptions": { "tinyMceOptions": {
menubar: false, menubar: false,
toolbar: ['fontselect | fontsizeselect | bold italic underline | forecolor backcolor | styleselect | outdent indent'], plugins: ['link'],
toolbar: ['fontselect | fontsizeselect | bold italic underline | forecolor backcolor | styleselect | outdent indent | link'],
formats: { formats: {
bold: {inline: 'b'}, bold: {inline: 'b'},
italic: {inline: 'i'}, italic: {inline: 'i'},
underline: {inline: 'u'} underline: {inline: 'u'}
}, },
convert_urls: true, convert_urls: false,
relative_urls: false, relative_urls: false,
remove_script_host: false, remove_script_host: false,
} }

View file

@ -45,11 +45,16 @@ class ExternalOAuthConnectionController extends SugarController
{ {
public function action_EditView() { public function action_EditView() {
$this->view = 'edit'; $this->view = 'edit';
if (!empty($this->bean) && !empty($_REQUEST['type'])) {
if (empty($_REQUEST['type'])){
$_REQUEST['type'] = 'personal';
}
if (!empty($this->bean)) {
$this->bean->type = $_REQUEST['type']; $this->bean->type = $_REQUEST['type'];
} }
if (empty($_REQUEST['record']) && !empty($_REQUEST['type']) && $_REQUEST['type'] === 'personal') { if (empty($_REQUEST['record']) && $_REQUEST['type'] === 'personal') {
$this->hasAccess = true; $this->hasAccess = true;
return; return;
} }

View file

@ -45,11 +45,17 @@ class ExternalOAuthProviderController extends SugarController
{ {
public function action_EditView() { public function action_EditView() {
$this->view = 'edit'; $this->view = 'edit';
if (!empty($this->bean) && !empty($_REQUEST['type'])) {
if (empty($_REQUEST['type'])){
$_REQUEST['type'] = 'personal';
}
if (!empty($this->bean)) {
$this->bean->type = $_REQUEST['type']; $this->bean->type = $_REQUEST['type'];
} }
if (empty($_REQUEST['record']) && !empty($_REQUEST['type']) && $_REQUEST['type'] === 'personal') { if (empty($_REQUEST['record']) && $_REQUEST['type'] === 'personal') {
$this->hasAccess = true; $this->hasAccess = true;
return; return;
} }

View file

@ -57,6 +57,11 @@ class OAuth2Clients extends SugarBean
*/ */
public $redirect_uri; public $redirect_uri;
/**
* @var string
*/
public $allowed_grant_type;
/** /**
* @var string * @var string
*/ */

View file

@ -76,7 +76,6 @@ if (!empty($_REQUEST['duplicateId'])) {
$focus->set_relationship('prospect_lists_prospects', $rel, true); $focus->set_relationship('prospect_lists_prospects', $rel, true);
} }
} }
$focus->save();
} }

View file

@ -12,8 +12,8 @@ class AssignGroups
//only process if action is Save (meaning a user has triggered this event and not the portal or automated process) //only process if action is Save (meaning a user has triggered this event and not the portal or automated process)
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'Save' if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'Save'
&& isset($sugar_config['securitysuite_popup_select']) && $sugar_config['securitysuite_popup_select'] == true && isset($sugar_config['securitysuite_popup_select']) && $sugar_config['securitysuite_popup_select'] == true
&& empty($bean->fetched_row['id']) && $bean->module_dir != "Users" && $bean->module_dir != "SugarFeed") { && empty($bean->fetched_row['id']) && $bean->module_dir != "Users" && $bean->module_dir != "SugarFeed") {
//Upload an attachment to an Email Template and save. If user with multi groups - popup select option //Upload an attachment to an Email Template and save. If user with multi groups - popup select option
//it will redirect to notes instead of EmailTemplate and relationship will fail...check below to avoid //it will redirect to notes instead of EmailTemplate and relationship will fail...check below to avoid
if (!empty($_REQUEST['module']) && $_REQUEST['module'] != $bean->module_dir) { if (!empty($_REQUEST['module']) && $_REQUEST['module'] != $bean->module_dir) {
@ -26,7 +26,7 @@ class AssignGroups
//sanity check //sanity check
if (in_array($bean->module_dir, array_keys($security_modules))) { if (in_array($bean->module_dir, array_keys($security_modules))) {
//add each group in securitygroup_list to new record //add each group in securitygroup_list to new record
$rel_name = SecurityGroup::getLinkName($bean->module_dir,"SecurityGroups"); $rel_name = SecurityGroup::getLinkName($bean->module_dir, "SecurityGroups");
$bean->load_relationship($rel_name); $bean->load_relationship($rel_name);
foreach ($_REQUEST['securitygroup_list'] as $group_id) { foreach ($_REQUEST['securitygroup_list'] as $group_id) {
@ -42,8 +42,8 @@ class AssignGroups
$_SESSION['securitysuite_error'] = $ss_mod_strings['LBL_ERROR_DUPLICATE']; $_SESSION['securitysuite_error'] = $ss_mod_strings['LBL_ERROR_DUPLICATE'];
} }
} elseif (isset($sugar_config['securitysuite_user_popup']) && $sugar_config['securitysuite_user_popup'] == true } elseif (isset($sugar_config['securitysuite_user_popup']) && $sugar_config['securitysuite_user_popup'] == true
&& empty($bean->fetched_row['id']) && $bean->module_dir == "Users" && empty($bean->fetched_row['id']) && $bean->module_dir == "Users"
&& isset($_REQUEST['action']) && $_REQUEST['action'] != 'SaveSignature') { //Bug: 589 && isset($_REQUEST['action']) && $_REQUEST['action'] != 'SaveSignature') { //Bug: 589
//$_REQUEST['return_module'] = $bean->module_dir; //$_REQUEST['return_module'] = $bean->module_dir;
//$_REQUEST['return_action'] = "DetailView"; //$_REQUEST['return_action'] = "DetailView";
@ -55,9 +55,9 @@ class AssignGroups
$_SESSION['securitygroups_popup'] = array(); $_SESSION['securitygroups_popup'] = array();
} }
$_SESSION['securitygroups_popup'][] = array( $_SESSION['securitygroups_popup'][] = array(
'module' => $bean->module_dir, 'module' => $bean->module_dir,
'id' => $bean->id 'id' => $bean->id
); );
} }
} }
@ -69,9 +69,9 @@ class AssignGroups
} }
/** //test user popup /** //test user popup
//always have this loaded * //always have this loaded
echo '<script type="text/javascript" src="modules/SecurityGroups/javascript/popup_relate.js"></script>'; * echo '<script type="text/javascript" src="modules/SecurityGroups/javascript/popup_relate.js"></script>';
*/ */
global $sugar_config; global $sugar_config;
$action = null; $action = null;
@ -94,14 +94,14 @@ class AssignGroups
} }
if (( if ((
//(isset($sugar_config['securitysuite_popup_select']) && $sugar_config['securitysuite_popup_select'] == true) //(isset($sugar_config['securitysuite_popup_select']) && $sugar_config['securitysuite_popup_select'] == true)
//|| //||
($module == "Users" && isset($sugar_config['securitysuite_user_popup']) && $sugar_config['securitysuite_user_popup'] == true) ($module == "Users" && isset($sugar_config['securitysuite_user_popup']) && $sugar_config['securitysuite_user_popup'] == true)
) )
//&& isset($_SESSION['securitygroups_popup_'.$module]) && !empty($_SESSION['securitygroups_popup_'.$module]) //&& isset($_SESSION['securitygroups_popup_'.$module]) && !empty($_SESSION['securitygroups_popup_'.$module])
&& !empty($_SESSION['securitygroups_popup']) && !empty($_SESSION['securitygroups_popup'])
) { ) {
foreach ($_SESSION['securitygroups_popup'] as $popup_index => $popup) { foreach ($_SESSION['securitygroups_popup'] as $popup_index => $popup) {
$record_id = $popup['id']; $record_id = $popup['id'];
$module = $popup['module']; $module = $popup['module'];
@ -111,7 +111,7 @@ class AssignGroups
if ($module == 'Users') { if ($module == 'Users') {
$rel_name = "SecurityGroups"; $rel_name = "SecurityGroups";
} else { } else {
$rel_name = SecurityGroup::getLinkName($module,"SecurityGroups"); $rel_name = SecurityGroup::getLinkName($module, "SecurityGroups");
} }
//this only works if on the detail view of the record actually saved... //this only works if on the detail view of the record actually saved...
@ -144,13 +144,13 @@ EOQ;
LoggerManager::getLogger()->warn('Not defined module in request'); LoggerManager::getLogger()->warn('Not defined module in request');
} }
$no_mass_assign_list = array("Emails"=>"Emails","ACLRoles"=>"ACLRoles"); //,"Users"=>"Users"); $no_mass_assign_list = array("Emails" => "Emails", "ACLRoles" => "ACLRoles"); //,"Users"=>"Users");
//check if security suite enabled //check if security suite enabled
$action = strtolower($action); $action = strtolower($action);
if (isset($module) && ($action == "list" || $action == "index" || $action == "listview") if (isset($module) && ($action == "list" || $action == "index" || $action == "listview")
&& (!isset($_REQUEST['search_form_only']) || $_REQUEST['search_form_only'] != true) && (!isset($_REQUEST['search_form_only']) || $_REQUEST['search_form_only'] != true)
&& !array_key_exists($module, $no_mass_assign_list) && !array_key_exists($module, $no_mass_assign_list)
) { ) {
global $current_user; global $current_user;
if (is_admin($current_user) || ACLAction::getUserAccessLevel($current_user->id, "SecurityGroups", 'access') == ACL_ALLOW_ENABLED) { if (is_admin($current_user) || ACLAction::getUserAccessLevel($current_user->id, "SecurityGroups", 'access') == ACL_ALLOW_ENABLED) {
@ -167,14 +167,14 @@ EOQ;
$form_header = get_form_header($current_module_strings['LBL_MASS_ASSIGN'], '', false); $form_header = get_form_header($current_module_strings['LBL_MASS_ASSIGN'], '', false);
$groups = $groupFocus->get_list("name", "", 0, -99, -99); $groups = $groupFocus->get_list("name", "", 0, -99, -99);
$options = array(""=>""); $options = array("" => "");
foreach ($groups['list'] as $group) { foreach ($groups['list'] as $group) {
$options[$group->id] = $group->name; $options[$group->id] = $group->name;
} }
$group_options = get_select_options_with_id($options, ""); $group_options = get_select_options_with_id($options, "");
$export_where = !empty($_SESSION['export_where']) ? $_SESSION['export_where'] : ''; $export_where = !empty($_SESSION['export_where']) ? $_SESSION['export_where'] : '';
$export_where_md5 = md5($export_where); $export_where_md5 = md5($export_where);
$mass_assign = <<<EOQ $mass_assign = <<<EOQ
@ -238,12 +238,15 @@ function send_massassign(mode, no_record_txt, start_string, end_string, del) {
ar.push(document.MassUpdate.elements[wp].value); ar.push(document.MassUpdate.elements[wp].value);
} }
} }
if(document.MassAssign_SecurityGroups.uid.value != '') document.MassAssign_SecurityGroups.uid.value += ','; if(document.MassUpdate.uid.value != '') {
document.MassAssign_SecurityGroups.uid.value += ar.join(','); document.MassUpdate.uid.value += ',';
if(document.MassAssign_SecurityGroups.uid.value == '') { document.MassUpdate.uid.value += ar.join(',');
document.MassAssign_SecurityGroups.uid.value = document.MassUpdate.uid.value;
if(document.MassAssign_SecurityGroups.uid.value == '') {
alert(no_record_txt); alert(no_record_txt);
return false; return false;
} }
}
break; break;
case 'entire': case 'entire':
var entireInput = document.createElement('input'); var entireInput = document.createElement('input');

View file

@ -45,7 +45,8 @@ if (!defined('sugarEntry') || !sugarEntry) {
require_once('modules/Studio/TabGroups/TabGroupHelper.php'); require_once('modules/Studio/TabGroups/TabGroupHelper.php');
TabGroupHelper::saveTabGroups($_POST); $tg = new TabGroupHelper();
$tg->saveTabGroups($_POST);
ob_clean(); ob_clean();
if (!empty($_POST['grouptab_lang'])) { if (!empty($_POST['grouptab_lang'])) {
header('Location: index.php?module=Studio&action=TabGroups&lang='.$_POST['grouptab_lang']); header('Location: index.php?module=Studio&action=TabGroups&lang='.$_POST['grouptab_lang']);

23
modules/SugarFeed/SugarFeed.php Executable file → Normal file
View file

@ -476,9 +476,26 @@ class SugarFeed extends Basic
$timedate->getInstance()->userTimezone(); $timedate->getInstance()->userTimezone();
$currentTime = $timedate->now(); $currentTime = $timedate->now();
//Fix #9875 SugarFeed shows 0 seconds ago and negative interval for certain datetime formats
$first = strtotime($currentTime); //Use proper user datetime format to convert datetime string to timestamp
$second = strtotime($startDate); $user_format=$timedate->get_date_time_format();
$first=date_create_from_format($user_format,$currentTime);
if(empty($first)){
LoggerManager::getLogger()->warn('SugarFeed getTimeLapse: Could not fetch currentTime ');
$first=0;
}
else{
$first=$first->getTimestamp();
}
$second=date_create_from_format($user_format,$startDate);
if(empty($second)){
LoggerManager::getLogger()->warn('SugarFeed getTimeLapse: Could not fetch startDate ');
$second=0;
}
else{
$second=$second->getTimestamp();
}
$seconds = $first - $second; $seconds = $first - $second;
$minutes = $seconds / 60; $minutes = $seconds / 60;

View file

@ -217,6 +217,25 @@ $dictionary['SurveyResponses'] = array(
'lhs_key' => 'id', 'lhs_key' => 'id',
'relationship_type' => 'one-to-many', 'relationship_type' => 'one-to-many',
), ),
// Fix Issue 8897 - Adding missing relationships to SurveyResponses and Contacts/Accounts
'surveyresponses_contacts' => array(
'rhs_module' => 'SurveyResponses',
'rhs_table' => 'surveyresponses',
'rhs_key' => 'contact_id',
'lhs_module' => 'Contacts',
'lhs_table' => 'contacts',
'lhs_key' => 'id',
'relationship_type' => 'one-to-many',
),
'surveyresponses_accounts' => array (
'rhs_module' => 'SurveyResponses',
'rhs_table' => 'surveyresponses',
'rhs_key' => 'account_id',
'lhs_module' => 'Accounts',
'lhs_table' => 'accounts',
'lhs_key' => 'id',
'relationship_type' => 'one-to-many',
),
), ),
'optimistic_locking' => true, 'optimistic_locking' => true,
'unified_search' => true, 'unified_search' => true,

View file

@ -363,7 +363,7 @@ class SugarAuthenticate
*/ */
public function validateIP() public function validateIP()
{ {
global $sugar_config; global $sugar_config, $mod_strings;
// grab client ip address // grab client ip address
$clientIP = query_client_ip(); $clientIP = query_client_ip();
$classCheck = 0; $classCheck = 0;

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.13.2'; $suitecrm_version = '7.13.3';
$suitecrm_timestamp = '2023-03-02 12:00:00'; $suitecrm_timestamp = '2023-04-24 12:00:00';