Adding context actions to lists
Released: Extension point
If you add context actions to lists with items (e.g. documents and dossiers), they are displayed in the following sections:
Results in the Search feature
Content of a dossier
Your lists of favorites and watched items in the Personal Area feature
If the user clicks a context action in a list, the list always first switches to selection mode. In selection mode, the user can select the desired items and execute the context action.
The app that you want to provide such extensions must return an HTTP response in JSON format under the dmsobjectextensions
link relation. This response must provide the following information for each context action:
Extension point context:
DmsObjectListContextAction
Activation condition for displaying the context action.
Display name for the context action in the available translations.
Link to the context action icon.
The action to be performed once the user has completed the selection. Specify a relative link that is called from DMSApp using
HTTP GET
.
Any context action can also be created via HTTP POST
requestfor the URL /dms/extensions
in the DMSApp. The request must be made by a user with administration rights only. If the request response is successful, the extension is stored in the DMSApp and you get a location
URLin the response header. Via the location
URL, a user with administration rights can also delete the extension in the DMSApp. To do this, an HTTP DELETE
requestmust be sent to the Location
URLvalue.
Example
The example shows how you arrange the HTTP response of the dmsobjectextensions
link relation to add a context action using the DmsObjectListContextAction
extension point. You define different properties for each context action.
{ "extensions": [ { "id": "myapp.exportList", "activationConditions": [{ "propertyId": "repository.id", "operator": "or", "values": ["e632f767-5cfa-538d-ab55-6756c36a74c9"] }], "captions": [{ "culture": "de", "caption": "Exportieren" }, { "culture": "en", "caption": "Export" }, { "culture": "en-GB", "caption": "Exportin Great Britain" }], "descriptions": [{ "culture": "de", "description": "Liste als CSV exportieren" }, { "culture": "en", "description": "Export list as CSV" }, { "culture": "en-GB", "description": "Export list as CSV in Great Britain" }], "context": "DmsObjectListContextAction", "uriTemplate": "/myapp/dosomething?url={dmsobjectlist.url}", "iconUri": "/myapp/images/export-list.svg", "target": "dapi_navigate" }] }
Property | Properties of a contained object | Description |
---|---|---|
| - | Specifies the unique technical name used to differentiate the extension from other extensions. |
| For each extension, the application notifies you of which activation conditions are used to display the context action. These activation conditions are reported by the application in advance. If the activation conditions were not reported in advance, DMSApp would have to query other apps with a network request at a later time when the user is viewing an item. The waiting time for the user would then increase significantly if an app only responds to this request with a delay. A context action is displayed if all the sub-conditions are met. If the list of activation conditions does not contain an entry, the extension is generally active. You specify the activation conditions as an array. | |
| Specifies the ID of the property that is tested for the activation condition. The available values are described in more detail below. | |
| The operator specifies how a sub-condition is evaluated. The following operator is available: or: An notOr: A | |
| Specifies the values in the form of an array that is compared with the value of the | |
| Each context action notifies you of the name under which it is displayed. You can also include different languages. In this case, the language-dependent names are specified as an array. To ensure the language packages are fully compatible, specify the languages for the following
If the user requests a language for which the extension app does not have any specification for the localized (language-specific) name, an alternative language is determined for the view based on the following rules:
| |
| Specifies the language ID for which the name of the context action is defined. The specification includes the language code (e.g. en) and optionally an additional regional code (e.g. en-GB). | |
| Specifies the language-dependent name of the context action. | |
| (Optional) Each context action can indicate which description is displayed for that context action. This description is displayed as a tooltip for the context action. Different languages are specified as in the captions property. | |
| Specifies the language ID for which the description of the context action is defined. The specification includes the language code (e.g. en) and optionally an additional regional code (e.g. en-GB). | |
| Specifies the language-dependent description of the context action. | |
| - | Specifies the extension point to which you want to add the context action. Specify the following value for context actions for the detail view:
|
| - | In the NoteUsing a placeholder in the host part of the URL is not permitted for security reasons and leads to an error. |
| - | Specifies the link to the icon that is displayed for the context action. The icon file must be available in SVG format. The color of the SVG's fill must not be specified, so that the fill color can be adjusted by using the theming. If you want to use a custom SVG file for a symbol, we recommend saving the SVG file to the installation directory |
| - | (Optional) Specifies where the content of the context action should be displayed. Possible values:
|
When defining activation conditions for context actions for lists, use the following values for the propertyId
property:
Condition context | propertyId | Description |
---|---|---|
Repository |
| ID of the repository as specified in the d.ecs repo app. You can find the repository ID in the detail section of the d.3 repositories feature ( In the chapter Determining a repository, you can learn how to determine the ID for a repository with the program. |
User |
| Activation condition: ID of a d.3 user group (maximum of eight characters) of which the user that is currently logged in is a member. |
| Activation condition: GUID of an identity provider app user group of which the user that is currently logged in is a member. |
For a context action of the DmsObjectListContextAction
type, you can use the following properties as placeholders in the uriTemplate
property:
Property | Description |
---|---|
| A URL-encoded URL under which the list of items selected by the user (documents and dossiers) can be queried. As an HTTP response, you receive this URL as a
Example: selectionList { "selectionList": [{ "_links": { "self": { "href": "/dms/r/e632f767-5cfa-538d-ab55-6756c36a74c9/o2/A0000000001" } }, "id": "A0000000001", "caption": "Title of the item" }, ... ] } |
| ID of the repository as specified in the d.ecs repo app. You can find the repository ID in the detail section of the d.3 repositories feature ( In the chapter Determining a repository, you can learn how to determine the ID for a repository with the program. |
| Placeholder |
| Placeholder |