add CAICollections entity with metadata and localization support

This commit is contained in:
2026-03-09 21:28:21 +01:00
parent 53dd8f33d4
commit 47634c81ef
44 changed files with 529 additions and 3 deletions

View File

@@ -0,0 +1,7 @@
<?php
namespace Espo\Custom\Controllers;
class CAICollections extends \Espo\Core\Templates\Controllers\BasePlus
{
}

View File

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

View File

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

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Schůzky",
"calls": "Hovory",
"tasks": "Úkoly"
},
"labels": {
"Create CAICollections": "Vytvořit AI-Collections"
}
}

View File

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

View File

@@ -0,0 +1,9 @@
{
"links": {
"calls": "Anrufe",
"tasks": "Aufgaben"
},
"labels": {
"Create CAICollections": "AI-Collections erstellen"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Συναντήσεις",
"calls": "Κλήσεις",
"tasks": "Εργασίες"
},
"labels": {
"Create CAICollections": "Δημιουργία AI-Collections"
}
}

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Presentaciones",
"calls": "Llamadas",
"tasks": "Tareas"
},
"labels": {
"Create CAICollections": "Crear AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "جلسات",
"calls": "تماس ها",
"tasks": "وظایف"
},
"labels": {
"Create CAICollections": "ایجاد AI-Collections"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create CAICollections": "Créer un AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Sastanci",
"calls": "Pozivi",
"tasks": "Zadaci"
},
"labels": {
"Create CAICollections": "Kreiraj AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "találkozók",
"calls": "felhívja",
"tasks": "Feladatok"
},
"labels": {
"Create CAICollections": "{EntityTypeTranslated} létrehozása"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create CAICollections": "Buat AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Riunioni",
"calls": "Chiamate",
"tasks": "Compiti"
},
"labels": {
"Create CAICollections": "Crea AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "会議",
"calls": "通話",
"tasks": "タスク"
},
"labels": {
"Create CAICollections": "AI-Collections を作成する"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Susitikimai",
"calls": "Skambučiai",
"tasks": "Užduotys"
},
"labels": {
"Create CAICollections": "Sukurti AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Tikšanās",
"calls": "Zvani",
"tasks": "Uzdevumi"
},
"labels": {
"Create CAICollections": "Izveidot AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Møter",
"calls": "Samtaler",
"tasks": "Oppgaver"
},
"labels": {
"Create CAICollections": "Opprett AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Vergaderingen",
"calls": "Gesprekken",
"tasks": "Taken"
},
"labels": {
"Create CAICollections": "Creëer AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Spotkania",
"calls": "Połączenia",
"tasks": "Zadania"
},
"labels": {
"Create CAICollections": "Utwórz AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Reuniões",
"calls": "Ligações",
"tasks": "Tarefas"
},
"labels": {
"Create CAICollections": "Criar AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Reuniões",
"calls": "Chamadas",
"tasks": "Tarefas"
},
"labels": {
"Create CAICollections": "Criar AI-Collections"
}
}

View File

@@ -0,0 +1,5 @@
{
"labels": {
"Create CAICollections": "Creare AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Встречи",
"calls": "Звонки",
"tasks": "Задачи"
},
"labels": {
"Create CAICollections": "Создать AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Stretnutia",
"calls": "Hovory",
"tasks": "Úlohy"
},
"labels": {
"Create CAICollections": "Vytvoriť AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Srečanja",
"calls": "Klici",
"tasks": "Naloge"
},
"labels": {
"Create CAICollections": "Ustvari AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Ročišta",
"calls": "Pozivi",
"tasks": "Zadaci"
},
"labels": {
"Create CAICollections": "Napravi AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Möten",
"calls": "Samtal",
"tasks": "Uppgifter"
},
"labels": {
"Create CAICollections": "Skapa AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "การประชุม",
"calls": "โทร",
"tasks": "งาน"
},
"labels": {
"Create CAICollections": "สร้าง AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Toplantılar",
"calls": "(Seslenme)",
"tasks": "Görevler"
},
"labels": {
"Create CAICollections": "AI-Collections oluştur"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Зустрічі",
"calls": "Дзвінки",
"tasks": "Завдання"
},
"labels": {
"Create CAICollections": "Створити AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "ملاقاتیں",
"calls": "کالز",
"tasks": "کام"
},
"labels": {
"Create CAICollections": "{entityTypetranslated} بنائیں"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "Cuộc hẹn",
"calls": "Cuộc gọi",
"tasks": "Nhiệm vụ"
},
"labels": {
"Create CAICollections": "Tạo AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "会议",
"calls": "通话",
"tasks": "任务"
},
"labels": {
"Create CAICollections": "创建 AI-Collections"
}
}

View File

@@ -0,0 +1,10 @@
{
"links": {
"meetings": "會議",
"calls": "通話",
"tasks": "任務"
},
"labels": {
"Create CAICollections": "建立AI-Collections"
}
}

View File

@@ -0,0 +1,36 @@
{
"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,110 @@
{
"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,23 @@
{
"entity": true,
"layouts": true,
"tab": true,
"acl": true,
"aclPortal": true,
"aclPortalLevelList": [
"all",
"account",
"contact",
"own",
"no"
],
"customizable": true,
"importable": true,
"notifications": true,
"stream": false,
"disabled": false,
"type": "BasePlus",
"module": "Custom",
"object": true,
"isCustom": true
}

View File

@@ -358,7 +358,7 @@ return [
0 => 'youtube.com',
1 => 'google.com'
],
'microtime' => 1773002102.630821,
'microtime' => 1773088055.978449,
'siteUrl' => 'https://crm.bitbylaw.com',
'fullTextSearchMinLength' => 4,
'webSocketUrl' => 'ws://api.bitbylaw.com:5000/espocrm/ws',

View File

@@ -1,7 +1,7 @@
<?php
return [
'cacheTimestamp' => 1773002102,
'microtimeState' => 1773002102.752942,
'cacheTimestamp' => 1773088056,
'microtimeState' => 1773088056.155704,
'currencyRates' => [
'EUR' => 1.0
],