Hinzufügen von Kontextaktionen zu Listen

Freigegeben: Erweiterungspunkt

Wenn Sie Kontextaktionen zu Listen mit Elementen (z.B. Dokumenten und Akten) hinzufügen, werden diese in folgenden Sektionen angezeigt:

  • Ergebnisse im Feature Suche

  • Inhalt einer Akte

  • Ihre Favoritenlisten und die Liste der beobachteten Elemente im Feature Persönlicher Bereich

Klickt der Anwender auf eine Kontextaktion einer Liste, wechselt die Liste immer zunächst in den Auswahlmodus. Im Auswahlmodus kann der Anwender die gewünschten Elemente auswählen und die Kontextaktion ausführen.

Die App, die solche Erweiterungen bereitstellen möchte, muss unter der Linkrelation dmsobjectextensions eine HTTP-Antwort (Response) im JSON-Format zurückgeben, in der zu jeder Kontextaktion folgende Informationen bereitgestellt werden:

  • Kontext des Erweiterungspunkts: DmsObjectListContextAction

  • Aktivierungsbedingungen zum Anzeigen der Kontextaktion.

  • Anzeigename der Kontextaktion in den verfügbaren Übersetzungen.

  • Link zum Symbol der Kontextaktion.

  • Die Aktion, die ausgeführt werden soll, wenn die Auswahl vom Anwender abgeschlossen wurde. Geben Sie einen relativen Link an, der per HTTP GET von der DMSApp aufgerufen wird.

Jede Kontextaktion kann auch per HTTP POST-Anforderung für die URL /dms/extensions in der DMSApp erstellt werden. Die Anforderung darf nur von einem Benutzer mit Administrationsrechten gestellt werden. Wenn die Antwort der Anforderung erfolgreich ist, wird die Erweiterung in der DMSApp gespeichert und Sie erhalten eine Location-URL im Header der Antwort. Über die Location-URL kann ein Benutzer mit Administrationsrechten die Erweiterung in der DMSApp auch wieder löschen. Dazu muss eine HTTP DELETE-Anforderung an den Wert der Location-URL gesendet werden.

Beispiel

Das Beispiel zeigt, wie Sie die HTTP-Antwort der Linkrelation dmsobjectextensions gestalten, um eine Kontextaktion mithilfe eines Erweiterungspunkts DmsObjectListContextAction hinzuzufügen. Je Kontextaktion definieren Sie verschiedene Eigenschaften.

{
        "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"
        }]
}

Eigenschaft

Eigenschaften eines enthaltenen Objekts

Beschreibung

id

-

Legt den eindeutigen technischen Namen fest, der verwendet wird, um die Erweiterung von anderen Erweiterungen zu unterscheiden.

activationConditions

Pro Erweiterung teilt die Anwendung mit, unter welchen Aktivierungsbedingungen die Kontextaktion angezeigt werden soll. Diese Aktivierungsbedingungen werden vorab von der Anwendung mitgeteilt. Würden die Aktivierungsbedingungen nicht vorab mitgeteilt, müsste die DMSApp zu einem späteren Zeitpunkt, an dem der Anwender sich ein Element ansieht, andere Apps mit einer Netzwerkanforderung (Request) abfragen. Die Wartezeit für den Anwender würde dann stark steigen, wenn eine App nur verzögert auf diese Anfrage reagiert.

Eine Kontextaktion wird dann angezeigt, wenn alle Einzelbedingungen zutreffen. Enthält die Liste der Aktivierungsbedingungen keinen Eintrag, ist die Erweiterung generell aktiv.

Sie geben die Aktivierungsbedingungen als Array an.

propertyId

Gibt die ID der Eigenschaft an, die für die Aktivierungsbedingung geprüft wird. Mögliche Werte werden weiter unten beschrieben.

operator

Der Operator gibt an, auf welche Art und Weise eine Einzelbedingung ausgewertet wird.

Folgender Operator steht zur Verfügung:

or: Eine or-Bedingung ist dann erfüllt, wenn der aktuelle Wert der Eigenschaft einem der Werte entspricht. Die Groß-/Kleinschreibung wird nicht berücksichtigt.

notOr: Eine notOr-Bedingung ist dann erfüllt, wenn der aktuelle Wert der Eigenschaft keinem der Werte entspricht. Die Groß-/Kleinschreibung wird nicht berücksichtigt.

values

Gibt die Werte in Form eines Arrays an, die mit dem Wert der propertyId-Eigenschaft verglichen werden.

captions

Jede Kontextaktion teilt mit, unter welchem Namen sie angezeigt wird. Sie können auch verschiedene Sprachen berücksichtigen, wobei Sie die sprachabhängigen Namen als Array angeben.

Für eine vollständige Kompatibilität von Sprachpaketen geben Sie die Sprachen für folgende Cultures-Bezeichnungen an:

  • cs (Tschechisch)

  • da (Dänisch)

  • de (Deutsch)

  • en (Englisch)

  • es (Spanisch)

  • fr (Französisch)

  • hr (Kroatisch)

  • it (Italienisch)

  • nl (Niederländisch)

  • pl (Polnisch)

  • sr (Serbisch)

  • sk (Slowakisch)

  • zh-CN (Chinesisch (vereinfacht))

Wird vom Anwender eine Sprache angefordert, für die die erweiternde App keine Angabe zum lokalisierten (sprachspezifischen) Namen angegeben hat, wird nach folgenden Regeln eine alternative Sprache für die Anzeige bestimmt:

  • Wenn die Sprachkennung mit Regionscode (z.B. en-GB) nicht gefunden wird, findet eine Prüfung statt, ob die übergeordnete Sprache ohne Regionscode verfügbar ist (z.B. en). Im obigen Beispiel wird "Export List" für eine Anfrage der Sprache "en-GB" angezeigt, da "en" als Alternative verwendet wird.

  • Ist auch die übergeordnete Sprache nicht verfügbar, ist immer Englisch "en" ohne Regionscode die verwendete Alternative.

  • Ist auch "en" nicht als Alternative angegeben, wird die erste angegebene Sprache als Alternative angezeigt.

culture

Gibt die Sprachkennung an, zu der der Name der Kontextaktion definiert wird. Die Angabe enthält den Sprachcode (z.B. en) und optional einen zusätzlichen Regionscode (z.B. en-GB).

caption

Gibt den sprachabhängigen Namen der Kontextaktion an.

descriptions

(Optional) Jede Kontextaktion kann mitteilen, welche Beschreibung für die jeweilige Kontextaktion angezeigt wird. Diese Beschreibung wird als Tooltipp bei der Kontextaktion angezeigt. Verschiedene Sprachen werden wie in der Eigenschaft captions angegeben.

culture

Gibt die Sprachkennung an, zu der die Beschreibung der Kontextaktion definiert wird. Die Angabe enthält den Sprachcode (z.B. en) und optional einen zusätzlichen Regionscode (z.B. en-GB).

description

Gibt die sprachabhängige Beschreibung der Kontextaktion an.

context

-

Gibt den gewünschten Erweiterungspunkt an, zu dem die Kontextaktion hinzugefügt werden soll.

Geben Sie für Kontextaktionen zur Detailansicht folgenden Wert an:

DmsObjectListContextAction

uriTemplate

-

Sie definieren in der Eigenschaft uriTemplate die URL, die aufgerufen werden soll, wenn die Auswahl vom Anwender abgeschlossen wurde. Sie können Platzhalter definieren, um weitere Informationen zum aktuellen Kontext zu erhalten. Die Platzhalter werden beim Aufrufen der Erweiterung durch die tatsächlichen Eigenschaften ersetzt. Die Eigenschaften werden URL-codiert in die URI übernommen. Mögliche Platzhalter finden Sie weiter unten.

Anmerkung

Das Verwenden eines Platzhalters im Host-Teil der URL ist aus Sicherheitsgründen nicht erlaubt und führt zu einem Fehler.

iconUri

-

Gibt den Link zum Symbol an, das für die Kontextaktion angezeigt wird. Die Datei für das Symbol muss im SVG-Format vorhanden sein.

