Initial commit

This commit is contained in:
root
2026-01-19 17:44:46 +01:00
commit 823af8b11d
8721 changed files with 1130846 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Controllers;
/**
* Do not remove. Used by exported custom modules.
*/
class Base extends \Espo\Core\Controllers\Record
{
}

View File

@@ -0,0 +1,35 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Controllers;
use Espo\Core\Controllers\Record;
class BasePlus extends Record
{}

View File

@@ -0,0 +1,35 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Controllers;
use Espo\Core\Controllers\RecordTree;
class CategoryTree extends RecordTree
{}

View File

@@ -0,0 +1,35 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Controllers;
use Espo\Core\Controllers\Record;
class Company extends Record
{}

View File

@@ -0,0 +1,35 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Controllers;
use Espo\Core\Controllers\Record;
class Event extends Record
{}

View File

@@ -0,0 +1,35 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Controllers;
use Espo\Core\Controllers\Record;
class Person extends Record
{}

View File

@@ -0,0 +1,37 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Entities;
use Espo\Core\ORM\Entity;
class Base extends Entity
{
public const TEMPLATE_TYPE = 'Base';
}

View File

@@ -0,0 +1,37 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Entities;
use Espo\Core\ORM\Entity;
class BasePlus extends Entity
{
public const TEMPLATE_TYPE = 'BasePlus';
}

View File

@@ -0,0 +1,35 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Entities;
use Espo\Core\Entities\CategoryTreeItem;
class CategoryTree extends CategoryTreeItem
{}

View File

@@ -0,0 +1,85 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Entities;
use Espo\Core\Field\Address;
use Espo\Core\Field\EmailAddressGroup;
use Espo\Core\Field\PhoneNumberGroup;
use Espo\Core\ORM\Entity;
class Company extends Entity
{
public const TEMPLATE_TYPE = 'Company';
public function getEmailAddressGroup(): EmailAddressGroup
{
/** @var EmailAddressGroup */
return $this->getValueObject('emailAddress');
}
public function getPhoneNumberGroup(): PhoneNumberGroup
{
/** @var PhoneNumberGroup */
return $this->getValueObject('phoneNumber');
}
public function setEmailAddressGroup(EmailAddressGroup $group): static
{
return $this->setValueObject('emailAddress', $group);
}
public function setPhoneNumberGroup(PhoneNumberGroup $group): static
{
return $this->setValueObject('phoneNumber', $group);
}
public function getBillingAddress(): Address
{
/** @var Address */
return $this->getValueObject('billingAddress');
}
public function setBillingAddress(Address $address): static
{
return $this->setValueObject('billingAddress', $address);
}
public function getShippingAddress(): Address
{
/** @var Address */
return $this->getValueObject('shippingAddress');
}
public function setShippingAddress(Address $address): static
{
return $this->setValueObject('shippingAddress', $address);
}
}

View File

@@ -0,0 +1,62 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Entities;
use Espo\Core\Field\Link;
use Espo\Core\Name\Field;
use Espo\Core\ORM\Entity;
class Event extends Entity
{
public const TEMPLATE_TYPE = 'Event';
public const STATUS_PLANNED = 'Planned';
public const STATUS_HELD = 'Held';
public const STATUS_NOT_HELD = 'Not Held';
public function getStatus(): string
{
return $this->get('status');
}
public function setStatus(string $status): self
{
return $this->set('status', $status);
}
/**
* @since 9.2.0
*/
public function getAssignedUser(): ?Link
{
/** @var ?Link */
return $this->getValueObject(Field::ASSIGNED_USER);
}
}

View File

@@ -0,0 +1,37 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Entities;
use Espo\Core\Entities\Person as PersonEntity;
class Person extends PersonEntity
{
public const TEMPLATE_TYPE = 'Person';
}

View File

@@ -0,0 +1,20 @@
[
{
"rows": [
[
{
"name": "name"
},
{
"name": "order"
}
],
[
false,
{
"name": "parent"
}
]
]
}
]

View File

@@ -0,0 +1,21 @@
[
{
"rows": [
[
{
"name": "name"
}
],
[
{
"name": "order"
}
],
[
{
"name": "parent"
}
]
]
}
]

View File

@@ -0,0 +1,3 @@
[
"parent"
]

View File

@@ -0,0 +1,14 @@
[
{
"name": "name",
"width": 40,
"link": true
},
{
"name": "order",
"width": 15
},
{
"name": "parent"
}
]

View File

@@ -0,0 +1,14 @@
[
{
"name": "name",
"width": 40,
"link": true
},
{
"name": "order",
"width": 15
},
{
"name": "parent"
}
]

View File

@@ -0,0 +1,3 @@
[
]

View File

@@ -0,0 +1,3 @@
[
"children"
]

View File

@@ -0,0 +1,36 @@
[
{
"rows": [
[
{
"name": "name"
},
{
"name": "website"
}
],
[
{
"name": "emailAddress"
},
{
"name": "phoneNumber"
}
],
[
{
"name": "billingAddress"
},
{
"name": "shippingAddress"
}
],
[
{
"name": "description",
"fullWidth": true
}
]
]
}
]

View File

