Skip to main content

Das Objekt-Info-Widget

Die Komponente object-information-card-widget (kurz: Objekt-Info-Widgets) wird verwendet, um individuelle Eigenschaftswerte und Objektdetails unabhängig von der Informationsart anzuzeigen. So zum Beispiel:

  • statische Texte

  • Texte mit Platzhaltern

  • Avatare und Icons

  • individuelle UI

  • Komponenten (z. B. für die Darstellung von Dynamischen Feldern)

  • systeminterne und externe Hyperlinks

Zudem können

  • Bedingungen angegeben werden, welche zutreffen müssen, damit eine Information angezeigt wird.

  • individuelle CSS-Style-Angaben für Icons und Texte angegeben werden.

Objekt-Info-Widgets sind beispielsweise das Widget Kontaktinformationen oder die Ticketinformationen in den Ticketdetails (als Teil der Lane).

object-info-widget_beispiel.png

Abb.: Das Widget "Kontakt Informationen" als Beispiel für ein Objekt-Info-Widget

Die Widgets können in allen Kontexten eingesetzt werden, die Grenzen liegen hier bei der Platzhalterunterstützung.

Ein Konfigurationsbeispiel finden Sie unter: Ein Objekt-Info-Widget konfigurieren

Weiterführende Informationen zum Objekt-Info-Widget im KIX GitHub: https://github.com/kix-service-software/kix-frontend/blob/master/doc/components/widgets/object-information-card-widget.md

Hinweise für die Anzeige der Inhalte im Widget

  • Liegen die mit der Konfiguration angeforderten Informationen zur Laufzeit nicht vor, werden diese Informationen nicht angezeigt.

  • Ist der Kontakt eines Tickets nicht bekannt, werden die Links "Neue Organisation" und "Neuer Kontakt" angezeigt.

  • Ist der Kontakt eines Tickets bekannt, werden die Links "Organisation öffnen" und "Kontakt öffnen" angezeigt.

Die Konfiguration eines object-information-card-widgets enthält u. a. folgende Attribute (Auswahl):

Attribut/Keyword

Beschreibung

avatar {...}

Konfiguration des Avatar (z. B. Kontaktfoto).

Es können mehrere Avatare konfiguriert werden.

Erwartet die Datentypen:

  • string: "kix-icon-gear" oder "fas fa-phone-volume"

  • ObjectIcon : der dem Kontakt/Organisation hinterlegte Avatar (Icon aus /system/objekticons)

conditions [...]

Definiert die Bedingungen, unter denen ein Wert angezeigt werden soll.

Bedingungen können auch auf Dynamische Felder angewendet werden.

configuration {...}

Enthält den Konfigurationsblock, z.B:

"configuration": {
    "id" : "1632723315884",
    "name" : "1632723315884",
    "type" : "null",
    "avatar" : {...},
    "rows" : [...]
  }
}

configurationId

ID der Konfiguration

Beispiel: "name-of-my-own-widget"

fallbackIcon 

Icon, welches angezeigt wird, wenn das unter icon angegebene Icon nicht angezeigt werden kann

z. B. "kix-icon-man"

icon {...} 

Icon, welches einer Information vorangestellt wird

Beispiel: "kix-icon-men"

Definiert auch das Icon neben dem Widget-Titel und auf der Schaltfläche zum Ein- und Ausblenden des Widgets.

Datentypen: string | ObjectIcon

iconStyle

CSS-Style zur Formatierung des Icons

Beispiel: "iconStyle": "color:#ff0000"

instanceId

Legt eine Instanz des Widgets an.

Beispiel: "name-of-my-own-widget"

linkSrc

Externe Verlinkung von URLs, KIX-URLs, E-Mail-Adressen, Telefonnummern, Web-CRM etc.

Datentyp: string

margin

Erzeugt einen Abstand nach oben wenn true

Mögliche Werte: true | false

minimizable

Definiert, ob das Widget minimierbar ist.

Mögliche Werte: true | false

minimized

Definiert, ob das Widget minimiert dargestellt wird.

Mögliche Werte: true | false

name

Name des Widgets

Zum Beispiel: "my Own Widget"

operator:

Operator in Bedingungen (conditions)

Definiert, wie Wert und Eigenschaft einer Bedingung verglichen werden.

