Initial commit
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"ownershipCheckerClassName": "Espo\\Classes\\Acl\\ActionHistoryRecord\\OwnershipChecker"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Classes\\Acl\\Attachment\\AccessChecker",
|
||||
"ownershipCheckerClassName": "Espo\\Classes\\Acl\\Attachment\\OwnershipChecker",
|
||||
"portalAccessCheckerClassName": "Espo\\Classes\\AclPortal\\Attachment\\AccessChecker",
|
||||
"portalOwnershipCheckerClassName": "Espo\\Classes\\AclPortal\\Attachment\\OwnershipChecker"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Classes\\Acl\\AuthToken\\AccessChecker"
|
||||
}
|
||||
12
application/Espo/Resources/metadata/aclDefs/Email.json
Normal file
12
application/Espo/Resources/metadata/aclDefs/Email.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Classes\\Acl\\Email\\AccessChecker",
|
||||
"ownershipCheckerClassName": "Espo\\Classes\\Acl\\Email\\OwnershipChecker",
|
||||
"portalAccessCheckerClassName": "Espo\\Classes\\AclPortal\\Email\\AccessChecker",
|
||||
"portalOwnershipCheckerClassName": "Espo\\Classes\\AclPortal\\Email\\OwnershipChecker",
|
||||
"assignmentCheckerClassName": "Espo\\Classes\\Acl\\Email\\AssignmentChecker",
|
||||
"readOwnerUserField": "users",
|
||||
"linkCheckerClassNameMap": {
|
||||
"parent": "Espo\\Classes\\Acl\\Email\\LinkCheckers\\ParentLinkChecker",
|
||||
"teams": "Espo\\Classes\\Acl\\Email\\LinkCheckers\\TeamsLinkChecker"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"ownershipCheckerClassName": "Espo\\Classes\\Acl\\EmailFilter\\OwnershipChecker"
|
||||
}
|
||||
3
application/Espo/Resources/metadata/aclDefs/Import.json
Normal file
3
application/Espo/Resources/metadata/aclDefs/Import.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Classes\\Acl\\Import\\AccessChecker"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Classes\\Acl\\ImportEml\\AccessChecker"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Core\\Acl\\AccessChecker\\AccessCheckers\\Foreign",
|
||||
"link": "import"
|
||||
}
|
||||
6
application/Espo/Resources/metadata/aclDefs/Note.json
Normal file
6
application/Espo/Resources/metadata/aclDefs/Note.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Classes\\Acl\\Note\\AccessChecker",
|
||||
"ownershipCheckerClassName": "Espo\\Classes\\Acl\\Note\\OwnershipChecker",
|
||||
"portalAccessCheckerClassName": "Espo\\Classes\\AclPortal\\Note\\AccessChecker",
|
||||
"portalOwnershipCheckerClassName": "Espo\\Classes\\AclPortal\\Note\\OwnershipChecker"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"ownershipCheckerClassName": "Espo\\Classes\\Acl\\Notification\\OwnershipChecker",
|
||||
"portalOwnershipCheckerClassName": "Espo\\Classes\\AclPortal\\Notification\\OwnershipChecker"
|
||||
}
|
||||
3
application/Espo/Resources/metadata/aclDefs/Portal.json
Normal file
3
application/Espo/Resources/metadata/aclDefs/Portal.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Classes\\Acl\\Portal\\AccessChecker"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Classes\\Acl\\ScheduledJob\\AccessChecker"
|
||||
}
|
||||
3
application/Espo/Resources/metadata/aclDefs/Team.json
Normal file
3
application/Espo/Resources/metadata/aclDefs/Team.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"ownershipCheckerClassName": "Espo\\Classes\\Acl\\Team\\OwnershipChecker"
|
||||
}
|
||||
5
application/Espo/Resources/metadata/aclDefs/User.json
Normal file
5
application/Espo/Resources/metadata/aclDefs/User.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Classes\\Acl\\User\\AccessChecker",
|
||||
"ownershipCheckerClassName": "Espo\\Classes\\Acl\\User\\OwnershipChecker",
|
||||
"portalOwnershipCheckerClassName": "Espo\\Classes\\AclPortal\\User\\OwnershipChecker"
|
||||
}
|
||||
4
application/Espo/Resources/metadata/aclDefs/Webhook.json
Normal file
4
application/Espo/Resources/metadata/aclDefs/Webhook.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"accessCheckerClassName": "Espo\\Classes\\Acl\\Webhook\\AccessChecker",
|
||||
"ownershipCheckerClassName": "Espo\\Classes\\Acl\\Webhook\\OwnershipChecker"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"assignmentCheckerClassName": "Espo\\Classes\\Acl\\WorkingTimeRange\\AssignmentChecker"
|
||||
}
|
||||
203
application/Espo/Resources/metadata/app/acl.json
Normal file
203
application/Espo/Resources/metadata/app/acl.json
Normal file
@@ -0,0 +1,203 @@
|
||||
{
|
||||
"mandatory": {
|
||||
"scopeLevel": {
|
||||
"Note": {
|
||||
"read": "own",
|
||||
"edit": "own",
|
||||
"delete": "own",
|
||||
"create": "yes"
|
||||
},
|
||||
"Portal": {
|
||||
"read": "all",
|
||||
"edit": "no",
|
||||
"delete": "no",
|
||||
"create": "no"
|
||||
},
|
||||
"Attachment": {
|
||||
"read": "own",
|
||||
"edit": "own",
|
||||
"delete": "own",
|
||||
"create": "yes"
|
||||
},
|
||||
"EmailAccount": {
|
||||
"read": "own",
|
||||
"edit": "own",
|
||||
"delete": "own",
|
||||
"create": "yes"
|
||||
},
|
||||
"EmailFilter": {
|
||||
"read": "own",
|
||||
"edit": "own",
|
||||
"delete": "own",
|
||||
"create": "yes"
|
||||
},
|
||||
"EmailFolder": {
|
||||
"read": "own",
|
||||
"edit": "own",
|
||||
"delete": "own",
|
||||
"create": "yes"
|
||||
},
|
||||
"GroupEmailFolder": {
|
||||
"read": "team",
|
||||
"edit": "no",
|
||||
"delete": "no",
|
||||
"create": "no"
|
||||
},
|
||||
"Preferences": {
|
||||
"read": "own",
|
||||
"edit": "own",
|
||||
"delete": "no",
|
||||
"create": "no"
|
||||
},
|
||||
"Notification": {
|
||||
"read": "own",
|
||||
"edit": "no",
|
||||
"delete": "own",
|
||||
"create": "no"
|
||||
},
|
||||
"ActionHistoryRecord": {
|
||||
"read": "own"
|
||||
},
|
||||
"Role": false,
|
||||
"PortalRole": false,
|
||||
"ImportError": "Import",
|
||||
"ImportEml": "Import",
|
||||
"WorkingTimeRange": "WorkingTimeCalendar",
|
||||
"Stream": true
|
||||
},
|
||||
"fieldLevel": {
|
||||
},
|
||||
"scopeFieldLevel": {
|
||||
"EmailAccount": {
|
||||
"assignedUser": {
|
||||
"read": "yes",
|
||||
"edit": "no"
|
||||
}
|
||||
},
|
||||
"EmailFolder": {
|
||||
"assignedUser": {
|
||||
"read": "yes",
|
||||
"edit": "no"
|
||||
}
|
||||
},
|
||||
"Email": {
|
||||
"inboundEmails": false,
|
||||
"emailAccounts": false
|
||||
},
|
||||
"User": {
|
||||
"dashboardTemplate": false,
|
||||
"workingTimeCalendar": {
|
||||
"read": "yes",
|
||||
"edit": "no"
|
||||
},
|
||||
"password": false,
|
||||
"passwordConfirm": false,
|
||||
"auth2FA": false,
|
||||
"authMethod": false,
|
||||
"apiKey": false,
|
||||
"secretKey": false,
|
||||
"token": false
|
||||
},
|
||||
"ActionHistoryRecord": {
|
||||
"authToken": false,
|
||||
"authLogRecord": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"strictDefault": {
|
||||
"scopeLevel": {
|
||||
"User": {
|
||||
"read": "own",
|
||||
"edit": "no"
|
||||
},
|
||||
"Team": {
|
||||
"read": "team"
|
||||
},
|
||||
"Import": false,
|
||||
"Webhook": false
|
||||
},
|
||||
"fieldLevel": {
|
||||
},
|
||||
"scopeFieldLevel": {
|
||||
"User": {
|
||||
"gender": false,
|
||||
"avatarColor": {
|
||||
"read": "yes",
|
||||
"edit": "no"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"adminMandatory": {
|
||||
"scopeLevel": {
|
||||
"User": {
|
||||
"create": "yes",
|
||||
"read": "all",
|
||||
"edit": "all",
|
||||
"delete": "all"
|
||||
},
|
||||
"Team": {
|
||||
"create": "yes",
|
||||
"read": "all",
|
||||
"edit": "all",
|
||||
"delete": "all"
|
||||
},
|
||||
"Job": {
|
||||
"create": "no",
|
||||
"read": "all",
|
||||
"edit": "no",
|
||||
"delete": "all"
|
||||
},
|
||||
"Extension": {
|
||||
"create": "no",
|
||||
"read": "all",
|
||||
"edit": "no",
|
||||
"delete": "all"
|
||||
},
|
||||
"Stream": true,
|
||||
"ImportEml": "Import"
|
||||
}
|
||||
},
|
||||
"valuePermissionList": [
|
||||
"assignmentPermission",
|
||||
"messagePermission",
|
||||
"mentionPermission",
|
||||
"userCalendarPermission",
|
||||
"auditPermission",
|
||||
"exportPermission",
|
||||
"massUpdatePermission",
|
||||
"userPermission",
|
||||
"portalPermission",
|
||||
"groupEmailAccountPermission",
|
||||
"followerManagementPermission",
|
||||
"dataPrivacyPermission"
|
||||
],
|
||||
"valuePermissionHighestLevels": {
|
||||
"assignmentPermission": "all",
|
||||
"userPermission": "all",
|
||||
"messagePermission": "all",
|
||||
"portalPermission": "yes",
|
||||
"groupEmailAccountPermission": "all",
|
||||
"exportPermission": "yes",
|
||||
"massUpdatePermission": "yes",
|
||||
"followerManagementPermission": "all",
|
||||
"dataPrivacyPermission": "yes",
|
||||
"auditPermission": "yes",
|
||||
"mentionPermission": "yes",
|
||||
"userCalendarPermission": "all"
|
||||
},
|
||||
"permissionsStrictDefaults": {
|
||||
"assignmentPermission": "no",
|
||||
"userPermission": "no",
|
||||
"messagePermission": "no",
|
||||
"portalPermission": "no",
|
||||
"groupEmailAccountPermission": "no",
|
||||
"exportPermission": "no",
|
||||
"massUpdatePermission": "no",
|
||||
"followerManagementPermission": "no",
|
||||
"dataPrivacyPermission": "no",
|
||||
"auditPermission": "no",
|
||||
"mentionPermission": "no",
|
||||
"userCalendarPermission": "no"
|
||||
}
|
||||
}
|
||||
146
application/Espo/Resources/metadata/app/aclPortal.json
Normal file
146
application/Espo/Resources/metadata/app/aclPortal.json
Normal file
@@ -0,0 +1,146 @@
|
||||
{
|
||||
"mandatory": {
|
||||
"scopeLevel": {
|
||||
"User": {
|
||||
"read": "own",
|
||||
"edit": "no",
|
||||
"delete": "no",
|
||||
"stream": "no",
|
||||
"create": "no"
|
||||
},
|
||||
"Team": false,
|
||||
"Note": {
|
||||
"read": "own",
|
||||
"edit": "own",
|
||||
"delete": "own",
|
||||
"create": "yes"
|
||||
},
|
||||
"Notification": {
|
||||
"read": "own",
|
||||
"edit": "no",
|
||||
"delete": "own",
|
||||
"create": "no"
|
||||
},
|
||||
"Portal": false,
|
||||
"Attachment": {
|
||||
"read": "own",
|
||||
"edit": "own",
|
||||
"delete": "own",
|
||||
"create": "yes"
|
||||
},
|
||||
"ExternalAccount": false,
|
||||
"Role": false,
|
||||
"PortalRole": false,
|
||||
"EmailFilter": false,
|
||||
"EmailFolder": false,
|
||||
"EmailAccount": false,
|
||||
"EmailTemplate": false,
|
||||
"ActionHistoryRecord": {
|
||||
"read": "own"
|
||||
},
|
||||
"Preferences": {
|
||||
"read": "own",
|
||||
"edit": "own",
|
||||
"delete": "no",
|
||||
"create": "no"
|
||||
}
|
||||
},
|
||||
"fieldLevel": {
|
||||
},
|
||||
"scopeFieldLevel": {
|
||||
"Preferences": {
|
||||
"smtpServer": false,
|
||||
"smtpPort": false,
|
||||
"smtpSecurity": false,
|
||||
"smtpUsername": false,
|
||||
"smtpPassword": false,
|
||||
"smtpAuth": false,
|
||||
"receiveAssignmentEmailNotifications": false,
|
||||
"receiveMentionEmailNotifications": false,
|
||||
"defaultReminders": false,
|
||||
"autoFollowEntityTypeList": false,
|
||||
"emailReplyForceHtml": false,
|
||||
"emailReplyToAllByDefault": false,
|
||||
"signature": false,
|
||||
"followCreatedEntities": false,
|
||||
"followEntityOnStreamPost": false,
|
||||
"doNotFillAssignedUserIfNotRequired": false,
|
||||
"useCustomTabList": false,
|
||||
"addCustomTabs": false,
|
||||
"tabList": false,
|
||||
"emailUseExternalClient": false,
|
||||
"assignmentNotificationsIgnoreEntityTypeList": false,
|
||||
"assignmentEmailNotificationsIgnoreEntityTypeList": false,
|
||||
"dashletsOptions": false,
|
||||
"dashboardLayout": false
|
||||
},
|
||||
"Call": {
|
||||
"reminders": false
|
||||
},
|
||||
"Meeting": {
|
||||
"reminders": false
|
||||
},
|
||||
"Note": {
|
||||
"isInternal": false,
|
||||
"isGlobal": false
|
||||
},
|
||||
"Email": {
|
||||
"inboundEmails": false,
|
||||
"emailAccounts": false
|
||||
},
|
||||
"User": {
|
||||
"dashboardTemplate": false,
|
||||
"workingTimeCalendar": false,
|
||||
"password": false,
|
||||
"authMethod": false,
|
||||
"apiKey": false,
|
||||
"secretKey": false,
|
||||
"token": false,
|
||||
"isAdmin": false,
|
||||
"type": false,
|
||||
"contact": false,
|
||||
"accounts": false,
|
||||
"account": false,
|
||||
"portalRoles": false,
|
||||
"portals": false,
|
||||
"roles": false,
|
||||
"defaultTeam": false,
|
||||
"auth2FA": false,
|
||||
"isActive": false
|
||||
},
|
||||
"ActionHistoryRecord": {
|
||||
"authToken": false,
|
||||
"authLogRecord": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"strictDefault": {
|
||||
"scopeLevel": {
|
||||
},
|
||||
"fieldLevel": {
|
||||
"assignedUser": {
|
||||
"read": "yes",
|
||||
"edit": "no"
|
||||
},
|
||||
"assignedUsers": {
|
||||
"read": "yes",
|
||||
"edit": "no"
|
||||
},
|
||||
"collaborators": false,
|
||||
"teams": false
|
||||
},
|
||||
"scopeFieldLevel": {
|
||||
"User": {
|
||||
"gender": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"valuePermissionList": [
|
||||
"exportPermission",
|
||||
"massUpdatePermission"
|
||||
],
|
||||
"permissionsStrictDefaults": {
|
||||
"exportPermission": "no",
|
||||
"massUpdatePermission": "no"
|
||||
}
|
||||
}
|
||||
8
application/Espo/Resources/metadata/app/actions.json
Normal file
8
application/Espo/Resources/metadata/app/actions.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"convertCurrency": {
|
||||
"implementationClassName": "Espo\\Core\\Action\\Actions\\ConvertCurrency"
|
||||
},
|
||||
"merge": {
|
||||
"implementationClassName": "Espo\\Core\\Action\\Actions\\Merge"
|
||||
}
|
||||
}
|
||||
14
application/Espo/Resources/metadata/app/addressFormats.json
Normal file
14
application/Espo/Resources/metadata/app/addressFormats.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"1": {
|
||||
"formatterClassName": "Espo\\Classes\\AddressFormatters\\Formatter1"
|
||||
},
|
||||
"2": {
|
||||
"formatterClassName": "Espo\\Classes\\AddressFormatters\\Formatter2"
|
||||
},
|
||||
"3": {
|
||||
"formatterClassName": "Espo\\Classes\\AddressFormatters\\Formatter3"
|
||||
},
|
||||
"4": {
|
||||
"formatterClassName": "Espo\\Classes\\AddressFormatters\\Formatter4"
|
||||
}
|
||||
}
|
||||
383
application/Espo/Resources/metadata/app/adminPanel.json
Normal file
383
application/Espo/Resources/metadata/app/adminPanel.json
Normal file
@@ -0,0 +1,383 @@
|
||||
{
|
||||
"system": {
|
||||
"label": "System",
|
||||
"itemList": [
|
||||
{
|
||||
"url": "#Admin/settings",
|
||||
"label": "Settings",
|
||||
"iconClass": "fas fa-cog",
|
||||
"description": "settings",
|
||||
"recordView": "views/admin/settings"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/userInterface",
|
||||
"label": "User Interface",
|
||||
"iconClass": "fas fa-desktop",
|
||||
"description": "userInterface",
|
||||
"recordView": "views/admin/user-interface"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/authentication",
|
||||
"label": "Authentication",
|
||||
"iconClass": "fas fa-sign-in-alt",
|
||||
"description": "authentication",
|
||||
"recordView": "views/admin/authentication"
|
||||
},
|
||||
{
|
||||
"url": "#ScheduledJob",
|
||||
"label": "Scheduled Jobs",
|
||||
"iconClass": "fas fa-clock",
|
||||
"description": "scheduledJob"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/currency",
|
||||
"label": "Currency",
|
||||
"iconClass": "fas fa-euro-sign",
|
||||
"description": "currency",
|
||||
"recordView": "views/admin/currency"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/notifications",
|
||||
"label": "Notifications",
|
||||
"iconClass": "fas fa-bell",
|
||||
"description": "notifications",
|
||||
"recordView": "views/admin/notifications"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/integrations",
|
||||
"label": "Integrations",
|
||||
"iconClass": "fas fa-network-wired",
|
||||
"description": "integrations"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/extensions",
|
||||
"label": "Extensions",
|
||||
"iconClass": "fas fa-upload",
|
||||
"description": "extensions"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/systemRequirements",
|
||||
"label": "System Requirements",
|
||||
"iconClass": "fas fa-server",
|
||||
"description": "systemRequirements"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/jobsSettings",
|
||||
"label": "Job Settings",
|
||||
"iconClass": "fas fa-list-ul",
|
||||
"description": "jobsSettings",
|
||||
"recordView": "views/admin/jobs-settings"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/upgrade",
|
||||
"label": "Upgrade",
|
||||
"iconClass": "fas fa-arrow-alt-circle-up",
|
||||
"description": "upgrade",
|
||||
"view": "views/admin/upgrade/index"
|
||||
},
|
||||
{
|
||||
"action": "clearCache",
|
||||
"label": "Clear Cache",
|
||||
"iconClass": "fas fa-broom",
|
||||
"description": "clearCache"
|
||||
},
|
||||
{
|
||||
"action": "rebuild",
|
||||
"label": "Rebuild",
|
||||
"iconClass": "fas fa-database",
|
||||
"description": "rebuild"
|
||||
}
|
||||
],
|
||||
"order": 0
|
||||
},
|
||||
"users":{
|
||||
"label": "Users",
|
||||
"itemList": [
|
||||
{
|
||||
"url": "#Admin/users",
|
||||
"label": "Users",
|
||||
"iconClass": "fas fa-user",
|
||||
"description": "users",
|
||||
"tabQuickSearch": true
|
||||
},
|
||||
{
|
||||
"url": "#Admin/teams",
|
||||
"label": "Teams",
|
||||
"iconClass": "fas fa-users",
|
||||
"description": "teams",
|
||||
"tabQuickSearch": true
|
||||
},
|
||||
{
|
||||
"url": "#Admin/roles",
|
||||
"label": "Roles",
|
||||
"iconClass": "fas fa-key",
|
||||
"description": "roles",
|
||||
"tabQuickSearch": true
|
||||
},
|
||||
{
|
||||
"url": "#Admin/authLog",
|
||||
"label": "Auth Log",
|
||||
"iconClass": "fas fa-sign-in-alt",
|
||||
"description": "authLog"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/authTokens",
|
||||
"label": "Auth Tokens",
|
||||
"iconClass": "fas fa-shield-alt",
|
||||
"description": "authTokens"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/actionHistory",
|
||||
"label": "Action History",
|
||||
"iconClass": "fas fa-history",
|
||||
"description": "actionHistory"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/apiUsers",
|
||||
"label": "API Users",
|
||||
"iconClass": "fas fa-user-cog",
|
||||
"description": "apiUsers"
|
||||
}
|
||||
],
|
||||
"order": 5
|
||||
},
|
||||
"customization": {
|
||||
"label": "Customization",
|
||||
"itemList": [
|
||||
{
|
||||
"url": "#Admin/entityManager",
|
||||
"label": "Entity Manager",
|
||||
"iconClass": "fas fa-tools",
|
||||
"description": "entityManager",
|
||||
"tabQuickSearch": true
|
||||
},
|
||||
{
|
||||
"url": "#Admin/layouts",
|
||||
"label": "Layout Manager",
|
||||
"iconClass": "fas fa-table",
|
||||
"description": "layoutManager"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/labelManager",
|
||||
"label": "Label Manager",
|
||||
"iconClass": "fas fa-language",
|
||||
"description": "labelManager"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/templateManager",
|
||||
"label": "Template Manager",
|
||||
"iconClass": "fas fa-envelope-open-text",
|
||||
"description": "templateManager"
|
||||
}
|
||||
],
|
||||
"order": 10
|
||||
},
|
||||
"email":{
|
||||
"label": "Messaging",
|
||||
"itemList": [
|
||||
{
|
||||
"url": "#Admin/outboundEmails",
|
||||
"label": "Outbound Emails",
|
||||
"iconClass": "fas fa-paper-plane",
|
||||
"description": "outboundEmails",
|
||||
"recordView": "views/admin/outbound-emails"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/inboundEmails",
|
||||
"label": "Inbound Emails",
|
||||
"iconClass": "fas fa-envelope",
|
||||
"description": "inboundEmails",
|
||||
"recordView": "views/admin/inbound-emails"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/groupEmailAccounts",
|
||||
"label": "Group Email Accounts",
|
||||
"iconClass": "fas fa-inbox",
|
||||
"description": "groupEmailAccounts",
|
||||
"tabQuickSearch": true
|
||||
},
|
||||
{
|
||||
"url": "#Admin/personalEmailAccounts",
|
||||
"label": "Personal Email Accounts",
|
||||
"iconClass": "fas fa-inbox",
|
||||
"description": "personalEmailAccounts",
|
||||
"tabQuickSearch": true
|
||||
},
|
||||
{
|
||||
"url": "#Admin/emailFilters",
|
||||
"label": "Email Filters",
|
||||
"iconClass": "fas fa-filter",
|
||||
"description": "emailFilters"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/groupEmailFolders",
|
||||
"label": "Group Email Folders",
|
||||
"iconClass": "fas fa-folder",
|
||||
"description": "groupEmailFolders"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/emailTemplates",
|
||||
"label": "Email Templates",
|
||||
"iconClass": "fas fa-envelope-square",
|
||||
"description": "emailTemplates"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/sms",
|
||||
"label": "SMS",
|
||||
"iconClass": "fas fa-paper-plane",
|
||||
"description": "sms",
|
||||
"recordView": "views/admin/sms"
|
||||
}
|
||||
],
|
||||
"order": 15
|
||||
},
|
||||
"portal": {
|
||||
"label": "Portal",
|
||||
"itemList": [
|
||||
{
|
||||
"url": "#Admin/portals",
|
||||
"label": "Portals",
|
||||
"iconClass": "fas fa-parking",
|
||||
"description": "portals"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/portalUsers",
|
||||
"label": "Portal Users",
|
||||
"iconClass": "fas fa-user",
|
||||
"description": "portalUsers",
|
||||
"tabQuickSearch": true
|
||||
},
|
||||
{
|
||||
"url": "#Admin/portalRoles",
|
||||
"label": "Portal Roles",
|
||||
"iconClass": "fas fa-key",
|
||||
"description": "portalRoles"
|
||||
}
|
||||
],
|
||||
"order": 20
|
||||
},
|
||||
"setup": {
|
||||
"label": "Setup",
|
||||
"itemList": [
|
||||
{
|
||||
"url": "#Admin/workingTimeCalendar",
|
||||
"label": "Working Time Calendars",
|
||||
"iconClass": "far fa-calendar-alt",
|
||||
"description": "workingTimeCalendars",
|
||||
"tabQuickSearch": true
|
||||
},
|
||||
{
|
||||
"url": "#Admin/layoutSets",
|
||||
"label": "Layout Sets",
|
||||
"iconClass": "fas fa-table",
|
||||
"description": "layoutSets"
|
||||
},
|
||||
{
|
||||
|
||||
"url": "#Admin/dashboardTemplates",
|
||||
"label": "Dashboard Templates",
|
||||
"iconClass": "fas fa-th-large",
|
||||
"description": "dashboardTemplates"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/leadCapture",
|
||||
"label": "Lead Capture",
|
||||
"iconClass": "fas fa-id-card",
|
||||
"description": "leadCapture"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/pdfTemplates",
|
||||
"label": "PDF Templates",
|
||||
"iconClass": "fas fa-file-pdf",
|
||||
"description": "pdfTemplates"
|
||||
},
|
||||
{
|
||||
|
||||
"url": "#Admin/webhooks",
|
||||
"label": "Webhooks",
|
||||
"iconClass": "fas fa-share-alt icon-rotate-90",
|
||||
"description": "webhooks"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/addressCountries",
|
||||
"label": "Address Countries",
|
||||
"iconClass": "far fa-flag",
|
||||
"description": "addressCountries"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/authenticationProviders",
|
||||
"label": "Authentication Providers",
|
||||
"iconClass": "fas fa-sign-in-alt",
|
||||
"description": "authenticationProviders"
|
||||
}
|
||||
],
|
||||
"order": 24
|
||||
},
|
||||
"data": {
|
||||
"label": "Data",
|
||||
"itemList": [
|
||||
{
|
||||
"url": "#Admin/import",
|
||||
"label": "Import",
|
||||
"iconClass": "fas fa-file-import",
|
||||
"description": "import"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/attachments",
|
||||
"label": "Attachments",
|
||||
"iconClass": "fas fa-paperclip",
|
||||
"description": "attachments"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/jobs",
|
||||
"label": "Jobs",
|
||||
"iconClass": "fas fa-list-ul",
|
||||
"description": "jobs"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/emailAddresses",
|
||||
"label": "Email Addresses",
|
||||
"iconClass": "fas fa-envelope",
|
||||
"description": "emailAddresses"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/phoneNumbers",
|
||||
"label": "Phone Numbers",
|
||||
"iconClass": "fas fa-phone",
|
||||
"description": "phoneNumbers"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/appSecrets",
|
||||
"label": "App Secrets",
|
||||
"iconClass": "fas fa-key",
|
||||
"description": "appSecrets"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/oAuthProviders",
|
||||
"label": "OAuth Providers",
|
||||
"iconClass": "fas fa-sign-in-alt",
|
||||
"description": "oAuthProviders"
|
||||
},
|
||||
{
|
||||
"url": "#Admin/appLog",
|
||||
"label": "App Log",
|
||||
"iconClass": "fas fa-list",
|
||||
"description": "appLog"
|
||||
}
|
||||
],
|
||||
"order": 25
|
||||
},
|
||||
"misc": {
|
||||
"label": "Misc",
|
||||
"itemList": [
|
||||
{
|
||||
"url": "#Admin/formulaSandbox",
|
||||
"label": "Formula Sandbox",
|
||||
"iconClass": "fas fa-code",
|
||||
"description": "formulaSandbox",
|
||||
"view": "views/admin/formula-sandbox/index"
|
||||
}
|
||||
],
|
||||
"order": 26
|
||||
}
|
||||
}
|
||||
6
application/Espo/Resources/metadata/app/api.json
Normal file
6
application/Espo/Resources/metadata/app/api.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"globalMiddlewareClassNameList": [],
|
||||
"routeMiddlewareClassNameListMap": {},
|
||||
"controllerMiddlewareClassNameListMap": {},
|
||||
"controllerActionMiddlewareClassNameListMap": {}
|
||||
}
|
||||
11
application/Espo/Resources/metadata/app/appParams.json
Normal file
11
application/Espo/Resources/metadata/app/appParams.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"templateEntityTypeList": {
|
||||
"className": "Espo\\Classes\\AppParams\\TemplateEntityTypeList"
|
||||
},
|
||||
"extensions": {
|
||||
"className": "Espo\\Classes\\AppParams\\Extensions"
|
||||
},
|
||||
"addressCountryData": {
|
||||
"className": "Espo\\Classes\\AppParams\\AddressCountryData"
|
||||
}
|
||||
}
|
||||
13
application/Espo/Resources/metadata/app/authentication.json
Normal file
13
application/Espo/Resources/metadata/app/authentication.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"beforeLoginHookClassNameList": [
|
||||
"Espo\\Core\\Authentication\\Hook\\Hooks\\FailedAttemptsLimit",
|
||||
"Espo\\Core\\Authentication\\Hook\\Hooks\\FailedCodeAttemptsLimit"
|
||||
],
|
||||
"onLoginHookClassNameList": [
|
||||
"Espo\\Core\\Authentication\\Hook\\Hooks\\IpAddressWhitelist"
|
||||
],
|
||||
"onFailHookClassNameList": [],
|
||||
"onSuccessHookClassNameList": [],
|
||||
"onSuccessByTokenHookClassNameList": [],
|
||||
"onSecondStepRequiredHookClassNameList": []
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"Totp": {
|
||||
"settings": {
|
||||
"isAvailable": true
|
||||
},
|
||||
"userApplyView": "views/user-security/modals/totp",
|
||||
"loginClassName": "Espo\\Core\\Authentication\\TwoFactor\\Totp\\TotpLogin",
|
||||
"userSetupClassName": "Espo\\Core\\Authentication\\TwoFactor\\Totp\\TotpUserSetup"
|
||||
},
|
||||
"Email": {
|
||||
"settings": {
|
||||
"isAvailable": true
|
||||
},
|
||||
"userApplyView": "views/user-security/modals/two-factor-email",
|
||||
"loginClassName": "Espo\\Core\\Authentication\\TwoFactor\\Email\\EmailLogin",
|
||||
"userSetupClassName": "Espo\\Core\\Authentication\\TwoFactor\\Email\\EmailUserSetup"
|
||||
},
|
||||
"Sms": {
|
||||
"settings": {
|
||||
"isAvailable": true
|
||||
},
|
||||
"userApplyView": "views/user-security/modals/two-factor-sms",
|
||||
"loginClassName": "Espo\\Core\\Authentication\\TwoFactor\\Sms\\SmsLogin",
|
||||
"userSetupClassName": "Espo\\Core\\Authentication\\TwoFactor\\Sms\\SmsUserSetup"
|
||||
}
|
||||
}
|
||||
34
application/Espo/Resources/metadata/app/cleanup.json
Normal file
34
application/Espo/Resources/metadata/app/cleanup.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"reminders": {
|
||||
"className": "Espo\\Classes\\Cleanup\\Reminders",
|
||||
"order": 10
|
||||
},
|
||||
"webhookQueue": {
|
||||
"className": "Espo\\Classes\\Cleanup\\WebhookQueue",
|
||||
"order": 11
|
||||
},
|
||||
"twoFactorCodes": {
|
||||
"className": "Espo\\Classes\\Cleanup\\TwoFactorCodes"
|
||||
},
|
||||
"massActions": {
|
||||
"className": "Espo\\Classes\\Cleanup\\MassActions"
|
||||
},
|
||||
"exports": {
|
||||
"className": "Espo\\Classes\\Cleanup\\Exports"
|
||||
},
|
||||
"passwordChangeRequests": {
|
||||
"className": "Espo\\Classes\\Cleanup\\PasswordChangeRequests"
|
||||
},
|
||||
"subscribers": {
|
||||
"className": "Espo\\Classes\\Cleanup\\Subscribers"
|
||||
},
|
||||
"audit": {
|
||||
"className": "Espo\\Classes\\Cleanup\\Audit"
|
||||
},
|
||||
"stars": {
|
||||
"className": "Espo\\Classes\\Cleanup\\Stars"
|
||||
},
|
||||
"appLog": {
|
||||
"className": "Espo\\Classes\\Cleanup\\AppLog"
|
||||
}
|
||||
}
|
||||
59
application/Espo/Resources/metadata/app/client.json
Normal file
59
application/Espo/Resources/metadata/app/client.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"scriptList": [
|
||||
"client/lib/espo.js",
|
||||
"client/lib/espo-main.js"
|
||||
],
|
||||
"developerModeScriptList": [
|
||||
"client/src/loader.js"
|
||||
],
|
||||
"linkList": [
|
||||
{
|
||||
"href": "client/fonts/inter/Inter-Regular.woff2",
|
||||
"as": "font",
|
||||
"type": "font/woff2",
|
||||
"rel": "preload",
|
||||
"noTimestamp": true,
|
||||
"crossorigin": true
|
||||
},
|
||||
{
|
||||
"href": "client/fonts/inter/Inter-Medium.woff2",
|
||||
"as": "font",
|
||||
"type": "font/woff2",
|
||||
"rel": "preload",
|
||||
"noTimestamp": true,
|
||||
"crossorigin": true
|
||||
},
|
||||
{
|
||||
"href": "client/fonts/inter/Inter-SemiBold.woff2",
|
||||
"as": "font",
|
||||
"type": "font/woff2",
|
||||
"rel": "preload",
|
||||
"noTimestamp": true,
|
||||
"crossorigin": true
|
||||
},
|
||||
{
|
||||
"href": "client/fonts/inter/Inter-Bold.woff2",
|
||||
"as": "font",
|
||||
"type": "font/woff2",
|
||||
"rel": "preload",
|
||||
"noTimestamp": true,
|
||||
"crossorigin": true
|
||||
},
|
||||
{
|
||||
"href": "client/fonts/fa-solid-900.woff2",
|
||||
"as": "font",
|
||||
"type": "font/woff2",
|
||||
"rel": "preload",
|
||||
"noTimestamp": true,
|
||||
"crossorigin": true
|
||||
},
|
||||
{
|
||||
"href": "client/fonts/fa-regular-400.woff2",
|
||||
"as": "font",
|
||||
"type": "font/woff2",
|
||||
"rel": "preload",
|
||||
"noTimestamp": true,
|
||||
"crossorigin": true
|
||||
}
|
||||
]
|
||||
}
|
||||
3
application/Espo/Resources/metadata/app/clientIcons.json
Normal file
3
application/Espo/Resources/metadata/app/clientIcons.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"classList": []
|
||||
}
|
||||
63
application/Espo/Resources/metadata/app/clientNavbar.json
Normal file
63
application/Espo/Resources/metadata/app/clientNavbar.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"items": {
|
||||
"globalSearch": {
|
||||
"view": "views/global-search/global-search",
|
||||
"class": "navbar-form global-search-container",
|
||||
"order": 5,
|
||||
"disabled": false
|
||||
},
|
||||
"quickCreate": {
|
||||
"view": "views/site/navbar/quick-create",
|
||||
"class": "dropdown hidden-xs quick-create-container",
|
||||
"order": 10,
|
||||
"disabled": false
|
||||
},
|
||||
"notificationBadge": {
|
||||
"view": "views/notification/badge",
|
||||
"class": "dropdown notifications-badge-container",
|
||||
"order": 15,
|
||||
"disabled": false
|
||||
}
|
||||
},
|
||||
"menuItems": {
|
||||
"admin": {
|
||||
"order": 0,
|
||||
"groupIndex": 1,
|
||||
"link": "#Admin",
|
||||
"labelTranslation": "Global.labels.Administration",
|
||||
"accessDataList": [
|
||||
{
|
||||
"isAdminOnly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"preferences": {
|
||||
"order": 1,
|
||||
"groupIndex": 1,
|
||||
"link": "#Preferences",
|
||||
"labelTranslation": "Global.labels.Preferences"
|
||||
},
|
||||
"lastViewed": {
|
||||
"order": 0,
|
||||
"groupIndex": 5,
|
||||
"link": "#LastViewed",
|
||||
"labelTranslation": "Global.scopeNamesPlural.LastViewed",
|
||||
"configCheck": "!actionHistoryDisabled",
|
||||
"handler": "handlers/navbar-menu",
|
||||
"actionFunction": "lastViewed"
|
||||
},
|
||||
"about": {
|
||||
"order": 0,
|
||||
"groupIndex": 10,
|
||||
"link": "#About",
|
||||
"labelTranslation": "Global.labels.About"
|
||||
},
|
||||
"logout": {
|
||||
"order": 1,
|
||||
"groupIndex": 10,
|
||||
"labelTranslation": "Global.labels.Log Out",
|
||||
"handler": "handlers/navbar-menu",
|
||||
"actionFunction": "logout"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
application/Espo/Resources/metadata/app/clientRecord.json
Normal file
22
application/Espo/Resources/metadata/app/clientRecord.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"panels": {
|
||||
"activities": {
|
||||
"name": "activities",
|
||||
"label": "Activities",
|
||||
"view": "crm:views/record/panels/activities",
|
||||
"aclScope": "Activities"
|
||||
},
|
||||
"history": {
|
||||
"name": "history",
|
||||
"label": "History",
|
||||
"view": "crm:views/record/panels/history",
|
||||
"aclScope": "Activities"
|
||||
},
|
||||
"tasks": {
|
||||
"name": "tasks",
|
||||
"label": "Tasks",
|
||||
"view": "crm:views/record/panels/tasks",
|
||||
"aclScope": "Task"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
application/Espo/Resources/metadata/app/clientRoutes.json
Normal file
22
application/Espo/Resources/metadata/app/clientRoutes.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"AddressMap/view/:entityType/:id/:field": {
|
||||
"params": {
|
||||
"controller": "AddressMap",
|
||||
"action": "view"
|
||||
}
|
||||
},
|
||||
"Admin/:page": {
|
||||
"params": {
|
||||
"controller": "Admin",
|
||||
"action": "page"
|
||||
},
|
||||
"order": 1
|
||||
},
|
||||
"Admin/:page/:options": {
|
||||
"params": {
|
||||
"controller": "Admin",
|
||||
"action": "page"
|
||||
},
|
||||
"order": 1
|
||||
}
|
||||
}
|
||||
301
application/Espo/Resources/metadata/app/complexExpression.json
Normal file
301
application/Espo/Resources/metadata/app/complexExpression.json
Normal file
@@ -0,0 +1,301 @@
|
||||
{
|
||||
"functionList": [
|
||||
{
|
||||
"name": "EQUAL",
|
||||
"insertText": "EQUAL:(VALUE1, VALUE2)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "NOT_EQUAL",
|
||||
"insertText": "NOT_EQUAL:(VALUE1, VALUE2)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "OR",
|
||||
"insertText": "OR:(EXPR1, EXPR2)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "AND",
|
||||
"insertText": "AND:(EXPR1, EXPR2)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "NOT",
|
||||
"insertText": "NOT:(EXPR)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "LIKE",
|
||||
"insertText": "LIKE:(VALUE, 'pattern%')",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "NOT_LIKE",
|
||||
"insertText": "NOT_LIKE:(VALUE, 'pattern%')",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "GREATER_THAN",
|
||||
"insertText": "GREATER_THAN:(VALUE1, VALUE2)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "LESS_THAN",
|
||||
"insertText": "LESS_THAN:(VALUE1, VALUE2)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "GREATER_THAN_OR_EQUAL",
|
||||
"insertText": "GREATER_THAN_OR_EQUAL:(VALUE1, VALUE2)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "LESS_THAN_OR_EQUAL",
|
||||
"insertText": "LESS_THAN_OR_EQUAL:(VALUE1, VALUE2)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "IS_NULL",
|
||||
"insertText": "IS_NULL:(VALUE)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "IS_NOT_NULL",
|
||||
"insertText": "IS_NOT_NULL:(VALUE)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "IN",
|
||||
"insertText": "IN:(VALUE, VALUE1, VALUE2, VALUE3)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "NOT_IN",
|
||||
"insertText": "NOT_IN:(VALUE, VALUE1, VALUE2, VALUE3)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "IF",
|
||||
"insertText": "IF:(CONDITION, THEN_VALUE, ELSE_VALUE)"
|
||||
},
|
||||
{
|
||||
"name": "SWITCH",
|
||||
"insertText": "SWITCH:(CONDITION1, VALUE1, CONDITION2, VALUE2, ELSE_VALUE)"
|
||||
},
|
||||
{
|
||||
"name": "MAP",
|
||||
"insertText": "MAP:(EXPR, WHEN_VALUE1, THEN_VALUE1, WHEN_VALUE2, THEN_VALUE2, ELSE_VALUE)"
|
||||
},
|
||||
{
|
||||
"name": "MONTH_NUMBER",
|
||||
"insertText": "MONTH_NUMBER:(DATE_VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "WEEK_NUMBER_0",
|
||||
"insertText": "WEEK_NUMBER_0:(DATE_VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "WEEK_NUMBER_1",
|
||||
"insertText": "WEEK_NUMBER_1:(DATE_VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "DAYOFWEEK",
|
||||
"insertText": "DAYOFWEEK:(DATE_VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "DAYOFMONTH",
|
||||
"insertText": "DAYOFMONTH:(DATE_VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "YEAR",
|
||||
"insertText": "YEAR:(DATE_VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "HOUR",
|
||||
"insertText": "HOUR:(DATE_VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "MINUTE",
|
||||
"insertText": "MINUTE:(DATE_VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "MONTH",
|
||||
"insertText": "MONTH:(DATE_VALUE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "QUARTER",
|
||||
"insertText": "QUARTER:(DATE_VALUE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "WEEK",
|
||||
"insertText": "WEEK:(DATE_VALUE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "NOW",
|
||||
"insertText": "NOW:()",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "TZ",
|
||||
"insertText": "TZ:(DATE_VALUE, OFFSET)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "UNIX_TIMESTAMP",
|
||||
"insertText": "UNIX_TIMESTAMP:(DATE_VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "TIMESTAMPDIFF_YEAR",
|
||||
"insertText": "TIMESTAMPDIFF_YEAR:(DATE_FROM, DATE_TO)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "TIMESTAMPDIFF_MONTH",
|
||||
"insertText": "TIMESTAMPDIFF_MONTH:(DATE_FROM, DATE_TO)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "TIMESTAMPDIFF_WEEK",
|
||||
"insertText": "TIMESTAMPDIFF_WEEK:(DATE_FROM, DATE_TO)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "TIMESTAMPDIFF_DAY",
|
||||
"insertText": "TIMESTAMPDIFF_DAY:(DATE_FROM, DATE_TO)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "TIMESTAMPDIFF_HOUR",
|
||||
"insertText": "TIMESTAMPDIFF_HOUR:(DATE_FROM, DATE_TO)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "TIMESTAMPDIFF_MINUTE",
|
||||
"insertText": "TIMESTAMPDIFF_MINUTE:(DATE_FROM, DATE_TO)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "TIMESTAMPDIFF_SECOND",
|
||||
"insertText": "TIMESTAMPDIFF_SECOND:(DATE_FROM, DATE_TO)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "CONCAT",
|
||||
"insertText": "CONCAT:(STRING1, STRING2)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "LEFT",
|
||||
"insertText": "LEFT:(STRING, NUMBER_OF_CHARACTERS)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "LOWER",
|
||||
"insertText": "LOWER:(STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "UPPER",
|
||||
"insertText": "UPPER:(STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "TRIM",
|
||||
"insertText": "TRIM:(STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "CHAR_LENGTH",
|
||||
"insertText": "CHAR_LENGTH:(STRING)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "BINARY",
|
||||
"insertText": "BINARY:(STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "REPLACE",
|
||||
"insertText": "REPLACE:(HAYSTACK, NEEDLE, REPLACE_WITH)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "ADD",
|
||||
"insertText": "ADD:(VALUE1, VALUE2)",
|
||||
"returnType": "float"
|
||||
},
|
||||
{
|
||||
"name": "SUB",
|
||||
"insertText": "SUB:(VALUE1, VALUE2)",
|
||||
"returnType": "float"
|
||||
},
|
||||
{
|
||||
"name": "MUL",
|
||||
"insertText": "MUL:(VALUE1, VALUE2)",
|
||||
"returnType": "float"
|
||||
},
|
||||
{
|
||||
"name": "DIV",
|
||||
"insertText": "DIV:(VALUE1, VALUE2)",
|
||||
"returnType": "float"
|
||||
},
|
||||
{
|
||||
"name": "MOD",
|
||||
"insertText": "MOD:(VALUE1, VALUE2)",
|
||||
"returnType": "float"
|
||||
},
|
||||
{
|
||||
"name": "FLOOR",
|
||||
"insertText": "FLOOR:(VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "CEIL",
|
||||
"insertText": "CEIL:(VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "ROUND",
|
||||
"insertText": "ROUND:(VALUE, PRECISION)",
|
||||
"returnType": "float"
|
||||
},
|
||||
{
|
||||
"name": "COUNT",
|
||||
"insertText": "COUNT:(EXPR)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "SUM",
|
||||
"insertText": "SUM:(EXPR)",
|
||||
"returnType": "int|float"
|
||||
},
|
||||
{
|
||||
"name": "AVG",
|
||||
"insertText": "AVG:(EXPR)",
|
||||
"returnType": "float"
|
||||
},
|
||||
{
|
||||
"name": "MAX",
|
||||
"insertText": "MAX:(EXPR)",
|
||||
"returnType": "int|float"
|
||||
},
|
||||
{
|
||||
"name": "MIN",
|
||||
"insertText": "MIN:(EXPR)",
|
||||
"returnType": "int|float"
|
||||
}
|
||||
]
|
||||
}
|
||||
173
application/Espo/Resources/metadata/app/config.json
Normal file
173
application/Espo/Resources/metadata/app/config.json
Normal file
@@ -0,0 +1,173 @@
|
||||
{
|
||||
"entityTypeListParamList": [
|
||||
"tabList",
|
||||
"quickCreateList",
|
||||
"globalSearchEntityList",
|
||||
"assignmentEmailNotificationsEntityList",
|
||||
"assignmentNotificationsEntityList",
|
||||
"calendarEntityList",
|
||||
"streamEmailNotificationsEntityList",
|
||||
"activitiesEntityList",
|
||||
"historyEntityList",
|
||||
"streamEmailNotificationsTypeList",
|
||||
"emailKeepParentTeamsEntityList"
|
||||
],
|
||||
"params": {
|
||||
"isDeveloperMode": {
|
||||
"readOnly": true
|
||||
},
|
||||
"clientSecurityHeadersDisabled": {
|
||||
"readOnly": true
|
||||
},
|
||||
"clientCspDisabled": {
|
||||
"readOnly": true
|
||||
},
|
||||
"clientCspScriptSourceList": {
|
||||
"readOnly": true
|
||||
},
|
||||
"clientStrictTransportSecurityHeaderDisabled": {
|
||||
"readOnly": true
|
||||
},
|
||||
"clientXFrameOptionsHeaderDisabled": {
|
||||
"readOnly": true
|
||||
},
|
||||
"systemUserId": {
|
||||
"level": "admin",
|
||||
"readOnly": true
|
||||
},
|
||||
"smtpPassword": {
|
||||
"level": "internal"
|
||||
},
|
||||
"awsS3Storage": {
|
||||
"level": "system"
|
||||
},
|
||||
"defaultFileStorage": {
|
||||
"level": "admin",
|
||||
"readOnly": true
|
||||
},
|
||||
"smsProvider": {
|
||||
"level": "admin"
|
||||
},
|
||||
"authAnotherUserDisabled": {
|
||||
"level": "admin",
|
||||
"readOnly": true
|
||||
},
|
||||
"userNameRegularExpression": {
|
||||
"readOnly": true
|
||||
},
|
||||
"workingTimeCalendar": {
|
||||
"level": "admin"
|
||||
},
|
||||
"ldapPassword": {
|
||||
"level": "internal"
|
||||
},
|
||||
"oidcClientId": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcClientSecret": {
|
||||
"level": "internal"
|
||||
},
|
||||
"oidcAuthorizationEndpoint": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcUserInfoEndpoint": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcTokenEndpoint": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcJwksEndpoint": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcJwksCachePeriod": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcJwtSignatureAlgorithmList": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcScopes": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcGroupClaim": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcCreateUser": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcUsernameClaim": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcTeamsIds": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcTeamsNames": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcTeamsColumns": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcSync": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcSyncTeams": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcFallback": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcAllowRegularUserFallback": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcAllowAdminUser": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcAuthorizationPrompt": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcAuthorizationMaxAge": {
|
||||
"level": "admin"
|
||||
},
|
||||
"oidcLogoutUrl": {
|
||||
"level": "admin"
|
||||
},
|
||||
"apiCorsAllowedMethodList": {
|
||||
"level": "admin"
|
||||
},
|
||||
"apiCorsAllowedHeaderList": {
|
||||
"level": "admin"
|
||||
},
|
||||
"apiCorsAllowedOriginList": {
|
||||
"level": "admin"
|
||||
},
|
||||
"apiCorsMaxAge": {
|
||||
"level": "admin"
|
||||
},
|
||||
"customExportManifest": {
|
||||
"level": "admin"
|
||||
},
|
||||
"starsLimit": {
|
||||
"level": "admin"
|
||||
},
|
||||
"authIpAddressCheck": {
|
||||
"level": "superAdmin"
|
||||
},
|
||||
"authIpAddressWhitelist": {
|
||||
"level": "superAdmin"
|
||||
},
|
||||
"authIpAddressCheckExcludedUsers": {
|
||||
"level": "superAdmin"
|
||||
},
|
||||
"availableReactions": {
|
||||
"level": "default"
|
||||
},
|
||||
"emailScheduledBatchCount": {
|
||||
"level": "admin"
|
||||
},
|
||||
"streamEmailWithContentEntityTypeList": {
|
||||
"level": "admin"
|
||||
},
|
||||
"baselineRole": {
|
||||
"level": "admin"
|
||||
}
|
||||
}
|
||||
}
|
||||
75
application/Espo/Resources/metadata/app/consoleCommands.json
Normal file
75
application/Espo/Resources/metadata/app/consoleCommands.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"import": {
|
||||
"className": "Espo\\Classes\\ConsoleCommands\\Import",
|
||||
"listed": true
|
||||
},
|
||||
"clearCache": {
|
||||
"listed": true,
|
||||
"noSystemUser": true
|
||||
},
|
||||
"rebuild": {
|
||||
"listed": true,
|
||||
"noSystemUser": true,
|
||||
"allowedFlags": [
|
||||
"hard",
|
||||
"y"
|
||||
]
|
||||
},
|
||||
"updateAppTimestamp": {
|
||||
"listed": true,
|
||||
"noSystemUser": true
|
||||
},
|
||||
"appInfo": {
|
||||
"listed": true
|
||||
},
|
||||
"setPassword": {
|
||||
"listed": true
|
||||
},
|
||||
"upgrade": {
|
||||
"listed": true
|
||||
},
|
||||
"extension": {
|
||||
"listed": true
|
||||
},
|
||||
"runJob": {
|
||||
"listed": true,
|
||||
"allowedOptions": [
|
||||
"job",
|
||||
"targetId",
|
||||
"targetType"
|
||||
]
|
||||
},
|
||||
"version": {
|
||||
"listed": true,
|
||||
"noSystemUser": true
|
||||
},
|
||||
"createAdminUser": {
|
||||
"className": "Espo\\Classes\\ConsoleCommands\\CreateAdminUser",
|
||||
"listed": true
|
||||
},
|
||||
"rebuildCategoryPaths": {
|
||||
"className": "Espo\\Classes\\ConsoleCommands\\RebuildCategoryPaths",
|
||||
"listed": true
|
||||
},
|
||||
"populateArrayValues": {
|
||||
"className": "Espo\\Classes\\ConsoleCommands\\PopulateArrayValues",
|
||||
"listed": true
|
||||
},
|
||||
"populateNumbers": {
|
||||
"className": "Espo\\Classes\\ConsoleCommands\\PopulateNumbers",
|
||||
"listed": false
|
||||
},
|
||||
"checkFilePermissions": {
|
||||
"className": "Espo\\Classes\\ConsoleCommands\\CheckFilePermissions",
|
||||
"listed": true,
|
||||
"noSystemUser": true
|
||||
},
|
||||
"migrate": {
|
||||
"listed": true,
|
||||
"noSystemUser": true
|
||||
},
|
||||
"migrationVersionStep": {
|
||||
"listed": false,
|
||||
"noSystemUser": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"authTokenManager": {
|
||||
"className": "Espo\\Core\\Authentication\\AuthToken\\EspoManager"
|
||||
},
|
||||
"ormMetadataData": {
|
||||
"className": "Espo\\Core\\Utils\\Metadata\\OrmMetadataData"
|
||||
},
|
||||
"classFinder": {
|
||||
"className": "Espo\\Core\\Utils\\ClassFinder"
|
||||
},
|
||||
"fileStorageManager": {
|
||||
"className": "Espo\\Core\\FileStorage\\Manager"
|
||||
},
|
||||
"jobManager": {
|
||||
"className": "Espo\\Core\\Job\\JobManager"
|
||||
},
|
||||
"webSocketSubmission": {
|
||||
"className": "Espo\\Core\\WebSocket\\Submission"
|
||||
},
|
||||
"crypt": {
|
||||
"className": "Espo\\Core\\Utils\\Crypt"
|
||||
},
|
||||
"passwordHash": {
|
||||
"className": "Espo\\Core\\Utils\\PasswordHash"
|
||||
},
|
||||
"number": {
|
||||
"loaderClassName": "Espo\\Core\\Loaders\\NumberUtil"
|
||||
},
|
||||
"selectManagerFactory": {
|
||||
"className": "Espo\\Core\\Select\\SelectManagerFactory"
|
||||
},
|
||||
"serviceFactory": {
|
||||
"className": "Espo\\Core\\ServiceFactory"
|
||||
},
|
||||
"recordServiceContainer": {
|
||||
"className": "Espo\\Core\\Record\\ServiceContainer"
|
||||
},
|
||||
"templateFileManager": {
|
||||
"className": "Espo\\Core\\Utils\\TemplateFileManager"
|
||||
},
|
||||
"webhookManager": {
|
||||
"className": "Espo\\Core\\Webhook\\Manager"
|
||||
},
|
||||
"hookManager": {
|
||||
"className": "Espo\\Core\\HookManager"
|
||||
},
|
||||
"clientManager": {
|
||||
"className": "Espo\\Core\\Utils\\ClientManager"
|
||||
},
|
||||
"themeManager": {
|
||||
"className": "Espo\\Core\\Utils\\ThemeManager"
|
||||
},
|
||||
"fieldUtil": {
|
||||
"className": "Espo\\Core\\Utils\\FieldUtil"
|
||||
},
|
||||
"emailSender": {
|
||||
"className": "Espo\\Core\\Mail\\EmailSender"
|
||||
},
|
||||
"mailSender": {
|
||||
"className": "Espo\\Core\\Mail\\Sender"
|
||||
},
|
||||
"htmlizerFactory": {
|
||||
"className": "Espo\\Core\\Htmlizer\\HtmlizerFactory"
|
||||
},
|
||||
"fieldValidationManager": {
|
||||
"className": "Espo\\Core\\FieldValidation\\FieldValidationManager"
|
||||
},
|
||||
"assignmentCheckerManager": {
|
||||
"className": "Espo\\Core\\Acl\\AssignmentChecker\\AssignmentCheckerManager"
|
||||
},
|
||||
"hasher": {
|
||||
"className": "Espo\\Core\\Utils\\Hasher"
|
||||
},
|
||||
"emailFilterManager": {
|
||||
"className": "Espo\\Core\\Utils\\EmailFilterManager"
|
||||
},
|
||||
"externalAccountClientManager": {
|
||||
"className": "Espo\\Core\\ExternalAccount\\ClientManager"
|
||||
},
|
||||
"formulaManager": {
|
||||
"className": "Espo\\Core\\Formula\\Manager"
|
||||
},
|
||||
"user": {
|
||||
"settable": true
|
||||
},
|
||||
"streamService": {
|
||||
"className": "Espo\\Tools\\Stream\\Service"
|
||||
},
|
||||
"systemConfig": {
|
||||
"className": "Espo\\Core\\Utils\\Config\\SystemConfig"
|
||||
},
|
||||
"applicationConfig": {
|
||||
"className": "Espo\\Core\\Utils\\Config\\ApplicationConfig"
|
||||
}
|
||||
}
|
||||
269
application/Espo/Resources/metadata/app/currency.json
Normal file
269
application/Espo/Resources/metadata/app/currency.json
Normal file
@@ -0,0 +1,269 @@
|
||||
{
|
||||
"symbolMap":{
|
||||
"AED":"د.إ",
|
||||
"AFN":"؋",
|
||||
"ALL":"L",
|
||||
"ANG":"ƒ",
|
||||
"AOA":"Kz",
|
||||
"ARS":"$",
|
||||
"AUD":"$",
|
||||
"AWG":"ƒ",
|
||||
"AZN":"₼",
|
||||
"BAM":"KM",
|
||||
"BBD":"$",
|
||||
"BDT":"৳",
|
||||
"BGN":"лв",
|
||||
"BHD":".د.ب",
|
||||
"BIF":"FBu",
|
||||
"BMD":"$",
|
||||
"BND":"$",
|
||||
"BOB":"Bs.",
|
||||
"BRL":"R$",
|
||||
"BSD":"$",
|
||||
"BTN":"Nu.",
|
||||
"BWP":"P",
|
||||
"BYN": "Br",
|
||||
"BYR":"p.",
|
||||
"BZD":"BZ$",
|
||||
"CAD":"$",
|
||||
"CDF":"FC",
|
||||
"CHF":"Fr.",
|
||||
"CLP":"$",
|
||||
"CNY":"¥",
|
||||
"COP":"$",
|
||||
"CRC":"₡",
|
||||
"CUC":"$",
|
||||
"CUP":"₱",
|
||||
"CVE":"$",
|
||||
"CZK":"Kč",
|
||||
"DJF":"Fdj",
|
||||
"DKK":"kr",
|
||||
"DOP":"RD$",
|
||||
"DZD":"دج",
|
||||
"EEK":"kr",
|
||||
"EGP":"£",
|
||||
"ERN":"Nfk",
|
||||
"ETB":"Br",
|
||||
"EUR":"€",
|
||||
"FJD":"$",
|
||||
"FKP":"£",
|
||||
"GBP":"£",
|
||||
"GEL":"₾",
|
||||
"GGP":"£",
|
||||
"GHC":"₵",
|
||||
"GHS":"GH₵",
|
||||
"GIP":"£",
|
||||
"GMD":"D",
|
||||
"GNF":"FG",
|
||||
"GTQ":"Q",
|
||||
"GYD":"$",
|
||||
"HKD":"$",
|
||||
"HNL":"L",
|
||||
"HRK":"kn",
|
||||
"HTG":"G",
|
||||
"HUF":"Ft",
|
||||
"IDR":"Rp",
|
||||
"ILS":"₪",
|
||||
"IMP":"£",
|
||||
"INR":"₹",
|
||||
"IQD":"ع.د",
|
||||
"IRR":"﷼",
|
||||
"ISK":"kr",
|
||||
"JEP":"£",
|
||||
"JMD":"J$",
|
||||
"JPY":"¥",
|
||||
"KES":"KSh",
|
||||
"KGS":"лв",
|
||||
"KHR":"៛",
|
||||
"KMF":"CF",
|
||||
"KPW":"₩",
|
||||
"KRW":"₩",
|
||||
"KYD":"$",
|
||||
"KZT":"₸",
|
||||
"LAK":"₭",
|
||||
"LBP":"£",
|
||||
"LKR":"₨",
|
||||
"LRD":"$",
|
||||
"LSL":"M",
|
||||
"LTL":"Lt",
|
||||
"LVL":"Ls",
|
||||
"MAD":"MAD",
|
||||
"MDL":"lei",
|
||||
"MGA":"Ar",
|
||||
"MKD":"ден",
|
||||
"MMK":"K",
|
||||
"MNT":"₮",
|
||||
"MOP":"MOP$",
|
||||
"MUR":"₨",
|
||||
"MVR":"Rf",
|
||||
"MWK":"MK",
|
||||
"MXN":"$",
|
||||
"MYR":"RM",
|
||||
"MZN":"MT",
|
||||
"NAD":"$",
|
||||
"NGN":"₦",
|
||||
"NIO":"C$",
|
||||
"NOK":"kr",
|
||||
"NPR":"₨",
|
||||
"NZD":"$",
|
||||
"OMR":"﷼",
|
||||
"PAB":"B/.",
|
||||
"PEN":"S/.",
|
||||
"PGK":"K",
|
||||
"PHP":"₱",
|
||||
"PKR":"₨",
|
||||
"PLN":"zł",
|
||||
"PYG":"Gs",
|
||||
"QAR":"﷼",
|
||||
"RMB":"¥",
|
||||
"RON":"lei",
|
||||
"RSD":"Дин.",
|
||||
"RUB":"₽",
|
||||
"RWF":"R₣",
|
||||
"SAR":"﷼",
|
||||
"SBD":"$",
|
||||
"SCR":"₨",
|
||||
"SDG":"ج.س.",
|
||||
"SEK":"kr",
|
||||
"SGD":"$",
|
||||
"SHP":"£",
|
||||
"SLL":"Le",
|
||||
"SOS":"S",
|
||||
"SRD":"$",
|
||||
"SSP":"£",
|
||||
"STD":"Db",
|
||||
"SVC":"$",
|
||||
"SYP":"£",
|
||||
"SZL":"E",
|
||||
"THB":"฿",
|
||||
"TJS":"SM",
|
||||
"TMT":"T",
|
||||
"TND":"د.ت",
|
||||
"TOP":"T$",
|
||||
"TRL":"₤",
|
||||
"TRY":"₺",
|
||||
"TTD":"TT$",
|
||||
"TVD":"$",
|
||||
"TWD":"NT$",
|
||||
"TZS":"TSh",
|
||||
"UAH":"₴",
|
||||
"UGX":"USh",
|
||||
"USD":"$",
|
||||
"UYU":"$U",
|
||||
"UZS":"лв",
|
||||
"VEF":"Bs",
|
||||
"VND":"₫",
|
||||
"VUV":"VT",
|
||||
"WST":"WS$",
|
||||
"XAF":"FCFA",
|
||||
"XBT":"Ƀ",
|
||||
"XCD":"$",
|
||||
"XOF":"CFA",
|
||||
"XPF":"₣",
|
||||
"YER":"﷼",
|
||||
"ZAR":"R",
|
||||
"ZWD":"Z$",
|
||||
"BTC":"฿"
|
||||
},
|
||||
"list": [
|
||||
"AFN",
|
||||
"AED",
|
||||
"ALL",
|
||||
"ANG",
|
||||
"AOA",
|
||||
"ARS",
|
||||
"AUD",
|
||||
"BAM",
|
||||
"BDT",
|
||||
"BGN",
|
||||
"BHD",
|
||||
"BND",
|
||||
"BOB",
|
||||
"BRL",
|
||||
"BWP",
|
||||
"BYN",
|
||||
"CAD",
|
||||
"CHF",
|
||||
"CLP",
|
||||
"CNY",
|
||||
"COP",
|
||||
"CRC",
|
||||
"CVE",
|
||||
"CZK",
|
||||
"DKK",
|
||||
"DOP",
|
||||
"DZD",
|
||||
"EGP",
|
||||
"EUR",
|
||||
"FJD",
|
||||
"GBP",
|
||||
"GNF",
|
||||
"GTQ",
|
||||
"HKD",
|
||||
"HNL",
|
||||
"HRK",
|
||||
"HUF",
|
||||
"IDR",
|
||||
"ILS",
|
||||
"INR",
|
||||
"IRR",
|
||||
"JMD",
|
||||
"JOD",
|
||||
"JPY",
|
||||
"KES",
|
||||
"KRW",
|
||||
"KWD",
|
||||
"KYD",
|
||||
"KZT",
|
||||
"LBP",
|
||||
"LKR",
|
||||
"MAD",
|
||||
"MDL",
|
||||
"MKD",
|
||||
"MMK",
|
||||
"MUR",
|
||||
"MXN",
|
||||
"MYR",
|
||||
"MZN",
|
||||
"NAD",
|
||||
"NGN",
|
||||
"NIO",
|
||||
"NOK",
|
||||
"NPR",
|
||||
"NZD",
|
||||
"OMR",
|
||||
"PEN",
|
||||
"PGK",
|
||||
"PHP",
|
||||
"PKR",
|
||||
"PLN",
|
||||
"PYG",
|
||||
"QAR",
|
||||
"RON",
|
||||
"RSD",
|
||||
"RUB",
|
||||
"SAR",
|
||||
"SCR",
|
||||
"SEK",
|
||||
"SGD",
|
||||
"SLL",
|
||||
"SVC",
|
||||
"THB",
|
||||
"TND",
|
||||
"TRY",
|
||||
"TTD",
|
||||
"TWD",
|
||||
"TZS",
|
||||
"UAH",
|
||||
"UGX",
|
||||
"USD",
|
||||
"UYU",
|
||||
"UZS",
|
||||
"VND",
|
||||
"XAF",
|
||||
"YER",
|
||||
"ZAR",
|
||||
"ZMW",
|
||||
"ZWL"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"entityConverterClassNameMap": {}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"Mysql": {
|
||||
"detailsProviderClassName": "Espo\\Core\\Utils\\Database\\DetailsProviders\\MysqlDetailsProvider",
|
||||
"dbalConnectionFactoryClassName": "Espo\\Core\\Utils\\Database\\Dbal\\Factories\\MysqlConnectionFactory",
|
||||
"indexHelperClassName": "Espo\\Core\\Utils\\Database\\Orm\\IndexHelpers\\MysqlIndexHelper",
|
||||
"columnPreparatorClassName": "Espo\\Core\\Utils\\Database\\Schema\\ColumnPreparators\\MysqlColumnPreparator",
|
||||
"preRebuildActionClassNameList": [
|
||||
"Espo\\Core\\Utils\\Database\\Schema\\RebuildActions\\PrepareForFulltextIndex"
|
||||
],
|
||||
"postRebuildActionClassNameList": [],
|
||||
"dbalTypeClassNameMap": {
|
||||
"mediumtext": "Espo\\Core\\Utils\\Database\\Dbal\\Types\\MediumtextType",
|
||||
"longtext": "Espo\\Core\\Utils\\Database\\Dbal\\Types\\LongtextType",
|
||||
"uuid": "Espo\\Core\\Utils\\Database\\Dbal\\Types\\UuidType"
|
||||
}
|
||||
},
|
||||
"Postgresql": {
|
||||
"detailsProviderClassName": "Espo\\Core\\Utils\\Database\\DetailsProviders\\PostgresqlDetailsProvider",
|
||||
"dbalConnectionFactoryClassName": "Espo\\Core\\Utils\\Database\\Dbal\\Factories\\PostgresqlConnectionFactory",
|
||||
"indexHelperClassName": "Espo\\Core\\Utils\\Database\\Orm\\IndexHelpers\\PostgresqlIndexHelper",
|
||||
"columnPreparatorClassName": "Espo\\Core\\Utils\\Database\\Schema\\ColumnPreparators\\PostgresqlColumnPreparator",
|
||||
"dbalTypeClassNameMap": {
|
||||
"uuid": "Espo\\Core\\Utils\\Database\\Dbal\\Types\\UuidType"
|
||||
}
|
||||
}
|
||||
}
|
||||
16
application/Espo/Resources/metadata/app/dateTime.json
Normal file
16
application/Espo/Resources/metadata/app/dateTime.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"dateFormatList": [
|
||||
"DD.MM.YYYY",
|
||||
"MM/DD/YYYY",
|
||||
"DD/MM/YYYY",
|
||||
"YYYY-MM-DD",
|
||||
"DD. MM. YYYY"
|
||||
],
|
||||
"timeFormatList": [
|
||||
"HH:mm",
|
||||
"hh:mma",
|
||||
"hh:mmA",
|
||||
"hh:mm A",
|
||||
"hh:mm a"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"Standard": [
|
||||
{
|
||||
"name": "My Espo",
|
||||
"layout": [
|
||||
{
|
||||
"id": "defaultActivities",
|
||||
"name": "Activities",
|
||||
"x": 2,
|
||||
"y": 2,
|
||||
"width": 2,
|
||||
"height": 2
|
||||
},
|
||||
{
|
||||
"id": "defaultStream",
|
||||
"name": "Stream",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 2,
|
||||
"height": 4
|
||||
},
|
||||
{
|
||||
"id": "defaultTasks",
|
||||
"name": "Tasks",
|
||||
"x": 2,
|
||||
"y": 4,
|
||||
"width": 2,
|
||||
"height": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"Standard": {
|
||||
"defaultStream": {
|
||||
"displayRecords": 10
|
||||
}
|
||||
}
|
||||
}
|
||||
16
application/Espo/Resources/metadata/app/emailTemplate.json
Normal file
16
application/Espo/Resources/metadata/app/emailTemplate.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"placeholders": {
|
||||
"today": {
|
||||
"className": "Espo\\Tools\\EmailTemplate\\Placeholders\\Today",
|
||||
"order": 0
|
||||
},
|
||||
"now": {
|
||||
"className": "Espo\\Tools\\EmailTemplate\\Placeholders\\Now",
|
||||
"order": 1
|
||||
},
|
||||
"currentYear": {
|
||||
"className": "Espo\\Tools\\EmailTemplate\\Placeholders\\CurrentYear",
|
||||
"order": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
16
application/Espo/Resources/metadata/app/entityManager.json
Normal file
16
application/Espo/Resources/metadata/app/entityManager.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"createHookClassNameList": [
|
||||
"Espo\\Tools\\EntityManager\\Hook\\Hooks\\PlusCreateHook",
|
||||
"Espo\\Tools\\EntityManager\\Hook\\Hooks\\EventCreateHook"
|
||||
],
|
||||
"deleteHookClassNameList": [
|
||||
"Espo\\Tools\\EntityManager\\Hook\\Hooks\\PlusDeleteHook",
|
||||
"Espo\\Tools\\EntityManager\\Hook\\Hooks\\EventDeleteHook",
|
||||
"Espo\\Tools\\EntityManager\\Hook\\Hooks\\DeleteHasChildrenLinks"
|
||||
],
|
||||
"updateHookClassNameList": [
|
||||
"Espo\\Tools\\EntityManager\\Hook\\Hooks\\AssignedUsersUpdateHook",
|
||||
"Espo\\Tools\\EntityManager\\Hook\\Hooks\\CollaboratorsUpdateHook",
|
||||
"Espo\\Tools\\EntityManager\\Hook\\Hooks\\StreamUpdateHook"
|
||||
]
|
||||
}
|
||||
221
application/Espo/Resources/metadata/app/entityManagerParams.json
Normal file
221
application/Espo/Resources/metadata/app/entityManagerParams.json
Normal file
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"Global": {
|
||||
"stars": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"optimisticConcurrencyControl": {
|
||||
"location": "entityDefs",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"preserveAuditLog": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@Company": {
|
||||
"updateDuplicateCheck": {
|
||||
"location": "recordDefs",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"duplicateCheckFieldList": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "multiEnum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/duplicate-check-field-list"
|
||||
}
|
||||
},
|
||||
"collaborators": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"assignedUsers": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"aclContactLink": {
|
||||
"location": "aclDefs",
|
||||
"param": "contactLink",
|
||||
"fieldDefs": {
|
||||
"type": "enum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/acl-contact-link"
|
||||
}
|
||||
},
|
||||
"aclAccountLink": {
|
||||
"location": "aclDefs",
|
||||
"param": "accountLink",
|
||||
"fieldDefs": {
|
||||
"type": "enum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/acl-account-link"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@Person": {
|
||||
"updateDuplicateCheck": {
|
||||
"location": "recordDefs",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"duplicateCheckFieldList": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "multiEnum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/duplicate-check-field-list"
|
||||
}
|
||||
},
|
||||
"collaborators": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"assignedUsers": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"aclContactLink": {
|
||||
"location": "aclDefs",
|
||||
"param": "contactLink",
|
||||
"fieldDefs": {
|
||||
"type": "enum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/acl-contact-link"
|
||||
}
|
||||
},
|
||||
"aclAccountLink": {
|
||||
"location": "aclDefs",
|
||||
"param": "accountLink",
|
||||
"fieldDefs": {
|
||||
"type": "enum",
|
||||
"tooltip": true
|
||||
},
|
||||
"view": "views/admin/entity-manager/fields/acl-account-link"
|
||||
}
|
||||
},
|
||||
"@Base": {
|
||||
"updateDuplicateCheck": {
|
||||
"location": "recordDefs",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"duplicateCheckFieldList": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "multiEnum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/duplicate-check-field-list"
|
||||
}
|
||||
},
|
||||
"collaborators": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"assignedUsers": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"aclContactLink": {
|
||||
"location": "aclDefs",
|
||||
"param": "contactLink",
|
||||
"fieldDefs": {
|
||||
"type": "enum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/acl-contact-link"
|
||||
}
|
||||
},
|
||||
"aclAccountLink": {
|
||||
"location": "aclDefs",
|
||||
"param": "accountLink",
|
||||
"fieldDefs": {
|
||||
"type": "enum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/acl-account-link"
|
||||
}
|
||||
}
|
||||
},
|
||||
"@BasePlus": {
|
||||
"updateDuplicateCheck": {
|
||||
"location": "recordDefs",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"duplicateCheckFieldList": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "multiEnum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/duplicate-check-field-list"
|
||||
}
|
||||
},
|
||||
"collaborators": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"assignedUsers": {
|
||||
"location": "scopes",
|
||||
"fieldDefs": {
|
||||
"type": "bool",
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"aclContactLink": {
|
||||
"location": "aclDefs",
|
||||
"param": "contactLink",
|
||||
"fieldDefs": {
|
||||
"type": "enum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/acl-contact-link"
|
||||
}
|
||||
},
|
||||
"aclAccountLink": {
|
||||
"location": "aclDefs",
|
||||
"param": "accountLink",
|
||||
"fieldDefs": {
|
||||
"type": "enum",
|
||||
"tooltip": true,
|
||||
"view": "views/admin/entity-manager/fields/acl-account-link"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
[
|
||||
"Base",
|
||||
"BasePlus",
|
||||
"Event",
|
||||
"Person",
|
||||
"Company"
|
||||
]
|
||||
22
application/Espo/Resources/metadata/app/entityTemplates.json
Normal file
22
application/Espo/Resources/metadata/app/entityTemplates.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"Base": {
|
||||
"entityClassName": "Espo\\Core\\Templates\\Entities\\Base",
|
||||
"repositoryClassName": "Espo\\Core\\Templates\\Repositories\\Base"
|
||||
},
|
||||
"BasePlus": {
|
||||
"entityClassName": "Espo\\Core\\Templates\\Entities\\BasePlus",
|
||||
"repositoryClassName": "Espo\\Core\\Templates\\Repositories\\BasePlus"
|
||||
},
|
||||
"Event": {
|
||||
"entityClassName": "Espo\\Core\\Templates\\Entities\\Event",
|
||||
"repositoryClassName": "Espo\\Core\\Templates\\Repositories\\Event"
|
||||
},
|
||||
"Company": {
|
||||
"entityClassName": "Espo\\Core\\Templates\\Entities\\Company",
|
||||
"repositoryClassName": "Espo\\Core\\Templates\\Repositories\\Company"
|
||||
},
|
||||
"Person": {
|
||||
"entityClassName": "Espo\\Core\\Templates\\Entities\\Person",
|
||||
"repositoryClassName": "Espo\\Core\\Templates\\Repositories\\Person"
|
||||
}
|
||||
}
|
||||
92
application/Espo/Resources/metadata/app/export.json
Normal file
92
application/Espo/Resources/metadata/app/export.json
Normal file
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"formatList": [
|
||||
"xlsx",
|
||||
"csv"
|
||||
],
|
||||
"formatDefs": {
|
||||
"csv": {
|
||||
"processorClassName": "Espo\\Tools\\Export\\Format\\Csv\\Processor",
|
||||
"additionalFieldsLoaderClassName": "Espo\\Tools\\Export\\Format\\Csv\\AdditionalFieldsLoader",
|
||||
"mimeType": "text/csv",
|
||||
"fileExtension": "csv"
|
||||
},
|
||||
"xlsx": {
|
||||
"processorClassName": "Espo\\Tools\\Export\\Format\\Xlsx\\Processor",
|
||||
"processorParamsHandler": "Espo\\Tools\\Export\\Format\\Xlsx\\ParamsHandler",
|
||||
"additionalFieldsLoaderClassName": "Espo\\Tools\\Export\\Format\\Xlsx\\AdditionalFieldsLoader",
|
||||
"mimeType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"fileExtension": "xlsx",
|
||||
"cellValuePreparatorClassNameMap": {
|
||||
"link": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Link",
|
||||
"linkOne": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Link",
|
||||
"linkParent": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Link",
|
||||
"file": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Link",
|
||||
"bool": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Boolean",
|
||||
"int": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Integer",
|
||||
"float": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Floating",
|
||||
"currency": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Currency",
|
||||
"currencyConverted": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\CurrencyConverted",
|
||||
"personName": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\PersonName",
|
||||
"date": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Date",
|
||||
"datetime": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\DateTime",
|
||||
"datetimeOptional": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\DateTimeOptional",
|
||||
"linkMultiple": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\LinkMultiple",
|
||||
"attachmentMultiple": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\LinkMultiple",
|
||||
"address": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Address",
|
||||
"duration": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Duration",
|
||||
"enum": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\Enumeration",
|
||||
"multiEnum": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\MultiEnum",
|
||||
"array": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\MultiEnum",
|
||||
"checklist": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\MultiEnum",
|
||||
"urlMultiple": "Espo\\Tools\\Export\\Format\\Xlsx\\CellValuePreparators\\MultiEnum"
|
||||
},
|
||||
"params": {
|
||||
"fields": {
|
||||
"lite": {
|
||||
"type": "bool",
|
||||
"default": false,
|
||||
"tooltip": true
|
||||
},
|
||||
"recordLinks": {
|
||||
"type": "bool",
|
||||
"default": false
|
||||
},
|
||||
"title": {
|
||||
"type": "bool",
|
||||
"default": false,
|
||||
"tooltip": true
|
||||
}
|
||||
},
|
||||
"layout": [
|
||||
[
|
||||
{"name": "lite"},
|
||||
{"name": "recordLinks"},
|
||||
{"name": "title"}
|
||||
]
|
||||
],
|
||||
"dynamicLogic": {
|
||||
"recordLinks": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isFalse",
|
||||
"attribute": "xlsxLite"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isFalse",
|
||||
"attribute": "xlsxLite"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
24
application/Espo/Resources/metadata/app/fieldProcessing.json
Normal file
24
application/Espo/Resources/metadata/app/fieldProcessing.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"readLoaderClassNameList": [
|
||||
"Espo\\Core\\FieldProcessing\\Link\\HasOneLoader",
|
||||
"Espo\\Core\\FieldProcessing\\Link\\NotJoinedLoader",
|
||||
"Espo\\Core\\FieldProcessing\\LinkMultiple\\Loader",
|
||||
"Espo\\Core\\FieldProcessing\\LinkParent\\Loader",
|
||||
"Espo\\Core\\FieldProcessing\\EmailAddress\\Loader",
|
||||
"Espo\\Core\\FieldProcessing\\PhoneNumber\\Loader",
|
||||
"Espo\\Core\\FieldProcessing\\Stream\\FollowersLoader",
|
||||
"Espo\\Core\\FieldProcessing\\Stars\\StarLoader"
|
||||
],
|
||||
"listLoaderClassNameList": [
|
||||
"Espo\\Core\\FieldProcessing\\LinkParent\\Loader",
|
||||
"Espo\\Core\\FieldProcessing\\LinkMultiple\\ListLoader"
|
||||
],
|
||||
"saverClassNameList": [
|
||||
"Espo\\Core\\FieldProcessing\\EmailAddress\\Saver",
|
||||
"Espo\\Core\\FieldProcessing\\PhoneNumber\\Saver",
|
||||
"Espo\\Core\\FieldProcessing\\Relation\\Saver",
|
||||
"Espo\\Core\\FieldProcessing\\MultiEnum\\Saver",
|
||||
"Espo\\Core\\FieldProcessing\\File\\Saver",
|
||||
"Espo\\Core\\FieldProcessing\\Wysiwyg\\Saver"
|
||||
]
|
||||
}
|
||||
105
application/Espo/Resources/metadata/app/file.json
Normal file
105
application/Espo/Resources/metadata/app/file.json
Normal file
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"extensionMimeTypeMap": {
|
||||
"aac": ["audio/aac"],
|
||||
"abw": ["application/x-abiword"],
|
||||
"arc": ["application/x-freearc"],
|
||||
"avif": ["image/avif"],
|
||||
"avi": ["video/x-msvideo"],
|
||||
"azw": ["application/vnd.amazon.ebook"],
|
||||
"bin": ["application/octet-stream"],
|
||||
"bmp": ["image/bmp"],
|
||||
"bz": ["application/x-bzip"],
|
||||
"bz2": ["application/x-bzip2"],
|
||||
"cda": ["application/x-cdf"],
|
||||
"csh": ["application/x-csh"],
|
||||
"css": ["text/css"],
|
||||
"csv": ["text/csv"],
|
||||
"doc": ["application/msword"],
|
||||
"docx": ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
|
||||
"eot": ["application/vnd.ms-fontobject"],
|
||||
"epub": ["application/epub+zip"],
|
||||
"gz": ["application/gzip"],
|
||||
"gif": ["image/gif"],
|
||||
"htm": ["text/html"],
|
||||
"html": ["text/html"],
|
||||
"ico": ["image/vnd.microsoft.icon"],
|
||||
"ics": ["text/calendar"],
|
||||
"jar": ["application/java-archive"],
|
||||
"jpeg": ["image/jpeg"],
|
||||
"jpg": ["image/jpeg"],
|
||||
"js": ["text/javascript"],
|
||||
"json": ["application/json"],
|
||||
"jsonld": ["application/ld+json"],
|
||||
"mid": ["audio/midi", "audio/x-midi"],
|
||||
"midi": ["audio/midi", "audio/x-midi"],
|
||||
"mjs": ["text/javascript"],
|
||||
"mp3": ["audio/mpeg"],
|
||||
"mp4": ["video/mp4"],
|
||||
"mpeg": ["video/mpeg"],
|
||||
"mpkg": ["application/vnd.apple.installer+xml"],
|
||||
"odp": ["application/vnd.oasis.opendocument.presentation"],
|
||||
"ods": ["application/vnd.oasis.opendocument.spreadsheet"],
|
||||
"odt": ["application/vnd.oasis.opendocument.text"],
|
||||
"oga": ["audio/ogg"],
|
||||
"ogv": ["video/ogg"],
|
||||
"ogx": ["application/ogg"],
|
||||
"opus": ["audio/opus"],
|
||||
"otf": ["font/otf"],
|
||||
"png": ["image/png"],
|
||||
"pdf": ["application/pdf"],
|
||||
"php": ["application/x-httpd-php"],
|
||||
"ppt": ["application/vnd.ms-powerpoint"],
|
||||
"pptx": ["application/vnd.openxmlformats-officedocument.presentationml.presentation"],
|
||||
"rar": ["application/vnd.rar"],
|
||||
"rtf": ["application/rtf"],
|
||||
"sh": ["application/x-sh"],
|
||||
"svg": ["image/svg+xml"],
|
||||
"swf": ["application/x-shockwave-flash"],
|
||||
"tar": ["application/x-tar"],
|
||||
"tif": ["image/tiff"],
|
||||
"tiff": ["image/tiff"],
|
||||
"ts": ["video/mp2t"],
|
||||
"ttf": ["font/ttf"],
|
||||
"txt": ["text/plain"],
|
||||
"vsd": ["application/vnd.visio"],
|
||||
"wav": ["audio/wav"],
|
||||
"weba": ["audio/webm"],
|
||||
"webm": ["video/webm"],
|
||||
"webp": ["image/webp"],
|
||||
"woff": ["font/woff"],
|
||||
"woff2": ["font/woff2"],
|
||||
"xhtml": ["application/xhtml+xml"],
|
||||
"xls": ["application/vnd.ms-excel"],
|
||||
"xlsx": ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
|
||||
"xml": ["application/xml"],
|
||||
"xul": ["application/vnd.mozilla.xul+xml"],
|
||||
"zip": ["application/zip"],
|
||||
"3gp": ["video/3gpp", "audio/3gpp"],
|
||||
"3g2": ["video/3gpp2", "audio/3gpp2"],
|
||||
"7z": ["application/x-7z-compressed"],
|
||||
"md": ["text/markdown"]
|
||||
},
|
||||
"inlineMimeTypeList": [
|
||||
"application/pdf",
|
||||
"text/plain",
|
||||
"audio/wav",
|
||||
"audio/mpeg",
|
||||
"audio/ogg",
|
||||
"audio/webm",
|
||||
"video/mpeg",
|
||||
"video/mp4",
|
||||
"video/ogg",
|
||||
"video/webm",
|
||||
"image/jpeg",
|
||||
"image/png",
|
||||
"image/gif",
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"application/vnd.ms-word",
|
||||
"application/vnd.ms-excel",
|
||||
"application/vnd.oasis.opendocument.text",
|
||||
"application/vnd.oasis.opendocument.spreadsheet",
|
||||
"application/msword",
|
||||
"application/msexcel"
|
||||
]
|
||||
}
|
||||
6
application/Espo/Resources/metadata/app/fileStorage.json
Normal file
6
application/Espo/Resources/metadata/app/fileStorage.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"implementationClassNameMap": {
|
||||
"EspoUploadDir": "Espo\\Core\\FileStorage\\Storages\\EspoUploadDir",
|
||||
"AwsS3": "Espo\\Core\\FileStorage\\Storages\\AwsS3"
|
||||
}
|
||||
}
|
||||
655
application/Espo/Resources/metadata/app/formula.json
Normal file
655
application/Espo/Resources/metadata/app/formula.json
Normal file
@@ -0,0 +1,655 @@
|
||||
{
|
||||
"functionList": [
|
||||
{
|
||||
"name": "ifThenElse",
|
||||
"insertText": "ifThenElse(CONDITION, CONSEQUENT, ALTERNATIVE)"
|
||||
},
|
||||
{
|
||||
"name": "ifThen",
|
||||
"insertText": "ifThen(CONDITION, CONSEQUENT)"
|
||||
},
|
||||
{
|
||||
"name": "list",
|
||||
"insertText": "list()",
|
||||
"returnType": "array"
|
||||
},
|
||||
{
|
||||
"name": "string\\concatenate",
|
||||
"insertText": "string\\concatenate(STRING_1, STRING_2)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "string\\substring",
|
||||
"insertText": "string\\substring(STRING, START, LENGTH)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "string\\contains",
|
||||
"insertText": "string\\contains(STRING, NEEDLE)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "string\\pos",
|
||||
"insertText": "string\\pos(STRING, NEEDLE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "string\\pad",
|
||||
"insertText": "string\\pad(STRING, LENGTH, PAD_STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "string\\test",
|
||||
"insertText": "string\\test(STRING, REGULAR_EXPRESSION)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "string\\length",
|
||||
"insertText": "string\\length(STRING)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "string\\trim",
|
||||
"insertText": "string\\trim(STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "string\\lowerCase",
|
||||
"insertText": "string\\lowerCase(STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "string\\upperCase",
|
||||
"insertText": "string\\upperCase(STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "string\\match",
|
||||
"insertText": "string\\match(STRING, REGULAR_EXPRESSION)",
|
||||
"returnType": "string|null"
|
||||
},
|
||||
{
|
||||
"name": "string\\matchAll",
|
||||
"insertText": "string\\matchAll(STRING, REGULAR_EXPRESSION)",
|
||||
"returnType": "string[]|null"
|
||||
},
|
||||
{
|
||||
"name": "string\\matchExtract",
|
||||
"insertText": "string\\matchExtract(STRING, REGULAR_EXPRESSION)",
|
||||
"returnType": "string[]|null"
|
||||
},
|
||||
{
|
||||
"name": "string\\replace",
|
||||
"insertText": "string\\replace(STRING, SEARCH, REPLACE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "string\\split",
|
||||
"insertText": "string\\split(STRING, SEPARATOR)",
|
||||
"returnType": "string[]"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\today",
|
||||
"insertText": "datetime\\today()",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\now",
|
||||
"insertText": "datetime\\now()",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\format",
|
||||
"insertText": "datetime\\format(VALUE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\date",
|
||||
"insertText": "datetime\\date(VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\month",
|
||||
"insertText": "datetime\\month(VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\year",
|
||||
"insertText": "datetime\\year(VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\hour",
|
||||
"insertText": "datetime\\hour(VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\minute",
|
||||
"insertText": "datetime\\minute(VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\dayOfWeek",
|
||||
"insertText": "datetime\\dayOfWeek(VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\addMinutes",
|
||||
"insertText": "datetime\\addMinutes(VALUE, MINUTES)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\addHours",
|
||||
"insertText": "datetime\\addHours(VALUE, HOURS)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\addDays",
|
||||
"insertText": "datetime\\addDays(VALUE, DAYS)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\addWeeks",
|
||||
"insertText": "datetime\\addWeeks(VALUE, WEEKS)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\addMonths",
|
||||
"insertText": "datetime\\addMonths(VALUE, MONTHS)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\addYears",
|
||||
"insertText": "datetime\\addYears(VALUE, YEARS)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\diff",
|
||||
"insertText": "datetime\\diff(VALUE_1, VALUE_2, INTERVAL_TYPE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "datetime\\closest",
|
||||
"insertText": "datetime\\closest(VALUE, TYPE, TARGET, IS_PAST, TIMEZONE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "number\\format",
|
||||
"insertText": "number\\format(VALUE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "number\\abs",
|
||||
"insertText": "number\\abs(VALUE)"
|
||||
},
|
||||
{
|
||||
"name": "number\\power",
|
||||
"insertText": "number\\power(VALUE, EXP)",
|
||||
"returnType": "int|float"
|
||||
},
|
||||
{
|
||||
"name": "number\\round",
|
||||
"insertText": "number\\round(VALUE, PRECISION)",
|
||||
"returnType": "int|float"
|
||||
},
|
||||
{
|
||||
"name": "number\\floor",
|
||||
"insertText": "number\\floor(VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "number\\ceil",
|
||||
"insertText": "number\\ceil(VALUE)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "number\\randomInt",
|
||||
"insertText": "number\\randomInt(MIN, MAX)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "number\\parseInt",
|
||||
"insertText": "number\\parseInt(STRING)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "number\\parseFloat",
|
||||
"insertText": "number\\parseFloat(STRING)",
|
||||
"returnType": "float"
|
||||
},
|
||||
{
|
||||
"name": "entity\\isNew",
|
||||
"insertText": "entity\\isNew()",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "entity\\isAttributeChanged",
|
||||
"insertText": "entity\\isAttributeChanged('ATTRIBUTE')",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "entity\\isAttributeNotChanged",
|
||||
"insertText": "entity\\isAttributeNotChanged('ATTRIBUTE')",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "entity\\attribute",
|
||||
"insertText": "entity\\attribute('ATTRIBUTE')",
|
||||
"returnType": "mixed",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\attributeFetched",
|
||||
"insertText": "entity\\attributeFetched('ATTRIBUTE')",
|
||||
"returnType": "mixed",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\setAttribute",
|
||||
"insertText": "entity\\setAttribute('ATTRIBUTE', VALUE)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\clearAttribute",
|
||||
"insertText": "entity\\clearAttribute('ATTRIBUTE')",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\addLinkMultipleId",
|
||||
"insertText": "entity\\addLinkMultipleId(LINK, ID)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\hasLinkMultipleId",
|
||||
"insertText": "entity\\hasLinkMultipleId(LINK, ID)",
|
||||
"returnType": "bool",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\removeLinkMultipleId",
|
||||
"insertText": "entity\\removeLinkMultipleId(LINK, ID)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\getLinkColumn",
|
||||
"insertText": "entity\\getLinkColumn(LINK, ID, COLUMN)",
|
||||
"returnType": "mixed",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\setLinkMultipleColumn",
|
||||
"insertText": "entity\\setLinkMultipleColumn(LINK, ID, COLUMN, VALUE)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\isRelated",
|
||||
"insertText": "entity\\isRelated(LINK, ID)",
|
||||
"returnType": "bool",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\sumRelated",
|
||||
"insertText": "entity\\sumRelated(LINK, FIELD, FILTER)",
|
||||
"returnType": "int|float",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "entity\\countRelated",
|
||||
"insertText": "entity\\countRelated(LINK, FILTER)",
|
||||
"returnType": "int",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\exists",
|
||||
"insertText": "record\\exists(ENTITY_TYPE, KEY, VALUE)",
|
||||
"returnType": "bool",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\count",
|
||||
"insertText": "record\\count(ENTITY_TYPE, KEY, VALUE)",
|
||||
"returnType": "int",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\attribute",
|
||||
"insertText": "record\\attribute(ENTITY_TYPE, ID, ATTRIBUTE)",
|
||||
"returnType": "mixed",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\findOne",
|
||||
"insertText": "record\\findOne(ENTITY_TYPE, ORDER_BY, ORDER, KEY1, VALUE1, KEY2, VALUE2)",
|
||||
"returnType": "string",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\findMany",
|
||||
"insertText": "record\\findMany(ENTITY_TYPE, LIMIT, ORDER_BY, ORDER, KEY1, VALUE1, KEY2, VALUE2)",
|
||||
"returnType": "string",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\findRelatedOne",
|
||||
"insertText": "record\\findRelatedOne(ENTITY_TYPE, ID, LINK, ORDER_BY, ORDER, KEY1, VALUE1, KEY2, VALUE2)",
|
||||
"returnType": "string",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\findRelatedMany",
|
||||
"insertText": "record\\findRelatedMany(ENTITY_TYPE, ID, LINK, LIMIT, ORDER_BY, ORDER, KEY1, VALUE1, KEY2, VALUE2)",
|
||||
"returnType": "string[]",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\fetch",
|
||||
"insertText": "record\\fetch(ENTITY_TYPE, ID)",
|
||||
"returnType": "?object",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\relate",
|
||||
"insertText": "record\\relate(ENTITY_TYPE, ID, LINK, FOREIGN_ID)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\unrelate",
|
||||
"insertText": "record\\unrelate(ENTITY_TYPE, ID, LINK, FOREIGN_ID)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\create",
|
||||
"insertText": "record\\create(ENTITY_TYPE, ATTRIBUTE1, VALUE1, ATTRIBUTE2, VALUE2)",
|
||||
"returnType": "string",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\update",
|
||||
"insertText": "record\\update(ENTITY_TYPE, ID, ATTRIBUTE1, VALUE1, ATTRIBUTE2, VALUE2)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\delete",
|
||||
"insertText": "record\\delete(ENTITY_TYPE, ID)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\relationColumn",
|
||||
"insertText": "record\\relationColumn(ENTITY_TYPE, ID, LINK, FOREIGN_ID, COLUMN)",
|
||||
"returnType": "mixed",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "record\\updateRelationColumn",
|
||||
"insertText": "record\\updateRelationColumn(ENTITY_TYPE, ID, LINK, FOREIGN_ID, COLUMN, VALUE)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "env\\userAttribute",
|
||||
"insertText": "env\\userAttribute('ATTRIBUTE')",
|
||||
"returnType": "mixed",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "util\\generateId",
|
||||
"insertText": "util\\generateId()",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "util\\generateRecordId",
|
||||
"insertText": "util\\generateRecordId()",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "util\\base64Encode",
|
||||
"insertText": "util\\base64Encode(STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "util\\base64Decode",
|
||||
"insertText": "util\\base64Decode(STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "object\\create",
|
||||
"insertText": "object\\create()",
|
||||
"returnType": "object"
|
||||
},
|
||||
{
|
||||
"name": "object\\get",
|
||||
"insertText": "object\\get(OBJECT, KEY)",
|
||||
"returnType": "mixed"
|
||||
},
|
||||
{
|
||||
"name": "object\\has",
|
||||
"insertText": "object\\has(OBJECT, KEY)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "object\\set",
|
||||
"insertText": "object\\set(OBJECT, KEY, VALUE)"
|
||||
},
|
||||
{
|
||||
"name": "object\\clear",
|
||||
"insertText": "object\\clear(OBJECT, KEY)",
|
||||
"returnType": "object"
|
||||
},
|
||||
{
|
||||
"name": "object\\cloneDeep",
|
||||
"insertText": "object\\cloneDeep(OBJECT)",
|
||||
"returnType": "object"
|
||||
},
|
||||
{
|
||||
"name": "password\\generate",
|
||||
"insertText": "password\\generate()",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "password\\hash",
|
||||
"insertText": "password\\hash(PASSWORD)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "array\\includes",
|
||||
"insertText": "array\\includes(LIST, VALUE)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "array\\push",
|
||||
"insertText": "array\\push(LIST, VALUE)"
|
||||
},
|
||||
{
|
||||
"name": "array\\length",
|
||||
"insertText": "array\\length(LIST)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "array\\at",
|
||||
"insertText": "array\\at(LIST, INDEX)",
|
||||
"returnType": "mixed"
|
||||
},
|
||||
{
|
||||
"name": "array\\join",
|
||||
"insertText": "array\\join(LIST, SEPARATOR)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "array\\indexOf",
|
||||
"insertText": "array\\indexOf(LIST, ELEMENT)",
|
||||
"returnType": "?int"
|
||||
},
|
||||
{
|
||||
"name": "array\\removeAt",
|
||||
"insertText": "array\\removeAt(LIST, INDEX)",
|
||||
"returnType": "array"
|
||||
},
|
||||
{
|
||||
"name": "array\\unique",
|
||||
"insertText": "array\\unique(LIST)",
|
||||
"returnType": "array"
|
||||
},
|
||||
{
|
||||
"name": "language\\translate",
|
||||
"insertText": "language\\translate(LABEL, CATEGORY, SCOPE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "language\\translateOption",
|
||||
"insertText": "language\\translateOption(OPTION, FIELD, SCOPE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "log\\info",
|
||||
"insertText": "log\\info(MESSAGE)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "log\\notice",
|
||||
"insertText": "log\\notice(MESSAGE)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "log\\warning",
|
||||
"insertText": "log\\warning(MESSAGE)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "log\\error",
|
||||
"insertText": "log\\error(MESSAGE)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "json\\retrieve",
|
||||
"insertText": "json\\retrieve(JSON, PATH)",
|
||||
"returnType": "mixed"
|
||||
},
|
||||
{
|
||||
"name": "json\\encode",
|
||||
"insertText": "json\\encode(VALUE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "ext\\email\\send",
|
||||
"insertText": "ext\\email\\send(EMAIL_ID)",
|
||||
"returnType": "bool",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\sms\\send",
|
||||
"insertText": "ext\\sms\\send(SMS_ID)",
|
||||
"returnType": "bool",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\email\\applyTemplate",
|
||||
"insertText": "ext\\email\\applyTemplate(EMAIL_ID, EMAIL_TEMPLATE_ID)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\markdown\\transform",
|
||||
"insertText": "ext\\markdown\\transform(STRING)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "ext\\pdf\\generate",
|
||||
"insertText": "ext\\pdf\\generate(ENTITY_TYPE, ENTITY_ID, TEMPLATE_ID, FILENAME)",
|
||||
"returnType": "string",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\workingTime\\addWorkingDays",
|
||||
"insertText": "ext\\workingTime\\addWorkingDays(DATE, DAYS)",
|
||||
"returnType": "string|null"
|
||||
},
|
||||
{
|
||||
"name": "ext\\workingTime\\findClosestWorkingTime",
|
||||
"insertText": "ext\\workingTime\\findClosestWorkingTime(DATE)",
|
||||
"returnType": "string|null"
|
||||
},
|
||||
{
|
||||
"name": "ext\\workingTime\\getSummedWorkingHours",
|
||||
"insertText": "ext\\workingTime\\getSummedWorkingHours(FROM, TO)",
|
||||
"returnType": "float"
|
||||
},
|
||||
{
|
||||
"name": "ext\\workingTime\\getWorkingDays",
|
||||
"insertText": "ext\\workingTime\\getWorkingDays(FROM, TO)",
|
||||
"returnType": "int"
|
||||
},
|
||||
{
|
||||
"name": "ext\\workingTime\\hasWorkingTime",
|
||||
"insertText": "ext\\workingTime\\hasWorkingTime(FROM, TO)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "ext\\workingTime\\isWorkingDay",
|
||||
"insertText": "ext\\workingTime\\isWorkingDay(DATE)",
|
||||
"returnType": "bool"
|
||||
},
|
||||
{
|
||||
"name": "ext\\user\\sendAccessInfo",
|
||||
"insertText": "ext\\user\\sendAccessInfo(USER_ID)",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\email\\send",
|
||||
"insertText": "ext\\email\\send(EMAIL_ID)",
|
||||
"returnType": "bool",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\currency\\convert",
|
||||
"insertText": "ext\\currency\\convert(AMOUNT, FROM_CODE)",
|
||||
"returnType": "string"
|
||||
},
|
||||
{
|
||||
"name": "ext\\acl\\checkEntity",
|
||||
"insertText": "ext\\acl\\checkEntity(USER_ID, ENTITY_TYPE, ID, ACTION)",
|
||||
"returnType": "bool",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\acl\\checkScope",
|
||||
"insertText": "ext\\acl\\checkScope(USER_ID, SCOPE, ACTION)",
|
||||
"returnType": "bool",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\acl\\getLevel",
|
||||
"insertText": "ext\\acl\\getLevel(USER_ID, SCOPE, ACTION)",
|
||||
"returnType": "string",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\acl\\getPermissionLevel",
|
||||
"insertText": "ext\\acl\\getPermissionLevel(USER_ID, PERMISSION)",
|
||||
"returnType": "string",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\oauth\\getAccessToken",
|
||||
"insertText": "ext\\oauth\\getAccessToken(ID)",
|
||||
"returnType": "string",
|
||||
"unsafe": true
|
||||
},
|
||||
{
|
||||
"name": "ext\\appSecret\\get",
|
||||
"insertText": "ext\\appSecret\\get(STRING)",
|
||||
"returnType": "string"
|
||||
}
|
||||
],
|
||||
"functionClassNameMap": {
|
||||
"log\\info": "Espo\\Core\\Formula\\Functions\\LogGroup\\InfoType",
|
||||
"log\\notice": "Espo\\Core\\Formula\\Functions\\LogGroup\\NoticeType",
|
||||
"log\\warning": "Espo\\Core\\Formula\\Functions\\LogGroup\\WarningType",
|
||||
"log\\error": "Espo\\Core\\Formula\\Functions\\LogGroup\\ErrorType",
|
||||
"ext\\acl\\checkEntity": "Espo\\Core\\Formula\\Functions\\ExtGroup\\AclGroup\\CheckEntityType",
|
||||
"ext\\acl\\checkScope": "Espo\\Core\\Formula\\Functions\\ExtGroup\\AclGroup\\CheckScopeType",
|
||||
"ext\\acl\\getLevel": "Espo\\Core\\Formula\\Functions\\ExtGroup\\AclGroup\\GetLevelType",
|
||||
"ext\\acl\\getPermissionLevel": "Espo\\Core\\Formula\\Functions\\ExtGroup\\AclGroup\\GetPermissionLevelType",
|
||||
"ext\\appSecret\\get": "Espo\\Core\\Formula\\Functions\\ExtGroup\\SecretGroup\\GetType",
|
||||
"util\\base64Encode": "Espo\\Core\\Formula\\Functions\\UtilGroup\\Base64EncodeType",
|
||||
"util\\base64Decode": "Espo\\Core\\Formula\\Functions\\UtilGroup\\Base64DecodeType",
|
||||
"ext\\oauth\\getAccessToken": "Espo\\Core\\Formula\\Functions\\ExtGroup\\OauthGroup\\GetAccessTokenType"
|
||||
}
|
||||
}
|
||||
3
application/Espo/Resources/metadata/app/hook.json
Normal file
3
application/Espo/Resources/metadata/app/hook.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"suppressClassNameList": []
|
||||
}
|
||||
38
application/Espo/Resources/metadata/app/image.json
Normal file
38
application/Espo/Resources/metadata/app/image.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"allowedFileTypeList": [
|
||||
"image/jpeg",
|
||||
"image/png",
|
||||
"image/gif",
|
||||
"image/webp",
|
||||
"image/svg+xml",
|
||||
"image/avif"
|
||||
],
|
||||
"resizableFileTypeList": [
|
||||
"image/jpeg",
|
||||
"image/png",
|
||||
"image/gif",
|
||||
"image/webp"
|
||||
],
|
||||
"fixOrientationFileTypeList": [
|
||||
"image/jpeg"
|
||||
],
|
||||
"previewFileTypeList": [
|
||||
"image/jpeg",
|
||||
"image/png",
|
||||
"image/gif",
|
||||
"image/webp",
|
||||
"image/svg+xml",
|
||||
"image/avif"
|
||||
],
|
||||
"sizes": {
|
||||
"xxx-small": [18, 18],
|
||||
"xx-small": [32, 32],
|
||||
"x-small": [64, 64],
|
||||
"small": [128, 128],
|
||||
"medium": [256, 256],
|
||||
"large": [512, 512],
|
||||
"x-large": [864, 864],
|
||||
"xx-large": [1024, 1024],
|
||||
"small-logo": [181, 44]
|
||||
}
|
||||
}
|
||||
181
application/Espo/Resources/metadata/app/jsLibs.json
Normal file
181
application/Espo/Resources/metadata/app/jsLibs.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"jquery": {
|
||||
"exposeAs": "$"
|
||||
},
|
||||
"backbone": {
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "Backbone"
|
||||
},
|
||||
"bullbone": {
|
||||
"exposeAs": "Bull"
|
||||
},
|
||||
"handlebars": {
|
||||
"exposeAs": "Handlebars"
|
||||
},
|
||||
"underscore": {
|
||||
"exposeAs": "_"
|
||||
},
|
||||
"marked": {},
|
||||
"dompurify": {
|
||||
"exposeAs": "DOMPurify"
|
||||
},
|
||||
"js-base64": {
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "Base64"
|
||||
},
|
||||
"moment": {
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "moment"
|
||||
},
|
||||
"flotr2": {
|
||||
"path": "client/lib/flotr2.js",
|
||||
"devPath": "client/lib/original/flotr2.js",
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "Flotr",
|
||||
"sourceMap": true,
|
||||
"aliases": ["lib!Flotr"]
|
||||
},
|
||||
"espo-funnel-chart": {
|
||||
"path": "client/lib/espo-funnel-chart.js",
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "EspoFunnel"
|
||||
},
|
||||
"summernote": {
|
||||
"path": "client/lib/summernote.js",
|
||||
"devPath": "client/lib/original/summernote.js",
|
||||
"exportsTo": "$.fn",
|
||||
"exportsAs": "summernote",
|
||||
"sourceMap": true
|
||||
},
|
||||
"jquery-ui": {
|
||||
"exportsTo": "$",
|
||||
"exportsAs": "ui"
|
||||
},
|
||||
"jquery-ui-touch-punch": {
|
||||
"exportsTo": "$",
|
||||
"exportsAs": "ui"
|
||||
},
|
||||
"autocomplete": {
|
||||
"exportsTo": "$.fn",
|
||||
"exportsAs": "autocomplete"
|
||||
},
|
||||
"timepicker": {
|
||||
"exportsTo": "$.fn",
|
||||
"exportsAs": "timepicker"
|
||||
},
|
||||
"bootstrap-datepicker": {
|
||||
"exportsTo": "$.fn",
|
||||
"exportsAs": "datepicker"
|
||||
},
|
||||
"selectize": {
|
||||
"path": "client/lib/selectize.js",
|
||||
"devPath": "client/lib/original/selectize.js",
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "Selectize"
|
||||
},
|
||||
"@shopify/draggable": {
|
||||
"devPath": "client/lib/original/shopify-draggable.js"
|
||||
},
|
||||
"@textcomplete/core": {
|
||||
"devPath": "client/lib/original/textcomplete-core.js"
|
||||
},
|
||||
"@textcomplete/textarea": {
|
||||
"devPath": "client/lib/original/textcomplete-textarea.js"
|
||||
},
|
||||
"autonumeric": {},
|
||||
"intl-tel-input": {
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "intlTelInput"
|
||||
},
|
||||
"intl-tel-input-utils": {
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "intlTelInputUtils"
|
||||
},
|
||||
"intl-tel-input-globals": {
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "intlTelInputGlobals"
|
||||
},
|
||||
"cronstrue": {
|
||||
"path": "client/lib/cronstrue-i18n.js",
|
||||
"devPath": "client/lib/original/cronstrue-i18n.js",
|
||||
"sourceMap": true
|
||||
},
|
||||
"cropper": {
|
||||
"path": "client/lib/cropper.js",
|
||||
"exportsTo": "$.fn",
|
||||
"exportsAs": "cropper",
|
||||
"sourceMap": true
|
||||
},
|
||||
"gridstack": {
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "GridStack"
|
||||
},
|
||||
"bootstrap-colorpicker": {
|
||||
"path": "client/lib/bootstrap-colorpicker.js",
|
||||
"exportsTo": "$.fn",
|
||||
"exportsAs": "colorpicker",
|
||||
"aliases": ["lib!Colorpicker"]
|
||||
},
|
||||
"exif-js": {
|
||||
"path": "client/lib/exif.js",
|
||||
"devPath": "client/lib/original/exif.js",
|
||||
"sourceMap": true
|
||||
},
|
||||
"jsbarcode": {
|
||||
"path": "client/lib/JsBarcode.all.js",
|
||||
"devPath": "client/lib/original/JsBarcode.all.js",
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "JsBarcode",
|
||||
"sourceMap": true
|
||||
},
|
||||
"qrcodejs": {
|
||||
"path": "client/lib/qrcode.js",
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "QRCode"
|
||||
},
|
||||
"turndown": {
|
||||
"path": "client/lib/turndown.browser.umd.js",
|
||||
"devPath": "client/lib/turndown.browser.umd.js",
|
||||
"sourceMap": true
|
||||
},
|
||||
"ace": {
|
||||
"path": "client/lib/ace.js",
|
||||
"exportsTo": "window",
|
||||
"exportsAs": "ace"
|
||||
},
|
||||
"ace-mode-css": {
|
||||
"path": "client/lib/ace-mode-css.js",
|
||||
"exportsTo": "ace.require.define.modules",
|
||||
"exportsAs": "ace/mode/css"
|
||||
},
|
||||
"ace-mode-html": {
|
||||
"path": "client/lib/ace-mode-html.js",
|
||||
"exportsTo": "ace.require.define.modules",
|
||||
"exportsAs": "ace/mode/html"
|
||||
},
|
||||
"ace-mode-handlebars": {
|
||||
"path": "client/lib/ace-mode-handlebars.js",
|
||||
"exportsTo": "ace.require.define.modules",
|
||||
"exportsAs": "ace/mode/handlebars"
|
||||
},
|
||||
"ace-mode-javascript": {
|
||||
"path": "client/lib/ace-mode-javascript.js",
|
||||
"exportsTo": "ace.require.define.modules",
|
||||
"exportsAs": "ace/mode/javascript"
|
||||
},
|
||||
"ace-mode-json": {
|
||||
"path": "client/lib/ace-mode-json.js",
|
||||
"exportsTo": "ace.require.define.modules",
|
||||
"exportsAs": "ace/mode/json"
|
||||
},
|
||||
"ace-ext-language_tools": {
|
||||
"path": "client/lib/ace-ext-language_tools.js",
|
||||
"exportsTo": "ace.require.define.modules",
|
||||
"exportsAs": "ace/ext/language_tools"
|
||||
},
|
||||
"ace-theme-tomorrow_night": {
|
||||
"path": "client/lib/ace-theme-tomorrow_night.js",
|
||||
"exportsTo": "ace.require.define.modules",
|
||||
"exportsAs": "ace/theme/tomorrow_night"
|
||||
}
|
||||
}
|
||||
39
application/Espo/Resources/metadata/app/language.json
Normal file
39
application/Espo/Resources/metadata/app/language.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"list": [
|
||||
"en_US",
|
||||
"ar_AR",
|
||||
"bg_BG",
|
||||
"en_GB",
|
||||
"es_MX",
|
||||
"cs_CZ",
|
||||
"da_DK",
|
||||
"de_DE",
|
||||
"es_ES",
|
||||
"hr_HR",
|
||||
"hu_HU",
|
||||
"fa_IR",
|
||||
"fr_FR",
|
||||
"ja_JP",
|
||||
"id_ID",
|
||||
"it_IT",
|
||||
"lt_LT",
|
||||
"lv_LV",
|
||||
"nb_NO",
|
||||
"nl_NL",
|
||||
"th_TH",
|
||||
"tr_TR",
|
||||
"sk_SK",
|
||||
"sl_SI",
|
||||
"sr_RS",
|
||||
"sv_SE",
|
||||
"ro_RO",
|
||||
"ru_RU",
|
||||
"pl_PL",
|
||||
"pt_BR",
|
||||
"pt_PT",
|
||||
"uk_UA",
|
||||
"vi_VN",
|
||||
"zh_CN",
|
||||
"zh_TW"
|
||||
]
|
||||
}
|
||||
1
application/Espo/Resources/metadata/app/layouts.json
Normal file
1
application/Espo/Resources/metadata/app/layouts.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
9
application/Espo/Resources/metadata/app/linkManager.json
Normal file
9
application/Espo/Resources/metadata/app/linkManager.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"createHookClassNameList": [
|
||||
"Espo\\Tools\\LinkManager\\Hook\\Hooks\\TargetListCreate"
|
||||
],
|
||||
"deleteHookClassNameList": [
|
||||
"Espo\\Tools\\LinkManager\\Hook\\Hooks\\TargetListDelete",
|
||||
"Espo\\Tools\\LinkManager\\Hook\\Hooks\\ForeignFieldDelete"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"Google": {
|
||||
"renderer": "handlers/map/google-maps-renderer"
|
||||
}
|
||||
}
|
||||
20
application/Espo/Resources/metadata/app/massActions.json
Normal file
20
application/Espo/Resources/metadata/app/massActions.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"convertCurrency": {
|
||||
"implementationClassName": "Espo\\Core\\MassAction\\Actions\\MassConvertCurrency"
|
||||
},
|
||||
"follow": {
|
||||
"implementationClassName": "Espo\\Core\\MassAction\\Actions\\MassFollow"
|
||||
},
|
||||
"unfollow": {
|
||||
"implementationClassName": "Espo\\Core\\MassAction\\Actions\\MassUnfollow"
|
||||
},
|
||||
"recalculateFormula": {
|
||||
"implementationClassName": "Espo\\Core\\MassAction\\Actions\\MassRecalculateFormula"
|
||||
},
|
||||
"update": {
|
||||
"implementationClassName": "Espo\\Core\\MassAction\\Actions\\MassUpdate"
|
||||
},
|
||||
"delete": {
|
||||
"implementationClassName": "Espo\\Core\\MassAction\\Actions\\MassDelete"
|
||||
}
|
||||
}
|
||||
57
application/Espo/Resources/metadata/app/metadata.json
Normal file
57
application/Espo/Resources/metadata/app/metadata.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"frontendHiddenPathList": [
|
||||
["app", "metadata"],
|
||||
["app", "containerServices"],
|
||||
["app", "portalContainerServices"],
|
||||
["app", "consoleCommands"],
|
||||
["app", "formula", "functionClassNameMap"],
|
||||
["app", "fileStorage", "implementationClassNameMap"],
|
||||
["app", "client"],
|
||||
["app", "language", "aclDependencies"],
|
||||
["app", "templateHelpers"],
|
||||
["app", "appParams"],
|
||||
["app", "cleanup"],
|
||||
["app", "authentication"],
|
||||
["app", "pdfEngines", "__ANY__", "implementationClassNameMap"],
|
||||
["app", "addressFormats", "__ANY__", "formatterClassName"],
|
||||
["app", "authentication2FAMethods", "__ANY__", "loginClassName"],
|
||||
["app", "authentication2FAMethods", "__ANY__", "userSetupClassName"],
|
||||
["app", "select"],
|
||||
["app", "massActions", "__ANY__", "implementationClassName"],
|
||||
["app", "actions", "__ANY__", "implementationClassName"],
|
||||
["app", "fieldProcessing"],
|
||||
["app", "scheduledJobs"],
|
||||
["app", "webSocket", "messagers"],
|
||||
["app", "config"],
|
||||
["app", "rebuild"],
|
||||
["app", "smsProviders", "__ANY__", "senderClassName"],
|
||||
["app", "orm"],
|
||||
["app", "relationships"],
|
||||
["app", "linkManager"],
|
||||
["app", "hook"],
|
||||
["app", "api"],
|
||||
["app", "databasePlatforms"],
|
||||
["app", "recordId"],
|
||||
["app", "currencyConversion"],
|
||||
["selectDefs"],
|
||||
["pdfDefs"],
|
||||
["notificationDefs", "__ANY__", "assignmentNotificatorClassName"],
|
||||
["authenticationMethods", "__ANY__", "implementationClassName"],
|
||||
["aclDefs", "__ANY__", "accessCheckerClassName"],
|
||||
["aclDefs", "__ANY__", "portalAccessCheckerClassName"],
|
||||
["aclDefs", "__ANY__", "ownershipCheckerClassName"],
|
||||
["aclDefs", "__ANY__", "portalOwnershipCheckerClassName"],
|
||||
["aclDefs", "__ANY__", "assignmentCheckerClassName"],
|
||||
["aclDefs", "__ANY__", "linkCheckerClassNameMap"]
|
||||
],
|
||||
"frontendNonAdminHiddenPathList": [
|
||||
["recordDefs"]
|
||||
],
|
||||
"additionalBuilderClassNameList": [
|
||||
"Espo\\Core\\Utils\\Metadata\\AdditionalBuilder\\Fields",
|
||||
"Espo\\Core\\Utils\\Metadata\\AdditionalBuilder\\FilterFields",
|
||||
"Espo\\Core\\Utils\\Metadata\\AdditionalBuilder\\DeleteIdField",
|
||||
"Espo\\Core\\Utils\\Metadata\\AdditionalBuilder\\StreamUpdatedAtField",
|
||||
"Espo\\Core\\Utils\\Metadata\\AdditionalBuilder\\LogicDefsBc"
|
||||
]
|
||||
}
|
||||
18
application/Espo/Resources/metadata/app/orm.json
Normal file
18
application/Espo/Resources/metadata/app/orm.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"platforms": {
|
||||
"Mysql": {
|
||||
"queryComposerClassName": "Espo\\ORM\\QueryComposer\\MysqlQueryComposer",
|
||||
"pdoFactoryClassName": "Espo\\ORM\\PDO\\MysqlPDOFactory",
|
||||
"functionConverterClassNameMap": {
|
||||
"ABS": "Espo\\Core\\ORM\\QueryComposer\\Part\\FunctionConverters\\Abs"
|
||||
}
|
||||
},
|
||||
"Postgresql": {
|
||||
"queryComposerClassName": "Espo\\ORM\\QueryComposer\\PostgresqlQueryComposer",
|
||||
"pdoFactoryClassName": "Espo\\ORM\\PDO\\PostgresqlPDOFactory",
|
||||
"functionConverterClassNameMap": {
|
||||
"ABS": "Espo\\Core\\ORM\\QueryComposer\\Part\\FunctionConverters\\Abs"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
17
application/Espo/Resources/metadata/app/pdfEngines.json
Normal file
17
application/Espo/Resources/metadata/app/pdfEngines.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"Dompdf": {
|
||||
"implementationClassNameMap": {
|
||||
"entity": "Espo\\Tools\\Pdf\\Dompdf\\EntityPrinter"
|
||||
},
|
||||
"fontFaceList": [
|
||||
"Courier",
|
||||
"Helvetica",
|
||||
"Times",
|
||||
"Symbol",
|
||||
"ZapfDingbats",
|
||||
"DejaVu Sans",
|
||||
"DejaVu Serif",
|
||||
"DejaVu Sans Mono"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"layoutProvider": {
|
||||
"className": "Espo\\Tools\\Layout\\PortalLayoutProvider"
|
||||
},
|
||||
"themeManager": {
|
||||
"className": "Espo\\Core\\Portal\\Utils\\ThemeManager"
|
||||
}
|
||||
}
|
||||
36
application/Espo/Resources/metadata/app/reactions.json
Normal file
36
application/Espo/Resources/metadata/app/reactions.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"type": "Smile",
|
||||
"iconClass": "far fa-face-smile"
|
||||
},
|
||||
{
|
||||
"type": "Surprise",
|
||||
"iconClass": "far fa-face-surprise"
|
||||
},
|
||||
{
|
||||
"type": "Laugh",
|
||||
"iconClass": "far fa-face-laugh"
|
||||
},
|
||||
{
|
||||
"type": "Meh",
|
||||
"iconClass": "far fa-face-meh"
|
||||
},
|
||||
{
|
||||
"type": "Sad",
|
||||
"iconClass": "far fa-face-frown"
|
||||
},
|
||||
{
|
||||
"type": "Love",
|
||||
"iconClass": "far fa-heart"
|
||||
},
|
||||
{
|
||||
"type": "Like",
|
||||
"iconClass": "far fa-thumbs-up"
|
||||
},
|
||||
{
|
||||
"type": "Dislike",
|
||||
"iconClass": "far fa-thumbs-down"
|
||||
}
|
||||
]
|
||||
}
|
||||
11
application/Espo/Resources/metadata/app/rebuild.json
Normal file
11
application/Espo/Resources/metadata/app/rebuild.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"actionClassNameList": [
|
||||
"Espo\\Core\\Rebuild\\Actions\\AddSystemUser",
|
||||
"Espo\\Core\\Rebuild\\Actions\\AddSystemData",
|
||||
"Espo\\Core\\Rebuild\\Actions\\CurrencyRates",
|
||||
"Espo\\Core\\Rebuild\\Actions\\ScheduledJobs",
|
||||
"Espo\\Core\\Rebuild\\Actions\\ConfigMetadataCheck",
|
||||
"Espo\\Core\\Rebuild\\Actions\\GenerateInstanceId",
|
||||
"Espo\\Core\\Rebuild\\Actions\\SetIntegrationDefaults"
|
||||
]
|
||||
}
|
||||
5
application/Espo/Resources/metadata/app/record.json
Normal file
5
application/Espo/Resources/metadata/app/record.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"selectApplierClassNameList": [
|
||||
"Espo\\Core\\Select\\Applier\\AdditionalAppliers\\IsStarred"
|
||||
]
|
||||
}
|
||||
3
application/Espo/Resources/metadata/app/recordId.json
Normal file
3
application/Espo/Resources/metadata/app/recordId.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"length": 17
|
||||
}
|
||||
39
application/Espo/Resources/metadata/app/regExpPatterns.json
Normal file
39
application/Espo/Resources/metadata/app/regExpPatterns.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"noBadCharacters": {
|
||||
"pattern": "[^<>=]+"
|
||||
},
|
||||
"noAsciiSpecialCharacters": {
|
||||
"pattern": "[^`~!@#$%^&*()_+={}\\[\\]|\\\\:;\"'<,>.?]+"
|
||||
},
|
||||
"latinLetters": {
|
||||
"pattern": "[A-Za-z]+"
|
||||
},
|
||||
"latinLettersDigits": {
|
||||
"pattern": "[A-Za-z0-9]+"
|
||||
},
|
||||
"latinLettersDigitsWhitespace": {
|
||||
"pattern": "[A-Za-z0-9 ]+"
|
||||
},
|
||||
"latinLettersWhitespace": {
|
||||
"pattern": "[A-Za-z ]+"
|
||||
},
|
||||
"digits": {
|
||||
"pattern": "[0-9]+"
|
||||
},
|
||||
"id": {
|
||||
"pattern": "[A-Za-z0-9_=\\-\\.]+",
|
||||
"isSystem": true
|
||||
},
|
||||
"phoneNumberLoose": {
|
||||
"pattern": "[0-9A-Za-z_@:#\\+\\(\\)\\-\\. ]+",
|
||||
"isSystem": true
|
||||
},
|
||||
"uriOptionalProtocol": {
|
||||
"pattern": "([a-zA-Z0-9]+\\:\\/\\/)?[a-zA-Z0-9%\\.\\/\\?\\:@\\-_=#$!+*\\(\\)',]+\\.([a-zA-Z0-9%\\&\\.\\/\\?\\:@\\-_=#$!+*\\(\\)',~])*",
|
||||
"isSystem": true
|
||||
},
|
||||
"uri": {
|
||||
"pattern": "([a-zA-Z0-9]+\\:\\/\\/){1}[a-zA-Z0-9%\\.\\/\\?\\:@\\-_=#$!+*\\(\\)',]+\\.([a-zA-Z0-9%\\&\\.\\/\\?\\:@\\-_=#$!+*\\(\\)',~])*",
|
||||
"isSystem": true
|
||||
}
|
||||
}
|
||||
20
application/Espo/Resources/metadata/app/relationships.json
Normal file
20
application/Espo/Resources/metadata/app/relationships.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"attachments": {
|
||||
"converterClassName": "Espo\\Core\\Utils\\Database\\Orm\\LinkConverters\\Attachments"
|
||||
},
|
||||
"emailEmailAddress": {
|
||||
"converterClassName": "Espo\\Core\\Utils\\Database\\Orm\\LinkConverters\\EmailEmailAddress"
|
||||
},
|
||||
"entityTeam": {
|
||||
"converterClassName": "Espo\\Core\\Utils\\Database\\Orm\\LinkConverters\\EntityTeam"
|
||||
},
|
||||
"entityUser": {
|
||||
"converterClassName": "Espo\\Core\\Utils\\Database\\Orm\\LinkConverters\\EntityUser"
|
||||
},
|
||||
"entityCollaborator": {
|
||||
"converterClassName": "Espo\\Core\\Utils\\Database\\Orm\\LinkConverters\\EntityCollaborator"
|
||||
},
|
||||
"smsPhoneNumber": {
|
||||
"converterClassName": "Espo\\Core\\Utils\\Database\\Orm\\LinkConverters\\SmsPhoneNumber"
|
||||
}
|
||||
}
|
||||
67
application/Espo/Resources/metadata/app/scheduledJobs.json
Normal file
67
application/Espo/Resources/metadata/app/scheduledJobs.json
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"ProcessJobGroup": {
|
||||
"name": "Process Job Group",
|
||||
"isSystem": true,
|
||||
"scheduling": "* * * * *",
|
||||
"jobClassName": "Espo\\Core\\Job\\Job\\Jobs\\ProcessJobGroup",
|
||||
"preparatorClassName": "Espo\\Core\\Job\\Preparator\\Preparators\\ProcessJobGroupPreparator"
|
||||
},
|
||||
"ProcessJobQueueQ0": {
|
||||
"name": "Process Job Queue q0",
|
||||
"isSystem": true,
|
||||
"scheduling": "* * * * *",
|
||||
"jobClassName": "Espo\\Core\\Job\\Job\\Jobs\\ProcessJobQueueQ0"
|
||||
},
|
||||
"ProcessJobQueueQ1": {
|
||||
"name": "Process Job Queue q1",
|
||||
"isSystem": true,
|
||||
"scheduling": "*/1 * * * *",
|
||||
"jobClassName": "Espo\\Core\\Job\\Job\\Jobs\\ProcessJobQueueQ1"
|
||||
},
|
||||
"ProcessJobQueueE0": {
|
||||
"name": "Process Job Queue e0",
|
||||
"isSystem": true,
|
||||
"scheduling": "* * * * *",
|
||||
"jobClassName": "Espo\\Core\\Job\\Job\\Jobs\\ProcessJobQueueE0"
|
||||
},
|
||||
"Dummy": {
|
||||
"isSystem": true,
|
||||
"scheduling": "1 */12 * * *",
|
||||
"jobClassName": "Espo\\Classes\\Jobs\\Dummy"
|
||||
},
|
||||
"CheckNewVersion": {
|
||||
"name": "Check for New Version",
|
||||
"isSystem": true,
|
||||
"scheduling": "15 5 * * *",
|
||||
"jobClassName": "Espo\\Classes\\Jobs\\CheckNewVersion"
|
||||
},
|
||||
"CheckNewExtensionVersion": {
|
||||
"name": "Check for New Versions of Installed Extensions",
|
||||
"isSystem": true,
|
||||
"scheduling": "25 5 * * *",
|
||||
"jobClassName": "Espo\\Classes\\Jobs\\CheckNewExtensionVersion"
|
||||
},
|
||||
"Cleanup": {
|
||||
"jobClassName": "Espo\\Classes\\Jobs\\Cleanup"
|
||||
},
|
||||
"AuthTokenControl": {
|
||||
"jobClassName": "Espo\\Classes\\Jobs\\AuthTokenControl"
|
||||
},
|
||||
"SendEmailNotifications": {
|
||||
"jobClassName": "Espo\\Classes\\Jobs\\SendEmailNotifications"
|
||||
},
|
||||
"ProcessWebhookQueue": {
|
||||
"jobClassName": "Espo\\Classes\\Jobs\\ProcessWebhookQueue"
|
||||
},
|
||||
"CheckEmailAccounts": {
|
||||
"preparatorClassName": "Espo\\Classes\\JobPreparators\\CheckEmailAccounts",
|
||||
"jobClassName": "Espo\\Classes\\Jobs\\CheckEmailAccounts"
|
||||
},
|
||||
"CheckInboundEmails": {
|
||||
"preparatorClassName": "Espo\\Classes\\JobPreparators\\CheckInboundEmails",
|
||||
"jobClassName": "Espo\\Classes\\Jobs\\CheckInboundEmails"
|
||||
},
|
||||
"SendScheduledEmails": {
|
||||
"jobClassName": "Espo\\Classes\\Jobs\\SendScheduledEmails"
|
||||
}
|
||||
}
|
||||
6
application/Espo/Resources/metadata/app/select.json
Normal file
6
application/Espo/Resources/metadata/app/select.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"whereItemConverterClassNameMap": {
|
||||
"inCategory": "Espo\\Core\\Select\\Where\\ItemConverters\\InCategory",
|
||||
"isUserFromTeams": "Espo\\Core\\Select\\Where\\ItemConverters\\IsUserFromTeams"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"googleMapsImage": "Espo\\Classes\\TemplateHelpers\\GoogleMaps",
|
||||
"markdownText": "Espo\\Classes\\TemplateHelpers\\MarkdownText",
|
||||
"tableTag": "Espo\\Classes\\TemplateHelpers\\TableTag",
|
||||
"trTag": "Espo\\Classes\\TemplateHelpers\\TrTag",
|
||||
"tdTag": "Espo\\Classes\\TemplateHelpers\\TdTag"
|
||||
}
|
||||
32
application/Espo/Resources/metadata/app/templates.json
Normal file
32
application/Espo/Resources/metadata/app/templates.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"accessInfo": {
|
||||
"scope": "User"
|
||||
},
|
||||
"accessInfoPortal": {
|
||||
"scope": "User"
|
||||
},
|
||||
"assignment": {
|
||||
"scopeListConfigParam": "assignmentEmailNotificationsEntityList"
|
||||
},
|
||||
"mention": {
|
||||
"scope": "Note"
|
||||
},
|
||||
"noteEmailReceived": {
|
||||
"scope": "Note"
|
||||
},
|
||||
"notePost": {
|
||||
"scope": "Note"
|
||||
},
|
||||
"notePostNoParent": {
|
||||
"scope": "Note"
|
||||
},
|
||||
"noteStatus": {
|
||||
"scope": "Note"
|
||||
},
|
||||
"passwordChangeLink": {
|
||||
"scope": "User"
|
||||
},
|
||||
"twoFactorCode": {
|
||||
"scope": "User"
|
||||
}
|
||||
}
|
||||
19
application/Espo/Resources/metadata/app/webSocket.json
Normal file
19
application/Espo/Resources/metadata/app/webSocket.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"categories": {
|
||||
"newNotification": {},
|
||||
"recordUpdate": {
|
||||
"paramList": ["scope", "id"],
|
||||
"accessCheckCommand": "AclCheck --userId=:userId --scope=:scope --id=:id --action=read"
|
||||
},
|
||||
"streamUpdate": {
|
||||
"paramList": ["scope", "id"],
|
||||
"accessCheckCommand": "AclCheck --userId=:userId --scope=:scope --id=:id --action=stream"
|
||||
}
|
||||
},
|
||||
"messagers": {
|
||||
"ZeroMQ": {
|
||||
"senderClassName": "Espo\\Core\\WebSocket\\ZeroMQSender",
|
||||
"subscriberClassName": "Espo\\Core\\WebSocket\\ZeroMQSubscriber"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"api": true,
|
||||
"credentialsHeader": "X-Api-Key"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"portalDefault": true,
|
||||
"settings": {
|
||||
"isAvailable": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"api": true,
|
||||
"credentialsHeader": "X-Hmac-Authorization"
|
||||
}
|
||||
@@ -0,0 +1,275 @@
|
||||
{
|
||||
"implementationClassName": "Espo\\Core\\Authentication\\Ldap\\LdapLogin",
|
||||
"portalDefault": true,
|
||||
"settings": {
|
||||
"isAvailable": true,
|
||||
"layout": {
|
||||
"label": "LDAP",
|
||||
"rows": [
|
||||
[{"name": "ldapHost"}, {"name": "ldapPort"}],
|
||||
[{"name": "ldapAuth"}, {"name": "ldapSecurity"}],
|
||||
[{"name": "ldapUsername", "fullWidth": true}],
|
||||
[
|
||||
{"name": "ldapPassword"},
|
||||
{
|
||||
"name": "testConnection",
|
||||
"customLabel": null,
|
||||
"view": "views/admin/authentication/fields/test-connection"
|
||||
}
|
||||
],
|
||||
[{"name": "ldapUserNameAttribute"}, {"name": "ldapUserObjectClass"}],
|
||||
[{"name": "ldapAccountCanonicalForm"}, {"name": "ldapBindRequiresDn"}],
|
||||
[{"name": "ldapBaseDn", "fullWidth": true}],
|
||||
[{"name": "ldapUserLoginFilter", "fullWidth": true}],
|
||||
[{"name": "ldapAccountDomainName"}, {"name": "ldapAccountDomainNameShort"}],
|
||||
[{"name": "ldapTryUsernameSplit"}, {"name": "ldapOptReferrals"}],
|
||||
[{"name": "ldapCreateEspoUser"}, false],
|
||||
[{"name": "ldapUserFirstNameAttribute"}, {"name": "ldapUserLastNameAttribute"}],
|
||||
[{"name": "ldapUserTitleAttribute"}, false],
|
||||
[{"name": "ldapUserEmailAddressAttribute"}, {"name": "ldapUserPhoneNumberAttribute"}],
|
||||
[{"name": "ldapUserTeams"}, {"name": "ldapUserDefaultTeam"}],
|
||||
[{"name": "ldapPortalUserLdapAuth"}, false],
|
||||
[{"name": "ldapPortalUserPortals"}, {"name": "ldapPortalUserRoles"}]
|
||||
]
|
||||
},
|
||||
"fieldList": [
|
||||
"ldapHost", "ldapPort", "ldapAuth", "ldapSecurity",
|
||||
"ldapUsername", "ldapPassword", "ldapBindRequiresDn",
|
||||
"ldapUserLoginFilter", "ldapBaseDn", "ldapAccountCanonicalForm",
|
||||
"ldapAccountDomainName", "ldapAccountDomainNameShort", "ldapAccountDomainName",
|
||||
"ldapAccountDomainNameShort", "ldapTryUsernameSplit", "ldapOptReferrals",
|
||||
"ldapCreateEspoUser", "ldapPortalUserLdapAuth"
|
||||
],
|
||||
"dynamicLogic": {
|
||||
"fields": {
|
||||
"ldapHost": {
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "LDAP"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapUserNameAttribute": {
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "LDAP"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapUserObjectClass": {
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "LDAP"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapUsername": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapAuth"
|
||||
}
|
||||
]
|
||||
},
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapAuth"
|
||||
}, {
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "LDAP"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapPassword": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapAuth"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"testConnection": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapAuth"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapAccountDomainName": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "in",
|
||||
"attribute": "ldapAccountCanonicalForm",
|
||||
"value": ["Backslash", "Principal"]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapAccountDomainNameShort": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "in",
|
||||
"attribute": "ldapAccountCanonicalForm",
|
||||
"value": ["Backslash", "Principal"]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapUserTitleAttribute": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
},
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapUserFirstNameAttribute": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
},
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapUserLastNameAttribute": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
},
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapUserEmailAddressAttribute": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
},
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapUserPhoneNumberAttribute": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
},
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapUserTeams": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapUserDefaultTeam": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapCreateEspoUser"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapPortalUserPortals": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapPortalUserLdapAuth"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ldapPortalUserRoles": {
|
||||
"visible": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "ldapPortalUserLdapAuth"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,260 @@
|
||||
{
|
||||
"implementationClassName": "Espo\\Core\\Authentication\\Oidc\\Login",
|
||||
"logoutClassName": "Espo\\Core\\Authentication\\Oidc\\Logout",
|
||||
"login": {
|
||||
"handler": "handlers/login/oidc",
|
||||
"fallbackConfigParam": "oidcFallback"
|
||||
},
|
||||
"provider": {
|
||||
"isAvailable": true
|
||||
},
|
||||
"settings": {
|
||||
"isAvailable": true,
|
||||
"layout": {
|
||||
"label": "OIDC",
|
||||
"rows": [
|
||||
[
|
||||
{
|
||||
"name": "oidcClientId"
|
||||
},
|
||||
{
|
||||
"name": "oidcClientSecret"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcAuthorizationRedirectUri",
|
||||
"view": "views/settings/fields/oidc-redirect-uri",
|
||||
"params": {
|
||||
"readOnly": true,
|
||||
"copyToClipboard": true
|
||||
}
|
||||
},
|
||||
false
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcAuthorizationEndpoint"
|
||||
},
|
||||
{
|
||||
"name": "oidcTokenEndpoint"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcJwksEndpoint"
|
||||
},
|
||||
{
|
||||
"name": "oidcJwtSignatureAlgorithmList"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcUserInfoEndpoint"
|
||||
},
|
||||
false
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcScopes"
|
||||
},
|
||||
{
|
||||
"name": "oidcUsernameClaim"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcCreateUser"
|
||||
},
|
||||
{
|
||||
"name": "oidcSync"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcTeams"
|
||||
},
|
||||
{
|
||||
"name": "oidcGroupClaim"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcSyncTeams"
|
||||
},
|
||||
false
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcFallback"
|
||||
},
|
||||
{
|
||||
"name": "oidcAllowRegularUserFallback"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcAllowAdminUser"
|
||||
},
|
||||
{
|
||||
"name": "oidcLogoutUrl"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "oidcAuthorizationPrompt"
|
||||
},
|
||||
false
|
||||
]
|
||||
]
|
||||
},
|
||||
"fieldList": [
|
||||
"oidcClientId",
|
||||
"oidcClientSecret",
|
||||
"oidcAuthorizationEndpoint",
|
||||
"oidcTokenEndpoint",
|
||||
"oidcJwksEndpoint",
|
||||
"oidcJwtSignatureAlgorithmList",
|
||||
"oidcScopes",
|
||||
"oidcGroupClaim",
|
||||
"oidcCreateUser",
|
||||
"oidcUsernameClaim",
|
||||
"oidcTeams",
|
||||
"oidcSync",
|
||||
"oidcSyncTeams",
|
||||
"oidcAuthorizationRedirectUri",
|
||||
"oidcFallback",
|
||||
"oidcAllowRegularUserFallback",
|
||||
"oidcAllowAdminUser",
|
||||
"oidcLogoutUrl"
|
||||
],
|
||||
"dynamicLogic": {
|
||||
"fields": {
|
||||
"oidcClientId": {
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "Oidc"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"oidcAuthorizationEndpoint": {
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "Oidc"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"oidcTokenEndpoint": {
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "Oidc"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"oidcUsernameClaim": {
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "Oidc"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"oidcJwtSignatureAlgorithmList": {
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "Oidc"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"oidcJwksEndpoint": {
|
||||
"required": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "Oidc"
|
||||
},
|
||||
{
|
||||
"type": "or",
|
||||
"value": [
|
||||
{
|
||||
"type": "contains",
|
||||
"attribute": "oidcJwtSignatureAlgorithmList",
|
||||
"value": "RS256"
|
||||
},
|
||||
{
|
||||
"type": "contains",
|
||||
"attribute": "oidcJwtSignatureAlgorithmList",
|
||||
"value": "RS384"
|
||||
},
|
||||
{
|
||||
"type": "contains",
|
||||
"attribute": "oidcJwtSignatureAlgorithmList",
|
||||
"value": "RS512"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"oidcAllowRegularUserFallback": {
|
||||
"invalid": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "Oidc"
|
||||
},
|
||||
{
|
||||
"type": "isTrue",
|
||||
"attribute": "oidcAllowRegularUserFallback"
|
||||
},
|
||||
{
|
||||
"type": "isFalse",
|
||||
"attribute": "oidcFallback"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"oidcAllowAdminUser": {
|
||||
"invalid": {
|
||||
"conditionGroup": [
|
||||
{
|
||||
"type": "equals",
|
||||
"attribute": "authenticationMethod",
|
||||
"value": "Oidc"
|
||||
},
|
||||
{
|
||||
"type": "isFalse",
|
||||
"attribute": "oidcAllowAdminUser"
|
||||
},
|
||||
{
|
||||
"type": "isFalse",
|
||||
"attribute": "oidcFallback"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"createDisabled": true,
|
||||
"recordViews": {
|
||||
"list": "views/action-history-record/record/list"
|
||||
},
|
||||
"modalViews": {
|
||||
"detail": "views/action-history-record/modals/detail"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"duplicateDisabled": true,
|
||||
"mergeDisabled": true,
|
||||
"menu": {
|
||||
"list": {
|
||||
"dropdown": [
|
||||
{
|
||||
"name": "populateDefaults",
|
||||
"labelTranslation": "AddressCountry.strings.populateDefaults",
|
||||
"handler": "handlers/admin/address-country/populate-defaults",
|
||||
"actionFunction": "populate"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"controller": "controllers/address-map"
|
||||
}
|
||||
34
application/Espo/Resources/metadata/clientDefs/ApiUser.json
Normal file
34
application/Espo/Resources/metadata/clientDefs/ApiUser.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"controller": "controllers/api-user",
|
||||
"views": {
|
||||
"detail": "views/user/detail",
|
||||
"list": "views/api-user/list"
|
||||
},
|
||||
"recordViews": {
|
||||
"list": "views/user/record/list",
|
||||
"detail": "views/user/record/detail",
|
||||
"edit":"views/user/record/edit",
|
||||
"detailSmall":"views/user/record/detail-quick",
|
||||
"editSmall":"views/user/record/edit-quick"
|
||||
},
|
||||
"defaultSidePanelFieldLists": {
|
||||
"detail": [
|
||||
"avatar",
|
||||
"createdAt",
|
||||
"lastAccess"
|
||||
],
|
||||
"detailSmall": [
|
||||
"avatar",
|
||||
"createdAt"
|
||||
],
|
||||
"edit": [
|
||||
"avatar"
|
||||
],
|
||||
"editSmall": [
|
||||
"avatar"
|
||||
]
|
||||
},
|
||||
"filterList": [
|
||||
],
|
||||
"boolFilterList": []
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"createDisabled": true,
|
||||
"editDisabled": true,
|
||||
"mergeDisabled": true,
|
||||
"recordViews": {
|
||||
"list": "views/admin/app-log-record/record/list"
|
||||
},
|
||||
"filterList": [
|
||||
{
|
||||
"name": "errors"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"mergeDisabled": true,
|
||||
"exportDisabled": true,
|
||||
"massUpdateDisabled": true
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"createDisabled": true,
|
||||
"recordViews": {
|
||||
"list": "views/attachment/record/list",
|
||||
"detail": "views/attachment/record/detail"
|
||||
},
|
||||
"modalViews": {
|
||||
"detail": "views/attachment/modals/detail"
|
||||
},
|
||||
"filterList": [
|
||||
"orphan"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"recordViews": {
|
||||
"list": "views/admin/auth-log-record/record/list",
|
||||
"detail": "views/admin/auth-log-record/record/detail",
|
||||
"detailSmall": "views/admin/auth-log-record/record/detail-small"
|
||||
},
|
||||
"modalViews": {
|
||||
"detail": "views/admin/auth-log-record/modals/detail"
|
||||
},
|
||||
"filterList": [
|
||||
"accepted",
|
||||
"denied"
|
||||
],
|
||||
"createDisabled": true,
|
||||
"relationshipPanels": {
|
||||
"actionHistoryRecords": {
|
||||
"createDisabled": true,
|
||||
"selectDisabled": true,
|
||||
"unlinkDisabled": true,
|
||||
"rowActionsView": "views/record/row-actions/relationship-view-only"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"recordViews": {
|
||||
"list": "views/admin/auth-token/record/list",
|
||||
"detail": "views/admin/auth-token/record/detail",
|
||||
"detailSmall": "views/admin/auth-token/record/detail-small"
|
||||
},
|
||||
"modalViews": {
|
||||
"detail": "views/admin/auth-token/modals/detail"
|
||||
},
|
||||
"filterList": [
|
||||
"active",
|
||||
"inactive"
|
||||
],
|
||||
"createDisabled": true,
|
||||
"relationshipPanels": {
|
||||
"actionHistoryRecords": {
|
||||
"createDisabled": true,
|
||||
"selectDisabled": true,
|
||||
"unlinkDisabled": true,
|
||||
"rowActionsView": "views/record/row-actions/relationship-view-only"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"recordViews": {
|
||||
"detail": "views/authentication-provider/record/detail",
|
||||
"edit": "views/authentication-provider/record/edit"
|
||||
},
|
||||
"searchPanelDisabled": true,
|
||||
"inlineEditDisabled": true,
|
||||
"duplicateDisabled": true,
|
||||
"massUpdateDisabled": true,
|
||||
"massRemoveDisabled": true,
|
||||
"mergeDisabled": true
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"controller": "controllers/dashboard",
|
||||
"iconClass": "fas fa-th-large"
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"views": {
|
||||
"detail": "views/dashboard-template/detail"
|
||||
},
|
||||
"recordViews": {
|
||||
"list": "views/dashboard-template/record/list"
|
||||
},
|
||||
"menu": {
|
||||
"detail": {
|
||||
"buttons": [
|
||||
{
|
||||
"action": "deployToUsers",
|
||||
"label": "Deploy to Users"
|
||||
},
|
||||
{
|
||||
"action": "deployToTeam",
|
||||
"label": "Deploy to Team"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"searchPanelDisabled": true
|
||||
}
|
||||
336
application/Espo/Resources/metadata/clientDefs/DynamicLogic.json
Normal file
336
application/Espo/Resources/metadata/clientDefs/DynamicLogic.json
Normal file
@@ -0,0 +1,336 @@
|
||||
{
|
||||
"itemTypes": {
|
||||
"and": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/group-base",
|
||||
"operator": "and"
|
||||
},
|
||||
"or": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/group-base",
|
||||
"operator": "or"
|
||||
},
|
||||
"not": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/group-not",
|
||||
"operator": "not"
|
||||
},
|
||||
"equals": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-base",
|
||||
"operatorString": "="
|
||||
},
|
||||
"notEquals": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-base",
|
||||
"operatorString": "≠"
|
||||
},
|
||||
"greaterThan": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-base",
|
||||
"operatorString": ">"
|
||||
},
|
||||
"lessThan": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-base",
|
||||
"operatorString": "<"
|
||||
},
|
||||
"greaterThanOrEquals": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-base",
|
||||
"operatorString": "≥"
|
||||
},
|
||||
"lessThanOrEquals": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-base",
|
||||
"operatorString": "≤"
|
||||
},
|
||||
"isEmpty": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-operator-only-base",
|
||||
"operatorString": "= ∅"
|
||||
},
|
||||
"isNotEmpty": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-operator-only-base",
|
||||
"operatorString": "≠ ∅"
|
||||
},
|
||||
"isTrue": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-operator-only-base",
|
||||
"operatorString": "= 1"
|
||||
},
|
||||
"isFalse": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-operator-only-base",
|
||||
"operatorString": "= 0"
|
||||
},
|
||||
"in": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-multiple-values-base",
|
||||
"operatorString": "∈"
|
||||
},
|
||||
"notIn": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-multiple-values-base",
|
||||
"operatorString": "∉"
|
||||
},
|
||||
"isToday": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-is-today",
|
||||
"operatorString": "="
|
||||
},
|
||||
"inFuture": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-in-future",
|
||||
"operatorString": "∈"
|
||||
},
|
||||
"inPast": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-in-past",
|
||||
"operatorString": "∈"
|
||||
},
|
||||
"contains": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-value-link",
|
||||
"operatorString": "∋"
|
||||
},
|
||||
"notContains": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-value-link",
|
||||
"operatorString": "∌"
|
||||
},
|
||||
"has": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-value-enum",
|
||||
"operatorString": "∋"
|
||||
},
|
||||
"notHas": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-value-enum",
|
||||
"operatorString": "∌"
|
||||
},
|
||||
"startsWith": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-value-varchar"
|
||||
},
|
||||
"endsWith": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-value-varchar"
|
||||
},
|
||||
"matches": {
|
||||
"view": "views/admin/dynamic-logic/conditions-string/item-value-varchar"
|
||||
}
|
||||
},
|
||||
"fieldTypes": {
|
||||
"bool": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/base",
|
||||
"typeList": ["isTrue", "isFalse"]
|
||||
},
|
||||
"varchar": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/base",
|
||||
"typeList": [
|
||||
"equals",
|
||||
"notEquals",
|
||||
"isEmpty",
|
||||
"isNotEmpty",
|
||||
"contains",
|
||||
"notContains",
|
||||
"startsWith",
|
||||
"endsWith",
|
||||
"matches"
|
||||
],
|
||||
"conditionTypes": {
|
||||
"contains": {
|
||||
"valueType": "field",
|
||||
"itemView": "views/admin/dynamic-logic/conditions-string/item-base"
|
||||
},
|
||||
"notContains": {
|
||||
"valueType": "field",
|
||||
"itemView": "views/admin/dynamic-logic/conditions-string/item-base"
|
||||
}
|
||||
}
|
||||
},
|
||||
"url": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/base",
|
||||
"typeList": ["equals", "notEquals", "isEmpty", "isNotEmpty"]
|
||||
},
|
||||
"email": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/base",
|
||||
"typeList": ["isEmpty", "isNotEmpty"]
|
||||
},
|
||||
"phone": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/base",
|
||||
"typeList": ["isEmpty", "isNotEmpty"]
|
||||
},
|
||||
"text": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/base",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "contains", "notContains", "matches"],
|
||||
"conditionTypes": {
|
||||
"contains": {
|
||||
"valueType": "varchar",
|
||||
"itemView": "views/admin/dynamic-logic/conditions-string/item-value-varchar"
|
||||
},
|
||||
"notContains": {
|
||||
"valueType": "varchar",
|
||||
"itemView": "views/admin/dynamic-logic/conditions-string/item-value-varchar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"int": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/base",
|
||||
"typeList": [
|
||||
"isEmpty",
|
||||
"isNotEmpty",
|
||||
"equals",
|
||||
"notEquals",
|
||||
"greaterThan",
|
||||
"lessThan",
|
||||
"greaterThanOrEquals",
|
||||
"lessThanOrEquals"
|
||||
]
|
||||
},
|
||||
"float": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/base",
|
||||
"typeList": [
|
||||
"isEmpty",
|
||||
"isNotEmpty",
|
||||
"equals",
|
||||
"notEquals",
|
||||
"greaterThan",
|
||||
"lessThan",
|
||||
"greaterThanOrEquals",
|
||||
"lessThanOrEquals"
|
||||
]
|
||||
},
|
||||
"currency": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/base",
|
||||
"typeList": [
|
||||
"isEmpty",
|
||||
"isNotEmpty",
|
||||
"equals",
|
||||
"notEquals",
|
||||
"greaterThan",
|
||||
"lessThan",
|
||||
"greaterThanOrEquals",
|
||||
"lessThanOrEquals"
|
||||
]
|
||||
},
|
||||
"date": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/date",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "isToday", "inFuture", "inPast", "equals", "notEquals"]
|
||||
},
|
||||
"datetime": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/date",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "isToday", "inFuture", "inPast"]
|
||||
},
|
||||
"datetimeOptional": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/date",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "isToday", "inFuture", "inPast"]
|
||||
},
|
||||
"enum": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/enum",
|
||||
"typeList": ["equals", "notEquals", "isEmpty", "isNotEmpty", "in", "notIn"]
|
||||
},
|
||||
"link": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/link",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "equals", "notEquals"]
|
||||
},
|
||||
"linkOne": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/link",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "equals", "notEquals"]
|
||||
},
|
||||
"file": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/link",
|
||||
"typeList": ["isEmpty", "isNotEmpty"]
|
||||
},
|
||||
"image": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/link",
|
||||
"typeList": ["isEmpty", "isNotEmpty"]
|
||||
},
|
||||
"linkParent": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/link-parent",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "equals", "notEquals"]
|
||||
},
|
||||
"linkMultiple": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/link-multiple",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "contains", "notContains"]
|
||||
},
|
||||
"foreign": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/base",
|
||||
"typeList": ["equals", "notEquals", "isEmpty", "isNotEmpty"]
|
||||
},
|
||||
"id": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/enum",
|
||||
"typeList": ["isEmpty", "isNotEmpty"]
|
||||
},
|
||||
"multiEnum": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/multi-enum",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "has", "notHas"]
|
||||
},
|
||||
"array": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/multi-enum",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "has", "notHas"]
|
||||
},
|
||||
"checklist": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/multi-enum",
|
||||
"typeList": ["isEmpty", "isNotEmpty", "has", "notHas"]
|
||||
},
|
||||
"urlMultiple": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/multi-enum",
|
||||
"typeList": ["isEmpty", "isNotEmpty"]
|
||||
},
|
||||
"currentUser": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/current-user",
|
||||
"typeList": ["equals", "notEquals"]
|
||||
},
|
||||
"currentUserTeams": {
|
||||
"view": "views/admin/dynamic-logic/conditions/field-types/current-user-teams",
|
||||
"typeList": ["contains", "notContains"]
|
||||
}
|
||||
},
|
||||
"conditionTypes": {
|
||||
"isTrue": {
|
||||
"valueType": "empty"
|
||||
},
|
||||
"isFalse": {
|
||||
"valueType": "empty"
|
||||
},
|
||||
"isEmpty": {
|
||||
"valueType": "empty"
|
||||
},
|
||||
"isNotEmpty": {
|
||||
"valueType": "empty"
|
||||
},
|
||||
"equals": {
|
||||
"valueType": "field"
|
||||
},
|
||||
"notEquals": {
|
||||
"valueType": "field"
|
||||
},
|
||||
"greaterThan": {
|
||||
"valueType": "field"
|
||||
},
|
||||
"lessThan": {
|
||||
"valueType": "field"
|
||||
},
|
||||
"greaterThanOrEquals": {
|
||||
"valueType": "field"
|
||||
},
|
||||
"lessThanOrEquals": {
|
||||
"valueType": "field"
|
||||
},
|
||||
"in": {
|
||||
"valueType": "field"
|
||||
},
|
||||
"notIn": {
|
||||
"valueType": "field"
|
||||
},
|
||||
"contains": {
|
||||
"valueType": "custom"
|
||||
},
|
||||
"notContains": {
|
||||
"valueType": "custom"
|
||||
},
|
||||
"inPast": {
|
||||
"valueType": "empty"
|
||||
},
|
||||
"isFuture": {
|
||||
"valueType": "empty"
|
||||
},
|
||||
"isToday": {
|
||||
"valueType": "empty"
|
||||
},
|
||||
"has": {
|
||||
"valueType": "field"
|
||||
},
|
||||
"notHas": {
|
||||
"valueType": "field"
|
||||
},
|
||||
"startsWith": {
|
||||
"valueType": "varchar"
|
||||
},
|
||||
"endsWith": {
|
||||
"valueType": "varchar"
|
||||
},
|
||||
"matches": {
|
||||
"valueType": "varchar-matches"
|
||||
}
|
||||
}
|
||||
}
|
||||
141
application/Espo/Resources/metadata/clientDefs/Email.json
Normal file
141
application/Espo/Resources/metadata/clientDefs/Email.json
Normal file
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"controller":"controllers/email",
|
||||
"acl":"acl/email",
|
||||
"views":{
|
||||
"list":"views/email/list",
|
||||
"detail":"views/email/detail"
|
||||
},
|
||||
"recordViews":{
|
||||
"list":"views/email/record/list",
|
||||
"detail":"views/email/record/detail",
|
||||
"edit":"views/email/record/edit",
|
||||
"editQuick":"views/email/record/edit-quick",
|
||||
"detailQuick":"views/email/record/detail-quick",
|
||||
"compose":"views/email/record/compose",
|
||||
"listRelated":"views/email/record/list-related"
|
||||
},
|
||||
"modalViews":{
|
||||
"detail":"views/email/modals/detail",
|
||||
"compose":"views/modals/compose-email"
|
||||
},
|
||||
"quickCreateModalType":"compose",
|
||||
"defaultSidePanelView": "views/email/record/panels/default-side",
|
||||
"sidePanels": {
|
||||
"detail": [
|
||||
{
|
||||
"name": "event",
|
||||
"label": "Event",
|
||||
"view": "views/email/record/panels/event",
|
||||
"isForm": true,
|
||||
"hidden": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"menu":{
|
||||
"list":{
|
||||
"buttons":[
|
||||
{
|
||||
"label": "Compose",
|
||||
"action": "composeEmail",
|
||||
"style": "danger",
|
||||
"acl": "create",
|
||||
"className": "btn-s-wide",
|
||||
"title": "Ctrl+Space"
|
||||
}
|
||||
],
|
||||
"dropdown":[
|
||||
{
|
||||
"name": "archiveEmail",
|
||||
"label":"Archive Email",
|
||||
"link":"#Email/create",
|
||||
"acl":"create"
|
||||
},
|
||||
{
|
||||
"name": "importEml",
|
||||
"label": "Import EML",
|
||||
"handler": "handlers/email/list-actions",
|
||||
"checkVisibilityFunction": "checkImportEml",
|
||||
"actionFunction": "importEml"
|
||||
},
|
||||
false,
|
||||
{
|
||||
"label":"Email Templates",
|
||||
"link":"#EmailTemplate",
|
||||
"acl":"read",
|
||||
"aclScope":"EmailTemplate"
|
||||
},
|
||||
{
|
||||
"label":"Folders",
|
||||
"link":"#EmailFolder",
|
||||
"configCheck": "!emailFoldersDisabled",
|
||||
"accessDataList": [
|
||||
{
|
||||
"inPortalDisabled": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "Group Folders",
|
||||
"link": "#GroupEmailFolder",
|
||||
"configCheck": "!emailFoldersDisabled",
|
||||
"accessDataList": [
|
||||
{
|
||||
"inPortalDisabled": true
|
||||
},
|
||||
{
|
||||
"isAdminOnly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label":"Filters",
|
||||
"link":"#EmailFilter",
|
||||
"accessDataList": [
|
||||
{
|
||||
"inPortalDisabled": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"detail":{
|
||||
"dropdown":[
|
||||
{
|
||||
"label":"Reply",
|
||||
"action":"reply",
|
||||
"acl":"read"
|
||||
},
|
||||
{
|
||||
"label":"Reply to All",
|
||||
"action":"replyToAll",
|
||||
"acl":"read"
|
||||
},
|
||||
{
|
||||
"label":"Forward",
|
||||
"action":"forward",
|
||||
"acl":"read"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"relationshipPanels": {
|
||||
"users": {
|
||||
"selectHandler": "handlers/email/select-user"
|
||||
}
|
||||
},
|
||||
"filterList":[
|
||||
|
||||
],
|
||||
"defaultFilterData":{
|
||||
|
||||
},
|
||||
"boolFilterList":[
|
||||
|
||||
],
|
||||
"iconClass":"fas fa-envelope",
|
||||
"layoutBottomPanelsDetailDisabled": true,
|
||||
"layoutDetailDisabled": true,
|
||||
"layoutDetailSmallDisabled": true,
|
||||
"layoutSidePanelsDetailSmallDisabled": true,
|
||||
"layoutSidePanelsEditSmallDisabled": true
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"recordViews": {
|
||||
"list":"views/email-account/record/list",
|
||||
"detail": "views/email-account/record/detail",
|
||||
"edit": "views/email-account/record/edit"
|
||||
},
|
||||
"views": {
|
||||
"list": "views/email-account/list"
|
||||
},
|
||||
"inlineEditDisabled": true,
|
||||
"filterList": [
|
||||
{
|
||||
"name": "active"
|
||||
}
|
||||
],
|
||||
"relationshipPanels": {
|
||||
"filters": {
|
||||
"select": false,
|
||||
"rowActionsView": "views/record/row-actions/relationship-edit-and-remove",
|
||||
"unlinkDisabled": true
|
||||
},
|
||||
"emails": {
|
||||
"select": false,
|
||||
"create": false,
|
||||
"rowActionsView": "views/record/row-actions/remove-only",
|
||||
"unlinkDisabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"createDisabled": true,
|
||||
"editDisabled": true,
|
||||
"exportDisabled": true,
|
||||
"mergeDisabled": true,
|
||||
"filterList": [
|
||||
"orphan"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"controller": "controllers/email-filter",
|
||||
"dynamicHandler": "handlers/email-filter",
|
||||
"modalViews": {
|
||||
"edit": "views/email-filter/modals/edit"
|
||||
},
|
||||
"recordViews": {
|
||||
"list": "views/email-filter/record/list"
|
||||
},
|
||||
"inlineEditDisabled": true,
|
||||
"searchPanelDisabled": false,
|
||||
"menu": {
|
||||
"list": {
|
||||
"buttons": [
|
||||
{
|
||||
"label": "Emails",
|
||||
"link": "#Email",
|
||||
"style": "default",
|
||||
"aclScope": "Email"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"boolFilterList": [
|
||||
"onlyMy"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"views": {
|
||||
"list": "views/email-folder/list"
|
||||
},
|
||||
"recordViews": {
|
||||
"list": "views/email-folder/record/list",
|
||||
"editQuick": "views/email-folder/record/edit-small"
|
||||
},
|
||||
"menu": {
|
||||
"list": {
|
||||
"buttons": [
|
||||
{
|
||||
"label": "Emails",
|
||||
"link": "#Email",
|
||||
"style": "default",
|
||||
"aclScope": "Email"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"searchPanelDisabled": true
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"controller": "controllers/record",
|
||||
"forceListViewSettings": true,
|
||||
"views": {
|
||||
"list": "views/email-template/list"
|
||||
},
|
||||
"recordViews": {
|
||||
"edit": "views/email-template/record/edit",
|
||||
"detail": "views/email-template/record/detail",
|
||||
"editQuick": "views/email-template/record/edit-quick"
|
||||
},
|
||||
"modalViews": {
|
||||
"select": "views/modals/select-records-with-categories"
|
||||
},
|
||||
"sidePanels": {
|
||||
"detail": [
|
||||
{
|
||||
"name": "information",
|
||||
"label":"Info",
|
||||
"view":"views/email-template/record/panels/information"
|
||||
}
|
||||
],
|
||||
"edit": [
|
||||
{
|
||||
"name": "information",
|
||||
"label":"Info",
|
||||
"view":"views/email-template/record/panels/information"
|
||||
}
|
||||
]
|
||||
},
|
||||
"boolFilterList": ["onlyMy"],
|
||||
"filterList": [
|
||||
"actual"
|
||||
],
|
||||
"placeholderList": ["optOutUrl", "optOutLink"],
|
||||
"iconClass": "fas fa-envelope-square"
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"controller": "controllers/record-tree",
|
||||
"collection": "collections/tree",
|
||||
"menu": {
|
||||
"listTree": {
|
||||
"buttons": [
|
||||
{
|
||||
"label": "List View",
|
||||
"link": "#EmailTemplateCategory\/list",
|
||||
"acl": "read",
|
||||
"style": "default"
|
||||
},
|
||||
{
|
||||
"label": "Email Templates",
|
||||
"link": "#EmailTemplate",
|
||||
"acl": "read",
|
||||
"aclScope": "EmailTemplate",
|
||||
"style": "default"
|
||||
}
|
||||
]
|
||||
},
|
||||
"list": {
|
||||
"buttons": [
|
||||
{
|
||||
"label": "Tree View",
|
||||
"link": "#EmailTemplateCategory",
|
||||
"acl": "read",
|
||||
"style": "default"
|
||||
},
|
||||
{
|
||||
"label": "Email Templates",
|
||||
"link": "#EmailTemplate",
|
||||
"acl": "read",
|
||||
"aclScope": "EmailTemplate",
|
||||
"style": "default"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"relationshipPanels": {
|
||||
"emailTemplates": {
|
||||
"create": false
|
||||
},
|
||||
"children": {
|
||||
"selectDisabled": true,
|
||||
"unlinkDisabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user