@@ -0,0 +1,36 @@
[
{
"rows": [
[
{
"name": "name",
"fullWidth": true
}
],
[
{
"name": "website",
"fullWidth": true
}
],
[
{
"name": "emailAddress",
"fullWidth": true
}
],
[
{
"name": "phoneNumber",
"fullWidth": true
}
],
[
{
"name": "billingAddressCountry",
"fullWidth": true
}
]
]
}
]

View File

@@ -0,0 +1,42 @@
[
{
"rows": [
[
{
"name": "name"
},
{
"name": "parent"
}
],
[
{
"name": "status"
},
false
],
[
{
"name": "dateStart"
},
{
"name": "dateEnd"
}
],
[
{
"name": "duration"
},
{
"name": "reminders"
}
],
[
{
"name": "description",
"fullWidth": true
}
]
]
}
]

View File

@@ -0,0 +1,48 @@
[
{
"rows": [
[
{
"name": "name",
"fullWidth": true
}
],
[
{
"name": "status",
"fullWidth": true
}
],
[
{
"name": "dateStart",
"fullWidth": true
}
],
[
{
"name": "duration",
"fullWidth": true
}
],
[
{
"name": "dateEnd",
"fullWidth": true
}
],
[
{
"name": "parent",
"fullWidth": true
}
],
[
{
"name": "description",
"fullWidth": true
}
]
]
}
]

View File

@@ -0,0 +1,32 @@
[
{
"rows": [
[
{
"name": "name"
},
false
],
[
{
"name": "emailAddress"
},
{
"name": "phoneNumber"
}
],
[
{
"name": "address"
},
false
],
[
{
"name": "description",
"fullWidth": true
}
]
]
}
]

View File

@@ -0,0 +1,24 @@
[
{
"rows": [
[
{
"name": "name",
"fullWidth": true
}
],
[
{
"name": "emailAddress",
"fullWidth": true
}
],
[
{
"name": "phoneNumber",
"fullWidth": true
}
]
]
}
]

View File

@@ -0,0 +1,4 @@
{
"controller": "controllers/record",
"boolFilterList": ["onlyMy"]
}

View File

@@ -0,0 +1,78 @@
{
"fields": {
"name": {
"type": "varchar",
"required": true,
"pattern": "$noBadCharacters"
},
"description": {
"type": "text"
},
"createdAt": {
"type": "datetime",
"readOnly": true
},
"modifiedAt": {
"type": "datetime",
"readOnly": true
},
"createdBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"modifiedBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"assignedUser": {
"type": "link",
"required": false,
"view": "views/fields/assigned-user"
},
"teams": {
"type": "linkMultiple",
"view": "views/fields/teams"
}
},
"links": {
"createdBy": {
"type": "belongsTo",
"entity": "User"
},
"modifiedBy": {
"type": "belongsTo",
"entity": "User"
},
"assignedUser": {
"type": "belongsTo",
"entity": "User"
},
"teams": {
"type": "hasMany",
"entity": "Team",
"relationName": "entityTeam",
"layoutRelationshipsDisabled": true
}
},
"collection": {
"orderBy": "createdAt",
"order": "desc"
},
"indexes": {
"name": {
"columns": ["name", "deleted"]
},
"assignedUser": {
"columns": ["assignedUserId", "deleted"]
},
"createdAt": {
"columns": ["createdAt"]
},
"createdAtId": {
"unique": true,
"columns": ["createdAt", "id"]
}
}
}

View File

@@ -0,0 +1,3 @@
{
"duplicateWhereBuilderClassName": "Espo\\Classes\\DuplicateWhereBuilders\\General"
}

View File

@@ -0,0 +1,11 @@
{
"entity": true,
"layouts": true,
"tab": true,
"acl": true,
"aclPortal": true,
"aclPortalLevelList": ["all", "account", "contact", "own", "no"],
"customizable": true,
"importable": true,
"notifications": true
}

View File

@@ -0,0 +1,34 @@
{
"controller": "controllers/record",
"boolFilterList": ["onlyMy"],
"sidePanels": {
"detail": [
{
"name": "activities",
"reference": "activities"
},
{
"name": "history",
"reference": "history"
},
{
"name": "tasks",
"reference": "tasks"
}
]
},
"bottomPanels": {
"detail": [
{
"name": "activities",
"reference": "activities",
"disabled": true
},
{
"name": "history",
"reference": "history",
"disabled": true
}
]
}
}

View File

@@ -0,0 +1,99 @@
{
"fields": {
"name": {
"type": "varchar",
"required": true,
"pattern": "$noBadCharacters"
},
"description": {
"type": "text"
},
"createdAt": {
"type": "datetime",
"readOnly": true
},
"modifiedAt": {
"type": "datetime",
"readOnly": true
},
"createdBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"modifiedBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"assignedUser": {
"type": "link",
"required": false,
"view": "views/fields/assigned-user"
},
"teams": {
"type": "linkMultiple",
"view": "views/fields/teams"
}
},
"links": {
"createdBy": {
"type": "belongsTo",
"entity": "User"
},
"modifiedBy": {
"type": "belongsTo",
"entity": "User"
},
"assignedUser": {
"type": "belongsTo",
"entity": "User"
},
"teams": {
"type": "hasMany",
"entity": "Team",
"relationName": "entityTeam",
"layoutRelationshipsDisabled": true
},
"meetings": {
"type": "hasMany",
"entity": "Meeting",
"foreign": "parent"
},
"calls": {
"type": "hasMany",
"entity": "Call",
"foreign": "parent"
},
"tasks": {
"type": "hasChildren",
"entity": "Task",
"foreign": "parent"
},
"emails": {
"type": "hasChildren",
"entity": "Email",
"foreign": "parent",
"layoutRelationshipsDisabled": true
}
},
"collection": {
"orderBy": "createdAt",
"order": "desc"
},
"indexes": {
"name": {
"columns": ["name", "deleted"]
},
"assignedUser": {
"columns": ["assignedUserId", "deleted"]
},
"createdAt": {
"columns": ["createdAt"]
},
"createdAtId": {
"unique": true,
"columns": ["createdAt", "id"]
}
}
}