Mögliche Operatoren sind:

permissions:

Rollen/Berechtigungen für die Anzeige

"permissions": [
  {
    "target": "system/slas",
    "permissions": [
        2
    ],
    "OR": false,
    "permissionCheckMaxLayer": "Resource",
    "value": 2
  }
],

Hinweis

Widgets, die in einen Kontext integriert sind, haben den Parameter permissions. Mit diesem können Sie festlegen, welche Berechtigungen ein Benutzer haben muss, um das Widget sehen zu können.

Der Parameter roleIds setzt diese Berechtigungen nicht außer Kraft, sondern ergänzt/spezifiziert sie.

Das heißt, wenn ein Benutzer die in den permissions angegebene Rolle hat, kann er das Widget sehen. Wenn zusätzliche Berechtigungen (roleIds) definiert sind, die dies verbieten, sieht der Benutzer das Widget nicht. Im Zweifelsfall müssen beide übereinstimmen.

renderHTML

Definiert, ob der Text als HTML gerendert wird.

Insbesondere relevant, wenn Sie KIX-Platzhalter mit Suffix _HTML verwenden (z. B. <KIX_TICKET_DynamicField_DFChecklist_HTML>).

  • Wenn true: Der Inhalt wird als HTML dargestellt

  • Wenn false: Der Inhalt wird als Text dargestellt.

{
  "icon": null,
  "iconStyle": "",
  "text": "{0}",
  "textPlaceholder": ["<KIX_TICKET_DynamicField_xxx_HTML>"],
  "renderHTML": true,
  "linkSrc": null,
  "roleIds": []
}
darstellung_html.png

Abb.: HTML-Darstellung einer Checkliste in den Ticketdetails

roleIds

Optional: Liste der Berechtigungsrollen (IDs)

Beispiel: "roleIds": [5,7]

Wenn Berechtigungsrollen gespeichert sind, muss der aufrufende Benutzer mindestens einer dieser Rollen zugeordnet sein, um das Widget oder den Kontext sehen zu können.

Siehe auch: Berechtigungen für Konfigurationen festlegen

routingConfiguration{...}

Interne Verlinkung, z.B. auf Kontaktdetails

routingObjectId

ID des Objekts zu dem verlinkt werden soll (s. Interne Verlinkung)

Kann Platzhalter enthalten, z.B. <KIX_CONTACT_ID>

Datentyp: string

rows {...}

Rows sind eine Liste der Zeilen (Inhaltsblock).

Enthält alle Informationen, die im Widget angezeigt werden sollen.

Hat folgende Eigenschaften:

  • values - Werte der Zeile

  • title - Zeilentitel, fixe linke Beschriftung

  • style - individuelles CSS Styling für die Zeile

  • separator - horizontale Trennlinie für die Zeile

separator

Erzeugt einen horizontalen Trennstrich, wenn true

Mögliche Werte: true | false

text

Informationstext; kann KIX-Platzhalter enthalten

Datentyp: string

textPlaceholder

Angabe eines Platzhalters für den anzuzeigenden Text; kann KIX-Platzhalter enthalten.

Geben Sie bei Verwendung von Platzhaltern mit Suffix _HTML zusätzlich den Parameter renderHTML an, damit der HTML-Inhalt auch als solcher in der GUI dargestellt wird.

textStyle

CSS-Styles zur Textformatierung (s. Text Styles )

Beispiel: "textStyle": "color:#ff0000"

title

Titel des Widgets im Frontend; kann KIX Platzhalter enthalten

Ein vorangestelltes Translatable# macht den Titel übersetzbar. Ein entsprechen des Pattern muss dazu im Menü Internationalisierung > Übersetzungen hinterlegt sein.

Beispiel: "title": "Translatable#Simple Time Accounting"

type

Art des integrierten Elements

Mögliche Werte:

  • Widget - einfaches Karten-Widget wie "Kontakt Informationen"

  • TableWidget - Tabellen-Widget wie "Tickets zu Kontakt"

values [...] 

Values sind eine Liste von Gruppen für die Anzeige von Werten (icon, text, linkSrc, routingConfiguration, etc.). Sie sind eine Eigenschaft von rows.Values

"values": [
  {
    "icon": null,
    "text": "",
    "linkSrc": null
  }
]