Die Füllfarbe des SVGs darf nicht festgelegt sein, damit die Füllfarbe über das Theming angepasst werden kann.

Wenn Sie eine eigene SVG-Datei als Symbol verwenden möchten, ist es empfehlenswert, die SVG-Datei im Ordner des Installationsverzeichnisses d.3one/dms/Client/Custom zu speichern.

target

-

(Optional) Gibt an, wo der Inhalt der Kontextaktion angezeigt werden soll.

Mögliche Werte:

  • dapi_navigate (Standardwert): Navigiert innerhalb der Shell-App zu einer neuen Main-Ressource mit dem Inhalt.

  • dapi_inner_supply: Öffnet einen Inner Supply (Anzeigebereich unterhalb der App-Leiste) mit dem Inhalt.

  • dapi_outer_supply: Öffnet einen Outer Supply (Anzeigebereich oberhalb der App-Leiste) mit dem Inhalt.

  • _blank: Öffnet einen neuen Tab im Browser mit dem Inhalt.

Verwenden Sie beim Definieren von Aktivierungsbedingungen bei Kontextaktionen zu Listen folgende Werte für die propertyId-Eigenschaft:

Bedingungskontext

propertyId

Beschreibung

Repository

repository.id

ID des Repositorys, wie in der d.ecs repo-App angegeben. Die Repository-ID finden Sie in der Detailsektion des Features d.3 Repositorys (https://<Basisadresse>/repo/repositories/). Sie erhalten diese ID, indem Sie entweder die URL nutzen oder im Startmenü auf Alle Programme > d.velop > d.3one > Repository-Konfiguration klicken.

Im Kapitel Ermitteln eines Repositorys können Sie nachlesen, wie Sie die ID zu einem Repository programmatisch ermitteln.

Benutzer

user.d3.group_id

Aktivierungsbedingung: ID einer d.3-Benutzergruppe (maximal acht Zeichen), in der der aktuell angemeldete Anwender Mitglied ist.

user.idp.group_id

Aktivierungsbedingung: GUID einer Benutzergruppe der identity provider-App, in der der aktuell angemeldete Anwender Mitglied ist.

Für eine Kontextaktion vom Typ DmsObjectListContextAction können Sie folgende Eigenschaften als Platzhalter in der uriTemplate-Eigenschaft verwenden:

Eigenschaft

Beschreibung

dmsobjectlist.url

Eine URL-codierte URL, unter der die Liste der vom Anwender ausgewählten Elemente (Dokumente und Akten) abgefragt werden kann. Als HTTP-Antwort erhalten Sie diese URL als JSON-Array selectionList, das zu jedem Element folgende Informationen zurückgibt:

  • _links.self.href: Relative URL zum Element, mit der Sie weitere Detailinformationen zum Element abrufen können.

  • id: Dokument-ID des Elements.

  • caption: Titel des Elements.

Beispiel:

selectionList

 {
        "selectionList": 
    [{
                "_links": {
                        "self": {
                                "href": "/dms/r/e632f767-5cfa-538d-ab55-6756c36a74c9/o2/A0000000001"
                        }
                },
                "id": "A0000000001",
                "caption": "Title of the item"
        },
        ...
        ]
}

repository.id

ID des Repositorys, wie in der d.ecs repo-App angegeben. Die Repository-ID finden Sie in der Detailsektion des Features d.3 Repositorys (https://<Basisadresse>/repo/repositories/). Sie erhalten diese ID, indem Sie entweder die URL nutzen oder im Startmenü auf Alle Programme > d.velop > d.3one > Repository-Konfiguration klicken.

Im Kapitel Ermitteln eines Repositorys können Sie nachlesen, wie Sie die ID zu einem Repository programmatisch ermitteln.

user.d3.group_id

Platzhalter uriTemplate: Liste der IDs der d.3-Benutzergruppen (jeweils maximal acht Zeichen) als Array im JSON-Format, in denen der aktuell angemeldete Anwender Mitglied ist.

user.idp.group_id

Platzhalter uriTemplate: Liste der GUIDs der Benutzergruppen der identity provider-App als Array im JSON-Format, in denen der aktuell angemeldete Anwender Mitglied ist.