View File

@@ -0,0 +1,3 @@
{
"duplicateWhereBuilderClassName": "Espo\\Classes\\DuplicateWhereBuilders\\General"
}

View File

@@ -0,0 +1,11 @@
{
"entity": true,
"layouts": true,
"tab": true,
"acl": true,
"aclPortal": true,
"aclPortalLevelList": ["all", "account", "contact", "own", "no"],
"customizable": true,
"importable": true,
"notifications": true
}

View File

@@ -0,0 +1,32 @@
{
"controller": "controllers/record-tree",
"collection": "collections/tree",
"menu": {
"listTree": {
"buttons": [
{
"label": "List View",
"link": "#{entityType}/list",
"acl": "read",
"style": "default"
}
]
},
"list": {
"buttons": [
{
"label": "Tree View",
"link": "#{entityType}",
"acl": "read",
"style": "default"
}
]
}
},
"relationshipPanels": {
"children": {
"selectDisabled": true,
"unlinkDisabled": true
}
}
}

View File

@@ -0,0 +1,108 @@
{
"fields": {
"name": {
"type": "varchar",
"required": true,
"pattern": "$noBadCharacters"
},
"order": {
"type": "int",
"minValue": 1
},
"description": {
"type": "text"
},
"createdAt": {
"type": "datetime",
"readOnly": true
},
"modifiedAt": {
"type": "datetime",
"readOnly": true
},
"createdBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"modifiedBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"teams": {
"type": "linkMultiple"
},
"parent": {
"type": "link"
},
"childList": {
"type": "jsonArray",
"notStorable": true,
"utility": true,
"orderDisabled": true
}
},
"links": {
"createdBy": {
"type": "belongsTo",
"entity": "User"
},
"modifiedBy": {
"type": "belongsTo",
"entity": "User"
},
"teams": {
"type": "hasMany",
"entity": "Team",
"relationName": "entityTeam",
"layoutRelationshipsDisabled": true
},
"parent": {
"type": "belongsTo",
"foreign": "children",
"entity": "{entityType}",
"isCustom": true
},
"children": {
"type": "hasMany",
"foreign": "parent",
"entity": "{entityType}",
"readOnly": true,
"isCustom": true
}
},
"collection": {
"orderBy": "parent",
"order": "asc"
},
"indexes": {
"name": {
"columns": [
"name",
"deleted"
]
}
},
"additionalTables": {
"{entityType}Path": {
"attributes": {
"id": {
"type": "id",
"dbType": "integer",
"len": 11,
"autoincrement": true,
"unique" : true
},
"ascendorId": {
"type": "foreignId",
"index": true
},
"descendorId": {
"type": "foreignId",
"index": true
}
}
}
}
}

View File

@@ -0,0 +1,10 @@
{
"entity": true,
"layouts": true,
"tab": true,
"acl": true,
"aclPortal": true,
"customizable": true,
"importable": false,
"notifications": false
}

View File

@@ -0,0 +1,34 @@
{
"controller": "controllers/record",
"boolFilterList": ["onlyMy"],
"sidePanels": {
"detail": [
{
"name": "activities",
"reference": "activities"
},
{
"name": "history",
"reference": "history"
},
{
"name": "tasks",
"reference": "tasks"
}
]
},
"bottomPanels": {
"detail": [
{
"name": "activities",
"reference": "activities",
"disabled": true
},
{
"name": "history",
"reference": "history",
"disabled": true
}
]
}
}

View File