Weiterführende Informationen: Konfigurationsbeispiele für "value"

Jedes Widget hat eine eigene individuelle Konfiguration. Sie ist wie folgt aufgebaut:

{
    "avatar": {string | ObjectIcon},
    "rows": [
      { //Inhalt einer Zeile
        "separator": true | false,
	"values": [
	  {
	    "icon": string | ObjectIcon,
	    "text": string,
	    "linkSrc": string,
	    "routingConfiguration": RoutingConfiguration | DialogRoutingConfiguration,
            "routingObjectId": string
            "roleIds":[]
          }
	]
      }
      { //optionaler Inhalt weiterer Zeilen
        "separator": true | false,
	"values": [...]
      }
    ]
}
Objekt-Info-Widget_Grundstruktur.png

Abb.: Grundstruktur des eines Objekt-Info-Widgets (hier: Widget Kontakt Informationen in den Ticketdetails)

Die Konfiguration eines Objekt-Info-Widgets kann spezifische Einstellungen (Unterkonfigurationen) für den anzuzeigenden Inhalt enthalten. Als Beispiel dient nachfolgend das Sidebar-Widget Kontaktinformationen.

Der Avatar ist ein Foto oder Icon einer Kontaktperson oder Organisation. Dieses kann beim Anlegen oder Bearbeiten eines Kontakts bzw. einer Organisation hinterlegt werden.

objekt-info-widget_avatar.png

Abb.: Der Avatar im Widget "Kontakt Informationen"

Initial erhält der Avatar eine fixe Höhe von 98px, die Breite wird entsprechend dem Bildformat angepasst. Wir empfehlen die Verwendung quadratischer Bilder oder Bilder im Hochformat.

Ist am Kontakt bzw. an der Organisation ein Avatar hinterlegt, wird dieser im Widget automatisch angezeigt. Ist dies nicht gewünscht, können Sie den Codeblock "avatar:{...}" im Quellcode des Widgets entfernen.

Möchten Sie einen Avatar bspw. in ein eigenes Widget integrieren, kopieren Sie dazu den nachfolgenden Codeblock in den "configuration":{...} "-Block des Widget-Inhalts. Erlaubt sind die Datentypen:

  • string (z. B. "avatar": "kix-icon-gear" )

  • ObjektIcon (Icon aus /system/objecticons)

Standard-Codeblock für den Avatar:

"avatar":
  {
    "displayValues": [],
    "KIXObjectType": "OBJECT_ICON",
    "ObjectId": "",
    "Object": "Contact",
    "ContentType": null,
    "Content": null,
    "fallbackIcon": "kix-icon-man"
},

Rows sind die Zeilen, welche die anzuzeigenden Informationen enthalten. Jede Zeile innerhalb des Rows-Block beginnt und endet mit einer geschweiften Klammer. Innerhalb der einzelnen Zeilen befinden sich ein oder mehrere Values, die in eckige Klammern gesetzt werden. Die Definition der einzelnen Werte werden wiederum in geschweifte Klammern gesetzt.

Beispielcode: Aufbau der Zeilen (rows) mit Gruppen und Werten

{
    "rows": [
      {
        "title" : "Translatable#Some Text"
        "style": "",
        "separator":false,
        "roleIds": [], 
        "values": [
          [
	    {Wert 1},
	    {Wert 2}
          ],
	  [
	    {Wert 3},
            {Wert 4},
            {Wert 5}
	  ]
	]
      },
      {
        ...
	Weitere Zeilen mit Werten
        ...
      }
    ]
}

Attribute

Beschreibung

title

Übersetzbarer Zeilentitel

Wird dem Titel das Präfix Translatable# vorangestellt, kann KIX den Titel übersetzen.

Beispiel: "title": "Translatable#Assignees"

Eventuell müssen Sie im Menü Internationalisierung > Übersetzungen ein entsprechendes Pattern hinterlegen.

style

Optional: Angabe einer CCS Formatierung

Beispiel: "style": "color:#ff0000;font- style:italic"

separator

Optional: Horizontale Trennlinie zwischen den Zeilen

Beispiel: "separator": true | false

roleIds

Optional: Liste der Berechtigungsrollen (IDs)

Beispiel: "roleIds": [5,7]

