mirror of
https://github.com/espocrm/espocrm.git
synced 2026-03-03 03:47:01 +00:00
1027 lines
40 KiB
JSON
1027 lines
40 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://www.espocrm.com/schema/metadata/clientDefs.json",
|
|
"title": "clientDefs",
|
|
"description": "Front-end definitions for a scope.",
|
|
"type": "object",
|
|
"properties": {
|
|
"controller": {
|
|
"description": "Defines a client controller class.",
|
|
"type": "string"
|
|
},
|
|
"collection": {
|
|
"description": "Defines a client record collection class.",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "Defines a client model class.",
|
|
"type": "string"
|
|
},
|
|
"modelDefaultsPreparator": {
|
|
"description": "Default attributes preparator for a model. Should extend `handlers/model/defaults-preparator`. As of v8.4.",
|
|
"type": "string"
|
|
},
|
|
"acl": {
|
|
"description": "Defines a client ACL class.",
|
|
"type": "string"
|
|
},
|
|
"aclPortal": {
|
|
"description": "Defines a client ACL class for portals.",
|
|
"type": "string"
|
|
},
|
|
"createDisabled": {
|
|
"description": "Disable the ability to create a record from the user interface.",
|
|
"type": "boolean"
|
|
},
|
|
"searchPanelDisabled": {
|
|
"description": "Hides the search panel on the list view.",
|
|
"type": "boolean"
|
|
},
|
|
"searchPanelInPortalDisabled": {
|
|
"description": "Hides the search panel on the list view in portals.",
|
|
"type": "boolean"
|
|
},
|
|
"textFilterDisabled": {
|
|
"type": "boolean",
|
|
"description": "Disables text search."
|
|
},
|
|
"editDisabled": {
|
|
"type": "boolean",
|
|
"description": "Disables edit."
|
|
},
|
|
"removeDisabled": {
|
|
"type": "boolean",
|
|
"description": "Disables remove."
|
|
},
|
|
"forceListViewSettings": {
|
|
"type": "boolean",
|
|
"description": "Force list view settings for non-object entity types. As of v9.2.0."
|
|
},
|
|
"views": {
|
|
"description": "View classes. Available views: list, detail, edit, listRelated.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"recordViews": {
|
|
"description": "Record view classes. Available views: list, detail, edit, detailQuick, editQuick, kanban, listRelated.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"modalViews": {
|
|
"description": "Modal view classes. Available views: detail, edit, select, relatedList.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"quickCreateModalType": {
|
|
"type": "string",
|
|
"description": "A modal view type to be used for quick create."
|
|
},
|
|
"listViewModeList": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"type": "string"},
|
|
{"enum": ["__APPEND__", "list", "kanban"]}
|
|
]
|
|
},
|
|
"description": "A list view mode list."
|
|
},
|
|
"viewModeIconClassMap": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "View mode icon classes. mode => class map."
|
|
},
|
|
"detailViewModeList": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"type": "string"},
|
|
{"enum": ["__APPEND__", "detail"]}
|
|
]
|
|
},
|
|
"description": "Detail view modes."
|
|
},
|
|
"detailDefaultViewMode": {
|
|
"type": "string",
|
|
"description": "A default detail view mode."
|
|
},
|
|
"detailViewModeIsStorable": {
|
|
"type": "boolean",
|
|
"description": "A selected detail view mode will be stored in the browser storage for a user a per record."
|
|
},
|
|
"saveErrorHandlers": {
|
|
"description": "Save error handlers. https://docs.espocrm.com/development/frontend/save-error-handlers/",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"viewSetupHandlers": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"type": "string"},
|
|
{"enum": ["__APPEND__"]}
|
|
]
|
|
}
|
|
},
|
|
"propertyNames": {
|
|
"anyOf": [
|
|
{"type": "string"},
|
|
{
|
|
"enum": [
|
|
"list",
|
|
"detail",
|
|
"edit",
|
|
"record/list",
|
|
"record/search",
|
|
"record/detail",
|
|
"record/edit",
|
|
"record/kanban"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"description": "View setup handlers. https://docs.espocrm.com/development/frontend/view-setup-handlers/"
|
|
},
|
|
"rowActionList": {
|
|
"description": "Row actions for the main list view.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"rowActionDefs": {
|
|
"description": "Row actions definitions.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"description": "An action",
|
|
"type": "object",
|
|
"properties": {
|
|
"label": {
|
|
"type": "string",
|
|
"description": "A translatable label."
|
|
},
|
|
"labelTranslation": {
|
|
"type": "string",
|
|
"description": "A label translation path."
|
|
},
|
|
"acl": {
|
|
"enum": [
|
|
"edit",
|
|
"delete"
|
|
],
|
|
"description": "Required access."
|
|
},
|
|
"handler": {
|
|
"type": "string",
|
|
"description": "A handler. Should extend handlers/row-action."
|
|
},
|
|
"groupIndex": {
|
|
"type": "integer",
|
|
"minimum": -100,
|
|
"description": "A group index."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"inlineEditDisabled": {
|
|
"description": "Disable inline edit.",
|
|
"type": "boolean"
|
|
},
|
|
"exportDisabled": {
|
|
"description": "Disable the export mass-action.",
|
|
"type": "boolean"
|
|
},
|
|
"massUpdateDisabled": {
|
|
"description": "Disable the mass-update mass action.",
|
|
"type": "boolean"
|
|
},
|
|
"massRemoveDisabled": {
|
|
"description": "Disable the remove mass action.",
|
|
"type": "boolean"
|
|
},
|
|
"massFollowDisabled": {
|
|
"description": "Disable the follow mass-action.",
|
|
"type": "boolean"
|
|
},
|
|
"convertCurrencyDisabled": {
|
|
"description": "Disable the convert-currency mass-action and action.",
|
|
"type": "boolean"
|
|
},
|
|
"mergeDisabled": {
|
|
"description": "Disable the record merge functionality.",
|
|
"type": "boolean"
|
|
},
|
|
"duplicateDisabled": {
|
|
"description": "Disable the duplicate action.",
|
|
"type": "boolean"
|
|
},
|
|
"filterList": {
|
|
"description": "A list of primary filters.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"const": "__APPEND__"},
|
|
{"type": "string"},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "A name."
|
|
},
|
|
"style": {
|
|
"enum": ["default", "success", "warning", "danger", "info"],
|
|
"description": "A style."
|
|
},
|
|
"accessDataList": {
|
|
"$ref": "#/definitions/accessDataList"
|
|
},
|
|
"aux": {
|
|
"type": "boolean",
|
|
"description": "Makes the filter not available on the list view."
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"boolFilterList": {
|
|
"description": "A list of bool filters.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"const": "__APPEND__"},
|
|
{"type": "string"},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "A filter name."
|
|
},
|
|
"accessDataList": {
|
|
"$ref": "#/definitions/accessDataList"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"defaultFilterData": {
|
|
"description": "A default filter data.",
|
|
"type": "object",
|
|
"properties": {
|
|
"primary": {
|
|
"type": "string",
|
|
"description": "A primary filter."
|
|
},
|
|
"bool": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "boolean"
|
|
},
|
|
"description": "Bool filters."
|
|
}
|
|
}
|
|
},
|
|
"selectDefaultFilters": {
|
|
"description": "A default filter on the select-records modal.",
|
|
"type": "object",
|
|
"properties": {
|
|
"filter": {
|
|
"description": "A primary filter.",
|
|
"type": "string"
|
|
},
|
|
"boolFilterList": {
|
|
"description": "Bool filters.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"nameAttribute": {
|
|
"type": "string",
|
|
"description": "An entity attribute to be used to display the record name on views. As of v9.1."
|
|
},
|
|
"menu": {
|
|
"description": "Top-right menu for views (list, detail, edit). Action types: buttons, dropdowns. https://docs.espocrm.com/development/custom-buttons/",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"enum": [
|
|
"list",
|
|
"detail",
|
|
"edit",
|
|
"listRelated",
|
|
"listTree"
|
|
]
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"enum": ["buttons", "dropdown"]
|
|
},
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"enum": ["__APPEND__"]},
|
|
{"const": false},
|
|
{"$ref": "#/definitions/menuItem"}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"sidePanels": {
|
|
"description": "Definitions of side-panels for views (detail, edit, detailSmall, editSmall). Defined panels will be available in the layout manager.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"const": "__APPEND__"},
|
|
{
|
|
"$ref": "#/definitions/panel"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"bottomPanels": {
|
|
"description": "Definitions of bottom-panels for views (detail, edit, detailSmall, editSmall). Defined panels will be available in the layout manager.",
|
|
"$ref": "#/properties/sidePanels"
|
|
},
|
|
"relationshipPanels": {
|
|
"description": "Parameters to be applied for specific relationship panels.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"description": "A link.",
|
|
"properties": {
|
|
"view": {
|
|
"description": "A view class.",
|
|
"type": "string"
|
|
},
|
|
"recordListView": {
|
|
"description": "A record list view class.",
|
|
"type": "string"
|
|
},
|
|
"rowActionsView": {
|
|
"description": "A row-actions view class.",
|
|
"type": "string"
|
|
},
|
|
"viewModalView": {
|
|
"description": "A modal view for viewing relationships in a modal dialog.",
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"description": "A translatable label.",
|
|
"type": "string"
|
|
},
|
|
"readOnly": {
|
|
"description": "Read-only.",
|
|
"type": "boolean"
|
|
},
|
|
"selectDisabled": {
|
|
"description": "Disable the ability to select related records.",
|
|
"type": "boolean"
|
|
},
|
|
"createDisabled": {
|
|
"description": "Disable the ability to create related records.",
|
|
"type": "boolean"
|
|
},
|
|
"viewDisabled": {
|
|
"description": "Disable the ability to view related records in a modal.",
|
|
"type": "boolean"
|
|
},
|
|
"unlinkDisabled": {
|
|
"description": "Disable the ability to unlink related records.",
|
|
"type": "boolean"
|
|
},
|
|
"editDisabled": {
|
|
"description": "Disable edit.",
|
|
"type": "boolean"
|
|
},
|
|
"removeDisabled": {
|
|
"description": "Disable remove.",
|
|
"type": "boolean"
|
|
},
|
|
"rowActionList": {
|
|
"description": "Row actions.",
|
|
"type": "array",
|
|
"items": {"type": "string"}
|
|
},
|
|
"createRequiredAccess": {
|
|
"description": "Access (to a current entity type) required for creating related records.",
|
|
"type": "string",
|
|
"enum": ["create", "read", "edit", "delete", "stream"]
|
|
},
|
|
"selectRequiredAccess": {
|
|
"description": "Access (to a current entity type) required for selecting related records.",
|
|
"type": "string",
|
|
"enum": ["create", "read", "edit", "delete", "stream"]
|
|
},
|
|
"selectPrimaryFilterName": {
|
|
"type": "string",
|
|
"description": "A primary filter applied when selecting records."
|
|
},
|
|
"selectBoolFilterList": {
|
|
"description": "Bool filters applied when selecting records.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"selectOrderBy": {
|
|
"type": "string",
|
|
"description": "A field to order by when selecting records. As of v8.2."
|
|
},
|
|
"selectOrderDirection": {
|
|
"type": "string",
|
|
"enum": ["asc", "desc"],
|
|
"description": "An direction to order by when selecting records. As of v8.2."
|
|
},
|
|
"primaryFilter": {
|
|
"description": "A default primary filter. As of v8.1.",
|
|
"type": "string"
|
|
},
|
|
"filterList": {
|
|
"description": "Filters available in the dropdown.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"mandatoryAttributeList": {
|
|
"description": "Mandatory attributes to be selected in the list. As of v9.0.",
|
|
"type": "array",
|
|
"items": {"type": "string"}
|
|
},
|
|
"orderBy": {
|
|
"description": "An order-by field.",
|
|
"type": "string"
|
|
},
|
|
"orderDirection": {
|
|
"description": "An order direction.",
|
|
"type": "string",
|
|
"enum": ["asc", "desc"]
|
|
},
|
|
"selectHandler": {
|
|
"type": "string",
|
|
"description": "A select handler for providing filters when selecting related records. Should have a method *getFilters* returning a promise. Optionally, extend from `handlers/select-related`. \n\nPromise value:\n```{bool?: string[], primary?: string, orderBy?: string, order?: 'asc'|'desc', advanced: Record}```"
|
|
},
|
|
"createHandler": {
|
|
"type": "string",
|
|
"description": "A create handler. Provides attributes when creating a new related record. Should have a method *getAttributes* returning a promise. Optionally, extend from `handlers/create-related`."
|
|
},
|
|
"selectFieldHandler": {
|
|
"type": "string",
|
|
"description": "A handler called when change a link field. Only for belongs-to and has-one relations. Should have *getAttributes* and *getClearAttributes* methods."
|
|
},
|
|
"layout": {
|
|
"type": "string",
|
|
"description": "A list layout name."
|
|
},
|
|
"selectMandatoryAttributeList": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Attributes to be selected when selecting records."
|
|
},
|
|
"selectLayout": {
|
|
"type": "string",
|
|
"description": "A list layout name for the select dialog."
|
|
},
|
|
"syncWithModel": {
|
|
"type": "boolean",
|
|
"description": "Re-fetch records when the parent model is saved or refreshed by WebSocket."
|
|
},
|
|
"syncBackWithModel": {
|
|
"type": "boolean",
|
|
"description": "Re-fetch the parent model when the relationship is updated. Ignored if WebSocked is enabled."
|
|
},
|
|
"massSelect": {
|
|
"type": "boolean",
|
|
"description": "Allow mass select."
|
|
},
|
|
"createAttributeMap": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "Attributes to carry over to a related record when creating. Mapping Parent => Related."
|
|
},
|
|
"buttonList": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "A name."
|
|
},
|
|
"acl": {
|
|
"description": "An ACL action access to which is required for the action.",
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"read",
|
|
"edit",
|
|
"delete",
|
|
"stream"
|
|
]
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"description": "A translatable label."
|
|
},
|
|
"handler": {
|
|
"type": "string",
|
|
"description": "A frontend handler. A view is passed to the constructor."
|
|
},
|
|
"actionFunction": {
|
|
"type": "string",
|
|
"description": "An action method in the handler."
|
|
}
|
|
}
|
|
},
|
|
"description": "Header buttons. As of v8.4."
|
|
},
|
|
"actionList": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"default": "A name."
|
|
},
|
|
"acl": {
|
|
"description": "An ACL action access to which is required for the action.",
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"read",
|
|
"edit",
|
|
"delete",
|
|
"stream"
|
|
]
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"description": "A translatable label."
|
|
},
|
|
"handler": {
|
|
"type": "string",
|
|
"description": "A frontend handler. A view is passed to the constructor."
|
|
},
|
|
"actionFunction": {
|
|
"type": "string",
|
|
"description": "An action method in the handler."
|
|
}
|
|
}
|
|
},
|
|
"description": "Header dropdown actions. As of v8.4."
|
|
},
|
|
"allResultDisabled": {
|
|
"type": "boolean",
|
|
"description": "Disable the ability to select all results. Important for non-standard relationship panels. As of v9.2."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"additionalLayouts": {
|
|
"description": "Additional layouts for the entity type.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "A type. E.g. list, listSmall."
|
|
},
|
|
"dataAttributeList": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Data attributes."
|
|
},
|
|
"allFields": {
|
|
"type": "boolean",
|
|
"description": "All fields. Actual for the detail type. If false, fields added in the side panel layout won't be available."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"massActionList": {
|
|
"description": "Mass actions.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"const": "__APPEND__"},
|
|
{"type": "string"}
|
|
]
|
|
}
|
|
},
|
|
"checkAllResultMassActionList": {
|
|
"description": "Mass actions available when selecting all results.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"const": "__APPEND__"},
|
|
{"type": "string"}
|
|
]
|
|
}
|
|
},
|
|
"massActionDefs": {
|
|
"description": "Definitions for mass actions.",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"groupIndex": {
|
|
"type": "integer",
|
|
"description": "A group index. Groups are separated by a divider.",
|
|
"minimum": -100
|
|
},
|
|
"handler": {
|
|
"description": "A handler class for the mass action.",
|
|
"type": "string"
|
|
},
|
|
"initFunction": {
|
|
"description": "An init method in the handler.",
|
|
"type": "string"
|
|
},
|
|
"actionFunction": {
|
|
"description": "An action method in the handler. As of v8.1.",
|
|
"type": "string"
|
|
},
|
|
"configCheck": {
|
|
"description": "A config path (separated by the .) to check whether the action is enabled. The ! prefix reverts.",
|
|
"type": "string"
|
|
},
|
|
"aclScope": {
|
|
"description": "A scope access to which is required for the action.",
|
|
"type": "string"
|
|
},
|
|
"acl": {
|
|
"description": "An ACL action access to which is required for the action.",
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"read",
|
|
"edit",
|
|
"delete",
|
|
"stream"
|
|
]
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"description": "An API endpoint."
|
|
},
|
|
"bypassConfirmation": {
|
|
"type": "boolean",
|
|
"description": "To skip the confirmation dialog."
|
|
},
|
|
"confirmationMessage": {
|
|
"type": "string",
|
|
"description": "A confirmation message key. The translation should be in 'messages' category."
|
|
},
|
|
"waitMessage": {
|
|
"type": "string",
|
|
"description": "A wait message key. The translation should be in 'messages' category."
|
|
},
|
|
"successMessage": {
|
|
"type": "string",
|
|
"description": "A success message key. The translation should be in 'messages' category."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"detailActionList": {
|
|
"description": "Detail view actions (available from the dropdown next to the Edit button).",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"const": "__APPEND__"},
|
|
{
|
|
"$ref": "#/definitions/actionDefs"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"modalDetailActionList": {
|
|
"description": "Modal detail view actions.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{"const": "__APPEND__"},
|
|
{
|
|
"$ref": "#/definitions/actionDefs"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"iconClass": {
|
|
"description": "A scope icon CSS class.",
|
|
"type": "string"
|
|
},
|
|
"color": {
|
|
"description": "A scope color in HEX.",
|
|
"type": "string"
|
|
},
|
|
"listDefaultViewMode": {
|
|
"description": "A default list view mode. E.g. list, kanban.",
|
|
"type": "string"
|
|
},
|
|
"kanbanViewMode": {
|
|
"description": "Whether the scope has the kanban view mode on the list view.",
|
|
"type": "boolean"
|
|
},
|
|
"allowInternalNotes": {
|
|
"description": "If true, it will be possible to post internal posts in the stream. Internal posts are not visible in portals.",
|
|
"type": "boolean"
|
|
},
|
|
"isExpandedByDefault": {
|
|
"description": "Actual for category scopes (e.g. DocumentFolder). If true, then by default it will be in expanded mode.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"definitions": {
|
|
"menuItem": {
|
|
"type": "object",
|
|
"properties": {
|
|
"label": {
|
|
"type": "string",
|
|
"description": "A translatable label."
|
|
},
|
|
"labelTranslation": {
|
|
"type": "string",
|
|
"description": "A label translation path. Example: 'Campaign.links.trackingUrls'."
|
|
},
|
|
"link": {
|
|
"type": "string",
|
|
"description": "A link (href)."
|
|
},
|
|
"acl": {
|
|
"enum": [
|
|
"create",
|
|
"read",
|
|
"edit",
|
|
"delete",
|
|
"stream"
|
|
],
|
|
"description": "An action to check access to. If no access, the item is not displayed."
|
|
},
|
|
"aclScope": {
|
|
"type": "string",
|
|
"description": "A scope to check access to. If no access, the item is not displayed."
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "A name."
|
|
},
|
|
"action": {
|
|
"type": "string",
|
|
"description": "An action. To be used in javascript code for handling."
|
|
},
|
|
"style": {
|
|
"enum": [
|
|
"default",
|
|
"success",
|
|
"warning",
|
|
"danger",
|
|
"info"
|
|
],
|
|
"description": "A style."
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"description": "A title."
|
|
},
|
|
"iconClass": {
|
|
"type": "string",
|
|
"description": "An icon class."
|
|
},
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"handler": {
|
|
"type": "string",
|
|
"description": "A handler class."
|
|
}
|
|
}
|
|
},
|
|
"handler": {
|
|
"type": "string",
|
|
"description": "A handler. Should extend `action-handler`. As of v8.1."
|
|
},
|
|
"initFunction": {
|
|
"type": "string",
|
|
"description": "An init method in the handler."
|
|
},
|
|
"actionFunction": {
|
|
"description": "An action method in the handler. As of v8.1.",
|
|
"type": "string"
|
|
},
|
|
"checkVisibilityFunction": {
|
|
"type": "string",
|
|
"description": "A handler function that checks whether the action is available. Should return a boolean value. As of v8.1."
|
|
},
|
|
"accessDataList": {
|
|
"$ref": "#/definitions/accessDataList"
|
|
},
|
|
"configCheck": {
|
|
"type": "string",
|
|
"description": "A config path to check. Path items are separated by a dot. If a config value is not empty, then the action is allowed. The `!` prefix reverses the check."
|
|
},
|
|
"hidden": {
|
|
"type": "boolean",
|
|
"description": "Hidden."
|
|
}
|
|
}
|
|
},
|
|
"actionDefs": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "A name."
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"description": "A translatable label."
|
|
},
|
|
"handler": {
|
|
"type": "string",
|
|
"description": "A handler class for the action."
|
|
},
|
|
"initFunction": {
|
|
"type": "string",
|
|
"description": "An init function in the handler."
|
|
},
|
|
"actionFunction": {
|
|
"type": "string",
|
|
"description": "An action function in the handler. As of v8.1."
|
|
},
|
|
"checkVisibilityFunction": {
|
|
"type": "string",
|
|
"description": "A handler function that checks whether the action is available. Should return a boolean value. Called on model sync."
|
|
},
|
|
"configCheck": {
|
|
"description": "A config path (separated by the .) to check whether the action is enabled. The ! prefix reverts.",
|
|
"type": "string"
|
|
},
|
|
"aclScope": {
|
|
"description": "A scope access to which is required for the action.",
|
|
"type": "string"
|
|
},
|
|
"acl": {
|
|
"description": "An acl action access to which is required for the action.",
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"read",
|
|
"edit",
|
|
"delete",
|
|
"stream"
|
|
]
|
|
},
|
|
"groupIndex": {
|
|
"type": "integer",
|
|
"minimum": -100,
|
|
"description": "A group index"
|
|
}
|
|
}
|
|
},
|
|
"accessDataList": {
|
|
"type": "array",
|
|
"description": "Frontend access rules.",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"enum": [
|
|
"create",
|
|
"read",
|
|
"edit",
|
|
"stream",
|
|
"delete"
|
|
],
|
|
"description": "An ACL action to check."
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"description": "A scope to check."
|
|
},
|
|
"portalIdList": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "A portal ID list. To check whether a user in one of portals."
|
|
},
|
|
"teamIdList": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "A team ID list. To check whether a user in one of teams."
|
|
},
|
|
"isPortalOnly": {
|
|
"type": "boolean",
|
|
"description": "Allow for portal users only."
|
|
},
|
|
"inPortalDisabled": {
|
|
"type": "boolean",
|
|
"description": "Disable for portal users."
|
|
},
|
|
"isAdminOnly": {
|
|
"type": "boolean",
|
|
"description": "Allow for admin users only."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"panel": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"description": "A name.",
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"description": "A translatable label.",
|
|
"type": "string"
|
|
},
|
|
"view": {
|
|
"description": "A view class.",
|
|
"type": "string"
|
|
},
|
|
"options": {
|
|
"description": "Options to be passed to the view.",
|
|
"type": "object"
|
|
},
|
|
"isForm": {
|
|
"description": "Whether the panel should display a form.",
|
|
"type": "boolean"
|
|
},
|
|
"notRefreshable": {
|
|
"description": "Disable the ability to refresh the panel.",
|
|
"type": "boolean"
|
|
},
|
|
"style": {
|
|
"description": "A style.",
|
|
"enum": ["default", "success", "warning", "danger"]
|
|
},
|
|
"hidden": {
|
|
"description": "Hidden by default.",
|
|
"type": "boolean"
|
|
},
|
|
"aclScope": {
|
|
"description": "A scope access to which is required for the panel being visible.",
|
|
"type": "string"
|
|
},
|
|
"acl": {
|
|
"description": "An ACL action access to which is required for the panel being visible.",
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"read",
|
|
"edit",
|
|
"delete",
|
|
"stream"
|
|
]
|
|
},
|
|
"accessDataList": {
|
|
"$ref": "#/definitions/accessDataList"
|
|
},
|
|
"reference": {
|
|
"type": "string",
|
|
"description": "A panel reference name. Panels are defined in app > clientRecord > panels. As of v9.0."
|
|
},
|
|
"disabled": {
|
|
"type": "boolean",
|
|
"description": "Disabled in the layout by default."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|