@@ -0,0 +1,146 @@
{
"fields": {
"name": {
"type": "varchar",
"required": true,
"pattern": "$noBadCharacters"
},
"description": {
"type": "text"
},
"website": {
"type": "url",
"strip": true
},
"emailAddress": {
"type": "email"
},
"phoneNumber": {
"type": "phone",
"typeList": ["Office", "Mobile", "Fax", "Other"],
"defaultType": "Office"
},
"billingAddress": {
"type": "address"
},
"billingAddressStreet": {
"type": "text",
"maxLength": 255,
"dbType": "varchar"
},
"billingAddressCity": {
"type": "varchar"
},
"billingAddressState": {
"type": "varchar"
},
"billingAddressCountry": {
"type": "varchar"
},
"billingAddressPostalCode": {
"type": "varchar"
},
"shippingAddress": {
"type": "address",
"view": "crm:views/account/fields/shipping-address"
},
"shippingAddressStreet": {
"type": "text",
"maxLength": 255,
"dbType": "varchar"
},
"shippingAddressCity": {
"type": "varchar"
},
"shippingAddressState": {
"type": "varchar"
},
"shippingAddressCountry": {
"type": "varchar"
},
"shippingAddressPostalCode": {
"type": "varchar"
},
"createdAt": {
"type": "datetime",
"readOnly": true
},
"modifiedAt": {
"type": "datetime",
"readOnly": true
},
"createdBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"modifiedBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"assignedUser": {
"type": "link",
"required": false,
"view": "views/fields/assigned-user"
},
"teams": {
"type": "linkMultiple",
"view": "views/fields/teams"
}
},
"links": {
"createdBy": {
"type": "belongsTo",
"entity": "User"
},
"modifiedBy": {
"type": "belongsTo",
"entity": "User"
},
"assignedUser": {
"type": "belongsTo",
"entity": "User"
},
"teams": {
"type": "hasMany",
"entity": "Team",
"relationName": "entityTeam",
"layoutRelationshipsDisabled": true
},
"meetings": {
"type": "hasMany",
"entity": "Meeting",
"foreign": "parent"
},
"calls": {
"type": "hasMany",
"entity": "Call",
"foreign": "parent"
},
"tasks": {
"type": "hasChildren",
"entity": "Task",
"foreign": "parent"
}
},
"collection": {
"orderBy": "createdAt",
"order": "desc"
},
"indexes": {
"name": {
"columns": ["name", "deleted"]
},
"assignedUser": {
"columns": ["assignedUserId", "deleted"]
},
"createdAt": {
"columns": ["createdAt"]
},
"createdAtId": {
"unique": true,
"columns": ["createdAt", "id"]
}
}
}

View File

@@ -0,0 +1,3 @@
{
"duplicateWhereBuilderClassName": "Espo\\Classes\\DuplicateWhereBuilders\\General"
}

View File

@@ -0,0 +1,12 @@
{
"entity": true,
"layouts": true,
"tab": true,
"acl": true,
"aclPortal": true,
"aclPortalLevelList": ["all", "account", "contact", "own", "no"],
"customizable": true,
"importable": true,
"notifications": true,
"duplicateCheckFieldList": ["name", "emailAddress"]
}

View File

@@ -0,0 +1,71 @@
{
"controller": "controllers/record",
"boolFilterList": ["onlyMy"],
"recordViews": {
"detail": "views/templates/event/record/detail"
},
"activityDefs": {
"activitiesCreate": true,
"historyCreate": true
},
"viewSetupHandlers": {
"record/detail": [
"__APPEND__",
"crm:handlers/event/reminders-handler"
],
"record/edit": [
"__APPEND__",
"crm:handlers/event/reminders-handler"
]
},
"bottomPanels": {
"detail": [
{
"name": "scheduler",
"label": "Scheduler",
"view": "crm:views/meeting/record/panels/scheduler",
"disabled": true,
"order": 3
}
],
"edit": [
{
"name": "scheduler",
"label": "Scheduler",
"view": "crm:views/meeting/record/panels/scheduler",
"disabled": true,
"order": 1
}
]
},
"filterList": [
{
"name":"planned"
},
{
"name":"held",
"style": "success"
},
{
"name":"todays"
}
],
"forcePatchAttributeDependencyMap": {
"dateEnd": ["dateStart"],
"dateEndDate": ["dateStartDate"]
},
"dynamicLogic":{
"fields":{
"duration": {
"readOnly": {
"conditionGroup": [
{
"type": "isTrue",
"attribute": "isAllDay"
}
]
}
}
}
}
}

View File

