Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 268354f3c6 | |||
| 3ca68f2539 | |||
| 08f2c5ea72 | |||
| 4d1f3d214d | |||
| fab13b3140 | |||
| 45ac0f7fee | |||
| 406487d50c |
@@ -17,7 +17,8 @@
|
||||
],
|
||||
"fields": {
|
||||
"salutation": {
|
||||
"type": "enum"
|
||||
"type": "enum",
|
||||
"customizationOptionsReferenceDisabled": true
|
||||
},
|
||||
"first": {
|
||||
"type": "varchar",
|
||||
|
||||
@@ -4,5 +4,6 @@
|
||||
"tab": true,
|
||||
"acl": true,
|
||||
"aclFieldLevelDisabled": true,
|
||||
"customizable": false
|
||||
"customizable": false,
|
||||
"importable": true
|
||||
}
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4 form-group cell">
|
||||
<label class="control-label">{{translate 'Run Manually' scope='Import' category='messages'}}</label>
|
||||
<label class="control-label">{{translate 'Run Manually' scope='Import' category='labels'}}</label>
|
||||
<div data-name="manualMode" class="field">
|
||||
{{{manualModeField}}}
|
||||
</div>
|
||||
|
||||
@@ -538,7 +538,8 @@ class LinkMultipleFieldView extends BaseFieldView {
|
||||
});
|
||||
},
|
||||
lookupFunction: query => {
|
||||
return Espo.Ajax.getRequest(this.getAutocompleteUrl(query), {q: query})
|
||||
return Promise.resolve(this.getAutocompleteUrl(query))
|
||||
.then(url => Espo.Ajax.getRequest(url, {q: query}))
|
||||
.then(/** {list: Record[]} */response => {
|
||||
return response.list.map(item => ({
|
||||
value: item.name,
|
||||
|
||||
@@ -728,7 +728,8 @@ class LinkFieldView extends BaseFieldView {
|
||||
});
|
||||
},
|
||||
lookupFunction: query => {
|
||||
return Espo.Ajax.getRequest(this.getAutocompleteUrl(query), {q: query})
|
||||
return Promise.resolve(this.getAutocompleteUrl(query))
|
||||
.then(url => Espo.Ajax.getRequest(url, {q: query}))
|
||||
.then(/** {list: Record[]} */response => {
|
||||
return response.list.map(item => ({
|
||||
value: item.name,
|
||||
|
||||
@@ -201,9 +201,9 @@ class Step1ImportView extends View {
|
||||
'update',
|
||||
],
|
||||
translatedOptions: {
|
||||
create: this.translate('Create Only', 'labels', 'Admin'),
|
||||
createAndUpdate: this.translate('Create and Update', 'labels', 'Admin'),
|
||||
update: this.translate('Update Only', 'labels', 'Admin'),
|
||||
create: this.translate('Create Only', 'labels', 'Import'),
|
||||
createAndUpdate: this.translate('Create and Update', 'labels', 'Import'),
|
||||
update: this.translate('Update Only', 'labels', 'Import'),
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -673,7 +673,7 @@ class Step1ImportView extends View {
|
||||
label = label.replace(new RegExp(item, 'g'), value);
|
||||
}
|
||||
|
||||
return format + ' - ' + label;
|
||||
return format + ' · ' + label;
|
||||
}
|
||||
|
||||
getDateFormatDataList() {
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "espocrm",
|
||||
"version": "8.2.1",
|
||||
"version": "8.2.2",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "espocrm",
|
||||
"version": "8.2.1",
|
||||
"version": "8.2.2",
|
||||
"hasInstallScript": true,
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "espocrm",
|
||||
"version": "8.2.1",
|
||||
"version": "8.2.2",
|
||||
"description": "Open-source CRM.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -33,11 +33,16 @@ use Espo\ORM\EntityManager;
|
||||
/** @noinspection PhpMultipleClassDeclarationsInspection */
|
||||
class BeforeUpgrade
|
||||
{
|
||||
private ?Container $container = null;
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
public function run(Container $container): void
|
||||
{
|
||||
$this->container = $container;
|
||||
$this->processCheckExtensions();
|
||||
|
||||
$this->checkRepositories($container->getByClass(EntityManager::class));
|
||||
}
|
||||
|
||||
@@ -93,4 +98,51 @@ class BeforeUpgrade
|
||||
|
||||
throw new Exception($msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Error
|
||||
*/
|
||||
private function processCheckExtensions(): void
|
||||
{
|
||||
$errorMessageList = [];
|
||||
|
||||
$this->processCheckExtension('Advanced Pack', '3.1.0', $errorMessageList);
|
||||
$this->processCheckExtension('Real Estate', '1.8.0', $errorMessageList);
|
||||
|
||||
if (!count($errorMessageList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$message = implode("\n\n", $errorMessageList);
|
||||
|
||||
throw new Error($message);
|
||||
}
|
||||
|
||||
private function processCheckExtension(string $name, string $minVersion, array &$errorMessageList): void
|
||||
{
|
||||
$em = $this->container->get('entityManager');
|
||||
|
||||
$extension = $em->getRDBRepository('Extension')
|
||||
->where([
|
||||
'name' => $name,
|
||||
'isInstalled' => true,
|
||||
])
|
||||
->findOne();
|
||||
|
||||
if (!$extension) {
|
||||
return;
|
||||
}
|
||||
|
||||
$version = $extension->get('version');
|
||||
|
||||
if (version_compare($version, $minVersion, '>=')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$message =
|
||||
"EspoCRM 8.2 is not compatible with '$name' extension of versions lower than $minVersion. " .
|
||||
"Please upgrade the extension or uninstall it.";
|
||||
|
||||
$errorMessageList[] = $message;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user