Replacing the content of the "View" perspective in the detail view

Released: Extension point

You can replace the content of the View perspective for the detail view for an item (e.g. a document or dossier) so that you can display your own preview under certain conditions.

The app that you want to provide such an extension must return an HTTP response in JSON format under the dmsobjectextensions link relation. This response must provide the following information for each extension point of the View perspective:

  • Extension point context: DmsObjectDetailsPreview

  • Activation condition for displaying your preview.

  • The URL for the preview that you want to display when the user opens the View perspective in the detail view and meets your predefined activation conditions. 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 an extension for the DmsObjectDetailsPreview extension point. You define different properties for each extension.

{
        "extensions": [
        {
        "id": "myapp.viewer",
        "activationConditions": [{
            "propertyId": "dmsobject.mainblob.content_type",
            "operator": "or",
            "values": [
                                "text/plain",
                "application/pdf"
                        ]
        }],
        "context": "DmsObjectDetailsPreview",
        "uriTemplate": "/myapp/preview?layer0={dmsobject.mainblob.content_url}"        
    }]
}

Property

Properties of a contained object

Description

id

-

Specifies the unique technical name used to differentiate the extension from other extensions.

activationConditions

For each extension, the application notifies you of which activation conditions are used to display the extension of the View perspective. 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.

An extension 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.

propertyId

Specifies the ID of the property that is tested for the activation condition. The available values are described in more detail below.

operator

The operator specifies how a sub-condition is evaluated.

The following operator is available:

or: An or condition is fulfilled if the current value of the property corresponds to one of the values. Capitalization is not taken into account.

notOr: A notOr condition is fulfilled if the current value of the property does not correspond to any of the values. Capitalization is not taken into account.

values

Specifies the values in the form of an array that is compared with the value of the propertyId property.

context

-

Specifies the extension point to which you want to add the extension.

Enter the following value for extensions of the View perspective in the detail view:

DmsObjectDetailsPreview

uriTemplate

-

In the uriTemplate property, you define the URL that you want to be called when the user opens the View perspective in the detail view. You can define placeholders to receive more information about the current context. The placeholders are replaced by the actual properties when the extension is called. The properties are transferred to the URI with URL encoding. You can find the available placeholders below. 

Note

Using a placeholder in the host part of the URL is not permitted for security reasons and leads to an error.

While defining extensions that replace the content of the View perspective, you can use the following values in the following areas:

  • Defining activation conditions for the propertyId property

  • Defining placeholders in the uriTemplate property

Topic

Value

Description

Repository

repository.id

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 (https://<Base address>/repo/repositories/). You can obtain this ID either by using the URL or clicking All Programs > d.velop > d.3one > Repository Configuration in the Start menu.

In the chapter Determining a repository, you can learn how to determine the ID for a repository with the program.

User

user.d3.group_id

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.

Placeholder uriTemplate: List of IDs of the d.3 user groups (each a maximum of eight characters) of which the user currently logged in is a member as an array in JSON format.

user.idp.group_id

Activation condition: GUID of an identity provider app user group of which the user that is currently logged in is a member.

Placeholder uriTemplate: List of GUIDs of the identity provider app user groups of which the user currently logged in is a member as an array in JSON format.

Property for the item

dmsobject.property_editor

Editor of the item.

dmsobject.property_owner

Owner of the item.

dmsobject.property_filename

File name for the item.

dmsobject.property_filetype

File type for the item.

dmsobject.property_document_number

Document number of the item.

dmsobject.property_creation_date

Creation date of the item.

dmsobject.property_size

File size of the item.

dmsobject.property_state

Document status of the item.

Possible values:

  • Archived: The element has the Archive status.

  • VerificationInProgress: The element has the Verification status.

  • Processing: The element has the Processing status.

  • Released: The element has the Released status.

dmsobject.property_variant_number

Variant number of the item.

dmsobject.property_access_date

Access date for the item.

dmsobject.property_remark

Remarks about the item.

dmsobject.property_last_alteration_date

Alteration date of the item.

dmsobject.property_caption

Title for the item.

dmsobject.property_category

Item category ID.

dmsobject.property_category_uuid

UUID of the item category.

dmsobject.property_colorcode

Color marking for the item.

dmsobject.property_document_class

Activation condition: A document class ID for the item.

Placeholder uriTemplate: List of document class IDs for the item as an array in JSON format.

dmsobject.property_document_id

Document ID of the item.

dmsobject.property_display_version_id

Unique ID for the display version for the DMSApp.

dmsobject.property_version_id

Unique ID for the current version for the DMSApp.

dmsobject.type

The item type.

Possible values:

  • Document: The item is an item of the "Document" type.

  • Dossier: The item is an item of the "Dossier" type.

dmsobject.<NUMBER|UUID>

For the <NUMBER|UUID> placeholder, enter the advanced property ID or UUID as it is defined in the d.3 repository.

If the d.3 property is a multi-value property, the placeholder will be replaced by the first or the first filled value of the property (depending on the d.3 repository configuration). If there are multiple values for the multi-value property, three dots (...) are added to the value returned.

dmsobject.fieldposition.<NUMBER>

For the <NUMBER> placeholder, enter the database position of the advanced property.

Note

We strongly recommend using the advanced property ID (dmsobject.<NUMBER>). Use the database position only in exceptional cases when the advanced property ID is not available to you or can only be determined in a very time-consuming process.

If the d.3 property is a multi-value property, the placeholder will be replaced by the first or the first filled value of the property (depending on the d.3 repository configuration). If there are multiple values for the multi-value property, three dots (...) are added to the value returned.

dmsobject.self_url_relative

Relative URL of the item.

Original file for the item

dmsobject.mainblob.content_type

MIME type of the original file (e.g. text\plain or image\jpeg).

dmsobject.mainblob.content_url

(Obsolete) Absolute URL of the original file. If the user does not have the authorization to export the document, then this parameter is empty.

dmsobject.mainblob.content_url_relative

Relative URL of the original file. If the user does not have the authorization to export the document, then this parameter is empty.

dmsobject.mainblob.id

ID of the original file if the user has the right to export the original file.

Dependent files for the item

dmsobject.dependentblobs

List of the IDs of dependent files if the user has the right to export the dependent file.

dmsobject.dependentblob.ID.content_url

(Obsolete) Absolute URL of the dependent file with the ID from dmsobject.dependentblobs.

dmsobject.dependentblob.ID.content_url_relative

Relative URL of the dependent file with the ID from dmsobject.dependentblobs.