@@ -0,0 +1,160 @@
{
"fields": {
"name": {
"type": "varchar",
"required": true,
"pattern": "$noBadCharacters"
},
"status": {
"type": "enum",
"options": [
"Planned",
"Held",
"Not Held"
],
"default": "Planned",
"style": {
"Held": "success",
"Not Held": "info"
},
"displayAsLabel": true,
"labelType": "state",
"audited": true
},
"dateStart": {
"type": "datetimeOptional",
"view": "crm:views/meeting/fields/date-start",
"required": true,
"default": "javascript: return this.dateTime.getNow(15);",
"audited": true
},
"dateEnd": {
"type": "datetimeOptional",
"view": "crm:views/meeting/fields/date-end",
"required": true,
"after": "dateStart",
"suppressValidationList": ["required"]
},
"isAllDay": {
"type": "bool",
"layoutListDisabled": true,
"layoutDetailDisabled": true,
"layoutMassUpdateDisabled": true
},
"duration": {
"type": "duration",
"start": "dateStart",
"end": "dateEnd",
"options": [300, 600, 900, 1800, 2700, 3600, 7200, 10800],
"default": 300,
"notStorable": true,
"select": {
"select": "TIMESTAMPDIFF_SECOND:(dateStart, dateEnd)"
},
"order": {
"order": [
["TIMESTAMPDIFF_SECOND:(dateStart, dateEnd)", "{direction}"]
]
}
},
"parent": {
"type": "linkParent",
"entityList": ["Account", "Lead", "Contact"]
},
"description": {
"type": "text"
},
"reminders": {
"type": "jsonArray",
"notStorable": true,
"orderDisabled": true,
"view": "crm:views/meeting/fields/reminders",
"layoutListDisabled": true,
"validatorClassNameList": [
"Espo\\Modules\\Crm\\Classes\\FieldValidators\\Event\\Reminders\\Valid",
"Espo\\Modules\\Crm\\Classes\\FieldValidators\\Event\\Reminders\\MaxCount"
],
"dynamicLogicDisabled": true,
"duplicateIgnore": true
},
"createdAt": {
"type": "datetime",
"readOnly": true
},
"modifiedAt": {
"type": "datetime",
"readOnly": true
},
"createdBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"modifiedBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"assignedUser": {
"type": "link",
"required": false,
"view": "views/fields/assigned-user"
},
"teams": {
"type": "linkMultiple",
"view": "views/fields/teams"
}
},
"links": {
"parent": {
"type": "belongsToParent",
"foreign": "{entityTypeLowerFirst}Children"
},
"createdBy": {
"type": "belongsTo",
"entity": "User"
},
"modifiedBy": {
"type": "belongsTo",
"entity": "User"
},
"assignedUser": {
"type": "belongsTo",
"entity": "User"
},
"teams": {
"type": "hasMany",
"entity": "Team",
"relationName": "entityTeam",
"layoutRelationshipsDisabled": true
}
},
"collection": {
"orderBy": "dateStart",
"order": "desc"
},
"indexes": {
"dateStartStatus": {
"columns": ["dateStart", "status"]
},
"dateStart": {
"columns": ["dateStart", "deleted"]
},
"status": {
"columns": ["status", "deleted"]
},
"assignedUser": {
"columns": ["assignedUserId", "deleted"]
},
"assignedUserStatus": {
"columns": ["assignedUserId", "status"]
},
"createdAt": {
"columns": ["createdAt"]
},
"createdAtId": {
"unique": true,
"columns": ["createdAt", "id"]
}
}
}

View File

@@ -0,0 +1,12 @@
{
"readLoaderClassNameList": [
"Espo\\Core\\FieldProcessing\\Reminder\\Loader"
],
"saverClassNameList": [
"Espo\\Core\\FieldProcessing\\Reminder\\Saver"
],
"beforeUpdateHookClassNameList": [
"__APPEND__",
"Espo\\Classes\\RecordHooks\\Event\\BeforeUpdatePreserveDuration"
]
}

View File

@@ -0,0 +1,19 @@
{
"entity": true,
"layouts": true,
"tab": true,
"acl": true,
"aclPortal": true,
"aclPortalLevelList": ["all", "account", "contact", "own", "no"],
"customizable": true,
"importable": true,
"calendar": true,
"activity": true,
"notifications": true,
"activityStatusList": ["Planned"],
"historyStatusList": ["Held", "Not Held"],
"completedStatusList": ["Held"],
"canceledStatusList": ["Not Held"],
"statusField": "status",
"statusFieldLocked": true
}

View File

@@ -0,0 +1,16 @@
{
"selectAttributesDependencyMap": {
"duration": [
"dateStart",
"dateEnd"
],
"dateStart": [
"dateEnd"
]
},
"primaryFilterClassNameMap": {
"planned": "Espo\\Classes\\Select\\Event\\PrimaryFilters\\Planned",
"held": "Espo\\Classes\\Select\\Event\\PrimaryFilters\\Held",
"todays": "Espo\\Classes\\Select\\Event\\PrimaryFilters\\Todays"
}
}

View File

@@ -0,0 +1,34 @@
{
"controller": "controllers/record",
"boolFilterList": ["onlyMy"],
"sidePanels": {
"detail": [
{
"name": "activities",
"reference": "activities"
},
{
"name": "history",
"reference": "history"
},
{
"name": "tasks",
"reference": "tasks"
}
]
},
"bottomPanels": {
"detail": [
{
"name": "activities",
"reference": "activities",
"disabled": true
},
{
"name": "history",
"reference": "history",
"disabled": true
}
]
}
}

View File

@@ -0,0 +1,139 @@
{
"fields": {
"name": {
"type": "personName",
"isPersonalData": true
},
"salutationName": {
"type": "enum",
"options": ["", "Mr.", "Ms.", "Mrs.", "Dr."]
},
"firstName": {
"type": "varchar",
"maxLength": 100
},
"lastName": {
"type": "varchar",
"maxLength": 100,
"required": true
},
"description": {
"type": "text"
},
"emailAddress": {
"type": "email",
"isPersonalData": true
},
"phoneNumber": {
"type": "phone",
"typeList": ["Mobile", "Office", "Home", "Fax", "Other"],
"defaultType": "Mobile",
"isPersonalData": true
},
"address": {
"type": "address",
"isPersonalData": true
},
"addressStreet": {
"type": "text",
"maxLength": 255,
"dbType": "varchar"
},
"addressCity": {
"type": "varchar"
},
"addressState": {
"type": "varchar"
},
"addressCountry": {
"type": "varchar"
},
"addressPostalCode": {
"type": "varchar"
},
"createdAt": {
"type": "datetime",
"readOnly": true
},
"modifiedAt": {
"type": "datetime",
"readOnly": true
},
"createdBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"modifiedBy": {
"type": "link",
"readOnly": true,
"view": "views/fields/user"
},
"assignedUser": {
"type": "link",
"required": false,
"view": "views/fields/assigned-user"
},
"teams": {
"type": "linkMultiple",
"view": "views/fields/teams"
}
},
"links": {
"createdBy": {
"type": "belongsTo",
"entity": "User"
},
"modifiedBy": {
"type": "belongsTo",
"entity": "User"
},
"assignedUser": {
"type": "belongsTo",
"entity": "User"
},
"teams": {
"type": "hasMany",
"entity": "Team",
"relationName": "entityTeam",
"layoutRelationshipsDisabled": true
},
"meetings": {
"type": "hasMany",
"entity": "Meeting",
"foreign": "parent"
},
"calls": {
"type": "hasMany",
"entity": "Call",
"foreign": "parent"
},
"tasks": {
"type": "hasChildren",
"entity": "Task",
"foreign": "parent"
}
},
"collection": {
"orderBy": "createdAt",
"order": "desc"
},
"indexes": {
"firstName": {
"columns": ["firstName", "deleted"]
},
"name": {
"columns": ["firstName", "lastName"]
},
"assignedUser": {
"columns": ["assignedUserId", "deleted"]
},
"createdAt": {
"columns": ["createdAt"]
},
"createdAtId": {
"unique": true,
"columns": ["createdAt", "id"]
}
}
}

View File

@@ -0,0 +1,3 @@
{
"duplicateWhereBuilderClassName": "Espo\\Classes\\DuplicateWhereBuilders\\General"
}

View File

@@ -0,0 +1,13 @@
{
"entity": true,
"layouts": true,
"tab": true,
"acl": true,
"aclPortal": true,
"aclPortalLevelList": ["all", "account", "contact", "own", "no"],
"customizable": true,
"importable": true,
"notifications": true,
"hasPersonalData": true,
"duplicateCheckFieldList": ["name", "emailAddress"]
}

View File

@@ -0,0 +1,39 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Repositories;
use Espo\Core\ORM\Entity;
use Espo\Core\Repositories\Database;
/**
* @extends Database<Entity>
*/
class Base extends Database
{}

View File

@@ -0,0 +1,39 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Repositories;
use Espo\Core\ORM\Entity;
use Espo\Core\Repositories\Database;
/**
* @extends Database<Entity>
*/
class BasePlus extends Database
{}

View File

@@ -0,0 +1,38 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Repositories;
/**
* @template TEntity of \Espo\Core\Entities\CategoryTreeItem
* @extends \Espo\Core\Repositories\CategoryTree<TEntity>
*/
class CategoryTree extends \Espo\Core\Repositories\CategoryTree
{
}

View File

@@ -0,0 +1,39 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Repositories;
use Espo\Core\ORM\Entity;
use Espo\Core\Repositories\Database;
/**
* @extends Database<Entity>
*/
class Company extends Database
{}

View File

@@ -0,0 +1,35 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Repositories;
use Espo\Core\Repositories\Event as BaseEvent;
class Event extends BaseEvent
{}

View File

@@ -0,0 +1,39 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Repositories;
use Espo\Core\ORM\Entity;
use Espo\Core\Repositories\Database;
/**
* @extends Database<Entity>
*/
class Person extends Database
{}

View File

@@ -0,0 +1,36 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\SelectManagers;
/**
* @deprecated As of v7.0. For backward compatibility.
*/
class Event extends \Espo\Core\Select\SelectManager
{}

View File

@@ -0,0 +1,39 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Services;
use Espo\Core\Templates\Entities\Base as BaseEntity;
use Espo\Services\Record;
/**
* @extends Record<BaseEntity>
*/
class Base extends Record
{}

View File

@@ -0,0 +1,39 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Services;
use Espo\Core\Templates\Entities\BasePlus as BasePlusEntity;
use Espo\Services\Record;
/**
* @extends Record<BasePlusEntity>
*/
class BasePlus extends Record
{}

View File

@@ -0,0 +1,39 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Services;
use Espo\Core\Templates\Entities\CategoryTree as CategoryTreeEntity;
use Espo\Services\RecordTree;
/**
* @extends RecordTree<CategoryTreeEntity>
*/
class CategoryTree extends RecordTree
{}

View File

@@ -0,0 +1,40 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Services;
use Espo\Core\Templates\Entities\Company as CompanyEntity;
use Espo\Services\Record;
/**
* @extends Record<CompanyEntity>
*/
class Company extends Record
{
}

View File

@@ -0,0 +1,39 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Services;
use Espo\Services\Record;
/**
* @extends Record<\Espo\Core\Templates\Entities\Event>
* @deprecated Left for backward compatibility.
*/
class Event extends Record
{}

View File

@@ -0,0 +1,39 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Templates\Services;
use Espo\Core\Templates\Entities\Person as PersonEntity;
use Espo\Services\Record;
/**
* @extends Record<PersonEntity>
*/
class Person extends Record
{}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create {entityType}": "إنشاء {الكيانTypeTranslated}"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "الاجتماعات",
"calls": "المكالمات",
"tasks": "مهام"
},
"labels": {
"Create {entityType}": "إنشاء {الكيانTypeTranslated}"
}
}

View File

