mirror of
https://github.com/SuiteCRM/SuiteCRM-Core.git
synced 2025-08-29 01:10:42 +08:00
Squashed 'public/legacy/' changes from 5ea3ab0333..e2aa790472
e2aa790472 SuiteCRM 7.14.5 Release 0c4f67a31f Add check for current user on session preferences 500990c68f Add check for current user on preferences 1bbdaa5802 Check for disabled languages on wizard e787d57892 Fix Disabled Language set on login 460032a8f5 Add check for preference on Sugar Authenticate 55e2804698 Fix formatting on login language check 46c8d5bc2a Default to user preference language on login 960eba23f6 Fix language setting for incorrect user f67d446682 Add login language config to default configs 151782135f Add User Language to Login Wizard 10bac245c5 Set Preference on login 17608b7fc7 Add check on login for language to show a2c8c4ce16 Set User Language in App and Preference 500228fe98 Add User Language selection to profile e672f71ccd Fix Events on Calendar 81cc87f117 Fix #9855 - non-admin not accessing external oauth connection f0ec330b30 Fix #9855 - Add type label 8aa790143d Fix #9855 - Error if type of oauth not equal to type of inbound account 56deda814b Fix #10441 - VAT Values display incorrectly on Quotes->Service Line Items, if Significant Figures = 0 1a563c9613 Fix #10467 - Date range not working b49101e853 Fix #9829 - Fatal error during upgrade to 7.12.8 58e9061105 Fix #10315 - More logical code structure, don't need to fill variable if gets overwritten later e321a5e639 Fix #10319 - Json API SQL error when filtering by custom fields d77391b746 Fix salesagility#10335 - Incorrect codification in the names of events displayed in the Calendar bfe151fca9 Fix #10339 - Inconsistent application of trim function on name & varchar fields 00e8c512de Fix #9078 - Favorites adds record twice to the sidebar and to the db 34d78051f6 Fix #10372 - Ensure int is passed to mb_substr when working with decimal vardef length ccf112bbb7 Fix #7150 - Show subpanels correctly 0a34481cfe Fix #10390 - URL is not clickable 9d5c09b7ba Fix #2828 - Not translatable messages in Dashlet parameters 0aaba42109 Fix #2175 - No gif and shifted text after saving task in gants view 7c35dfed35 Fix #10404 - Compare parentenum_value more precisely e0bfca3991 Fix #5653 - VAT Display in PDF Templates wrong when Currency Significant Digits set to 0 fc651eaf01 Fix #10433 - Email Address ID being double quoted ef87a84bf6 Fix #10437 - Calendar - 'Today' left-hand side bar option loads the week 5df8622406 Fix #10443 - Incorrect lengths in emails_text vardefs dd39dd1172 Fix #10268 - Access token wil not refresh for Oauth2 password clients b264df3bca Fix #6376 - Problem with date start and finish in project task filters 22e925f57a Fix #9177 - Cant use edit inline in UserType field git-subtree-dir: public/legacy git-subtree-split: e2aa790472c617631008d29849f4624e3658d873
This commit is contained in:
parent
25bda61a53
commit
8843760723
46 changed files with 427 additions and 220 deletions
|
@ -246,11 +246,25 @@ class BeanManager
|
|||
*/
|
||||
public function countRecords($module, $where)
|
||||
{
|
||||
$table_name = $this->newBeanSafe($module)->getTableName();
|
||||
$table_name_cstm = $this->newBeanSafe($module)->get_custom_table_name();
|
||||
|
||||
$join = '';
|
||||
if ($this->db->tableExists($table_name_cstm)) {
|
||||
$join = sprintf(
|
||||
'LEFT JOIN %s on (%s.id = %s.id_c)',
|
||||
$table_name_cstm,
|
||||
$table_name,
|
||||
$table_name_cstm,
|
||||
);
|
||||
}
|
||||
|
||||
$rowCount = $this->db->fetchRow(
|
||||
$this->db->query(
|
||||
sprintf(
|
||||
"SELECT COUNT(*) AS cnt FROM %s %s",
|
||||
$this->newBeanSafe($module)->getTableName(),
|
||||
"SELECT COUNT(*) AS cnt FROM %s %s %s",
|
||||
$table_name,
|
||||
$join,
|
||||
$where === '' ? '' : 'WHERE ' . $where
|
||||
)
|
||||
)
|
||||
|
|
|
@ -49,6 +49,11 @@ class ClientRepository implements ClientRepositoryInterface
|
|||
/** @var \OAuth2Clients $client */
|
||||
$client = $this->beanManager->getBeanSafe(\OAuth2Clients::class, $clientIdentifier);
|
||||
|
||||
return hash('sha256', $clientSecret) === $client->secret && $grantType === $client->allowed_grant_type;
|
||||
if ($grantType === $client->allowed_grant_type || $grantType === 'refresh_token')
|
||||
{
|
||||
return hash('sha256', $clientSecret) === $client->secret;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -432,6 +432,10 @@ class ModuleService
|
|||
throw new AccessDeniedException();
|
||||
}
|
||||
|
||||
if (isset($attributes['deleted']) && isTrue($attributes['deleted']) && !$bean->ACLAccess('delete')) {
|
||||
throw new AccessDeniedException();
|
||||
}
|
||||
|
||||
$this->setRecordUpdateParams($bean, $attributes);
|
||||
$fileUpload = $this->processAttributes($bean, $attributes);
|
||||
$bean->save();
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<img width="180px" height="41px" src="https://suitecrm.com/wp-content/uploads/2017/12/logo.png" align="right" />
|
||||
</a>
|
||||
|
||||
# SuiteCRM 7.14.4
|
||||
# SuiteCRM 7.14.5
|
||||
|
||||
[](https://travis-ci.org/salesagility/SuiteCRM)
|
||||
[](https://codecov.io/gh/salesagility/SuiteCRM/branch/hotfix)
|
||||
|
|
|
@ -2597,6 +2597,11 @@ class SugarBean
|
|||
$type .= $def['dbType'];
|
||||
}
|
||||
|
||||
// Trim name & varchar type values on save when the value is not null
|
||||
if (isset($def['type']) && in_array($def['type'], ['name', 'varchar']) && !is_null($this->$key)) {
|
||||
$this->$key = trim($this->$key);
|
||||
}
|
||||
|
||||
if (isset($def['type']) && ($def['type'] == 'html' || $def['type'] == 'longhtml')) {
|
||||
$this->$key = purify_html($this->$key, ['HTML.ForbiddenElements' => ['iframe' => true]]);
|
||||
} elseif (
|
||||
|
|
92
files.md5
92
files.md5
|
@ -1,5 +1,5 @@
|
|||
<?php
|
||||
// created: 2024-05-22 17:00:00
|
||||
// created: 2024-07-23 17:00:00
|
||||
$md5_string = array (
|
||||
'./Api/Core/Config/ApiConfig.php' => '7c960715776e20734ce8839f7d75f277',
|
||||
'./Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8',
|
||||
|
@ -10,7 +10,7 @@ $md5_string = array (
|
|||
'./Api/Core/app.php' => '98b69ea7623def50a37739926098893f',
|
||||
'./Api/V8/BeanDecorator/BeanListRequest.php' => '1af8304451475566189c965b9815cc5b',
|
||||
'./Api/V8/BeanDecorator/BeanListResponse.php' => '558dc11534a930bbcec1bb7d0a4c3b18',
|
||||
'./Api/V8/BeanDecorator/BeanManager.php' => '25add6ebca5d98dbffc39deef26c33c4',
|
||||
'./Api/V8/BeanDecorator/BeanManager.php' => 'd60a65a6b615de84155e07facc83d673',
|
||||
'./Api/V8/Config/routes.php' => '8839396b6f1ca6c66c8db294aeb7866a',
|
||||
'./Api/V8/Config/services/beanAliases.php' => '7d8446175102379bcf1ad2a284de2c44',
|
||||
'./Api/V8/Config/services/controllers.php' => '8aadb796a2be8b14172ae6c695291f4c',
|
||||
|
@ -56,7 +56,7 @@ $md5_string = array (
|
|||
'./Api/V8/OAuth2/Entity/RefreshTokenEntity.php' => '3b2cefea6eb0d7df5573899fbf4297a2',
|
||||
'./Api/V8/OAuth2/Entity/UserEntity.php' => '83eb46b62465f386c4d9d0972b360750',
|
||||
'./Api/V8/OAuth2/Repository/AccessTokenRepository.php' => 'c98be8de2cbd63b180d78a5a4a18a989',
|
||||
'./Api/V8/OAuth2/Repository/ClientRepository.php' => 'a8a0bb8a4ebb91ab6d65610878d73960',
|
||||
'./Api/V8/OAuth2/Repository/ClientRepository.php' => 'e855620293e7723a34cf695cdc1e8c44',
|
||||
'./Api/V8/OAuth2/Repository/RefreshTokenRepository.php' => 'f878ff9376957b242d200d1ad45cfacb',
|
||||
'./Api/V8/OAuth2/Repository/ScopeRepository.php' => '75c35ec65bd36281b3a026c09499adb7',
|
||||
'./Api/V8/OAuth2/Repository/UserRepository.php' => '49ed142d14401ff43c572d9e815f8b48',
|
||||
|
@ -92,7 +92,7 @@ $md5_string = array (
|
|||
'./Api/V8/Service/ListViewService.php' => '6d98914bc57738621368a97cc8f982f2',
|
||||
'./Api/V8/Service/LogoutService.php' => 'a6dd9fd6b0f228235f66a94cc216d093',
|
||||
'./Api/V8/Service/MetaService.php' => 'f1d0ae49c74885b6b8639a95e118f670',
|
||||
'./Api/V8/Service/ModuleService.php' => 'de4a912872456fbbe5bde1afd2f31dec',
|
||||
'./Api/V8/Service/ModuleService.php' => 'c0b6d9eeb6e48414f30122f77502833d',
|
||||
'./Api/V8/Service/RelationshipService.php' => '7365b46c36a88109960705124f1c7b6e',
|
||||
'./Api/V8/Service/UserPreferencesService.php' => '8d636f84f208b1ec9bd3c7b63a36050c',
|
||||
'./Api/V8/Service/UserService.php' => 'af188a84b41683e63c00a2e4be5e90fd',
|
||||
|
@ -116,7 +116,7 @@ $md5_string = array (
|
|||
'./ModuleInstall/PackageManager/tpls/PackageManagerLicense.tpl' => 'df5e267d1df5ce08fb9406e42d5b4816',
|
||||
'./ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl' => '98e396c0aa57329731fda19c790fffb2',
|
||||
'./ModuleInstall/extensions.php' => 'de30837895f67175b7fbc04274a837a6',
|
||||
'./README.md' => '754403416fc19e701ae215b04b19dcbc',
|
||||
'./README.md' => 'bc368c439352a540a0288f2b2cde6936',
|
||||
'./RoboFile.php' => '1b4201de0ee50e259424ce2f408e5e87',
|
||||
'./SugarSecurity.php' => '84975dd9146d968458af123842c6c370',
|
||||
'./TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c',
|
||||
|
@ -522,7 +522,7 @@ $md5_string = array (
|
|||
'./data/Relationships/One2OneRelationship.php' => '2e0002d357795538f2ad52ec78e5bacc',
|
||||
'./data/Relationships/RelationshipFactory.php' => '57384ba8fbb1d18ef73b095ba017ae91',
|
||||
'./data/Relationships/SugarRelationship.php' => 'bcd79dc9426b8fd5d5fac63648e66e04',
|
||||
'./data/SugarBean.php' => 'c4efa213b23c288f589b25183c52ee49',
|
||||
'./data/SugarBean.php' => 'ca31f24703b9ed1cc57ec04f63108d64',
|
||||
'./deprecated.php' => '0f0158d19fc6e4796545e82c2f118767',
|
||||
'./dictionary.php' => 'b7c1370fb75a2940c04db74627c4462c',
|
||||
'./download.php' => 'b20fb1e15f0cc7f40c7755be54edd81e',
|
||||
|
@ -630,7 +630,7 @@ $md5_string = array (
|
|||
'./include/MVC/Controller/file_access_control_map.php' => '86baf77effe4eb6167c4557c481c2f5f',
|
||||
'./include/MVC/SugarApplication.php' => 'd436e130607abf395f59bac0fbb841da',
|
||||
'./include/MVC/SugarModule.php' => '7ffbda56ac7bd074795034533ef93c1a',
|
||||
'./include/MVC/View/SugarView.php' => 'b82b8f1b07da4c16fcbbd9eceb883e75',
|
||||
'./include/MVC/View/SugarView.php' => '2436816ff16aea822863d2d992ecfb51',
|
||||
'./include/MVC/View/ViewFactory.php' => 'a1ee66d0bd884132187ad0e8196a56c9',
|
||||
'./include/MVC/View/tpls/Importvcard.tpl' => '8a89b4e8fc0660479ef9eaf42f104929',
|
||||
'./include/MVC/View/tpls/displayLoginJS.tpl' => '5077580939467d14e596f4a425f17210',
|
||||
|
@ -665,7 +665,7 @@ $md5_string = array (
|
|||
'./include/MVC/View/views/view.vcard.php' => 'e7bddb455a4f14ad36ecde6470c71b68',
|
||||
'./include/MVC/View/views/view.xml.php' => '2a7ed1f6384a9c362c4a61f5d7d8b8d2',
|
||||
'./include/MVC/preDispatch.php' => 'f1720fa7dea86c02e0663227c2c08203',
|
||||
'./include/MassUpdate.php' => '482a3b14ab0574cce085e6438346ee0e',
|
||||
'./include/MassUpdate.php' => 'a5ce285c0d7107746d08fc4cf1ac993c',
|
||||
'./include/MySugar/DashletsDialog/DashletsDialog.php' => '0b7c1af1bb21b3af9b735178de2f3a89',
|
||||
'./include/MySugar/MySugar.php' => 'eaffdea2231df9ec4a457fb57d499ca4',
|
||||
'./include/MySugar/dashboardstyle.css' => '4cce65e52281263e484140a1d4b8d2e2',
|
||||
|
@ -692,7 +692,7 @@ $md5_string = array (
|
|||
'./include/QuickSearchDefaults.php' => '0886cc24cdeac6f161417013851a29d1',
|
||||
'./include/RefreshDatabase.php' => '2f8393d844bd4f327b6880b349fd7dd7',
|
||||
'./include/SearchForm/SearchForm.php' => '9c999a18e3b9c749dbdfa68da985fbe2',
|
||||
'./include/SearchForm/SearchForm2.php' => '89ba505a9d4fc9a744b1f9b6c8ade1f2',
|
||||
'./include/SearchForm/SearchForm2.php' => '427124cb4302578fa314816f391b51e0',
|
||||
'./include/SearchForm/SugarSpot.php' => '5996d87e6a9be7d5f3a90279a364541c',
|
||||
'./include/SearchForm/tpls/SearchFormGeneric.tpl' => '98cd213b9bf117885df0f452f8f804f6',
|
||||
'./include/SearchForm/tpls/SearchFormGenericAdvanced.tpl' => 'fc5daccc733525ed9841c730bcbf8bb7',
|
||||
|
@ -886,7 +886,7 @@ $md5_string = array (
|
|||
'./include/SugarDependentDropdown/javascript/SugarDependentDropdown.js' => '14748d0133b9731b97c11b95e3713489',
|
||||
'./include/SugarDependentDropdown/metadata/dependentDropdown.php' => 'deb131d92c6a4447d8265600ba46e9b2',
|
||||
'./include/SugarEmailAddress/SugarEmailAddress.js' => 'def2d76e0bee474993ae52ce8bafe7c0',
|
||||
'./include/SugarEmailAddress/SugarEmailAddress.php' => 'aaf058b834446b2ca595aa957e7d958e',
|
||||
'./include/SugarEmailAddress/SugarEmailAddress.php' => '4104c91edcc88a81185120c152653c1e',
|
||||
'./include/SugarEmailAddress/getEmailAddressWidget.php' => '732df9ab640f7e9713d81a2a2c5579d0',
|
||||
'./include/SugarEmailAddress/templates/forDetailView.tpl' => 'f40f05d1278c144c7e7fd4a1e9e77eb4',
|
||||
'./include/SugarEmailAddress/templates/forDuplicatesView.tpl' => '99609f76277d97556395e7dc3923c402',
|
||||
|
@ -935,7 +935,7 @@ $md5_string = array (
|
|||
'./include/SugarFields/Fields/Currency/DetailView.tpl' => 'e609274e4fffe40dbcaceab1affbbaa1',
|
||||
'./include/SugarFields/Fields/Currency/EditView.tpl' => 'f0f6981a078def52e16cd29db4f791a8',
|
||||
'./include/SugarFields/Fields/Currency/ListView.tpl' => '6954c1e408c0e87dee1970ef378e8e26',
|
||||
'./include/SugarFields/Fields/Currency/SugarFieldCurrency.php' => '3c66ca4987be203c307211c90a0d1d12',
|
||||
'./include/SugarFields/Fields/Currency/SugarFieldCurrency.php' => '37c1eff63a488f5a95a7049870d51239',
|
||||
'./include/SugarFields/Fields/Datetime/DetailView.tpl' => '2923b50d1239fe11f001c186e6b32004',
|
||||
'./include/SugarFields/Fields/Datetime/EditView.tpl' => 'b771914ca5ed9b4e3b89fc360b2b2913',
|
||||
'./include/SugarFields/Fields/Datetime/SugarFieldDatetime.php' => '1e941621664592aa78ecf72de07aaf6e',
|
||||
|
@ -1712,7 +1712,7 @@ $md5_string = array (
|
|||
'./include/javascript/quickCompose.js' => '047d7eea0263fa0c2cd9bdb53ecf6258',
|
||||
'./include/javascript/quicksearch.js' => '97475c83c2614b54f3a0dd63edb2dfb2',
|
||||
'./include/javascript/report_additionals.js' => '094fef2462c9d640ee3ef4dc7af613d0',
|
||||
'./include/javascript/sugar_3.js' => '280698eac4601e9bdf8158d08e1b62e5',
|
||||
'./include/javascript/sugar_3.js' => '7c2085b3d95c0432619102d67649e11e',
|
||||
'./include/javascript/sugar_connection_event_listener.js' => 'c8a148e865988e17f9b0328de44803a7',
|
||||
'./include/javascript/sugar_yui_overrides.js' => 'd99ea792b967d53cef54e0b870acdd88',
|
||||
'./include/javascript/sugarwidgets/SugarYUILoader.js' => '959d552199b65eab09ed534ade65b064',
|
||||
|
@ -2317,7 +2317,7 @@ $md5_string = array (
|
|||
'./include/javascript/yui/build/yuitest/yuitest_core.js' => 'ed5230a0f4a885d8ea51c2fe78895d07',
|
||||
'./include/javascript/yui/ygDDList.js' => '0cd9051a220de7e8c79bf5b9cccce10f',
|
||||
'./include/json_config.php' => '6b20924151681a2280045e436b2d8a7a',
|
||||
'./include/language/en_us.lang.php' => 'bcc9ffa69152d9d0add071c724e88376',
|
||||
'./include/language/en_us.lang.php' => 'e3b1a9180685ed9d635026c213e779c7',
|
||||
'./include/language/en_us.notify_template.html' => 'c6a897ace7af46a44889dfab1a9d44c5',
|
||||
'./include/language/getJSLanguage.php' => '8b1d98ace6b65337cb2c73b7e575b9ef',
|
||||
'./include/language/jsLanguage.php' => 'a799baba0e1811a5e5f5e8c5418be30f',
|
||||
|
@ -2428,7 +2428,7 @@ $md5_string = array (
|
|||
'./include/utils/recaptcha_utils.php' => '73f5eddf707788c1dff4b7d07dc82656',
|
||||
'./include/utils/security_utils.php' => 'e953d0b673df3df313ecf1ac975e8f57',
|
||||
'./include/utils/sugar_file_utils.php' => 'b455044cfb5f8371884a1bc713dcfd7d',
|
||||
'./include/utils.php' => '418cd52378741dbc9d5e261bdd81b8cf',
|
||||
'./include/utils.php' => '382e5b511ca6de2157fa5cd56f02cc38',
|
||||
'./include/vCard.php' => '5bbc76ef3b778e5587cd1883e636ea41',
|
||||
'./include/ytree/ExtNode.php' => 'e13e1d0a4be0b76118a256a7562661f7',
|
||||
'./include/ytree/JQueryTree.php' => '765d0ce7a2ef6c1cd2b5fa1aff84e872',
|
||||
|
@ -2600,7 +2600,7 @@ $md5_string = array (
|
|||
'./jssource/src_files/include/javascript/quickCompose.js' => '31c8e3efcf325c0c805018587fa585cb',
|
||||
'./jssource/src_files/include/javascript/quicksearch.js' => '0329400df3d1b8e4eab0765f8fe9f2e4',
|
||||
'./jssource/src_files/include/javascript/report_additionals.js' => 'baca991df446eaf401dda47d1685fad1',
|
||||
'./jssource/src_files/include/javascript/sugar_3.js' => '0ea2517535d3b35950ead59e70b25d72',
|
||||
'./jssource/src_files/include/javascript/sugar_3.js' => '12a8c12781dbf176c71248ddcf8b36f9',
|
||||
'./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/sugarwidgets/SugarYUILoader.js' => 'abc59adf77cf85c0424dbcb6c356bee8',
|
||||
|
@ -2721,7 +2721,7 @@ $md5_string = array (
|
|||
'./lib/API/OAuth2/README.md' => '234c6e1b678f70e885d02420b9c455ff',
|
||||
'./lib/API/OAuth2/Repositories/AccessTokenRepository.php' => '1f2bf5f2afbb98e623a1198078f3140d',
|
||||
'./lib/API/OAuth2/Repositories/AuthCodeRepository.php' => 'aeff0474188cca01e9c637945c16e1a8',
|
||||
'./lib/API/OAuth2/Repositories/ClientRepository.php' => '7760a26033e8f6d0d33ff20c961f0f03',
|
||||
'./lib/API/OAuth2/Repositories/ClientRepository.php' => '90c84a07a0b044ebe89ab99b9c154050',
|
||||
'./lib/API/OAuth2/Repositories/RefreshTokenRepository.php' => '9e1d04eb35ae89cb2d1dd079bba6cff5',
|
||||
'./lib/API/OAuth2/Repositories/ScopeRepository.php' => '2578af795b165f95d711efe58ce50a50',
|
||||
'./lib/API/OAuth2/Repositories/UserRepository.php' => '8481169d88ab9037b5946495fa625151',
|
||||
|
@ -2915,7 +2915,7 @@ $md5_string = array (
|
|||
'./metadata/email_addressesMetaData.php' => '77a0ab68a5ce431a930d18e40a927ecf',
|
||||
'./metadata/email_cacheMetaData.php' => '47b98048d142760f7604baf5a3b19133',
|
||||
'./metadata/email_marketing_prospect_listsMetaData.php' => 'ad67882b2a03c984fda7155752fb87ad',
|
||||
'./metadata/emails_beansMetaData.php' => 'd21d01ee02c21ee8e14e9f98c5fa52fc',
|
||||
'./metadata/emails_beansMetaData.php' => '907c05347cf0e5041804e5bb9337d1a6',
|
||||
'./metadata/emails_email_templatesMetaData.php' => 'b6b3cafb1ac6912828bd8f086a6aa1d6',
|
||||
'./metadata/fields_meta_dataMetaData.php' => 'a0e51e5d5a49b1f89af75ff58abd8df0',
|
||||
'./metadata/foldersMetaData.php' => 'a9f806885ac0909661568642c5914756',
|
||||
|
@ -3485,7 +3485,7 @@ $md5_string = array (
|
|||
'./modules/AOS_PDF_Templates/samples/smpl_Quote_Group_Sample.php' => '56295ceac9c33d891122c13ef94c119c',
|
||||
'./modules/AOS_PDF_Templates/samples/smpl_Quote_Sample.php' => '2c3097b5ddc49a58c3753beb93c14f2b',
|
||||
'./modules/AOS_PDF_Templates/sendEmail.php' => 'ad8d8ce6f78f93dec805cf73bd5f7572',
|
||||
'./modules/AOS_PDF_Templates/templateParser.php' => 'e7594ab34c630356c33a501d57d1f429',
|
||||
'./modules/AOS_PDF_Templates/templateParser.php' => 'a4240e4979829b5a58ade3c2af05fcdf',
|
||||
'./modules/AOS_PDF_Templates/vardefs.php' => 'c2222325b41dca6b38ceec42dc1d622a',
|
||||
'./modules/AOS_PDF_Templates/views/view.detail.php' => '226618d1d2cc62700ac0c7e53d166455',
|
||||
'./modules/AOS_PDF_Templates/views/view.edit.php' => 'cf04ae20b0b07e64ec8569d0da459379',
|
||||
|
@ -3520,7 +3520,7 @@ $md5_string = array (
|
|||
'./modules/AOS_Products/language/en_us.lang.php' => 'fe97dd9da66cedbd73e4247139ba3180',
|
||||
'./modules/AOS_Products/metadata/SearchFields.php' => '518b6cf0ed9c79d12557f7a4362ea6b9',
|
||||
'./modules/AOS_Products/metadata/dashletviewdefs.php' => '5dc63415ec7a44fff4625451d7ccff2f',
|
||||
'./modules/AOS_Products/metadata/detailviewdefs.php' => 'e81b04dd306292cea2d8fa5d7570f036',
|
||||
'./modules/AOS_Products/metadata/detailviewdefs.php' => '7cad1a06a62d0c958e1dc98fd2d6ae91',
|
||||
'./modules/AOS_Products/metadata/editviewdefs.php' => '3b1665416d0987eee0248fe1229f6c8d',
|
||||
'./modules/AOS_Products/metadata/listviewdefs.php' => '2d0ad89871a553caafafd246c2929c09',
|
||||
'./modules/AOS_Products/metadata/metafiles.php' => 'c592342532bb4e1c91527ddf87252be5',
|
||||
|
@ -3533,13 +3533,13 @@ $md5_string = array (
|
|||
'./modules/AOS_Products/metadata/subpanels/ForCustomersPurchasedProducts.php' => '758c25d97c18216f0795d9aa52e75312',
|
||||
'./modules/AOS_Products/metadata/subpanels/default.php' => '1dd8f61fde8d4b4ce3ba0dbaf632d91d',
|
||||
'./modules/AOS_Products/tpls/EditViewHeader.tpl' => '07c10b404deee77ef7dd70a352ebc741',
|
||||
'./modules/AOS_Products/vardefs.php' => 'fbdc21ae3ff9b99dd052b8d472e70323',
|
||||
'./modules/AOS_Products/vardefs.php' => 'e2dcab2620d33c4cbe612885c0c07f57',
|
||||
'./modules/AOS_Products/views/view.edit.php' => 'b657ec42f16d2e72bc1125e59ccd560a',
|
||||
'./modules/AOS_Products_Quotes/AOS_Products_Quotes.php' => '04c4318cdc4cee5a37666b53b21f5805',
|
||||
'./modules/AOS_Products_Quotes/AOS_Products_Quotes_sugar.php' => 'd3dd864934285ae10321699f85d748fd',
|
||||
'./modules/AOS_Products_Quotes/AOS_Utils.php' => 'fe0e0b2c29e88134ae7134186c7c99e2',
|
||||
'./modules/AOS_Products_Quotes/Forms.php' => 'd41d8cd98f00b204e9800998ecf8427e',
|
||||
'./modules/AOS_Products_Quotes/Line_Items.php' => '59741fcc1eeea0df551f12162c2e577f',
|
||||
'./modules/AOS_Products_Quotes/Line_Items.php' => 'ac204e5cbd0e8f4d22a90eb3615d82fb',
|
||||
'./modules/AOS_Products_Quotes/Menu.php' => 'b7ade70d995c0fb6795273fbe7717309',
|
||||
'./modules/AOS_Products_Quotes/language/en_us.lang.php' => '4d72610d9e528158b01152d4914d4484',
|
||||
'./modules/AOS_Products_Quotes/line_items.js' => '899d53bae08875f77e986f2e595d8e83',
|
||||
|
@ -3870,7 +3870,7 @@ $md5_string = array (
|
|||
'./modules/Bugs/views/view.detail.php' => 'b07714212db53015981ca1a9406843a8',
|
||||
'./modules/Bugs/views/view.edit.php' => '72fb9b9b89068476faff4a114360498b',
|
||||
'./modules/Calendar/Cal.js' => 'bc6138c43cd476b7b51b084745f54cf5',
|
||||
'./modules/Calendar/Calendar.php' => '01d428caa0749737a251a5a850a155fd',
|
||||
'./modules/Calendar/Calendar.php' => '7e5720ffee5b1882eb1abc19f38f2cdb',
|
||||
'./modules/Calendar/CalendarActivity.php' => 'b9324a684bbcbd3384ee1424e7d11383',
|
||||
'./modules/Calendar/CalendarDisplay.php' => '2d1248541058ef8fb05bab5b8fcb0973',
|
||||
'./modules/Calendar/CalendarGrid.php' => 'bba76087327652142e8f20f40e56582f',
|
||||
|
@ -3879,7 +3879,7 @@ $md5_string = array (
|
|||
'./modules/Calendar/Dashlets/CalendarDashlet/CalendarDashlet.meta.php' => '758acc8f997a457526abe67952a3c5de',
|
||||
'./modules/Calendar/Dashlets/CalendarDashlet/CalendarDashlet.php' => 'd0aaf048c405349f8399d6a1a1523238',
|
||||
'./modules/Calendar/Dashlets/CalendarDashlet/CalendarDashletOptions.tpl' => '6a599906d5e576415ff411f4e6521045',
|
||||
'./modules/Calendar/Menu.php' => '094d10e56e52387a9dcf3b56525df005',
|
||||
'./modules/Calendar/Menu.php' => '3f74a3dbe84310cd7db8baa56f27dfbb',
|
||||
'./modules/Calendar/action_view_map.php' => '39d6156a65886603c17887acd96038f3',
|
||||
'./modules/Calendar/controller.php' => 'd853e028fff68d4bf838ec5f7f337773',
|
||||
'./modules/Calendar/fullcalendar/fullcalendar.css' => 'a4583f80a8ce83d3f48b371fcb3dd43d',
|
||||
|
@ -4090,7 +4090,7 @@ $md5_string = array (
|
|||
'./modules/Campaigns/Schedule.html' => '86665be896b56d8fab42eb3846acaf32',
|
||||
'./modules/Campaigns/Schedule.php' => '17be50613ce6957cd1e4227376fa5979',
|
||||
'./modules/Campaigns/SearchForm_NewsLetter.html' => '3cb811303aa7dc0c8a44acf763a4d200',
|
||||
'./modules/Campaigns/SubPanelViewer.php' => 'df3b8374dee98ecb64566577e6adbe81',
|
||||
'./modules/Campaigns/SubPanelViewer.php' => '5c2a87b7cb784459c69358a5545089ca',
|
||||
'./modules/Campaigns/Subscriptions.html' => '440e6502c98868966e21ff5ec7386728',
|
||||
'./modules/Campaigns/Subscriptions.php' => '6f33a1b2973eb95e8e2ea4b3e0227733',
|
||||
'./modules/Campaigns/Subscriptions.tpl' => 'e5babedc4fb1cc57cf641c2ec6c99113',
|
||||
|
@ -4775,7 +4775,7 @@ $md5_string = array (
|
|||
'./modules/Employees/views/view.list.php' => 'aa694cb5ae830f3198f8479c40425c31',
|
||||
'./modules/ExternalOAuthConnection/ExternalOAuthConnection.php' => 'cfa6310414caf3c52d86b21c0a5b9e03',
|
||||
'./modules/ExternalOAuthConnection/Menu.php' => '6ae8433d8a70354ed103bf6c9c227b8a',
|
||||
'./modules/ExternalOAuthConnection/controller.php' => '7cd6e564e92cedff16938f516a5e98b9',
|
||||
'./modules/ExternalOAuthConnection/controller.php' => '3aad879086e510415f46d9df2e0083e4',
|
||||
'./modules/ExternalOAuthConnection/entrypoint/redirectToExternalOAuth.php' => '5c7689fab50bbb50b2b10c9a5bf497c8',
|
||||
'./modules/ExternalOAuthConnection/entrypoint/setExternalOAuthToken.php' => '7b079da4660ddb159a9b529bd05905f8',
|
||||
'./modules/ExternalOAuthConnection/js/authenticate.js' => '2f9c2092d9fe9735c3b860d693d87969',
|
||||
|
@ -4861,8 +4861,8 @@ $md5_string = array (
|
|||
'./modules/Favorites/Dashlets/Favorites/FavoritesDashlet.php' => '95fbdad6da4d32651a0911e5a9de337f',
|
||||
'./modules/Favorites/Favorites.php' => '44afe4a353b6bc5ae9645fa1b2e771fb',
|
||||
'./modules/Favorites/controller.php' => '1b8452c32ba8ce778aa0ef42a48931ed',
|
||||
'./modules/Favorites/favorites.js' => 'b1ff0e1d74c99a21689c328369af9fa6',
|
||||
'./modules/Favorites/language/en_us.lang.php' => '6c21f486af066a4a07a871ef63a72da8',
|
||||
'./modules/Favorites/favorites.js' => '67c60b61d7f759735d885117f0ed778b',
|
||||
'./modules/Favorites/language/en_us.lang.php' => 'cf54a9ab9576bfa9787950e398827b8b',
|
||||
'./modules/Favorites/metadata/SearchFields.php' => '4f31d8b4b56814ec7dd0ddea85fe4811',
|
||||
'./modules/Favorites/metadata/dashletviewdefs.php' => '04d08e9a728fc3888a4872ee21ad8439',
|
||||
'./modules/Favorites/metadata/detailviewdefs.php' => '0af26f8c686a9109c148643775af7250',
|
||||
|
@ -5013,12 +5013,12 @@ $md5_string = array (
|
|||
'./modules/InboundEmail/Delete.php' => '2dec384b7a0c8bc29bf2dcfdfc26506c',
|
||||
'./modules/InboundEmail/EditGroupFolder.php' => 'd7c41e935f01bfe5b6ce52c2f0385c9b',
|
||||
'./modules/InboundEmail/InboundEmail.js' => '08ecbd5c0a7f5bda5bb293a772ed73a4',
|
||||
'./modules/InboundEmail/InboundEmail.php' => '48080d6e766fc2506c36684cbd99ffa3',
|
||||
'./modules/InboundEmail/InboundEmail.php' => '403bd83c2b5e6c4e02242b3ec619f5d4',
|
||||
'./modules/InboundEmail/Menu.php' => 'bfb4c000e482ae7206a9c0dea76acafe',
|
||||
'./modules/InboundEmail/Overview.php' => '9766054c2ea0d89d795c223ba06f781e',
|
||||
'./modules/InboundEmail/Popup.php' => '44ccaa41943049ab78db97a8772fb029',
|
||||
'./modules/InboundEmail/PostSave.php' => 'bc1907c89fd2dc22e2ce13ada5f5c62a',
|
||||
'./modules/InboundEmail/Save.php' => '6177a11b30869315ee8927467d338f6b',
|
||||
'./modules/InboundEmail/Save.php' => '658f99abc51169688fc183c54d8d1b0f',
|
||||
'./modules/InboundEmail/SaveGroupFolder.php' => '6894a715a39d2074b652a30a1463a430',
|
||||
'./modules/InboundEmail/ShowInboundFoldersList.php' => '4c9e13f52fe3e78fdef2728edb988186',
|
||||
'./modules/InboundEmail/View.html' => 'aeaf0daf6157c5a74738a47145576ee0',
|
||||
|
@ -5034,7 +5034,7 @@ $md5_string = array (
|
|||
'./modules/InboundEmail/js/panel_toggle.js' => '9f939fcd54b840e766ad90e903dc2445',
|
||||
'./modules/InboundEmail/js/ssl_port_set.js' => 'f44377e9d154de21127af16b31fd5418',
|
||||
'./modules/InboundEmail/js/test_configuration.js' => 'ed6a03301fb718c1dc5258308b3f782e',
|
||||
'./modules/InboundEmail/language/en_us.lang.php' => '067693116e696e24e7f54830f2b44a23',
|
||||
'./modules/InboundEmail/language/en_us.lang.php' => '34a1948c988d258520132cce675e950f',
|
||||
'./modules/InboundEmail/metadata/SearchFields.php' => '6f2e27a576a956001693c7af731539dc',
|
||||
'./modules/InboundEmail/metadata/detailviewdefs.php' => 'b065e28dfc4b351c77a163e8ff8294d9',
|
||||
'./modules/InboundEmail/metadata/editviewdefs.php' => '3b500625fcfa57e6bfcff78a4e202b6f',
|
||||
|
@ -5517,7 +5517,7 @@ $md5_string = array (
|
|||
'./modules/Project/js/custom_project.js' => '914266f7195ce8efea65489dc10de087',
|
||||
'./modules/Project/js/jquery.blockUI.js' => '4ef4f2476c42316941c34ed1034d44b1',
|
||||
'./modules/Project/js/jquery.validate.min.js' => '15d67ada60f2b7a862e0fdcd1baddf72',
|
||||
'./modules/Project/js/main_lib.js' => '9cbbc1271c8fb839650ab8a136924c29',
|
||||
'./modules/Project/js/main_lib.js' => '592112c2617c6cad78bfeab78e2e7f44',
|
||||
'./modules/Project/js/main_lib_chart.js' => '91d61dc6376fef2c4b1c695b9d192a13',
|
||||
'./modules/Project/js/splitter.js' => 'd59c79df0ee13a45610c508fe102b0e9',
|
||||
'./modules/Project/jsclass_scheduler.js' => '80b8c582a600532fbda3cc4db1435f57',
|
||||
|
@ -5589,7 +5589,7 @@ $md5_string = array (
|
|||
'./modules/ProjectTask/tpls/QuickCreate.tpl' => '9c4a083ed37831f839aff8e7710b6e9a',
|
||||
'./modules/ProjectTask/updateDependencies.php' => '686ba84962d6cfb3dbd5cb4d3ad23829',
|
||||
'./modules/ProjectTask/updateProject.php' => '466f6f7eed435124714e1bb37f91c951',
|
||||
'./modules/ProjectTask/vardefs.php' => 'd1966d1060fcc2f8245f83e983f4a477',
|
||||
'./modules/ProjectTask/vardefs.php' => '91ccf0855d0154c8875ae9c3acfd59dc',
|
||||
'./modules/ProjectTask/views/view.list.php' => 'fc486382f5a703fe2f34891d1608ce88',
|
||||
'./modules/ProspectLists/Delete.php' => 'a71f8e0b433aa828f646d7c8679512e2',
|
||||
'./modules/ProspectLists/Duplicate.php' => 'f73bdc77dd9e63b24e69897105947500',
|
||||
|
@ -5796,7 +5796,7 @@ $md5_string = array (
|
|||
'./modules/Spots/metadata/subpanels/default.php' => '2c58e1f4247fc452f1222057e9f2a2be',
|
||||
'./modules/Spots/tpl/ShowSpots.tpl' => '31b7aeeb2125bcba72a7fe71339a645c',
|
||||
'./modules/Spots/vardefs.php' => '5e4d751e31f3684b35e34af55d53be25',
|
||||
'./modules/Spots/views/view.edit.php' => '0c7d5411f96ecd3c8bcc3ce0061de746',
|
||||
'./modules/Spots/views/view.edit.php' => '47471d0b8c7e3f1e1e69253dfcdb2959',
|
||||
'./modules/Spots/views/view.list.php' => 'be23531f44afd50b4f7e74c6f6ffacb5',
|
||||
'./modules/Studio/DropDowns/DropDownHelper.php' => 'b9ec8118f643b58794341460c7b2ff3f',
|
||||
'./modules/Studio/DropDowns/EditView.php' => 'fc1f1181fe3ecf9d446078ef3998a912',
|
||||
|
@ -6021,7 +6021,7 @@ $md5_string = array (
|
|||
'./modules/UpgradeWizard/PasswordExpirationService.php' => '2235f1391ec659e63a05793c1c8b9f14',
|
||||
'./modules/UpgradeWizard/SILENTUPGRADE.md' => 'd89feaa2fdc79693e5decb48311a402e',
|
||||
'./modules/UpgradeWizard/SugarMerge/DetailViewMerge.php' => '7927a3bc5bbc65b11acd8f9d6c93df61',
|
||||
'./modules/UpgradeWizard/SugarMerge/EditViewMerge.php' => 'd10af8e80b9262d985a6a12e3a4de9c7',
|
||||
'./modules/UpgradeWizard/SugarMerge/EditViewMerge.php' => '5c20ba418406628e02df5c81426434ab',
|
||||
'./modules/UpgradeWizard/SugarMerge/ListViewMerge.php' => '0502a01de972fbb5873c4191aa73e34f',
|
||||
'./modules/UpgradeWizard/SugarMerge/QuickCreateMerge.php' => 'f37625c2c11255b614c1f3425b262845',
|
||||
'./modules/UpgradeWizard/SugarMerge/SearchMerge.php' => '707fb81e7a35f2a5c7b669d4bf6f7df6',
|
||||
|
@ -6058,7 +6058,7 @@ $md5_string = array (
|
|||
'./modules/UpgradeWizard/uw_files.php' => 'b9454c4a50c59598259039db4182fcd7',
|
||||
'./modules/UpgradeWizard/uw_main.tpl' => '563f6ae242f53959263ac1c1715e8ceb',
|
||||
'./modules/UpgradeWizard/uw_utils.php' => '2417c9ceb8a6e71ce3a6c2143fc155c0',
|
||||
'./modules/UserPreferences/UserPreference.php' => 'b4d28be2d8a1a0b2384b84c118298994',
|
||||
'./modules/UserPreferences/UserPreference.php' => '53235486d082f0ed2eeac8e5979c64de',
|
||||
'./modules/UserPreferences/controller.php' => 'e100c3e0bf7a5a431a9ac68a0cacdc47',
|
||||
'./modules/UserPreferences/field_arrays.php' => '813ef8bb8a16fa4ae0875e46733227fa',
|
||||
'./modules/UserPreferences/index.php' => 'e13185a4d9244f97656b59f4ac85e4c6',
|
||||
|
@ -6076,7 +6076,7 @@ $md5_string = array (
|
|||
'./modules/Users/ListRoles.php' => '470204e9dd0e9421f06f7304cf72e063',
|
||||
'./modules/Users/LoggedOut.php' => '651bfc7c6c36f3791c2693bda075beb9',
|
||||
'./modules/Users/LoggedOut.tpl' => '9537c8e192b86a038ba3177d9e2fdff1',
|
||||
'./modules/Users/Login.php' => '9ebf326478c6384e286226544f2b6a66',
|
||||
'./modules/Users/Login.php' => '89105f2e73c063f6e571f74b4eb5588d',
|
||||
'./modules/Users/Logout.php' => 'dd93eeb56baa9fa101b8237da3c7ec99',
|
||||
'./modules/Users/Menu.php' => '47229e99dbc69e99d8a1f0a2934aa285',
|
||||
'./modules/Users/PasswordRequirementBox.css' => '836245343f059e04a8bcf40eed8672cc',
|
||||
|
@ -6091,7 +6091,7 @@ $md5_string = array (
|
|||
'./modules/Users/SetTimezone.tpl' => 'f0fb5ed64fae81a5657ebc8f167967c9',
|
||||
'./modules/Users/UpdateTourStatus.php' => 'cc111e28e6df1d96b98678661dd42490',
|
||||
'./modules/Users/User.js' => '351f8d8e74bd1bd0a56dcc2bae31b147',
|
||||
'./modules/Users/User.php' => '9418d32e68a7ec29f36f5ad46cedc4ab',
|
||||
'./modules/Users/User.php' => '7d98deef5b524d1485533c34d4db3aa7',
|
||||
'./modules/Users/UserEditView.js' => '421e1c38f1ee78933134b987b7c3c251',
|
||||
'./modules/Users/UserEmailOptions.tpl' => '96b848efbf7f6d4fee7b6bf13a1a1aee',
|
||||
'./modules/Users/UserEmailSettings.tpl' => '5d9ff3379f63dcf7c5efbbcc3e88d8ed',
|
||||
|
@ -6100,7 +6100,7 @@ $md5_string = array (
|
|||
'./modules/Users/UserEmailSettingsGeneral.tpl' => '1147e620d08d8c2935818880b7e70a70',
|
||||
'./modules/Users/UserSignature.php' => '0a5c9086ecb01b9f9d20a5d1fb5eece0',
|
||||
'./modules/Users/UserSignatureEditView.html' => 'a01adafa8bd9ec9d318efc523407f420',
|
||||
'./modules/Users/UserViewHelper.php' => '9fb08ee55cb215cfa68d81ba00e968e9',
|
||||
'./modules/Users/UserViewHelper.php' => 'bfb24efd8cae682eaf25dd978f24fbef',
|
||||
'./modules/Users/_baseEmail.tpl' => '9f2a32a843c5c1c604d100a3038e485d',
|
||||
'./modules/Users/authentication/AuthenticationController.php' => '3217ba33c74aed872aba2310c33f1695',
|
||||
'./modules/Users/authentication/EmailAuthenticate/EmailAuthenticate.php' => '5431ed79bc9a500eb22a1db83b215b8d',
|
||||
|
@ -6116,13 +6116,13 @@ $md5_string = array (
|
|||
'./modules/Users/authentication/SugarAuthenticate/FactorAuthEmailCode.tpl' => '7d47d05738a22f219f9a96ee5393792c',
|
||||
'./modules/Users/authentication/SugarAuthenticate/FactorAuthFactory.php' => '785b6621ee6d031bac0c6822d6bcf9eb',
|
||||
'./modules/Users/authentication/SugarAuthenticate/FactorAuthInterface.php' => '01bb1e373dcf4cc53dc3ff41f0040d00',
|
||||
'./modules/Users/authentication/SugarAuthenticate/SugarAuthenticate.php' => 'ee54fc8371ff4bfa6556f779c9b79efc',
|
||||
'./modules/Users/authentication/SugarAuthenticate/SugarAuthenticate.php' => 'cdc5ce643ccb78b0e13511ec99b8b25d',
|
||||
'./modules/Users/authentication/SugarAuthenticate/SugarAuthenticateUser.php' => 'c1b04f50dc07a428248f67fbf627d105',
|
||||
'./modules/Users/controller.php' => 'fc98d459cef959471cf2fbdfef74206b',
|
||||
'./modules/Users/controller.php' => 'a65a1943dc2b0d63dba55a91c163ee38',
|
||||
'./modules/Users/entryPointSaveGoogleApiKey.php' => 'af2395a659fbe4c935ac555e4f3b592b',
|
||||
'./modules/Users/field_arrays.php' => 'b2de6918c313caef59c28582475ab3a6',
|
||||
'./modules/Users/googleApiKeySaverEntryPointError.tpl' => '5b45b5ce045c459e3e6c571d43eef873',
|
||||
'./modules/Users/language/en_us.lang.php' => '8c6deb6a45ab4bc62e6f0c3d1b02db77',
|
||||
'./modules/Users/language/en_us.lang.php' => 'd70fc7802530dadb306041712b579fed',
|
||||
'./modules/Users/login.css' => '2c43ea9ba2bed908c545bde7ee7c4575',
|
||||
'./modules/Users/login.js' => 'f54ae3775635f5cf93b7854e6dde656d',
|
||||
'./modules/Users/login.tpl' => '76e56647f4334e8ee80ec2defa4d1659',
|
||||
|
@ -6150,17 +6150,17 @@ $md5_string = array (
|
|||
'./modules/Users/password_utils.php' => 'c445ba371decfae7afb76ad09c060e8a',
|
||||
'./modules/Users/reassignUserRecords.php' => '30e62154022301ff65b8dc18678a4c06',
|
||||
'./modules/Users/tpls/DetailView.tpl' => '2b5edc433a18eab9e1dc24f55c015ced',
|
||||
'./modules/Users/tpls/EditViewFooter.tpl' => '3c7b94dbd811047b86e69937c8c9b807',
|
||||
'./modules/Users/tpls/EditViewFooter.tpl' => '93dc94ea8a18f27d7cfa5d52ec5ba431',
|
||||
'./modules/Users/tpls/EditViewGroup.tpl' => '97bbb48546d0b13a60dac111abb8358a',
|
||||
'./modules/Users/tpls/EditViewHeader.tpl' => '099f5e4896d623b64d44f243c33941b2',
|
||||
'./modules/Users/tpls/QuickEditFooter.tpl' => 'a7a723ca20a7e8deaaca503c1e759ced',
|
||||
'./modules/Users/tpls/wizard.tpl' => 'acafbe8bf6a878386c99694798c79174',
|
||||
'./modules/Users/vardefs.php' => 'e442489d83d7749c1555418b1fd80b69',
|
||||
'./modules/Users/tpls/wizard.tpl' => '3031ee7c8a2b93b273a3a6107ec6cb97',
|
||||
'./modules/Users/vardefs.php' => 'b761eb465b430e2ef77e4b470279a56b',
|
||||
'./modules/Users/views/view.detail.php' => 'f0f7dd13f61803dfcd0305c7fac15b26',
|
||||
'./modules/Users/views/view.edit.php' => '6b307e296840435cecd912f815f3a600',
|
||||
'./modules/Users/views/view.list.php' => '5bac9633d6463c960113f0e9c0904208',
|
||||
'./modules/Users/views/view.quickedit.php' => '491165600e3bea72b319a57ecbd2a920',
|
||||
'./modules/Users/views/view.wizard.php' => '029206641f61cc50900e83a52d0c3392',
|
||||
'./modules/Users/views/view.wizard.php' => '27a007d19e44d02d60fe2d58079b5f08',
|
||||
'./modules/iCals/HTTP_WebDAV_Server_iCal.php' => 'd580fcbf65d4bb37e82305d67298f41e',
|
||||
'./modules/iCals/Server.php' => '5666c28d4183be09d3062e56ddad25db',
|
||||
'./modules/iCals/iCal.php' => '870d600fa8539e984716b5893482d57f',
|
||||
|
@ -6371,7 +6371,7 @@ $md5_string = array (
|
|||
'./soap.php' => 'e28988c2e0b8e2c484587b537a710525',
|
||||
'./sugar_version.json' => 'bdfbcefae2f9af559bef6a36367df7bb',
|
||||
'./sugar_version.php' => 'db7b6c8d51f87879fce1e6172eedfbed',
|
||||
'./suitecrm_version.php' => '5a963efd4d902e59e9571e7d5988a87c',
|
||||
'./suitecrm_version.php' => '84bae8768f8baee762217c2682addd3d',
|
||||
'./themes/SuiteP/css/Dawn/color-palette.scss' => 'e64677d79e1d68c069bdc2dc661c4f99',
|
||||
'./themes/SuiteP/css/Dawn/icons.scss' => 'd59f8c5855e7a8df09542a663835a196',
|
||||
'./themes/SuiteP/css/Dawn/select.ico' => '22393ad23f16c3f1462455bae8f20279',
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
|
||||
*
|
||||
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2018 SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2024 SalesAgility Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by the
|
||||
|
@ -1506,9 +1506,9 @@ EOHTML;
|
|||
$this->bean->id .
|
||||
"' module='" .
|
||||
$this->bean->module_dir .
|
||||
"'><div class='favorite_icon_outline'>" .
|
||||
"'><div class='favorite_icon_outline' title='" . translate('LBL_MARK_FAVORITE', 'Favorites') . "'>" .
|
||||
"<span class='suitepicon suitepicon-favorite-star-outline'></span></div>
|
||||
<div class='favorite_icon_fill' 'title=\"' . translate('LBL_DASHLET_EDIT', 'Home') . '\" border=\"0\" align=\"absmiddle\"'>" .
|
||||
<div class='favorite_icon_fill' title='" . translate('LBL_UNMARK_FAVORITE', 'Favorites') . "' border=\"0\" align=\"absmiddle\">" .
|
||||
|
||||
"<span class='suitepicon suitepicon-favorite-star'></span></div></div>";
|
||||
}
|
||||
|
|
|
@ -394,11 +394,8 @@ eoq;
|
|||
$parentenum_value = $newbean->$parentenum_name;
|
||||
|
||||
$dynamic_field_name = $field_name['name'];
|
||||
// Dynamic field set value.
|
||||
list($dynamic_field_value) = explode('_', $newbean->$dynamic_field_name);
|
||||
|
||||
if ($parentenum_value != $dynamic_field_value) {
|
||||
|
||||
if (strpos($newbean->$dynamic_field_name, $parentenum_value) !== 0) {
|
||||
// Change to the default value of the correct value set.
|
||||
$defaultValue = '';
|
||||
foreach ($app_list_strings[$field_name['options']] as $key => $value) {
|
||||
|
|
|
@ -1153,7 +1153,6 @@ class SearchForm
|
|||
|
||||
if ($type == 'datetime' || $type == 'datetimecombo') {
|
||||
try {
|
||||
$field_value = $timedate->to_db_date($field_value, false);
|
||||
if ($operator == '=' || $operator == 'between') {
|
||||
// FG - bug45287 - If User asked for a range, takes edges from it.
|
||||
$placeholderPos = strpos($field_value, "<>");
|
||||
|
|
|
@ -466,7 +466,7 @@ class SugarEmailAddress extends SugarBean
|
|||
email_address = '$_address',
|
||||
email_address_caps = '$_addressCaps'
|
||||
WHERE
|
||||
id = '{$_id}' AND
|
||||
id = {$_id} AND
|
||||
deleted = 0";
|
||||
$result = $db->query($query);
|
||||
if (!$result) {
|
||||
|
|
|
@ -99,7 +99,8 @@ class SugarFieldCurrency extends SugarFieldFloat
|
|||
|
||||
if (isset($vardef['len'])) {
|
||||
// check for field length
|
||||
$value = sugar_substr($value, $vardef['len']);
|
||||
$length = explode(',', $vardef['len']);
|
||||
$value = sugar_substr($value, $length[0]);
|
||||
}
|
||||
|
||||
return $value;
|
||||
|
|
|
@ -259,7 +259,7 @@ catch(e){alert('message:'+e.message+":url:"+url);}
|
|||
if(method=='POST'){global_xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}
|
||||
global_xmlhttp.onreadystatechange=function(){if(global_xmlhttp.readyState==4){if(global_xmlhttp.status==200){if(SUGAR.util.isLoginPage(global_xmlhttp.responseText))
|
||||
return false;var args={"responseText":global_xmlhttp.responseText,"responseXML":global_xmlhttp.responseXML,"request_id":request_id};callback.call(document,args);}
|
||||
else{alert("There was a problem retrieving the XML data:\n"+global_xmlhttp.statusText);}}}
|
||||
else{alert(SUGAR.language.get('app_strings','LBL_RETRIEVING_XML_DATA')+global_xmlhttp.statusText);}}}
|
||||
global_xmlhttp.send(post_data);}
|
||||
function insert_at_cursor(field,value){if(document.selection){field.focus();sel=document.selection.createRange();sel.text=value;}
|
||||
else if(field.selectionStart||field.selectionStart=='0'){var start_pos=field.selectionStart;var end_pos=field.selectionEnd;field.value=field.value.substring(0,start_pos)+value+field.value.substring(end_pos,field.value.length);}
|
||||
|
@ -531,7 +531,7 @@ for(i=0;i<selected_left.length;i++){right_options[right_options.length]=selected
|
|||
for(i=0;i<notselected_left.length;i++){left_options[left_options.length]=notselected_left[i];}
|
||||
left_select_html_info['options']=left_options;left_select_html_info['select']=left_select;right_select_html_info['options']=right_options;right_select_html_info['select']=right_select;right_select_html_info['style']='background: lightgrey';var left_html=this.buildSelectHTML(left_select_html_info);var right_html=this.buildSelectHTML(right_select_html_info);left_td.innerHTML=left_html;right_td.innerHTML=right_html;object_refs[left_name]=left_td.getElementsByTagName('select')[0];object_refs[right_name]=right_td.getElementsByTagName('select')[0];this.movementCallback(object_refs[left_name],object_refs[right_name]);return false;},right_to_left:function(left_name,right_name,left_size,right_size,max_left){SUGAR.savedViews.clearColumns=false;var left_td=document.getElementById(left_name+'_td');var right_td=document.getElementById(right_name+'_td');var display_columns_ref=left_td.getElementsByTagName('select')[0];var hidden_columns_ref=right_td.getElementsByTagName('select')[0];var selected_right=new Array();var notselected_right=new Array();var notselected_left=new Array();var frozen_options=SUGAR.tabChooser.frozenOptions;frozen_options=SUGAR.tabChooser.frozenOptions&&SUGAR.tabChooser.frozenOptions[right_name]&&SUGAR.tabChooser.frozenOptions[right_name][left_name]?SUGAR.tabChooser.frozenOptions[right_name][left_name]:[];for(i=0;i<hidden_columns_ref.options.length;i++){if(hidden_columns_ref.options[i].selected==true&&!frozen_options[hidden_columns_ref.options[i].value]){selected_right[selected_right.length]={text:hidden_columns_ref.options[i].text,value:hidden_columns_ref.options[i].value};}
|
||||
else{notselected_right[notselected_right.length]={text:hidden_columns_ref.options[i].text,value:hidden_columns_ref.options[i].value};}}
|
||||
if(max_left!=''&&(display_columns_ref.length+selected_right.length)>max_left){alert('Maximum of '+max_left+' columns can be displayed.');return;}
|
||||
if(max_left!=''&&(display_columns_ref.length+selected_right.length)>max_left){alert(SUGAR.language.interpolate(SUGAR.language.get('app_strings','LBL_MAX_DASHLET_COLUMNS'),[max_left]));return;}
|
||||
for(i=0;i<display_columns_ref.options.length;i++){notselected_left[notselected_left.length]={text:display_columns_ref.options[i].text,value:display_columns_ref.options[i].value};}
|
||||
var left_select_html_info=new Object();var left_options=new Array();var left_select=new Object();left_select['name']=left_name+'[]';left_select['id']=left_name;left_select['multiple']='true';left_select['size']=left_size;var right_select_html_info=new Object();var right_options=new Array();var right_select=new Object();right_select['name']=right_name+'[]';right_select['id']=right_name;right_select['multiple']='true';right_select['size']=right_size;for(i=0;i<notselected_left.length;i++){left_options[left_options.length]=notselected_left[i];}
|
||||
for(i=0;i<selected_right.length;i++){left_options[left_options.length]=selected_right[i];}
|
||||
|
@ -544,7 +544,8 @@ return false;var sel=new Array();for(i=obj.length-1;i>-1;i--){if(obj[i].selected
|
|||
for(i=0;i<sel.length;i++){if(sel[i]!=obj.length-1&&!obj[sel[i]+1].selected){var tmp=new Array(obj[sel[i]+1].text,obj[sel[i]+1].value);obj[sel[i]+1].text=obj[sel[i]].text;obj[sel[i]+1].value=obj[sel[i]].value;obj[sel[i]].text=tmp[0];obj[sel[i]].value=tmp[1];obj[sel[i]+1].selected=true;obj[sel[i]].selected=false;}}
|
||||
object_refs[left_name]=left_td.getElementsByTagName('select')[0];object_refs[right_name]=right_td.getElementsByTagName('select')[0];this.orderCallback(object_refs[left_name],object_refs[right_name]);return false;}};}();SUGAR.language=function(){return{languages:new Array(),setLanguage:function(module,data){if(!SUGAR.language.languages){}
|
||||
SUGAR.language.languages[module]=data;},get:function(module,str){if(typeof SUGAR.language.languages[module]=='undefined'||typeof SUGAR.language.languages[module][str]=='undefined'){return'undefined';}
|
||||
return SUGAR.language.languages[module][str];},translate:function(module,str){text=this.get(module,str);return text!='undefined'?text:this.get('app_strings',str);}}}();SUGAR.contextMenu=function(){return{objects:new Object(),objectTypes:new Object(),registerObject:function(objectType,id,metaData){SUGAR.contextMenu.objects[id]=new Object();SUGAR.contextMenu.objects[id]={'objectType':objectType,'metaData':metaData};},registerObjectType:function(name,menuItems){SUGAR.contextMenu.objectTypes[name]=new Object();SUGAR.contextMenu.objectTypes[name]={'menuItems':menuItems,'objects':new Array()};},getListItemFromEventTarget:function(p_oNode){var oLI;if(p_oNode.tagName=="LI"){oLI=p_oNode;}
|
||||
return SUGAR.language.languages[module][str];},translate:function(module,str){text=this.get(module,str);return text!='undefined'?text:this.get('app_strings',str);},interpolate:function(labelString,argumentsArray){var regexExpression=/%s/;var replace=function(string,replaceValue){return string.replace(regexExpression,replaceValue);}
|
||||
return argumentsArray.reduce(replace,labelString);}}}();SUGAR.contextMenu=function(){return{objects:new Object(),objectTypes:new Object(),registerObject:function(objectType,id,metaData){SUGAR.contextMenu.objects[id]=new Object();SUGAR.contextMenu.objects[id]={'objectType':objectType,'metaData':metaData};},registerObjectType:function(name,menuItems){SUGAR.contextMenu.objectTypes[name]=new Object();SUGAR.contextMenu.objectTypes[name]={'menuItems':menuItems,'objects':new Array()};},getListItemFromEventTarget:function(p_oNode){var oLI;if(p_oNode.tagName=="LI"){oLI=p_oNode;}
|
||||
else{do{if(p_oNode.tagName=="LI"){oLI=p_oNode;break;}}while((p_oNode=p_oNode.parentNode));}
|
||||
return oLI;},onContextMenuMove:function(){var oNode=this.contextEventTarget;var bDisabled=(oNode.tagName=="UL");var i=this.getItemGroups()[0].length-1;do{this.getItem(i).cfg.setProperty("disabled",bDisabled);}
|
||||
while(i--);},onContextMenuItemClick:function(p_sType,p_aArguments,p_oItem){var oLI=SUGAR.contextMenu.getListItemFromEventTarget(this.parent.contextEventTarget);id=this.parent.contextEventTarget.parentNode.id;funct=SUGAR.util.globalEval(SUGAR.contextMenu.objectTypes[SUGAR.contextMenu.objects[id]['objectType']]['menuItems'][this.index]['action']);funct(this.parent.contextEventTarget,SUGAR.contextMenu.objects[id]['metaData']);},init:function(){for(var i in SUGAR.contextMenu.objects){if(typeof SUGAR.contextMenu.objectTypes[SUGAR.contextMenu.objects[i]['objectType']]['objects']=='undefined')
|
||||
|
|
|
@ -1956,6 +1956,8 @@ $app_strings = array(
|
|||
'LBL_REMOVE_DASHLET_CONFIRM' => 'Are you sure you want to remove this SuiteCRM Dashlet?',
|
||||
'LBL_REMOVING_DASHLET' => 'Removing SuiteCRM Dashlet...',
|
||||
'LBL_REMOVED_DASHLET' => 'SuiteCRM Dashlet Removed',
|
||||
'LBL_MAX_DASHLET_COLUMNS' => "Maximum of %s columns can be displayed.",
|
||||
'LBL_RETRIEVING_XML_DATA' => "There was a problem retrieving the XML data:\n",
|
||||
|
||||
// MySugar Menu Options
|
||||
|
||||
|
|
|
@ -249,6 +249,7 @@ function make_sugar_config(&$sugar_config)
|
|||
'default_navigation_paradigm' => empty($navigation_paradigm) ? 'm' : $navigation_paradigm,
|
||||
'default_call_status' => 'Planned',
|
||||
'js_lang_version' => 1,
|
||||
'login_language' => true,
|
||||
'passwordsetting' => empty($passwordsetting) ? array(
|
||||
'SystemGeneratedPasswordON' => '',
|
||||
'generatepasswordtmpl' => '',
|
||||
|
@ -436,6 +437,7 @@ function get_sugar_config_defaults(): array
|
|||
'import_max_records_per_file' => 100,
|
||||
'import_max_records_total_limit' => '',
|
||||
'languages' => ['en_us' => 'English (US)'],
|
||||
'login_language' => true,
|
||||
'large_scale_test' => false,
|
||||
'list_max_entries_per_page' => 20,
|
||||
'list_max_entries_per_subpanel' => 10,
|
||||
|
|
|
@ -1545,7 +1545,7 @@ function http_fetch_async(url, callback, request_id, post_data) {
|
|||
callback.call(document, args);
|
||||
}
|
||||
else {
|
||||
alert("There was a problem retrieving the XML data:\n" + global_xmlhttp.statusText);
|
||||
alert(SUGAR.language.get('app_strings', 'LBL_RETRIEVING_XML_DATA') + global_xmlhttp.statusText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4091,7 +4091,7 @@ SUGAR.tabChooser = function () {
|
|||
}
|
||||
|
||||
if (max_left != '' && (display_columns_ref.length + selected_right.length) > max_left) {
|
||||
alert('Maximum of ' + max_left + ' columns can be displayed.');
|
||||
alert(SUGAR.language.interpolate(SUGAR.language.get('app_strings', 'LBL_MAX_DASHLET_COLUMNS'), [max_left]));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -4244,6 +4244,14 @@ SUGAR.language = function () {
|
|||
translate: function (module, str) {
|
||||
text = this.get(module, str);
|
||||
return text != 'undefined' ? text : this.get('app_strings', str);
|
||||
},
|
||||
|
||||
interpolate: function (labelString, argumentsArray) {
|
||||
var regexExpression = /%s/;
|
||||
var replace = function (string, replaceValue) {
|
||||
return string.replace(regexExpression, replaceValue);
|
||||
}
|
||||
return argumentsArray.reduce(replace, labelString);
|
||||
}
|
||||
}
|
||||
}();
|
||||
|
|
|
@ -75,6 +75,11 @@ class ClientRepository implements ClientRepositoryInterface
|
|||
return null;
|
||||
}
|
||||
|
||||
return hash('sha256', $clientSecret) === $client->secret && $grantType === $client->allowed_grant_type;
|
||||
if ($grantType === $client->allowed_grant_type || $grantType === 'refresh_token')
|
||||
{
|
||||
return hash('sha256', $clientSecret) === $client->secret;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -304,14 +304,14 @@ $dictionary['emails_text'] = array(
|
|||
'name' => 'from_addr',
|
||||
'vname' => 'LBL_FROM',
|
||||
'type' => 'varchar',
|
||||
'len' => 250,
|
||||
'len' => 255,
|
||||
'comment' => 'Email address of person who send the email',
|
||||
),
|
||||
'reply_to_addr' => array(
|
||||
'name' => 'reply_to_addr',
|
||||
'vname' => 'LBL_REPLY_TO',
|
||||
'type' => 'varchar',
|
||||
'len' => 250,
|
||||
'len' => 255,
|
||||
'comment' => 'reply to email address',
|
||||
),
|
||||
'to_addrs' => array(
|
||||
|
|
|
@ -59,7 +59,7 @@ class templateParser
|
|||
*/
|
||||
public static function parse_template_bean($string, $key, &$focus)
|
||||
{
|
||||
global $app_strings, $sugar_config;
|
||||
global $app_strings, $sugar_config, $locale, $current_user;
|
||||
$repl_arr = array();
|
||||
$isValidator = new SuiteValidator();
|
||||
|
||||
|
@ -151,7 +151,17 @@ class templateParser
|
|||
|
||||
if ($isValidator->isPercentageField($name)) {
|
||||
$sep = get_number_separators();
|
||||
$value = rtrim(rtrim(format_number($value), '0'), $sep[1]) . $app_strings['LBL_PERCENTAGE_SYMBOL'];
|
||||
|
||||
$precision = $locale->getPrecision($current_user);
|
||||
|
||||
if ($precision === '0') {
|
||||
$params = [
|
||||
'percentage' => true,
|
||||
];
|
||||
$value = format_number($value, $precision, $precision, $params);
|
||||
} else {
|
||||
$value = rtrim(rtrim(format_number($value), '0'), $sep[1]) . $app_strings['LBL_PERCENTAGE_SYMBOL'];
|
||||
}
|
||||
}
|
||||
if (!empty($focus->field_defs[$name]['dbType'])
|
||||
&& $focus->field_defs[$name]['dbType'] === 'datetime'
|
||||
|
|
|
@ -1,4 +1,42 @@
|
|||
<?php
|
||||
/**
|
||||
* SugarCRM Community Edition is a customer relationship management program developed by
|
||||
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
|
||||
*
|
||||
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2024 SalesAgility Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by the
|
||||
* Free Software Foundation with the addition of the following permission added
|
||||
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
|
||||
* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
|
||||
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License along with
|
||||
* this program; if not, see http://www.gnu.org/licenses or write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA.
|
||||
*
|
||||
* You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
|
||||
* SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "Powered by
|
||||
* SugarCRM" logo and "Supercharged by SuiteCRM" logo. If the display of the logos is not
|
||||
* reasonably feasible for technical reasons, the Appropriate Legal Notices must
|
||||
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
|
||||
*/
|
||||
|
||||
$module_name = 'AOS_Products';
|
||||
$viewdefs [$module_name] =
|
||||
array(
|
||||
|
@ -102,6 +140,10 @@ array(
|
|||
array(
|
||||
'name' => 'url',
|
||||
'label' => 'LBL_URL',
|
||||
'displayParams' =>
|
||||
array(
|
||||
'link_target' => '_blank',
|
||||
),
|
||||
),
|
||||
),
|
||||
5 =>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
|
||||
*
|
||||
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2018 SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2024 SalesAgility Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by the
|
||||
|
@ -225,7 +225,7 @@ $dictionary['AOS_Products'] = array(
|
|||
'required' => false,
|
||||
'name' => 'url',
|
||||
'vname' => 'LBL_URL',
|
||||
'type' => 'varchar',
|
||||
'type' => 'url',
|
||||
'massupdate' => 0,
|
||||
'comments' => '',
|
||||
'help' => '',
|
||||
|
|
|
@ -176,11 +176,7 @@ function display_lines($focus, $field, $value, $view)
|
|||
$product .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".get_discount_string($line_item->discount, $line_item->product_discount, $params, $locale, $sep)."</td>";
|
||||
|
||||
$product .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".currency_format_number($line_item->product_unit_price, $params)."</td>";
|
||||
if ($locale->getPrecision()) {
|
||||
$product .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".rtrim(rtrim(format_number($line_item->vat), '0'), $sep[1])."%</td>";
|
||||
} else {
|
||||
$product .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".format_number($line_item->vat)."%</td>";
|
||||
}
|
||||
$product .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".display_tax_detail_view($locale, $line_item->vat, $sep)."</td>";
|
||||
$product .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".currency_format_number($line_item->vat_amt, $params)."</td>";
|
||||
$product .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".currency_format_number($line_item->product_total_price, $params)."</td>";
|
||||
$product .= "</tr>";
|
||||
|
@ -204,10 +200,8 @@ function display_lines($focus, $field, $value, $view)
|
|||
$service .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".currency_format_number($line_item->product_list_price, $params)."</td>";
|
||||
|
||||
$service .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".get_discount_string($line_item->discount, $line_item->product_discount, $params, $locale, $sep)."</td>";
|
||||
|
||||
|
||||
$service .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".currency_format_number($line_item->product_unit_price, $params)."</td>";
|
||||
$service .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".rtrim(rtrim(format_number($line_item->vat), '0'), $sep[1])."%</td>";
|
||||
$service .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".display_tax_detail_view($locale, $line_item->vat, $sep)."</td>";
|
||||
$service .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".currency_format_number($line_item->vat_amt, $params)."</td>";
|
||||
$service .= "<td class='tabDetailViewDF' style='text-align: right; padding:2px;'>".currency_format_number($line_item->product_total_price, $params)."</td>";
|
||||
$service .= "</tr>";
|
||||
|
@ -259,3 +253,23 @@ function display_shipping_vat($focus, $field, $value, $view)
|
|||
}
|
||||
return format_number($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns formatted value for the tax field;
|
||||
* @param $locale
|
||||
* @param $value
|
||||
* @param $sep
|
||||
* @return string
|
||||
*/
|
||||
function display_tax_detail_view($locale, $value, $sep): string
|
||||
{
|
||||
global $app_strings;
|
||||
|
||||
if ($locale->getPrecision()) {
|
||||
$value = rtrim(rtrim(format_number($value), '0'), $sep[1]) . $app_strings['LBL_PERCENTAGE_SYMBOL'];
|
||||
} else {
|
||||
$value = format_number($value) . $app_strings['LBL_PERCENTAGE_SYMBOL'];
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
<?php
|
||||
if (!defined('sugarEntry') || !sugarEntry) {
|
||||
die('Not A Valid Entry Point');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* SugarCRM Community Edition is a customer relationship management program developed by
|
||||
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
|
||||
*
|
||||
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2018 SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2024 SalesAgility Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by the
|
||||
|
@ -41,9 +39,9 @@ if (!defined('sugarEntry') || !sugarEntry) {
|
|||
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
if (!defined('sugarEntry') || !sugarEntry) {
|
||||
die('Not A Valid Entry Point');
|
||||
}
|
||||
|
||||
require_once('include/utils/activity_utils.php');
|
||||
require_once('modules/Calendar/CalendarUtils.php');
|
||||
|
@ -52,35 +50,51 @@ require_once('modules/Calendar/CalendarActivity.php');
|
|||
#[\AllowDynamicProperties]
|
||||
class Calendar
|
||||
{
|
||||
public $activityList = array("FP_events" => array("showCompleted" => true,"start" => "date_start", "end" => "date_end"),
|
||||
"Meetings" => array("showCompleted" => true,"start" => "date_start", "end" => "date_end"),
|
||||
"Calls" => array("showCompleted" => true,"start" => "date_start", "end" => "date_end"),
|
||||
"Tasks" => array("showCompleted" => true,"start" => "date_due", "end" => "date_due"),
|
||||
// "ProjectTask" => array("showCompleted" => true,"start" => "date_start", "end" => "date_finish"),
|
||||
// "Project" => array("showCompleted" => true,"start" => "estimated_start_date", "end" => "estimated_end_date")
|
||||
);
|
||||
public $activityList = [
|
||||
"FP_events" => [
|
||||
"showCompleted" => true,
|
||||
"start" => "date_start",
|
||||
"end" => "date_end",
|
||||
],
|
||||
"Meetings" => [
|
||||
"showCompleted" => true,
|
||||
"start" => "date_start",
|
||||
"end" => "date_end",
|
||||
],
|
||||
"Calls" => [
|
||||
"showCompleted" => true,
|
||||
"start" => "date_start",
|
||||
"end" => "date_end",
|
||||
],
|
||||
"Tasks" => [
|
||||
"showCompleted" => true,
|
||||
"start" => "date_due",
|
||||
"end" => "date_due",
|
||||
]
|
||||
];
|
||||
|
||||
public $views = array("agendaDay" => array(),"basicDay" => array(), "basicWeek" => array(), "agendaWeek" => array(),"month" => array(), "sharedMonth" => array(), "sharedWeek" => array());
|
||||
|
||||
public $view = 'agendaWeek'; // current view
|
||||
public $style; // calendar style (basic or advanced)
|
||||
public $dashlet = false; // if is displayed in dashlet
|
||||
public $date_time; // current date
|
||||
|
||||
|
||||
public $show_tasks = true;
|
||||
public $show_calls = true;
|
||||
public $show_completed = true;
|
||||
public $enable_repeat = true;
|
||||
|
||||
public $time_step = 60; // time step of each slot in minutes
|
||||
|
||||
|
||||
public $acts_arr = array(); // Array of activities objects
|
||||
public $items = array(); // Array of activities data to be displayed
|
||||
public $shared_ids = array(); // ids of users for shared view
|
||||
|
||||
|
||||
|
||||
|
||||
public $cells_per_day; // entire 24h day count of slots
|
||||
public $grid_start_ts; // start timestamp of calendar grid
|
||||
|
||||
|
||||
public $day_start_time; // working day start time in format '11:00'
|
||||
public $day_end_time; // working day end time in format '11:00'
|
||||
public $scroll_slot; // first slot of working day
|
||||
|
@ -90,7 +104,7 @@ class Calendar
|
|||
* @var bool $print Whether is print mode.
|
||||
*/
|
||||
private $print = false;
|
||||
|
||||
|
||||
/**
|
||||
* constructor
|
||||
* @param string $view
|
||||
|
@ -100,13 +114,13 @@ class Calendar
|
|||
public function __construct($view = "agendaWeek", $time_arr = array())
|
||||
{
|
||||
global $current_user, $timedate, $current_language;
|
||||
|
||||
|
||||
$this->view = $view;
|
||||
|
||||
if (!array_key_exists($this->view, $this->views)) {
|
||||
$this->view = 'agendaWeek';
|
||||
}
|
||||
|
||||
|
||||
$date_arr = array();
|
||||
if (!empty($_REQUEST['day'])) {
|
||||
$_REQUEST['day'] = (int)$_REQUEST['day'];
|
||||
|
@ -163,26 +177,26 @@ class Calendar
|
|||
'mobile' => $today->day,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$current_date_db = $date_arr['year']."-".str_pad($date_arr['month'], 2, "0", STR_PAD_LEFT)."-".str_pad($date_arr['day'], 2, "0", STR_PAD_LEFT);
|
||||
$this->date_time = $GLOBALS['timedate']->fromString($current_date_db);
|
||||
|
||||
|
||||
$this->show_tasks = $current_user->getPreference('show_tasks');
|
||||
if (is_null($this->show_tasks)) {
|
||||
$this->show_tasks = SugarConfig::getInstance()->get('calendar.show_tasks_by_default', true);
|
||||
}
|
||||
|
||||
|
||||
$this->show_calls = $current_user->getPreference('show_calls');
|
||||
if (is_null($this->show_calls)) {
|
||||
$this->show_calls = SugarConfig::getInstance()->get('calendar.show_calls_by_default', true);
|
||||
}
|
||||
|
||||
|
||||
// Show completed Meetings, Calls, Tasks
|
||||
$this->show_completed = $current_user->getPreference('show_completed');
|
||||
if (is_null($this->show_completed)) {
|
||||
$this->show_completed = SugarConfig::getInstance()->get('calendar.show_completed_by_default', true);
|
||||
}
|
||||
|
||||
|
||||
$this->enable_repeat = SugarConfig::getInstance()->get('calendar.enable_repeat', true);
|
||||
|
||||
if (in_array($this->view, array('month','year'))) {
|
||||
|
@ -212,7 +226,7 @@ class Calendar
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->day_start_time = $current_user->getPreference('day_start_time');
|
||||
if (is_null($this->day_start_time)) {
|
||||
$this->day_start_time = SugarConfig::getInstance()->get('calendar.default_day_start', "08:00");
|
||||
|
@ -221,7 +235,7 @@ class Calendar
|
|||
if (is_null($this->day_end_time)) {
|
||||
$this->day_end_time = SugarConfig::getInstance()->get('calendar.default_day_end', "19:00");
|
||||
}
|
||||
|
||||
|
||||
if ($this->view == "day") {
|
||||
$this->time_step = SugarConfig::getInstance()->get('calendar.day_timestep', 15);
|
||||
} else {
|
||||
|
@ -239,7 +253,7 @@ class Calendar
|
|||
$this->calculate_grid_start_ts();
|
||||
$this->calculate_day_range();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load activities data to array
|
||||
*/
|
||||
|
@ -270,33 +284,33 @@ class Calendar
|
|||
$item['type'] = strtolower($act->sugar_bean->object_name);
|
||||
$item['assigned_user_id'] = $act->sugar_bean->assigned_user_id;
|
||||
$item['record'] = $act->sugar_bean->id;
|
||||
$item['name'] = $act->sugar_bean->name . ' ' . $act->sugar_bean->assigned_user_name;
|
||||
$item['name'] = html_entity_decode($act->sugar_bean->name, ENT_QUOTES) . ' ' . $act->sugar_bean->assigned_user_name;
|
||||
$item['description'] = $act->sugar_bean->description;
|
||||
|
||||
if (isset($act->sugar_bean->duration_hours)) {
|
||||
$item['duration_hours'] = $act->sugar_bean->duration_hours;
|
||||
$item['duration_minutes'] = $act->sugar_bean->duration_minutes;
|
||||
}
|
||||
|
||||
|
||||
$item['detail'] = 0;
|
||||
$item['edit'] = 0;
|
||||
|
||||
|
||||
if ($act->sugar_bean->ACLAccess('DetailView')) {
|
||||
$item['detail'] = 1;
|
||||
}
|
||||
if ($act->sugar_bean->ACLAccess('Save')) {
|
||||
$item['edit'] = 1;
|
||||
}
|
||||
|
||||
|
||||
if (empty($act->sugar_bean->id)) {
|
||||
$item['detail'] = 0;
|
||||
$item['edit'] = 0;
|
||||
}
|
||||
|
||||
|
||||
if (!empty($act->sugar_bean->repeat_parent_id)) {
|
||||
$item['repeat_parent_id'] = $act->sugar_bean->repeat_parent_id;
|
||||
}
|
||||
|
||||
|
||||
if ($item['detail'] == 1) {
|
||||
if (isset($field_list[$item['module_name']])) {
|
||||
foreach ($field_list[$item['module_name']] as $field) {
|
||||
|
@ -346,15 +360,15 @@ class Calendar
|
|||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* initialize ids of shared users
|
||||
*/
|
||||
public function init_shared()
|
||||
{
|
||||
global $current_user;
|
||||
|
||||
|
||||
|
||||
|
||||
$user_ids = $current_user->getPreference('shared_ids');
|
||||
if (!empty($user_ids) && (is_countable($user_ids) ? count($user_ids) : 0) != 0 && !isset($_REQUEST['shared_ids'])) {
|
||||
$this->shared_ids = $user_ids;
|
||||
|
@ -367,7 +381,7 @@ class Calendar
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Calculate timestamp the calendar grid should be started from
|
||||
*/
|
||||
|
@ -388,7 +402,7 @@ class Calendar
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* calculate count of timeslots per visible day, calculates day start and day end in minutes
|
||||
*/
|
||||
|
@ -399,7 +413,7 @@ class Calendar
|
|||
$this->scroll_slot = (int)($hour_start * (60 / $this->time_step) + ($minute_start / $this->time_step));
|
||||
$this->celcount = (($hour_end * 60 + $minute_end) - ($hour_start * 60 + $minute_start)) / $this->time_step;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* loads array of objects
|
||||
* @param User $user user object
|
||||
|
@ -422,7 +436,7 @@ class Calendar
|
|||
$end_date_time = $this->date_time->get("+1 day");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$start_date_time = $start_date_time->get("-5 days"); // 5 days step back to fetch multi-day activities that
|
||||
|
||||
$acts_arr = array();
|
||||
|
@ -449,7 +463,7 @@ class Calendar
|
|||
} else {
|
||||
$sign = "+";
|
||||
}
|
||||
|
||||
|
||||
if ($this->view == 'month' || $this->view == "sharedMonth") {
|
||||
$day = $this->date_time->get_day_by_index_this_month(0)->get($sign."1 month")->get_day_begin(1);
|
||||
} else {
|
||||
|
@ -476,7 +490,7 @@ class Calendar
|
|||
{
|
||||
$this->print = $print;
|
||||
}
|
||||
|
||||
|
||||
public function isPrint()
|
||||
{
|
||||
return $this->print;
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
<?php
|
||||
if (!defined('sugarEntry') || !sugarEntry) {
|
||||
die('Not A Valid Entry Point');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -9,7 +6,7 @@ if (!defined('sugarEntry') || !sugarEntry) {
|
|||
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
|
||||
*
|
||||
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2018 SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2024 SalesAgility Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by the
|
||||
|
@ -42,9 +39,9 @@ if (!defined('sugarEntry') || !sugarEntry) {
|
|||
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
if (!defined('sugarEntry') || !sugarEntry) {
|
||||
die('Not A Valid Entry Point');
|
||||
}
|
||||
|
||||
global $mod_strings;
|
||||
if (ACLController::checkAccess('Meetings', 'edit', true)) {
|
||||
|
@ -57,5 +54,5 @@ if (ACLController::checkAccess('Tasks', 'edit', true)) {
|
|||
$module_menu[]=array("index.php?module=Tasks&action=EditView&return_module=Tasks&return_action=DetailView", $mod_strings['LNK_NEW_TASK'],"Create");
|
||||
}
|
||||
if (ACLController::checkAccess('Calendar', 'list', true)) {
|
||||
$module_menu[]=array("index.php?module=Calendar&action=index&view=day", $mod_strings['LNK_VIEW_CALENDAR'],"Today");
|
||||
$module_menu[]=array("index.php?module=Calendar&action=index&view=agendaDay", $mod_strings['LNK_VIEW_CALENDAR'],"Today");
|
||||
}
|
||||
|
|
|
@ -97,7 +97,8 @@ if (!empty($mkt_id)) {
|
|||
}
|
||||
echo (empty($_REQUEST['inline']))?$subpanel_object->get_buttons():'' ;
|
||||
|
||||
$subpanel_object->display();
|
||||
$countOnly = isset($_REQUEST['countOnly']) && $_REQUEST['countOnly'];
|
||||
$subpanel_object->display($countOnly);
|
||||
|
||||
if (empty($_REQUEST['inline'])) {
|
||||
insert_popup_footer($theme);
|
||||
|
|
|
@ -56,11 +56,13 @@ class ExternalOAuthConnectionController extends SugarController
|
|||
}
|
||||
|
||||
if (empty($_REQUEST['record']) && $_REQUEST['type'] === 'personal') {
|
||||
$this->bean->type = 'personal';
|
||||
$this->hasAccess = true;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!empty($this->bean) && $_REQUEST['type'] === 'personal' && $this->bean->hasAccessToPersonalAccount()) {
|
||||
$this->bean->type = 'personal';
|
||||
$this->hasAccess = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,19 +12,22 @@ var favorite_module = $('.favorite').attr("module");
|
|||
check_favorite();
|
||||
|
||||
/*handles a user clicking on the empty star to add a favorite*/
|
||||
$(favorite_icon_outline).on('click', function () {
|
||||
create_record();
|
||||
show_star(favorite_icon_fill,favorite_icon_outline);
|
||||
get_sidebar_elements();
|
||||
});
|
||||
$(favorite_icon_outline).unbind('click.favorite').bind('click.favorite', markFavorite);
|
||||
|
||||
/*handles a user clicking on the filled star to add a favorite*/
|
||||
$(favorite_icon_fill).on('click', function () {
|
||||
/*handles a user clicking on the filled star to remove a favorite*/
|
||||
$(favorite_icon_fill).unbind('click.favorite').bind('click.favorite', unmarkFavorite);
|
||||
|
||||
function unmarkFavorite() {
|
||||
remove_record();
|
||||
show_star(favorite_icon_outline,favorite_icon_fill);
|
||||
remove_favorite_sidebar();
|
||||
});
|
||||
}
|
||||
|
||||
function markFavorite() {
|
||||
create_record();
|
||||
show_star(favorite_icon_fill,favorite_icon_outline);
|
||||
get_sidebar_elements();
|
||||
}
|
||||
|
||||
/* Takes the html for a sidebar element and appends it to the sidebar.*/
|
||||
function add_favorite_sidebar(sidebar_element){
|
||||
|
@ -110,4 +113,4 @@ function format_sidebar_elements(data){
|
|||
var div_close = "</div>";
|
||||
|
||||
return div_start + edit_link + detail_link + div_close;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
|
||||
*
|
||||
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2019 SalesAgility Ltd.
|
||||
* Copyright (C) 2011 - 2024 SalesAgility Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License version 3 as published by the
|
||||
|
@ -69,4 +69,6 @@ $mod_strings = array(
|
|||
'LBL_HISTORY_SUBPANEL_TITLE' => 'View History',
|
||||
'LBL_ACTIVITIES_SUBPANEL_TITLE' => 'Activities',
|
||||
'LBL_NEW_FORM_TITLE' => 'New Favorite',
|
||||
'LBL_MARK_FAVORITE' => 'Mark as favorite',
|
||||
'LBL_UNMARK_FAVORITE' => 'Unmark favorite',
|
||||
);
|
||||
|
|
|
@ -6339,18 +6339,16 @@ class InboundEmail extends SugarBean
|
|||
*/
|
||||
public function getConnectString($service = '', $mbox = '', $includeMbox = true)
|
||||
{
|
||||
$service = empty($service) ? $this->getServiceString() : $service;
|
||||
$mbox = empty($mbox) ? $this->mailbox : $mbox;
|
||||
|
||||
$protocol = $this->protocol ?? 'imap';
|
||||
$port = $this->port ?? '143';
|
||||
|
||||
$connectString = '{' . $this->server_url . ':' . $port . '/service=' . $protocol . $service . '}';
|
||||
|
||||
if (!empty($this->connection_string)){
|
||||
$connectString = '{' . $this->connection_string . '}';
|
||||
} else {
|
||||
$service = empty($service) ? $this->getServiceString() : $service;
|
||||
$protocol = $this->protocol ?? 'imap';
|
||||
$port = $this->port ?? '143';
|
||||
$connectString = '{' . $this->server_url . ':' . $port . '/service=' . $protocol . $service . '}';
|
||||
}
|
||||
|
||||
|
||||
$mbox = empty($mbox) ? $this->mailbox : $mbox;
|
||||
$connectString .= ($includeMbox) ? $mbox : "";
|
||||
|
||||
return $connectString;
|
||||
|
|
|
@ -164,7 +164,15 @@ if ($type === 'bounce') {
|
|||
$focus->mailbox_type = 'bounce';
|
||||
}
|
||||
|
||||
if (!empty($_REQUEST['external_oauth_connection_id'])) {
|
||||
$externalOauthConnection = BeanFactory::getBean('ExternalOAuthConnection', $_REQUEST['external_oauth_connection_id']);
|
||||
|
||||
if ($externalOauthConnection->type !== $focus->type) {
|
||||
SugarApplication::appendErrorMessage($mod_strings['LBL_TYPE_DIFFERENT']);
|
||||
SugarApplication::redirect('index.php?module=InboundEmail&action=EditView&is_personal=1&type=personal');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
//// SERVICE STRING CONCATENATION
|
||||
|
|
|
@ -169,6 +169,7 @@ $mod_strings = array(
|
|||
'LNK_QUICK_REPLY' => 'Reply',
|
||||
'LNK_SENT_EMAIL_LIST' => 'Sent Emails',
|
||||
'LBL_EDIT_LAYOUT' => 'Edit Layout' /*for 508 compliance fix*/,
|
||||
'LBL_TYPE_DIFFERENT' => 'External OAuth Connection type must be the SAME as the Inbound Email Account type',
|
||||
|
||||
'LBL_MODIFIED_BY' => 'Modified By',
|
||||
'LBL_SERVICE' => 'Service',
|
||||
|
|
|
@ -397,7 +397,7 @@ function block(){
|
|||
$.blockUI({//ajax loading screen
|
||||
message:msg,
|
||||
css: {
|
||||
height: '70px',
|
||||
height: 'auto',
|
||||
width: '240px',
|
||||
// top: ($(window).height() - 50) /2 + 'px',
|
||||
left: ($(window).width() - 240) /2 + 'px'//centre box
|
||||
|
|
|
@ -136,6 +136,7 @@ $dictionary['ProjectTask'] = array('audited'=>true,
|
|||
'validation'=>array('type' => 'isbefore', 'compareto'=>'date_finish', 'blank' => true),
|
||||
'audited'=>true,
|
||||
'enable_range_search' => true,
|
||||
'options' => 'date_range_search_dom',
|
||||
),
|
||||
'time_start' => array(
|
||||
'name' => 'time_start',
|
||||
|
@ -160,6 +161,7 @@ $dictionary['ProjectTask'] = array('audited'=>true,
|
|||
'validation'=>array('type' => 'isafter', 'compareto'=>'date_start', 'blank' => true),
|
||||
'audited'=>true,
|
||||
'enable_range_search' => true,
|
||||
'options' => 'date_range_search_dom',
|
||||
),
|
||||
'duration' => array(
|
||||
'name' => 'duration',
|
||||
|
|
0
modules/Spots/views/view.edit.php
Executable file
0
modules/Spots/views/view.edit.php
Executable file
|
@ -48,7 +48,7 @@ if (!defined('sugarEntry') || !sugarEntry) {
|
|||
* All Rights Reserved.
|
||||
* Contributor(s): ______________________________________..
|
||||
********************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* This is the base class that all other SugarMerge objects extend
|
||||
*
|
||||
|
@ -150,30 +150,30 @@ class EditViewMerge
|
|||
* @var FILEPOINTER
|
||||
*/
|
||||
protected $fp = null;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Determines if getFields should analyze panels to determine if it is a MultiPanel
|
||||
*
|
||||
* @var unknown_type
|
||||
*/
|
||||
protected $scanForMultiPanel = true;
|
||||
|
||||
|
||||
/**
|
||||
* If true then it works as though it's a multipanel
|
||||
*
|
||||
* @var BOOLEAN
|
||||
*/
|
||||
protected $isMultiPanel = true;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The ids of the panels found in custom metadata fuke
|
||||
*
|
||||
*/
|
||||
protected $customPanelIds = array();
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The ids of the panels found in original metadata fuke
|
||||
*
|
||||
|
@ -186,8 +186,8 @@ class EditViewMerge
|
|||
*
|
||||
*/
|
||||
protected $newPanelIds = array();
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Special case conversion
|
||||
*
|
||||
|
@ -231,7 +231,7 @@ class EditViewMerge
|
|||
$this->mergeData = array();
|
||||
$this->defaultPanel = 'default';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Allows the user to choose to use the best match algorithim or not
|
||||
*
|
||||
|
@ -241,8 +241,8 @@ class EditViewMerge
|
|||
{
|
||||
$this->bestMatch = $on;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Allows users to set the name to use as the default panel in the meta data
|
||||
*
|
||||
|
@ -252,7 +252,7 @@ class EditViewMerge
|
|||
{
|
||||
$this->defaultPanel = $name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Allows the user to set a filepointer that is already open to log to
|
||||
*
|
||||
|
@ -262,7 +262,7 @@ class EditViewMerge
|
|||
{
|
||||
$this->fp = $fp;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* opens the file with the 'a' parameter and use it to log messages to
|
||||
*
|
||||
|
@ -272,7 +272,7 @@ class EditViewMerge
|
|||
{
|
||||
$this->fp = fopen($file, 'ab');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -314,7 +314,7 @@ class EditViewMerge
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Recursiveley merges two arrays
|
||||
*
|
||||
|
@ -339,7 +339,7 @@ class EditViewMerge
|
|||
}
|
||||
return $gimp;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Merges the meta data of a single field
|
||||
*
|
||||
|
@ -376,7 +376,7 @@ class EditViewMerge
|
|||
$this->log($custom);
|
||||
return $custom;
|
||||
}
|
||||
|
||||
|
||||
if (is_array($custom)) {
|
||||
//if both new and custom are arrays then at this point new != custom and orig != custom and orig != new so let's merge the custom and the new and return that
|
||||
if (is_array($new)) {
|
||||
|
@ -393,7 +393,7 @@ class EditViewMerge
|
|||
$this->log($new);
|
||||
return $new;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Merges the fields together and stores them in $this->mergedFields
|
||||
*
|
||||
|
@ -449,14 +449,14 @@ class EditViewMerge
|
|||
//echo var_export($this->mergedFields[$field], true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//then we clear out the field from
|
||||
unset($this->originalFields[$field]);
|
||||
unset($this->customFields[$field]);
|
||||
unset($this->newFields[$field]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* These are fields that were removed by the customer
|
||||
*/
|
||||
|
@ -464,7 +464,7 @@ class EditViewMerge
|
|||
unset($this->originalFields[$field]);
|
||||
unset($this->newFields[$field]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* These are fields that were added by sugar
|
||||
*/
|
||||
|
@ -472,7 +472,7 @@ class EditViewMerge
|
|||
foreach ($this->customPanelIds as $custom_panel_ids=>$panels) {
|
||||
$new_field_panel = $custom_panel_ids;
|
||||
}
|
||||
|
||||
|
||||
foreach ($this->newFields as $field=>$data) {
|
||||
$data['loc']['source']= 'new';
|
||||
$data['loc']['panel'] = $new_field_panel;
|
||||
|
@ -482,7 +482,7 @@ class EditViewMerge
|
|||
unset($this->newFields[$field]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Walks through the merged fields and places them in the appropriate place based on their location parameter as well as the choosen algorithim
|
||||
*
|
||||
|
@ -491,16 +491,16 @@ class EditViewMerge
|
|||
protected function buildPanels()
|
||||
{
|
||||
$panels = array();
|
||||
|
||||
|
||||
$panel_keys = array_keys($this->customPanelIds);
|
||||
$this->defaultPanel = end($panel_keys);
|
||||
|
||||
|
||||
foreach ($this->mergedFields as $field_id=>$field) {
|
||||
//If this field is in a panel not defined in the custom layout, set it to default panel
|
||||
if (!isset($this->customPanelIds[$field['loc']['panel']])) {
|
||||
$field['loc']['panel'] = $this->defaultPanel;
|
||||
}
|
||||
|
||||
|
||||
if ($field['loc']['source'] == 'new') {
|
||||
if ($this->bestMatch) {
|
||||
//for best match as long as the column is filled let's keep walking down till we can fill it
|
||||
|
@ -527,17 +527,17 @@ class EditViewMerge
|
|||
$panels[$field['loc']['panel']][$field['loc']['row']][$field['loc']['col']] = $field['data'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
foreach ($panels as $k=>$panel) {
|
||||
foreach ($panel as $r=>$row) {
|
||||
ksort($panels[$k][$r]);
|
||||
}
|
||||
ksort($panels[$k]);
|
||||
}
|
||||
|
||||
|
||||
return $panels;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Merge the templateMeta entry for the view defs. Also assume that any changes made in the custom files should
|
||||
* have precedence since they must be changed manually, even over new files that may be provided in the upgarde
|
||||
|
@ -552,7 +552,7 @@ class EditViewMerge
|
|||
$this->newData[$this->module][$this->viewDefs][$this->templateMetaName] = $this->customData[$this->module][$this->viewDefs][$this->templateMetaName];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the panel section for the meta-data after it has been merged
|
||||
*
|
||||
|
@ -566,7 +566,7 @@ class EditViewMerge
|
|||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Parses out the fields for each files meta data and then calls on mergeFields and setPanels
|
||||
*
|
||||
|
@ -595,7 +595,7 @@ class EditViewMerge
|
|||
$fields = array();
|
||||
$blanks = 0;
|
||||
$setDefaultPanel = false;
|
||||
|
||||
|
||||
if (count($panels) == 1) {
|
||||
$arrayKeys = array_keys($panels);
|
||||
if (!empty($arrayKeys[0])) {
|
||||
|
@ -606,18 +606,20 @@ class EditViewMerge
|
|||
}
|
||||
$setDefaultPanel = true;
|
||||
}
|
||||
|
||||
|
||||
if ($this->scanForMultiPanel) {
|
||||
require_once('include/SugarFields/Parsers/MetaParser.php');
|
||||
if ($setDefaultPanel || !MetaParser::hasMultiplePanels($panels)) {
|
||||
$metaParser = new MetaParser();
|
||||
|
||||
if ($setDefaultPanel || !$metaParser->hasMultiplePanels($panels)) {
|
||||
$panels = array($this->defaultPanel=>$panels);
|
||||
$this->isMultiPanel = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//echo "---------------------------------------------------------\n";
|
||||
//echo var_export($panels, true);
|
||||
|
||||
|
||||
foreach ($panels as $panel_id=>$panel) {
|
||||
foreach ($panel as $row_id=>$rows) {
|
||||
foreach ($rows as $col_id=>$col) {
|
||||
|
@ -634,7 +636,7 @@ class EditViewMerge
|
|||
$field_name = $col;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (is_string($field_name)) {
|
||||
// We need to replace all instances of the fake uploadfile and filename field that has custom code with the real filename field
|
||||
if (!empty($col['customCode'])) {
|
||||
|
@ -665,14 +667,14 @@ class EditViewMerge
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//echo "---------------------------------------------------------\n";
|
||||
//echo var_export($fields, true);
|
||||
|
||||
|
||||
return $fields;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* getPanelIds
|
||||
*
|
||||
|
@ -681,7 +683,7 @@ class EditViewMerge
|
|||
{
|
||||
$panel_ids = array();
|
||||
$setDefaultPanel = false;
|
||||
|
||||
|
||||
if ((is_countable($panels) ? count($panels) : 0) == 1) {
|
||||
$arrayKeys = array_keys($panels);
|
||||
if (!empty($arrayKeys[0])) {
|
||||
|
@ -692,10 +694,12 @@ class EditViewMerge
|
|||
}
|
||||
$setDefaultPanel = true;
|
||||
}
|
||||
|
||||
|
||||
if ($this->scanForMultiPanel) {
|
||||
require_once('include/SugarFields/Parsers/MetaParser.php');
|
||||
if ($setDefaultPanel || !MetaParser::hasMultiplePanels($panels)) {
|
||||
$metaParser = new MetaParser();
|
||||
|
||||
if ($setDefaultPanel || !$metaParser->hasMultiplePanels($panels)) {
|
||||
$panels = array($this->defaultPanel=>$panels);
|
||||
$this->isMultiPanel = false;
|
||||
}
|
||||
|
@ -704,10 +708,10 @@ class EditViewMerge
|
|||
foreach ($panels as $panel_id=>$panel) {
|
||||
$panel_ids[$panel_id] = $panel_id;
|
||||
}
|
||||
|
||||
|
||||
return $panel_ids;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Loads the meta data of the original, new, and custom file into the variables originalData, newData, and customData respectively
|
||||
*
|
||||
|
@ -731,7 +735,7 @@ class EditViewMerge
|
|||
$this->customData = $this->originalData;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This will save the merged data to a file
|
||||
*
|
||||
|
@ -742,7 +746,7 @@ class EditViewMerge
|
|||
{
|
||||
return write_array_to_file("viewdefs['$this->module']['$this->viewDefs']", $this->newData[$this->module][$this->viewDefs], $to);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This will return the meta data of the merged file
|
||||
*
|
||||
|
@ -752,7 +756,7 @@ class EditViewMerge
|
|||
{
|
||||
return $this->newData;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* public function that will merge meta data from an original sugar file that shipped with the product, a customized file, and a new file shipped with an upgrade
|
||||
*
|
||||
|
|
|
@ -98,10 +98,15 @@ class UserPreference extends SugarBean
|
|||
$name,
|
||||
$category = 'global'
|
||||
) {
|
||||
global $sugar_config;
|
||||
global $sugar_config, $current_user;
|
||||
|
||||
$user = $this->_userFocus;
|
||||
|
||||
if ($user->user_name !== $current_user->user_name){
|
||||
$this->loadPreferences($category);
|
||||
return $user->user_preferences[$category][$name] ?? $this->getDefaultPreference($name, $category);
|
||||
}
|
||||
|
||||
// if the unique key in session doesn't match the app or prefereces are empty
|
||||
if (!isset($_SESSION[$user->user_name.'_PREFERENCES'][$category]) || (!empty($_SESSION['unique_key']) && $_SESSION['unique_key'] != $sugar_config['unique_key'])) {
|
||||
$this->loadPreferences($category);
|
||||
|
@ -203,13 +208,18 @@ class UserPreference extends SugarBean
|
|||
public function loadPreferences(
|
||||
$category = 'global'
|
||||
) {
|
||||
global $sugar_config;
|
||||
global $sugar_config, $current_user;
|
||||
|
||||
$user = $this->_userFocus;
|
||||
|
||||
if ($user->object_name != 'User') {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($user->user_name !== $current_user->user_name){
|
||||
return $this->reloadPreferences($category);
|
||||
}
|
||||
|
||||
if (!empty($user->id) && (!isset($_SESSION[$user->user_name . '_PREFERENCES'][$category]) || (!empty($_SESSION['unique_key']) && $_SESSION['unique_key'] != $sugar_config['unique_key']))) {
|
||||
// cn: moving this to only log when valid - throwing errors on install
|
||||
return $this->reloadPreferences($category);
|
||||
|
@ -230,8 +240,10 @@ class UserPreference extends SugarBean
|
|||
return false;
|
||||
}
|
||||
$GLOBALS['log']->debug('Loading Preferences DB ' . $user->user_name);
|
||||
if (!isset($_SESSION[$user->user_name . '_PREFERENCES'])) {
|
||||
$_SESSION[$user->user_name . '_PREFERENCES'] = array();
|
||||
if ($GLOBALS['current_user']->user_name === $user->user_name){
|
||||
if (!isset($_SESSION[$user->user_name . '_PREFERENCES'])) {
|
||||
$_SESSION[$user->user_name . '_PREFERENCES'] = array();
|
||||
}
|
||||
}
|
||||
if (!isset($user->user_preferences) || !is_array($user->user_preferences)) {
|
||||
$user->user_preferences = array();
|
||||
|
@ -240,11 +252,15 @@ class UserPreference extends SugarBean
|
|||
$result = $db->query("SELECT contents FROM user_preferences WHERE assigned_user_id='$user->id' AND category = '" . $category . "' AND deleted = 0", false, 'Failed to load user preferences');
|
||||
$row = $db->fetchByAssoc($result);
|
||||
if ($row) {
|
||||
$_SESSION[$user->user_name . '_PREFERENCES'][$category] = unserialize(base64_decode($row['contents']));
|
||||
if ($GLOBALS['current_user']->user_name === $user->user_name){
|
||||
$_SESSION[$user->user_name . '_PREFERENCES'][$category] = unserialize(base64_decode($row['contents']));
|
||||
}
|
||||
$user->user_preferences[$category] = unserialize(base64_decode($row['contents']));
|
||||
return true;
|
||||
} else {
|
||||
$_SESSION[$user->user_name . '_PREFERENCES'][$category] = array();
|
||||
if ($GLOBALS['current_user']->user_name === $user->user_name){
|
||||
$_SESSION[$user->user_name . '_PREFERENCES'][$category] = array();
|
||||
}
|
||||
$user->user_preferences[$category] = array();
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -150,7 +150,7 @@ if (empty($GLOBALS['sugar_config']['passwordsetting']['forgotpasswordON'])) {
|
|||
}
|
||||
|
||||
$the_languages = get_languages();
|
||||
if ((is_countable($the_languages) ? count($the_languages) : 0) > 1) {
|
||||
if ((is_countable($the_languages) ? count($the_languages) : 0) > 1 && ($sugar_config['login_language'] ?? false)) {
|
||||
$sugar_smarty->assign('SELECT_LANGUAGE', get_select_options_with_id($the_languages, $display_language));
|
||||
}
|
||||
$the_themes = SugarThemeRegistry::availableThemes();
|
||||
|
|
|
@ -732,7 +732,7 @@ class User extends Person implements EmailInterface
|
|||
if (!$this->is_group && !$this->portal_only) {
|
||||
require_once('modules/MySettings/TabController.php');
|
||||
|
||||
global $current_user, $sugar_config;
|
||||
global $current_user, $sugar_config, $app_strings, $mod_strings, $current_language;
|
||||
|
||||
$display_tabs_def = isset($_REQUEST['display_tabs_def']) ? urldecode($_REQUEST['display_tabs_def']) : '';
|
||||
$hide_tabs_def = isset($_REQUEST['hide_tabs_def']) ? urldecode($_REQUEST['hide_tabs_def']) : '';
|
||||
|
@ -878,6 +878,15 @@ class User extends Person implements EmailInterface
|
|||
if (isset($_POST['timezone'])) {
|
||||
$this->setPreference('timezone', $_POST['timezone'], 0, 'global');
|
||||
}
|
||||
if (isset($_POST['language'])) {
|
||||
if ($_SESSION['authenticated_user_id'] === $this->id){
|
||||
$_SESSION['authenticated_user_language'] = $_POST['language'];
|
||||
}
|
||||
$current_language = $_POST['language'];
|
||||
$mod_strings = return_module_language($_POST['language'], 'Users');
|
||||
$app_strings = return_application_language($_POST['language']);
|
||||
$this->setPreference('language', $_POST['language'], 0, 'global');
|
||||
}
|
||||
if (isset($_POST['mail_fromname'])) {
|
||||
$this->setPreference('mail_fromname', $_POST['mail_fromname'], 0, 'global');
|
||||
}
|
||||
|
|
|
@ -399,7 +399,7 @@ class UserViewHelper
|
|||
|
||||
protected function setupAdvancedTabUserSettings()
|
||||
{
|
||||
global $current_user, $locale, $app_strings, $app_list_strings, $sugar_config;
|
||||
global $current_user, $locale, $app_strings, $app_list_strings, $sugar_config, $current_language;
|
||||
// This is for the "Advanced" tab, it's not controlled by the metadata UI so we have to do more for it.
|
||||
|
||||
$admin = BeanFactory::newBean('Administration');
|
||||
|
@ -410,6 +410,10 @@ class UserViewHelper
|
|||
if ($this->bean->receive_notifications || (!isset($this->bean->id) && $admin->settings['notify_send_by_default'])) {
|
||||
$this->ss->assign("RECEIVE_NOTIFICATIONS", "checked");
|
||||
}
|
||||
$currentLanguage = $this->bean->getPreference('language') ?? $current_language;
|
||||
$languages = get_languages();
|
||||
$languageOptions = get_select_options_with_id($languages, $currentLanguage);
|
||||
$this->ss->assign('LanguageOptions', $languageOptions);
|
||||
|
||||
//jc:12293 - modifying to use the accessor method which will translate the
|
||||
//available character sets using the translation files
|
||||
|
|
|
@ -148,7 +148,7 @@ class SugarAuthenticate
|
|||
public function postLoginAuthenticate()
|
||||
{
|
||||
global $reset_language_on_default_user, $sugar_config;
|
||||
|
||||
|
||||
//just do a little house cleaning here
|
||||
unset($_SESSION['login_password']);
|
||||
unset($_SESSION['login_error']);
|
||||
|
@ -161,10 +161,21 @@ class SugarAuthenticate
|
|||
}
|
||||
|
||||
//set user language
|
||||
if (isset($reset_language_on_default_user) && $reset_language_on_default_user && $GLOBALS['current_user']->user_name == $sugar_config['default_user_name']) {
|
||||
if (isset($reset_language_on_default_user) &&
|
||||
$reset_language_on_default_user &&
|
||||
$GLOBALS['current_user']->user_name == $sugar_config['default_user_name']
|
||||
) {
|
||||
$authenticated_user_language = $sugar_config['default_language'];
|
||||
} else {
|
||||
$authenticated_user_language = isset($_REQUEST['login_language']) ? $_REQUEST['login_language'] : (isset($_REQUEST['ck_login_language_20']) ? $_REQUEST['ck_login_language_20'] : $sugar_config['default_language']);
|
||||
if (isset($_REQUEST['login_language'])){
|
||||
$language = $_REQUEST['login_language'];
|
||||
$GLOBALS['current_user']->setPreference('language', $language, 0, 'global');
|
||||
}
|
||||
$authenticated_user_language = $GLOBALS['current_user']->getPreference('language') ?? $_REQUEST['ck_login_language_20'] ?? $sugar_config['default_language'];
|
||||
}
|
||||
|
||||
if (str_contains($sugar_config['disabled_languages'], $authenticated_user_language)){
|
||||
$authenticated_user_language = $sugar_config['default_language'];
|
||||
}
|
||||
|
||||
$_SESSION['authenticated_user_language'] = $authenticated_user_language;
|
||||
|
|
|
@ -198,6 +198,9 @@ class UsersController extends SugarController
|
|||
$_POST['default_locale_name_format'], 0, 'global');
|
||||
}
|
||||
|
||||
$current_user->setPreference('language', $_POST['user_language'], 0, 'global');
|
||||
$_SESSION['authenticated_user_language'] = $_POST['user_language'];
|
||||
|
||||
$next = $_POST['whatnext'] ?? '';
|
||||
|
||||
$base = 'index.php?action=index&module=Home';
|
||||
|
|
|
@ -123,6 +123,7 @@ $mod_strings = array(
|
|||
'LBL_NUMBER_GROUPING_SEP_TEXT' => 'Character used to separate thousands',
|
||||
'LBL_DECIMAL_SEP' => 'Decimal Symbol',
|
||||
'LBL_DECIMAL_SEP_TEXT' => 'Character used to separate decimal portion',
|
||||
'LBL_USER_LANGUAGE' => 'User Language',
|
||||
'LBL_FDOW' => 'First Day of Week',
|
||||
'LBL_FDOW_TEXT' => 'First Day displayed in Week, Month, and Year Views',
|
||||
'LBL_DATE_FORMAT_TEXT' => 'Set the display format for date stamps',
|
||||
|
|
|
@ -412,6 +412,13 @@
|
|||
</slot>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="17%" scope="row">
|
||||
<slot>{$MOD.LBL_USER_LANGUAGE}:</slot></td>
|
||||
<td scope="row">
|
||||
<slot><select tabindex='15' id="language" name="language">{$LanguageOptions}</select></slot>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="calendar_options" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
|
||||
|
|
|
@ -266,6 +266,10 @@
|
|||
<td nowrap="nowrap" scope="row" valign="top">{$MOD.LBL_LOCALE_DEFAULT_NAME_FORMAT}: {sugar_help text=$smarty.capture.SMARTY_LOCALE_NAME_FORMAT_DESC }</td>
|
||||
<td><span><select id="default_locale_name_format" tabindex='14' name="default_locale_name_format" selected="{$default_locale_name_format}">{$NAMEOPTIONS}</select></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap" scope="row" valign="top">{$MOD.LBL_USER_LANGUAGE}: </td>
|
||||
<td><span><select id="user_language" tabindex='14' name="user_language" >{$user_language}</select></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
|
|
|
@ -382,6 +382,7 @@ $dictionary['User'] = array(
|
|||
'source' => 'non-db',
|
||||
'import' => false,
|
||||
'reportable' => false,
|
||||
'inline_edit' => false,
|
||||
'studio' => array('formula' => false),
|
||||
),
|
||||
'deleted' => array(
|
||||
|
|
|
@ -204,6 +204,16 @@ eoq;
|
|||
|
||||
//// Name display format
|
||||
$this->ss->assign('default_locale_name_format', $locale->getLocaleFormatMacro($current_user));
|
||||
|
||||
$disabledLanguages = $sugar_config['disabled_languages'] ?? '';
|
||||
$language = $current_user->getPreference('language');
|
||||
|
||||
|
||||
if (str_contains($disabledLanguages, $language)){
|
||||
$language = $sugar_config['default_language'];
|
||||
}
|
||||
|
||||
$this->ss->assign('user_language', get_select_options_with_id(get_languages(), $language));
|
||||
$this->ss->assign('getNameJs', $locale->getNameJs());
|
||||
|
||||
$this->ss->assign('TIMEOPTIONS', get_select_options_with_id($sugar_config['time_formats'], $current_user->_userPreferenceFocus->getDefaultPreference('default_time_format')));
|
||||
|
|
|
@ -3,5 +3,5 @@ if (!defined('sugarEntry') || !sugarEntry) {
|
|||
die('Not A Valid Entry Point');
|
||||
}
|
||||
|
||||
$suitecrm_version = '7.14.4';
|
||||
$suitecrm_timestamp = '2024-05-28 12:00:00';
|
||||
$suitecrm_version = '7.14.5';
|
||||
$suitecrm_timestamp = '2024-07-25 12:00:00';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue