This commit is contained in:
Yuri Kuznetsov
2024-10-29 21:58:13 +02:00
parent 28025a3e20
commit 94435251e2
16 changed files with 47 additions and 35 deletions

View File

@@ -33,6 +33,7 @@ use Espo\Core\Duplicate\WhereBuilder;
use Espo\Core\Field\EmailAddressGroup;
use Espo\Core\Field\PhoneNumberGroup;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\Core\ORM\Type\FieldType;
use Espo\Core\Utils\Config;
use Espo\Core\Utils\Metadata;
use Espo\ORM\Defs;
@@ -92,15 +93,15 @@ class General implements WhereBuilder
->tryGetField($field)
?->getType();
if ($type === 'personName') {
if ($type === FieldType::PERSON_NAME) {
return $this->applyFieldPersonName($field, $entity, $orBuilder);
}
if ($type === 'email') {
if ($type === FieldType::EMAIL) {
return $this->applyFieldEmail($field, $entity, $orBuilder);
}
if ($type === 'phone') {
if ($type === FieldType::PHONE) {
return $this->applyFieldPhone($field, $entity, $orBuilder);
}

View File

@@ -95,11 +95,11 @@ class Merger
$hasPhoneNumber =
$entityDefs->hasField('phoneNumber') &&
$entityDefs->getField('phoneNumber')->getType() === 'phone';
$entityDefs->getField('phoneNumber')->getType() === FieldType::PHONE;
$hasEmailAddress =
$entityDefs->hasField('emailAddress') &&
$entityDefs->getField('emailAddress')->getType() === 'email';
$entityDefs->getField('emailAddress')->getType() === FieldType::EMAIL;
if ($hasPhoneNumber) {
$phoneNumberToRelateList = $this->fetchEntityPhoneNumberList($entity);

View File

@@ -29,6 +29,7 @@
namespace Espo\Core\Field\EmailAddress;
use Espo\Core\ORM\Type\FieldType;
use Espo\Entities\EmailAddress as EmailAddressEntity;
use Espo\Repositories\EmailAddress as Repository;
@@ -64,7 +65,7 @@ class EmailAddressGroupFactory implements ValueFactory
{
$type = $this->metadata->get(['entityDefs', $entity->getEntityType(), 'fields', $field, 'type']);
if ($type !== 'email') {
if ($type !== FieldType::EMAIL) {
return false;
}

View File

@@ -29,6 +29,7 @@
namespace Espo\Core\Field\PhoneNumber;
use Espo\Core\ORM\Type\FieldType;
use Espo\Entities\PhoneNumber as PhoneNumberEntity;
use Espo\Repositories\PhoneNumber as Repository;
@@ -64,7 +65,7 @@ class PhoneNumberGroupFactory implements ValueFactory
{
$type = $this->metadata->get(['entityDefs', $entity->getEntityType(), 'fields', $field, 'type']);
if ($type !== 'phone') {
if ($type !== FieldType::PHONE) {
return false;
}

View File

@@ -29,6 +29,8 @@
namespace Espo\Core\FieldProcessing\PhoneNumber;
use Espo\Core\ORM\Type\FieldType;
use Espo\Entities\PhoneNumber;
use Espo\ORM\Entity;
use Espo\Repositories\PhoneNumber as Repository;
use Espo\Core\FieldProcessing\Loader as LoaderInterface;
@@ -53,12 +55,12 @@ class Loader implements LoaderInterface
return;
}
if ($entityDefs->getField('phoneNumber')->getType() !== 'phone') {
if ($entityDefs->getField('phoneNumber')->getType() !== FieldType::PHONE) {
return;
}
/** @var Repository $repository */
$repository = $this->entityManager->getRepository('PhoneNumber');
$repository = $this->entityManager->getRepository(PhoneNumber::ENTITY_TYPE);
$phoneNumberData = $repository->getPhoneNumberData($entity);

View File

@@ -2618,11 +2618,11 @@ class SelectManager
mb_strlen($textFilter) >= $textFilterContainsMinLength
&&
(
$attributeType == 'text'
$attributeType == AttributeType::TEXT
||
in_array($field, $this->textFilterUseContainsAttributeList)
||
$attributeType == 'varchar' && $this->getConfig()->get('textFilterUseContainsForVarchar')
$attributeType == AttributeType::VARCHAR && $this->getConfig()->get('textFilterUseContainsForVarchar')
)
) {
$expression = '%' . $textFilter . '%';

View File

@@ -32,6 +32,7 @@ namespace Espo\Core\Utils\Database\Orm;
use Doctrine\DBAL\Types\Types;
use Espo\Core\InjectableFactory;
use Espo\Core\ORM\Defs\AttributeParam;
use Espo\Core\ORM\Type\FieldType;
use Espo\Core\Utils\Database\ConfigDataProvider;
use Espo\Core\Utils\Database\MetadataProvider;
use Espo\Core\Utils\Util;
@@ -603,7 +604,7 @@ class Converter
{
$type = $fieldParams['type'] ?? null;
if ($type === 'enum') {
if ($type === FieldType::ENUM) {
if (($fieldParams['default'] ?? null) === '') {
$fieldParams['default'] = null;
}

View File

@@ -30,6 +30,7 @@
namespace Espo\Core\Utils\Database\Orm\FieldConverters;
use Espo\Core\ORM\Defs\AttributeParam;
use Espo\Core\ORM\Type\FieldType;
use Espo\Core\Utils\Database\Orm\Defs\AttributeDefs;
use Espo\Core\Utils\Database\Orm\Defs\EntityDefs;
use Espo\Core\Utils\Database\Orm\Defs\RelationDefs;
@@ -147,7 +148,7 @@ class Email implements FieldConverter
]
],
],
'fieldType' => 'email',
'fieldType' => FieldType::EMAIL,
'where' => [
'LIKE' => [
'whereClause' => [

View File

@@ -30,6 +30,7 @@
namespace Espo\Core\Utils\Database\Orm\FieldConverters;
use Espo\Core\ORM\Defs\AttributeParam;
use Espo\Core\ORM\Type\FieldType;
use Espo\Core\Utils\Database\Orm\Defs\AttributeDefs;
use Espo\Core\Utils\Database\Orm\Defs\EntityDefs;
use Espo\Core\Utils\Database\Orm\Defs\RelationDefs;
@@ -159,7 +160,7 @@ class Phone implements FieldConverter
]
],
],
'fieldType' => 'phone',
'fieldType' => FieldType::PHONE,
'where' => [
'LIKE' => [
'whereClause' => [

View File

@@ -41,10 +41,10 @@ class AclDependencyProvider
/** @var string[] */
private array $enumFieldTypeList = [
'enum',
'multiEnum',
'array',
'checklist',
FieldType::ENUM,
FieldType::MULTI_ENUM,
FieldType::ARRAY,
FieldType::CHECKLIST,
];
/** @var ?AclDependencyItem[] */

View File

@@ -41,10 +41,10 @@ class AclDependencyProvider
/** @var string[] */
private array $enumFieldTypeList = [
'enum',
'multiEnum',
'array',
'checklist',
FieldType::ENUM,
FieldType::MULTI_ENUM,
FieldType::ARRAY,
FieldType::CHECKLIST,
];
/** @var ?AclDependencyItem[] */

View File

@@ -105,7 +105,7 @@ class Erasor implements
$attributeList = $fieldUtil->getActualAttributeList($entityType, $field);
if ($type === 'email') {
if ($type === FieldType::EMAIL) {
$emailAddressList = $entity->get('emailAddresses');
foreach ($emailAddressList as $emailAddress) {
@@ -123,7 +123,7 @@ class Erasor implements
$entity->clear($field . 'Data');
continue;
} else if ($type === 'phone') {
} else if ($type === FieldType::PHONE) {
$phoneNumberList = $entity->get('phoneNumbers');
foreach ($phoneNumberList as $phoneNumber) {

View File

@@ -59,7 +59,7 @@ class Formatter
$attributeType = $entity->getAttributeType($attribute);
if ($fieldType === 'enum') {
if ($fieldType === FieldType::ENUM) {
if ($value === null) {
return '';
}

View File

@@ -40,6 +40,7 @@ use Espo\Core\Exceptions\Error;
use Espo\Core\Utils\Metadata\Helper as MetadataHelper;
use Espo\Core\Utils\Util;
use Espo\ORM\Type\AttributeType;
use Espo\Tools\EntityManager\NameUtil;
use RuntimeException;
use stdClass;
@@ -695,26 +696,26 @@ class FieldManager
{
$additionalParamList = [
'type' => [
'type' => 'varchar',
'type' => AttributeType::VARCHAR,
],
'isCustom' => [
'type' => 'bool',
'type' => AttributeType::BOOL,
'default' => false,
],
'isPersonalData' => [
'type' => 'bool',
'type' => AttributeType::BOOL,
'default' => false,
],
'tooltip' => [
'type' => 'bool',
'type' => AttributeType::BOOL,
'default' => false,
],
'inlineEditDisabled' => [
'type' => 'bool',
'type' => AttributeType::BOOL,
'default' => false,
],
'defaultAttributes' => [
'type' => 'jsonObject',
'type' => AttributeType::JSON_OBJECT,
],
];

View File

@@ -31,6 +31,7 @@ namespace Espo\Tools\FieldManager\Hooks;
use Espo\Core\Di;
use Espo\Core\Exceptions\Error;
use Espo\Core\ORM\Type\FieldType;
class AutoincrementType implements Di\MetadataAware
{
@@ -49,8 +50,8 @@ class AutoincrementType implements Di\MetadataAware
$fields = $this->metadata->get(['entityDefs', $scope, 'fields']);
foreach ($fields as $fieldName => $fieldDefs) {
if ($fieldDefs['type'] == 'autoincrement') {
foreach ($fields as $fieldDefs) {
if ($fieldDefs['type'] == FieldType::AUTOINCREMENT) {
throw new Error('The entity can have only one Auto-increment field.');
}
}

View File

@@ -29,8 +29,10 @@
namespace Espo\Tools\LinkManager\Hook\Hooks;
use Espo\Core\ORM\Type\FieldType;
use Espo\Core\Templates\Entities\Company;
use Espo\Core\Templates\Entities\Person;
use Espo\ORM\Type\AttributeType;
use Espo\Tools\LinkManager\Hook\CreateHook;
use Espo\Tools\LinkManager\Params;
use Espo\Tools\LinkManager\Type;
@@ -91,7 +93,7 @@ class TargetListCreate implements CreateHook
$foreignLink => [
'additionalColumns' => [
'optedOut' => [
'type' => 'bool',
'type' => AttributeType::BOOL,
]
],
'columnAttributeMap' => [
@@ -111,7 +113,7 @@ class TargetListCreate implements CreateHook
],
'fields' => [
'targetListIsOptedOut' => [
'type' => 'bool',
'type' => FieldType::BOOL,
'notStorable' => true,
'readOnly' => true,
'disabled' => true,