@@ -0,0 +1,15 @@
{
"fields": {
"billingAddress": "عنوان وصول الفواتير",
"shippingAddress": "عنوان الشحن",
"website": "موقع الكتروني"
},
"links": {
"meetings": "الاجتماعات",
"calls": "المكالمات",
"tasks": "مهام"
},
"labels": {
"Create {entityType}": "إنشاء {الكيانTypeTranslated}"
}
}

View File

@@ -0,0 +1,39 @@
{
"fields": {
"parent": "الأبوين",
"dateStart": "تاريخ البدء",
"dateEnd": "تاريخ الانتهاء",
"duration": "مدة",
"status": "حالة",
"reminders": "تذكير",
"dateStartDate": "تاريخ البدء (طوال اليوم)",
"dateEndDate": "تاريخ الانتهاء (طوال اليوم)",
"isAllDay": "طوال اليوم"
},
"links": {
"parent": "الأبوين"
},
"options": {
"status": {
"Planned": "مخطط",
"Held": "محتجز",
"Not Held": "لم يعقد"
}
},
"labels": {
"Create {entityType}": "إنشاء {الكيانTypeTranslated}",
"Schedule {entityType}": "جدولة {الكيانTypeTranslated}",
"Log {entityType}": "سجل {الكيانTypeTranslated}",
"Set Held": "مجموعة معلقة",
"Set Not Held": "التعيين لم يتم عقده"
},
"massActions": {
"setHeld": "مجموعة معلقة",
"setNotHeld": "التعيين لم يتم عقده"
},
"presetFilters": {
"planned": "مخطط",
"held": "محتجز",
"todays": "اليوم"
}
}

View File