Wenn hier Berechtigungsrollen angegeben sind, muss der aufrufende Benutzer mindestens einer dieser Rollen zugeordnet sein, um die Zeile sehen zu können.

s. auch: Berechtigungen für Konfigurationen festlegen

values

Array der anzuzeigenden Werte, z. B.:

"values": [
    [ 
        { 
            "componentId": "object-avatar-label", 
            "componentData": {...}, 
            "routingConfiguration": {...}, 
            "routingObjectId": "<KIX_TICKET_OrganisationID>" 
        }, 
        { 
            "componentId": "object-avatar-label", 
            "componentData": {...} 
        }
    ],
    [...], 
]

Wenn Sie in den Programmoberflächen (GUI) Dynamische Felder einbinden, müssen Sie eine Komponente (ComponentID) angeben. Jede Komponente hat individuelle Parameter, die unter ComponentData angegeben werden. Welche Parameter erwartet werden, finden Sie in den Beschreibungen der einzelnen Feldtypen.

Sie können Bedingungen definieren. Beispielsweise um festzulegen, welche Bedingungen erfüllt sein müssen, damit eine Information im Widget angezeigt wird.

Bedingungen (conditions) haben folgende Eigenschaften:

  • property: Objekt, welches geprüft wird

    Hinweis: Das Attribut propertyValue wird nicht mehr unterstützt. Stattdessen wird nur noch property verwendet.

  • value: Wert, auf den das unter property angegebene Objekt geprüft wird

  • operator: Vergleichsoperator

Im folgenden Codebeispiel wird im Widget ein zusätzlicher Text VIP Kontakt in roter Schrift eingeblendet, wenn das Kommentarfeld des Kontakts den Eintrag "VIP" enthält. Fehlt im Kommentarfeld dieser Eintrag oder ist der Eintrag im Kommentar nicht mit der Zeichenkette "VIP" identisch, so wird diese Zeile nicht im Widget angezeigt.

{
   "text": "Translatable#VIP Contact",
   "textStyle": "font-weight:bold;margin-bottom:0.5rem;color:red",
   "conditions": [
     {
       "property": "<KIX_CONTACT_Comment>",
       "operator": "EQ",
       "value": "VIP"
     }
   ]
}

Die Bedingungen können auf Basis von Objekteigenschaften oder auf Basis von Werten definiert werden. Referenziert die property auf eine existierende Eigenschaft, dann wird der Wert dieser Eigenschaft verwendet. Referenziert die property auf eine nicht existierende Eigenschaft, dann wird versucht, den Platzhalter zu ersetzen.

Der unter property angegebene Wert ist stets der Ausgangswert gegen den geprüft wird, z. B.:

  • "DynamicFields.myDynamicFieldName" - Wert eines Dynamischen Feldes

  • "QueueID" - Angabe einer Eigenschaft, die bspw. am Ticket existiert

  • "<KIX_TICKET_QueueID>" - Platzhalter, welcher aufgelöst wird

  • "beliebiger Wert" - Angabe einer festen Zeichenkette

  • "beliebiger Wert" <KIX_TICKET_QueueID> - gemischte Angaben, bestehend aus beliebigem Text und KIX Platzhalter

Das Ausblenden von Leerwerten ist abhängig von der verwendeten Anzeigekomponente und nur bedingt möglich:

  • Ist der konfigurierte Text leer, so wird nichts angezeigt.

  • Wird eine Komponente verwendet, so obliegt es der Komponente.

  • Hat eine Gruppe keine Werte, so wird diese auch nicht eingebunden.

  • Hat eine Zeile keine Gruppen, so wird diese auch nicht eingebunden.

Mit linkSrc können Sie auf externe URLs, wie KIX URLs, E-Mail-Adressen, Telefonnummern oder Web-CMS verlinken. Es ist somit u.a. möglich, direkt aus dem Widget heraus

  • die URL zu einem externen Web-CMS aufzurufen

  • eine bestimmte Seite im KIX aufzurufen (z. B. ein Suchergebnis, ein bestimmtes Ticket oder eine Ansicht)

  • die Website des Kunden aufzurufen

  • auf die E-Mail-Adresse und Telefonnummer zu verlinken, um sie mit einem externen Kommunikationsprogramm zu öffnen

object-info-widget_externerLink.png

linkSrc ist eine Eigenschaft von values. Geben Sie unter "linkSrc": die Verlinkung an, z. B.:

Link-Typ

Beispiel

URL

"linkSrc" : "http://www.domainname.de/optionalerPfad"

KIX URL

"linkSrc": "https://kixURL.de/search?search=%7B%22objectType%22:% [ ... ] name%22:null%7D"

E-Mail (statisch)

"linkSrc" : "mailto:max.mustermann@company.com"

E-Mail (dynamisch mit Platzhalter)

"linkSrc" : "mailto:<KIX_CONTACT_Email>"

Telefon (statisch)

"linkSrc" : "tel:+49123456789"

Telefon (dynamisch mit Platzhalter)

"linkSrc" : "tel:<KIX_CONTACT_Phone>"

{
    "margin": false,
    "values": [
      {
        "icon": null,
	"text": "",
	"linkSrc": "tel:+4998765432-0"
      }
    ]
},

Icons sind Symbole, welche einer Information und dem Widget-Titel vorangestellt werden können. Sie sind eine Eigenschaft von values.

object-info-widget_icon.png

Icons unterstützen auch KIX Platzhalter, sodass diese dynamisch verwendet werden können.

Wird dem Widget-Titel ein Icon vorangestellt, ist dies auch auf der Schaltfläche zum Ein- und Ausblenden der Sidebar zu finden. Icons werden entweder vom Datentyp string oder ObjectIcon eingebunden:

  • ObjectIcon

    Verwenden Sie diesen Datentyp, um den an einem Kontakt, Nutzer oder Organisation hinterlegten Avatar (Bild/Icon) anzuzeigen.

    icon": {
        "displayValues": [],
        "KIXObjectType": "OBJECT_ICON",
        "ObjectId": "<KIX_ORG_ID>",
        "Object": "Organisation",
        "ContentType": null,
        "Content": null
      },
  • string

    Verwenden Sie diesen Datentyp, um ein KIX-Icon oder ein anderes Font-Icon (z. B. fontawesome.com) anzuzeigen.

    {
        "margin": true,
        "values": [{
            "icon": "far fa-address-card",
                [...]
            }]
    },
    {
        "margin": true,
        "values": [{
            "icon": "kix-icon-mail",
                [...]
            }]
    },

Sie können interne Verlinkungen erstellen, um direkt aus dem Widget heraus bspw. die Organisationsdetails oder den Dialog zum Anlegen eines neuen Assets zu öffnen.

object-info-widget_internalLink.png

Die Konfiguration erfolgt über die Angaben von "routingConfiguration": {...}.

Mit "routingObjectId": können Sie die ID für das Objekt angeben, worauf verlinkt werden soll. Hier können Sie auch Platzhalter verwenden.

Sowohl routingConfiguration als auch routingObjectID sind Eigenschaften von values.

"routingConfiguration":
  {
    "contextId": "contact-details",
    "objectType": "Contact",
    "contextMode": "DETAILS",
    "objectIdProperty": "ID",
    "history": false,
    "resetContext": true,
    "contextType": "MAIN"
  },
"routingObjectId": "<KIX_CONTACT_ID>"

Der Text ist eine Eigenschaft von values. Er definiert einen im Widget anzuzeigenden Text. Die Verwendung von Platzhaltern wird unterstützt.

object-info-widget_text.png

Beispiel des Widgets Kontaktinformationen bildet der Text den Namen des Kontakts:

"values":[
  [
    {
      "icon": null,
      "text": "<KIX_CONTACT_Firstname> <KIX_CONTACT_Lastname>",
      "linkSrc": null,
      "roleIds": []
    },
  ]
]

Der Parameter textStyle ist eine Eigenschaft von values. Er dient dem Formatieren von Text. Somit können Sie bspw. definieren, dass unter bestimmten Voraussetzungen ein Text in roter Schrift angezeigt wird. (s. auch Bedingungen).

object-info-widget_textSyle-freitext.png
{
    "text": "Das ist ein Freitext (mit Platzhalter) Owner: {0} & Responsible: {1}",
    "textPlaceholder": [
        "<KIX_TICKET_Owner>",
        "<KIX_TICKET_Responsible>"
    ],
    "textStyle": "font-weight:bold;font-style:italic;color:red;"
    "conditions": [
        {
            "property": "OwnerID",
            "operator": "NE",
            "value": 1,
            "useObjectService": false,
            "useDisplayValue": false
        }
    ]
}

Siehe auch Konfiguration in ticket-details-contact-card-widget

object-info-widget_textSyle-freitext.png
{
  "avatar": [],
  "rows": [
    {
      "style": "",
      "separator": true,
      "values": [
        [
          {
            "icon": "kix-icon-man",
            "text": "Das ist ein Freitext (mit Platzhalter) Owner: {0} & Responsible: {1}",
            "textPlaceholder": [
              "<KIX_TICKET_Owner>",
              "<KIX_TICKET_Responsible>"
            ],
            "textStyle": "font-weight:bold;font-style:italic;color:red;"
          }
        ]
      ]
    }
  ]
}

Avatar mit Eigenschaft und Bezeichnung

object-info-widget_values_componente.png
{
  "componentId": "object-avatar-label",
  "componentData": {
    "property": "OrganisationID"
  }
}
object-info-widget_values_componente-icon.png
{
  "componentId": "icon",
  "componentData": {
     "icon": {
        "displayValues": [],
        "KIXObjectType": "OBJECT_ICON",
        "ObjectId": "<KIX_CONTACT_ID>",
        "Object": "Contact",
        "ContentType": null,
        "Content": null,
        "fallbackIcon": "kix-icon-man-bubble"
      },
      "style": "width: 5rem;height:5rem;font-size:5rem;"
   }
}
{
  "text": "Mobile Processing Checklist 010",
  "textStyle": "font-weight:bold;margin-bottom:0.5rem",
  "icon": "kix-icon-ci",
  "componentId": "dynamic-field-value",
  "componentData": {
       "name": "MobileProcessingChecklist010"
  },
  "conditions": [
     {
         "property": "DynamicFields.MobileProcessingChecklist010",
         "operator": "NE",
         "value": null,
         "useObjectService": true,
         "useDisplayValue": null,
         "propertyValue": null
      }
   ]
},
{
   "text": "Affected Assets",
   "textStyle": "font-weight:bold;margin-bottom:0.5rem",
   "icon": "kix-icon-ci",
   "componentId": "dynamic-field-value",
   "componentData": {
       "name": "AffectedAsset"
    },
   "conditions": [
      {
         "property": "DynamicFields.AffectedAsset",
         "operator": "NE",
         "value": null,
         "useObjectService": true,
         "useDisplayValue": null,
         "propertyValue": null
      }
   ]
}

Vollständige Anzeige langer E-Mail-Adressen in den Kontaktdetails (SysConfig-Schlüssel: contact-details-info-widget):

object-info-widget_values_detailViewWidthFactor.png
{
   "componentId": "object-avatar-label",
   "detailViewWidthFactor": 2,
   "componentData": {
        "property": "Email"
    }
}

Vollständige Anzeige des Dynamischen Feldes Arbeitsanweisung in den Ticketdetails (SysConfig-Schlüssel: ticket-details-info-card) :

object-info-widget_values_detailViewWidthFactor2.png
{
   "componentId": "dynamic-field-value",
   "detailViewWidthFactor": 4,
   "componentData": {
        "name": "WorkOrder"
    },
   "conditions":[{...}],
}

Konfigurationsschlüssel

ticket-details-contact-card-widget

Als Beispiel für die Konfiguration eines object-information-card-widgets (kurz: Objekt-Info-Widgets) dient das Widget Kontakt Informationen, welches Teil der rechten Sidebar in den Ticketdetails ist. Sie können sich an diesem Beispiel orientieren, wenn Sie weitere Widgets vom Typ object-information-card-widget konfigurieren möchten, z. B. die Ticket-Informationen in den Ticketdetails.

Die Grundlagen zu diesem Widget-Typ finden Sie im Kapitel: Das Objekt-Info-Widget

objekt-info-widget_konfig.png

Abb.: Das Sidebar-Widget Kontakt-Informationen mit modifizierter Konfiguration

Die Standardkonfiguration im Widget erzeugt folgende Inhalte:

  • Avatar

  • Vorname, Nachname

  • Primär Organisation mit Icon

  • Telefonnummer (als URL) mit Icon

  • E-Mail-Adresse mit Icon

  • Anschrift als Text mit Verlinkung zum Online-Kartendienst

  • Verlinkung zu offenen Tickets des Kontakts und der Organisation

Hinzugefügt werden im Beispiel:

  • externe Verlinkung zu einem Web-CRM

  • Anzeige von Tickets, die älter als 5 Stunden sind

  • interner Link zum Öffnen des Kontakts

  • interner Link zum Anlegen eines neuen Assets

Nicht enthalten ist im Beispiel:

  • Verlinkung zu offenen Tickets des Kontakts und der Organisation

So konfigurieren Sie das Widget "Kontakt Informationen"
  1. Navigieren Sie zum Menü System > SysConfig.

  2. Suchen und öffnen Sie den SysConfig-Schlüssel ticket-details-contact-card-widget.

    In diesem Schlüssel ist der Aufbau des Sidebar-Widgets Kontakt Informationen in den Ticketdetails definiert.

  3. Optional: Kopieren Sie den Quellcode im Feld Wert in einen externen JSON-Editor, um ihn besser editieren zu können. 

  4. Bearbeiten Sie den Quellcode nach Erfordernis (s. Den Quellcode bearbeiten)

  5. Optional: Kopieren Sie den geänderten Schlüssel aus dem externen JSON-Editor zurück in den Wert des SysConfig-Schlüssels.

  6. Speichern Sie Ihre Eingaben mit Klick auf Speichern.

  7. Klicken Sie im Header der SysConfig auf Lade Frontend-Konfigurationen neu, um die Ansicht im Frontend zu aktualisieren.

Den Quellcode bearbeiten

Der Quellcode im Konfigurationsschlüssel enthält einen Block "configuration":{...} . Innerhalb dieses Blocks befindet sich die Konfiguration des Widget-Inhalts.

Im Widget-Inhalt sind der Avatar ( "avatar":{...} ) und die zeilenweise anzuzeigenden Inhalte ( "rows":[{...}] ) definiert.

Eine Zeile besteht aus dem optional definierten Abstand zum vorherigen Element ( "margin": true | false ) und den Werten, die in der Zeile angezeigt werden sollen ( "values": [{...}] ). Durch Angabe weiterer Attribute kann Einfluss auf die Anzeige des Werts genommen werden (s. auch: Attribute des Objekt-Info-Widgets).

object-info-widget_konfig_quellcode.png

1

Avatar (Codezeilen 10 bis 17)

2

Name und Vorname des Kontakt (Codezeilen 19 bis 28)

Organisation des Kontakts (Codezeilen 29 bis 45)

3

Verlinkte Telefonnummer des Kontakts (Codezeilen 46 bis 55)

E-Mail-Adresse des Kontakts (Codezeilen 56 bis 65)

4

Öffnet die Adresse zur Suche in einem Online-Kartendienst (Codezeilen 66 bis 75, 76 bis 85, 86 bis 95)

5

Öffnet eine externe Website in einem neuen Browser-Tab (Codezeilen 96 bis 114)

Wird angezeigt, wenn der Kontakt einen Wert im Kommentar hat

6

Info wird angezeigt, wenn das Ticket älter als 5 Stunden ist (Codezeilen: 115 bis 134)

7

Interner Link zur Detailseite des Kontakts (Zeilen: 135 bis 154)

8

Interner Link; öffnet Dialog zum Anlegen eines neuen Assets (Codezeilen 155 bis 176)

9

Verhalten des Widgets und Icons im Widget-Titel (Codezeilen 177 bis 184)

Tipp

Zur Anzeige der Zeilennummern können Sie den Quellcode in einen externen JSON-Editor kopieren.

{
  "id": "ticket-details-contact-card-widget",
  "name": "Contact Info Widget",
  "type": "Widget",
  "widgetId": "object-information-card-widget",
  "title": "Translatable#Contact Information",
  "actions": [],
  "subConfigurationDefinition": null,
  "configuration": {
    "avatar": {1
      "displayValues": [],
      "KIXObjectType": "OBJECT_ICON",
      "ObjectId": "<KIX_CONTACT_ID>",
      "Object": "Contact",
      "ContentType": null,
      "Content": null
    },
    "rows": [
      {
        "margin": false,
        "values": [
          {
            "icon": null,
            "text": "<KIX_CONTACT_Firstname> <KIX_CONTACT_Lastname>",2
            "linkSrc": null
          }
        ]
      },
      {
        "margin": false,
        "values": [
          {
            "icon": {
              "displayValues": [],
              "KIXObjectType": "OBJECT_ICON",
              "ObjectId": "<KIX_ORG_ID>",
              "Object": "Organisation",
              "ContentType": null,
              "Content": null
            },
            "text": "<KIX_ORG_Name>",
            "linkSrc": null
          }
        ]
      },
      {
        "margin": true,
        "values": [
          {
            "icon": "fas fa-phone-volume",
            "text": "<KIX_CONTACT_Phone>",3
            "linkSrc": "tel:<KIX_CONTACT_Phone>"
          }
        ]
      },
      {
        "margin": false,
        "values": [
          {
            "icon": "kix-icon-mail",
            "text": "<KIX_CONTACT_Email>",
            "linkSrc": null
          }
        ]
      },
      {
        "margin": true,
        "values": [
          {
            "icon": "kix-icon-compass",4
            "text": "<KIX_CONTACT_Street>",
            "linkSrc": "https://www.google.de/maps/place/<KIX_CONTACT_Street>+<KIX_CONTACT_Zip>+<KIX_CONTACT_City>"
          }
        ]
      },
      {
        "margin": false,
        "values": [
          {
            "icon": null,
            "text": "<KIX_CONTACT_Zip> <KIX_CONTACT_City>",
            "linkSrc": "https://www.google.de/maps/place/<KIX_CONTACT_Street>+<KIX_CONTACT_Zip>+<KIX_CONTACT_City>"
          }
        ]
      },
      {
        "margin": false,
        "values": [
          {
            "icon": null,
            "text": "<KIX_CONTACT_Country>",
            "linkSrc": "https://www.google.de/maps/place/<KIX_CONTACT_Street>+<KIX_CONTACT_Zip>+<KIX_CONTACT_City>"
          }
        ]
      },
      {
        "margin": true,
        "values": [
          {
            "icon": "kix-icon-men",
            "text": "Show Information in CRM",5
            "linkSrc": "https://your.crm.example?param0=<KIX_CONTACT_Firstname>;param1=<KIX_CONTACT_Laststname>;param2=<KIX_CONTACT_Email>",
            "conditions": [
              {
                "property":"<KIX_CONTACT_Comment>",
                "operator": "NE",
                "value": "",
                "useObjectService": null,
                "useDisplayValue": null
              }
            ]
          }
        ]
      },
      {
        "margin": true,
        "values": [
          {
            "icon": "kix-icon-fire",6
            "text": "Ticket is older than 5h.",
            "linkSrc": null,
            "textStyle": "color:#ff0000",
            "conditions": [
              {
                "property": "Age",
                "operator": "GT",
                "value": 300,
                "useObjectService": false,
                "useDisplayValue": false
              }
            ]
          }
        ]
      },
      {
        "margin": true,
        "values": [
          {
            "icon": "kix-icon-men",
            "text": "Go to Contact",
            "linkSrc": null,
            "routingConfiguration": {
              "contextId": "contact-details",
              "objectType": "Contact",
              "contextMode": "DETAILS",
              "objectIdProperty": "ID",
              "history": false,
              "resetContext": true,
              "contextType": "MAIN"
            },
            "routingObjectId": "<KIX_CONTACT_ID>"7
          }
        ]
      },
      {
        "margin": true,
        "values": [
          {
            "icon": "kix-icon-ci",
            "text": "Create a new Asset",
            "linkSrc": null,
            "routingConfiguration": {8
              "contextId": "new-config-item-dialog-context",
              "objectType": "ConfigItem",
              "contextMode": "CREATE",
              "objectIdProperty": null,
              "history": false,
              "resetContext": false,
              "contextType": "DIALOG",
              "resetForm": false
            }
          }
        ]
      }
    ]
  },
  "minimized": false,9
  "minimizable": true,
  "icon": "kix-icon-man-house",
  "contextDependent": false,
  "contextObjectDependent": false,
  "formDependent": false,
  "formDependencyProperties": []
}