@@ -0,0 +1,13 @@
{
"fields": {
"address": "العنوان"
},
"links": {
"meetings": "الاجتماعات",
"calls": "المكالمات",
"tasks": "مهام"
},
"labels": {
"Create {entityType}": "إنشاء {الكيانTypeTranslated}"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create {entityType}": "Създаване на {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Срещи",
"calls": "Разговори",
"tasks": "Задачи"
},
"labels": {
"Create {entityType}": "Създаване на {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,15 @@
{
"fields": {
"billingAddress": "Адрес за плащане",
"shippingAddress": "Адрес за доставка",
"website": "Уебсайт"
},
"links": {
"meetings": "Срещи",
"calls": "Обаждане",
"tasks": "Задачи"
},
"labels": {
"Create {entityType}": "Създаване на {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,39 @@
{
"fields": {
"parent": "Родител",
"dateStart": "Начална дата",
"dateEnd": "Крайна дата",
"duration": "Продължителност",
"status": "Статус",
"reminders": "Напомняния",
"dateStartDate": "Начална дата (цял ден)",
"dateEndDate": "Крайна дата (цял ден)",
"isAllDay": "Цял ден"
},
"links": {
"parent": "Родител"
},
"options": {
"status": {
"Planned": "Планирано",
"Held": "Състояло се",
"Not Held": "Несъстояло се"
}
},
"labels": {
"Create {entityType}": "Създаване на {entityTypeTranslated}",
"Schedule {entityType}": "Насрочи {entityTypeTranslated}",
"Log {entityType}": "Регистрирай {entityTypeTranslated}",
"Set Held": "Задай като състояло се",
"Set Not Held": "Задай като несъстояло се"
},
"massActions": {
"setHeld": "Задай като състояло се",
"setNotHeld": "Задай като несъстояло се"
},
"presetFilters": {
"planned": "Планирано",
"held": "Състояли се",
"todays": "Днешните"
}
}

View File

@@ -0,0 +1,13 @@
{
"fields": {
"address": "Адрес"
},
"links": {
"meetings": "Срещи",
"calls": "Разговори",
"tasks": "Задачи"
},
"labels": {
"Create {entityType}": "Създаване на {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create {entityType}": "Vytvořit {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create {entityType}": "Vytvořit {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create {entityType}": "Vytvořit {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create {entityType}": "Vytvořit {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create {entityType}": "Vytvořit {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create {entityType}": "Opret {entityTypeTranslated} "
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Møder",
"calls": "Opkald",
"tasks": "Opgaver"
},
"labels": {
"Create {entityType}": "Opret {entityTypeTranslated} "
}
}

View File

@@ -0,0 +1,14 @@
{
"fields": {
"billingAddress": "Betalingsadresse",
"shippingAddress": "Leveringsadresse"
},
"links": {
"meetings": "Møder",
"calls": "Opkald",
"tasks": "Opgaver"
},
"labels": {
"Create {entityType}": "Opret {entityTypeTranslated} "
}
}

View File

@@ -0,0 +1,37 @@
{
"fields": {
"parent": "Henviser til",
"dateStart": "Startdato",
"dateEnd": "Slutdato",
"duration": "Varighed",
"reminders": "Underretninger",
"dateStartDate": "Start dato (hele dagen)",
"dateEndDate": "Slut dato (hele dagen)",
"isAllDay": "Hele dagen"
},
"links": {
"parent": "Henviser til"
},
"options": {
"status": {
"Planned": "Planlagt",
"Held": "Gennemført",
"Not Held": "Ikke Gennemført"
}
},
"labels": {
"Create {entityType}": "Opret {entityTypeTranslated}",
"Schedule {entityType}": "Planlæg {entityTypeTranslated}",
"Set Held": "Marker som Gennemført",
"Set Not Held": "Marker som Ikke Gennemført"
},
"massActions": {
"setHeld": "Marker som Gennemført",
"setNotHeld": "Marker som Ikke Gennemført"
},
"presetFilters": {
"planned": "Planlagt",
"held": "Gennemført",
"todays": "Dagens"
}
}

View File

@@ -0,0 +1,13 @@
{
"fields": {
"address": "Adresse"
},
"links": {
"meetings": "Møder",
"calls": "Opkald",
"tasks": "Opgaver"
},
"labels": {
"Create {entityType}": "Opret {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create {entityType}": "{entityTypeTranslated} erstellen"
}
}

View File

@@ -0,0 +1,9 @@
{
"links": {
"calls": "Anrufe",
"tasks": "Aufgaben"
},
"labels": {
"Create {entityType}": "{entityTypeTranslated} erstellen"
}
}

View File

@@ -0,0 +1,14 @@
{
"fields": {
"billingAddress": "Rechnungsadresse",
"shippingAddress": "Lieferadresse",
"website": "Webseite"
},
"links": {
"calls": "Anrufe",
"tasks": "Aufgaben"
},
"labels": {
"Create {entityType}": "{entityTypeTranslated} erstellen"
}
}

View File

@@ -0,0 +1,37 @@
{
"fields": {
"parent": "Bezieht sich auf",
"dateStart": "Startdatum",
"dateEnd": "Enddatum",
"duration": "Dauer",
"reminders": "Erinnerungen",
"dateStartDate": "Startdatum (ganztägig)",
"dateEndDate": "Enddatum (ganztägig)",
"isAllDay": "Ist ganztägig"
},
"links": {
"parent": "Bezieht sich auf"
},
"options": {
"status": {
"Planned": "Geplant",
"Held": "Durchgeführt",
"Not Held": "Nicht durchgeführt"
}
},
"labels": {
"Create {entityType}": "{entityTypeTranslated} erstellen",
"Schedule {entityType}": "{entityTypeTranslated} planen",
"Set Held": "Auf durchgeführt setzen",
"Set Not Held": "Auf nicht durchgeführt setzen"
},
"massActions": {
"setHeld": "Auf durchgeführt setzen",
"setNotHeld": "Auf nicht durchgeführt setzen"
},
"presetFilters": {
"planned": "Geplant",
"held": "Durchgeführt",
"todays": "Heutige"
}
}

View File

@@ -0,0 +1,12 @@
{
"fields": {
"address": "Adresse"
},
"links": {
"calls": "Anrufe",
"tasks": "Aufgaben"
},
"labels": {
"Create {entityType}": "{entityTypeTranslated} erstellen"
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,9 @@
{
"fields": {
},
"links": {
},
"labels": {
"Create {entityType}": "Create {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,12 @@
{
"fields": {
},
"links": {
"meetings": "Meetings",
"calls": "Calls",
"tasks": "Tasks"
},
"labels": {
"Create {entityType}": "Create {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,15 @@
{
"fields": {
"billingAddress": "Billing Address",
"shippingAddress": "Shipping Address",
"website": "Website"
},
"links": {
"meetings": "Meetings",
"calls": "Calls",
"tasks": "Tasks"
},
"labels": {
"Create {entityType}": "Create {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,39 @@
{
"fields": {
"parent": "Parent",
"dateStart": "Date Start",
"dateEnd": "Date End",
"duration": "Duration",
"status": "Status",
"reminders": "Reminders",
"dateStartDate": "Date Start (all day)",
"dateEndDate": "Date End (all day)",
"isAllDay": "Is All-Day"
},
"links": {
"parent": "Parent"
},
"options": {
"status": {
"Planned": "Planned",
"Held": "Held",
"Not Held": "Not Held"
}
},
"labels": {
"Create {entityType}": "Create {entityTypeTranslated}",
"Schedule {entityType}": "Schedule {entityTypeTranslated}",
"Log {entityType}": "Log {entityTypeTranslated}",
"Set Held": "Set Held",
"Set Not Held": "Set Not Held"
},
"massActions": {
"setHeld": "Set Held",
"setNotHeld": "Set Not Held"
},
"presetFilters": {
"planned": "Planned",
"held": "Held",
"todays": "Today's"
}
}

View File

@@ -0,0 +1,13 @@
{
"fields": {
"address": "Address"
},
"links": {
"meetings": "Meetings",
"calls": "Calls",
"tasks": "Tasks"
},
"labels": {
"Create {entityType}": "Create {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create {entityType}": "Crear {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Reuniones",
"calls": "Llamadas",
"tasks": "Tareas"
},
"labels": {
"Create {entityType}": "Crear {entityTypeTranslated}"
}
}

View File

@@ -0,0 +1,15 @@
{
"fields": {
"billingAddress": "Dirección de facturación",
"shippingAddress": "Dirección de envío",
"website": "Sitio web"
},
"links": {
"meetings": "Reuniones",
"calls": "Llamadas",
"tasks": "Tareas"
},
"labels": {
"Create {entityType}": "Crear {entityTypeTranslated}"
}
}

Some files were not shown because too many files have changed in this diff Show More