Das Tabellen-Widget
Das Tabellen-Widget dient der Anzeige individueller Objekttabellen. Tabellen-Widgets sind beispielsweise die Ticketlisten im Home Dashboard oder die Widgets Empfohlene FAQ, Tickets zu Assets, Zugeordnete Assets und Tickets zu Kontakt in der rechten Seitenleiste der Ticketdetailansicht.

Abb.: Das Widget "Tickets zu Kontakt" als Beispiel für ein Tabellen-Widget
Die Werte in einem Tabellen-Widget resultieren immer auf einer konfigurierten Suche. Das Ergebnis dieser Suche wird in der im Widget konfigurierten Tabelle angezeigt.
Die Konfiguration des Widgets ist wie folgt strukturiert:
Widget Configuration
TableWidget Configuration
Table Configuration
Optional: Loading Options
TableColumns Configuration
Die Widget Configuration definiert das Widget im Allgemeinen. Sie bildet quasi den äußeren Rahmen und enthält Informationen darüber, welche Komponente im Widget angezeigt werden soll (Tabelle oder Objekt-Informationen). Sie enthält zudem die Konfiguration des Tabellenwidgets (TableWidget Configuration)
{ "id": "my-ticket-list-widget", "name": "My Ticket List Widget", "type": "Widget", "widgetId": "table-widget", "title": "My Ticket List", "actions": [ "bulk-action", "csv-export-action" ], "subConfigurationDefinition": null, "configuration": { TableWidgetConfiguration }, "minimized": false, "minimizable": true, "icon": "kix-icon-ticket", "contextDependent": false, "contextObjectDependent": false, "formDependent": false, "formDependencyProperties": [], "valid": true, "application": "agent-portal", "roleIds": [] }
Attribut (Auswahl) | Beschreibung |
---|---|
type | Definiert den Konfigurationstyp Hier: |
widgetId | Definiert die UI-Komponente, welche im Widget angezeigt werden soll. Hier: |
configuration | Enthält die konkrete Konfiguration für das Widget. Hier: die |
minimized | Legt fest, ob das Widget initial minimiert ist ( |
minimizable | Definiert, ob das Widget durch den Nutzer minimiert werden kann ( |
icon | Definiert ein Icon für das Widget Zum Beispiel: kix-icon-ticket |
roleIds | Optional: Liste der Berechtigungsrollen (IDs) Wenn Berechtigungsrollen angegeben sind, muss der aufrufende Benutzer mindestens einer dieser Rollen zugewiesen sein, um das Widget sehen zu können. |
In der TableWidget Configuration ist die konkrete Konfiguration für das Tabellen-Widget definiert.
Die TableWidget Configuration kann optional im Parameter configuration
eine TableConfiguration erhalten. Ist diese nicht angegeben, so wird der KIX Standard für den definierten Objekttyp verwendet.
In der TableWidgetConfiguration muss der type
auf den Wert TableWidget
gesetzt werden.
Mittels objectType
wird festgelegt, welche Art von Objekte in der Tabelle geladen und angezeigt werden (Ticket, FAQ, ConfigItem, Contact, Organisation).
{ "id": "my-ticket-list-table-widget", "name": "My Ticket List Table Widget", "type": "TableWidget", "objectType": "Ticket", "sort": null, "subConfigurationDefinition": null, "configuration": { Table Configuration }, "headerComponents": null, "showFilter": true, "shortTable": false, "predefinedTableFilters": [], "cache": true, "resetFilterOnReload": true }
Attribut (Auswahl) | Beschreibung |
---|---|
id | Eindeutige ID innerhalb der Konfiguration |
name | Übersetzbarer Name des Widgets Definiert den Titel im Tabellenkopf Wird dem Titel das Präfix Beispiel: Translatable#My Ticket List Table Widget |
type | Definiert den Konfigurationstyp Muss für ein Tabellen-Widget auf |
objectType | Legt fest, welche Art von Objekten in der Tabelle geladen und angezeigt werden (Ticket, FAQ, ConfigItem, Contact, Organisation). Sie können Abhängigkeiten definieren, sodass die Konfiguration nur auf ausgewählte Objekte angewendet wird. Zum Beispiel, wenn die Konfiguration nur für die Assetklasse Computer gilt. Fügen Sie dazu dem Objekttyp die ID des abhängigen Objekts an (z. B.: ConfigItem.4). Ist keine ID angegeben, gilt die Konfiguration für alle Objekte der gewählten Objektart. |
sort | Initiale Sortierung der Tabelle Beispiel (aufsteigend nach Alter): |
subConfigurationDefinition | Optionale Sub-Konfiguration |
configuration | Enthält die spezifische Konfiguration der Tabelle im Widget (Table Configuration) |
headerComponents | Zusätzliche Komponenten für den Widget Header |
showFilter | Legt fest, ob im Header des Widgets der Filter (Trichter-Icon) angezeigt werden soll ( |
predefinedTableFilters | Optional: Vordefinierte Filter, die im Dropdown des Headers zur Auswahl stehen. ![]() Abb.: Vordefinierte Filter im Ticket Dashboard |
roleIds | Optional: Liste der Berechtigungsrollen (IDs) Wenn Berechtigungsrollen angegeben sind, muss der aufrufende Benutzer mindestens einer dieser Rollen zugewiesen sein, um die Tabelle sehen zu können. |
Die Table Configuration enthält die spezifische Konfiguration der Tabelle im Widget. Die Konfiguration definiert das zu referenzierende Objekt, die Tabelleneigenschaften und das Verhalten der Tabelle.
Sie enthält zudem einen Konfigurationsblock, in dem der Tabelleninhalt (anzuzeigende Tabellenspalten nebst Eigenschaften, Filter und Ladeoptionen) festgelegt werden (Codeblock tableConfiguration{...}
).
Sollte die Konfiguration entfernt werden, wird vom Backend eine Standardtabelle für den angegebenen objectType
verwendet.
{ "id": "home-dashboard-ticket-table-new", "name": "Translatable#New Tickets Table", "type": "Table", "objectType": "Ticket", "loadingOptions": { "filter": [ { "property": "StateID", "operator": "EQ", "type": "NUMERIC", "filterType": "AND", "value": 1 } ], "sortOrder": "Ticket.-CreateTime:datetime", "limit": 10, "includes": [], "expands": [], "query": [], "searchLimit": 100 }, "displayLimit": 10, "tableColumns": [ { "id": null, "name": null, "type": null, "property": "PriorityID", "showText": false, "showIcon": true, "showColumnTitle": true, "showColumnIcon": false, "size": 65, "sortable": true, "filterable": true, "hasListFilter": true, "dataType": "STRING", "resizable": true, "componentId": null, "defaultText": null, "translatable": true, "titleTranslatable": true, "useObjectServiceForFilter": false, "valid": true, "rtl": false, "application": "agent-portal", "roleIds": [] }, { "id": null, "name": null, "type": null, "property": "TicketNumber", "showText": true, "showIcon": false, "showColumnTitle": true, "showColumnIcon": true, "size": 135, "sortable": true, "filterable": true, "hasListFilter": false, "dataType": "STRING", "resizable": true, "componentId": null, "defaultText": null, "translatable": true, "titleTranslatable": true, "useObjectServiceForFilter": false, "valid": true, "rtl": false, "application": "agent-portal", "roleIds": [] }, { "id": null, "name": null, "type": null, "property": "Title", "showText": true, "showIcon": false, "showColumnTitle": true, "showColumnIcon": true, "size": 463, "sortable": true, "filterable": true, "hasListFilter": false, "dataType": "STRING", "resizable": true, "componentId": null, "defaultText": null, "translatable": false, "titleTranslatable": true, "useObjectServiceForFilter": false, "valid": true, "rtl": false, "application": "agent-portal", "roleIds": [] } ], "tableColumnConfigurations": null, "enableSelection": true, "toggle": false, "toggleOptions": null, "headerHeight": 2.25, "rowHeight": 1.75, "emptyResultHint": "0 data sets found.", "fixedFirstColumn": false, "additionalTableObjectsHandler": [], "intersection": true, "searchId": null }
Attribut (Auswahl) | Beschreibung |
---|---|
type | Typ der Konfiguration Hier: |
objectType | Objekttyp, welcher in der Tabelle geladen und angezeigt werden soll (Ticket, FAQ, ConfigItem, Contact, Organisation). Sie können Abhängigkeiten definieren, sodass die Konfiguration nur auf ausgewählte Objekte angewendet wird. Zum Beispiel, wenn die Konfiguration nur für die Assetklasse Computer gilt. Fügen Sie dazu dem Objekttyp die ID des abhängigen Objekts an (z. B.: ConfigItem.4). Ist keine ID angegeben, gilt die Konfiguration für alle Objekte der gewählten Objektart. |
loadingOptions | Spezifische Ladeoptionen für die zu ladenden Objekte (API Filter). Siehe auch: Attribute der LoadingOptions |
displayLimit | Limit für die Anzahl der Tabellenzeilen und bestimmt somit die maximale Höhe des Widgets. Weitere Zeilen werden durch Scrollen und dynamisches Nachladen angezeigt. Die Angabe definiert den Standardwert, welcher für alle Agenten gilt. Jeder Agent kann das Anzeigelimit in der Personalisierung des Dashboards für sich selbst festlegen. Beim Zurücksetzen dieser persönlichen Einstellungen gilt wieder der hier definierte Standard. ![]() |
tableColumns | Enthält die spezifische Konfiguration der Tabellenspalten. Definiert, welche Spalten angezeigt werden sollen. Pro Spalte wird ein Konfigurationsblock angegeben. Ist nichts angegeben, wird eine Standardkonfiguration für dieses Objekt verwendet. Siehe auch: TableColumns Configuration |
tableColumnsConfigurations | Optional: Konfiguration individueller Spalten. Wenn nichts angegeben, werden Standardspalten verwendet. |
enableSelection | Selektion in der Tabelle de-/aktivieren. |
toggle | Definiert, ob Zeilen aufgeklappt werden können (z. B. um den Artikelinhalt anzuzeigen). |
toggleOptions | Definiert, was angezeigt werden soll, wenn eine Zeile aufgeklappt wird (individuelle UI Komponente). |
sortOrder | Definiert die Sortierung des Tabelleninhalts, wenn die Tabelle geladen wird. Keine Sortierung: |
headerHeight | Höhe des Tabellen-Headers in Pixel (Dezimalstellen mit Punkt trennen: 2.75) |
rowHeight | Höhe der Tabellenzeilen in Pixel (Dezimalstellen mit Punkt trennen: 2.75) |
emptyResultHint | Definiert den anzuzeigenden Text, wenn keine Zeilen verfügbar sind. Zum Beispiel: "Keine Daten gefunden" |
fixedFirstColumn | Wenn Wenn |
additionalTableObjectsHandler | Optional: Liste der Handller-Konfigurationen, die weitere Objekte für die Tabelle ermitteln. Die Ermittlung ist vom Handler abhängig. Mögliche Attribute:
|
intersection | Definiert, wie die Suche erfolgt und wie die Ergebnisse in der Anzeige kombiniert werden Mögliche Werte:
Weiterführende Hinweise: Konfiguration Widget "Empfohlene FAQ" |
roleIds | Optional: Liste der Berechtigungsrollen (IDs) Wenn Berechtigungsrollen angegeben sind, muss der aufrufende Benutzer mindestens einer dieser Rollen zugewiesen sein, um die Tabelle sehen zu können. |
Durch optionale Angabe von loadingOptions{...}
können Sie definieren, welche Eigenschaften ein Objekt (Ticket/Asset/FAQ/...) besitzen muss, damit es geladen wird. Auf jede Eigenschaft (Attribut) des Objekts kann ein entsprechender Filter gesetzt werden.
Die loadingOptions
unterstützen KIX Platzhalter. Dadurch ist es möglich, sich auf das aktuell angezeigte Objekt zu beziehen und somit die Anzeige in den Tabellen dynamisch zu gestalten. So können den Agenten z. B. folgende Informationen in einer Tabelle zur Verfügung gestellt werden:
die offenen Anfragen einer Organisation
alle geschlossenen oder offenen Kind-Tickets
offene Tickets des Teams, welche vom selben Typ sind
die Kontakte der aktuellen Organisation
neue Tickets einer Organisation, die vom selben Typ sind
Assets, die dem aktuellen Kontakt zugeordnet sind
usw.
Für jeden Kontext können Sie zu jedem Objekttyp gesonderte LoadingOptions
konfigurieren.
Kontext | GUI Konfiguration |
---|---|
Ticket Dashboard | Ticket Dashboard Configuration |
Ticket-List Kontext (die Toolbar-Icons oben) | User Ticket List |
FAQ Dashboard | faq |
Organisationen/Kunden Dashboard | organisations |
Asset Dashboard. | cmdb |
Somit können bspw. die Organisationen- und Kontakt-Tabelle im Organisationen Dashboard oder die die Tabelle im Ticket Dashboard vorsortiert und die maximal zu ladende Anzahl der Einträge bestimmt werden.
Die loadingOptions
bestehen dann aus verschachtelten Arrays mit Angabe des Objektes und der für das Objekt relevanten loadingOptions
.Der erste Wert ist der betreffende Objekttyp (z. B. Ticket) und der 2. Wert enthält die Definition der LoadingOptions (limit
, searchLimit
, sortOrder
usw.).
"loadingOptions": [ [ "Ticket", { "searchLimit": 300, "limit": 5, "sortOrder": "Ticket.-Age:numeric" } ] ],
Anmerkung
Wenn Sie die loadingOptions
eines Kontextes geändert haben (1), sollten Sie anschließend die Sortierung in den untergeordneten Widget Settings (2) entfernen (Zeile: "sort":["Age","Up"]
).
Anderenfalls findet die im Kontext gesetzte Konfiguration keine Anwendung. Die Widget Settings haben dann Vorrang.

Abb.: Sortierung der Tabelle in absteigender Reihenfolge nach dem Alter von Tickets (neueste zuerst) mit limitierter Anzeigemenge
Hinweis
Führen Sie nach Änderung der loadingOptions
eine Bereinigung des Caches durch. Führen Sie dazu im Menü den Befehl Console::Command::Maint::Cache::Delete aus.
Attribut (Auswahl) | Beschreibung |
---|---|
expands | Löst die mit Geben Sie dazu den selben Begriff wie bei Weiterführende Informationen finden Sie im GitHub in der KIX API Dokumentation (Rechtsklick auf "Download" > im Kontextmenü "Link | Ziel speichern unter..." verwenden) |
filter | Angabe von Filterbedingungen zum Spezifizieren der anzuzeigenden Objekte. Die Filter beziehen sich auf die Eigenschaften in der API (analog zu Berechtigungen). Weiterführende Informationen finden Sie im GitHub in der KIX API Dokumentation (Rechtsklick auf "Download" > im Kontextmenü "Link | Ziel speichern unter..." verwenden) Beispiel: Anzeige aller offenen Tickets des Kontakts in der Tabelle "filter": [ { "property": "StateType", "operator": "EQ", "type": "STRING", "filterType": "AND", "value": "Open" }, { "property": "ContactID", "operator": "EQ", "type": "NUMERIC", "filterType": "AND", "value": "<KIX_TICKET_ContactID>" } ] HinweisIm Backend wird bei einer Ticketsuche automatisch der Status Typ (StateType == Open) ergänzt! Das betrifft sowohl die Komplexsuche als auch alle Konfigurationen, die im Filter keine Einschränkungen auf den Statustyp oder auf einen konkreten Status haben, z. B. Tickettabellen oder individuell erstellte/geänderte Widgets und Tabellen. |
includes | Empfang weiterer Informationen zu den angefragten Objekten, wie bspw. Links, Dynamische Felder oder vorhandene Sub-Ressourcen (z.B. Artikel oder die Historie von Tickets). Bei einigen Includes werden nicht die Objekte geliefert sondern nur die jeweiligen IDs (z.B. bei "Links"). Diese IDs können mit "expands" aufgelöst werden, um deren Objekte zu erhalten. Weiterführende Informationen finden Sie im GitHub in der KIX API Dokumentation (Rechtsklick auf "Download" > im Kontextmenü "Link | Ziel speichern unter..." verwenden) |
limit | Anzahl der in der API-Antwort enthaltenen Objekte (siehe Hinweis unten). Das angegebene Limit steuert die Größe der "Page" (Anzeigelimit der Tabelle) und wie viele Datensätze mittels der Schaltfläche nachgeladen werden.Standard: 20 (wenn kein Limit angegeben ist) HinweisDas angegebene Limit wirkt sich auf die Systemleistung aus. Wählen Sie einen für Sie optimalen Wert, in Abhängigkeit von der Anzahl der Datensätze im System. Eine bestehende Sortierung wird beim Nachladen nicht geändert, aber auf die nachgeladenen Daten angewandt. ![]() Die Angabe definiert das Standard-Limit, welches für alle Agenten gilt. Jeder Agent kann die Tabelleneigenschaften in der Personalisierung des Dashboards für sich selbst festlegen. Beim Zurücksetzen dieser persönlichen Einstellungen gilt wieder der hier definierte Standard. |
searchLimit | Limitiert die gesamte Suchanfrage auf Datenbankebene. Definiert die maximale Anzahl an Datensätzen, die aus der Datenbank geholt werden. Es werden die ersten n Datensätze aus der Datenbank geladen. ![]() Abb.: Die Datenbank enthält nur 22 Datensätze. Es werden daher nur maximal 22 Tickets angezeigt, auch wenn für searchLimit ein höherer Wert eingestellt ist. HinweisDas angegebene Limit wirkt sich auf die Systemleistung aus. Wählen Sie einen für Sie optimalen Wert, in Abhängigkeit von der Anzahl der Datensätze im System. Die Angabe definiert das Standard-Limit, welches für alle Agenten gilt. Jeder Agent kann die Tabelleneigenschaften in der Personalisierung des Dashboards für sich selbst festlegen. Beim Zurücksetzen dieser persönlichen Einstellungen gilt wieder der hier definierte Standard. |
sortOrder | Definiert die Sortierung des Tabelleninhalts, wenn die Tabelle geladen wird. Mögliche Werte:
Wenn nichts angegeben erfolgt die initiale Sortierung jeweils absteigend nach:
Es wird die gesamte angeforderte Liste (SearchLimit) sortiert. |
Anmerkung
limit
und searchLimit
haben Auswirkung auf die Performance. Je höher die Werte, desto länger sind u. U. die Ladezeiten.
Beispiel
Gegeben sind:
Anzahl Datensätze in der Datenbank: 200
limit: 10
searchLimit: 100
Es werden die ersten 100 Datensätze aus der Datenbank geholt. Davon werden 10 in der Tabelle angezeigt.
Klickt der Agent auf die Schaltfläche
, werden die nächsten 10 von 100 Datensätzen in der Tabelle nachgeladen.Das heißt, der Agent kann 10 Mal auf
klicken, um maximal alle 100 Datensätze in der Tabelle anzeigen zu lassen.Befindet sich der gesuchte Datensatz nicht unter diesen 100 Datensätzen, kann der Agent die Suchmöglichkeiten der Volltextsuche und der Komplexsuche nutzen.
Im Codeabschnitt tableColumns{..}
werden die Tabellenspalten definiert. Jede Spalte beginnt und endet mit einer geschweiften Klammer: {...}
. Innerhalb dieser Klammern werden die Attribute der Tabellenspalte einschließlich ihrer Werte angegeben.
Sie können weitere Spalten hinzufügen oder die Tabelle komplett neu aufbauen. Damit verändern Sie die Standard-Konfiguration des Widgets.
Pro Spalte wird ein Konfigurationsblock angegeben. Ist nichts angegeben, wird eine Standardkonfiguration für dieses Objekt verwendet.
Tipp
Für die Dashboard-Tabellen können Agenten selbst Spalten hinzufügen oder entfernen. Dies erfolgt über die Personalisierung von Dashboards.
Diese Änderung an den Dashboard-Tabellen verändert den im Widget definierten Standard nicht.
Grundlage der Werte in den Tabellenspalten ist das jeweils referenzierte Objekt (Ticket / Asset / FAQ / ...) und seine Attribute (Eigenschaften wie ID, Name, Titel/Betreff, Priorität, Status, etc.)
Attribut (Auswahl) | Beschreibung |
---|---|
id | Angabe der Spalten-ID Wenn nicht definiert: |
name | Angabe des Spalten-Namens (zur ID gehörend) Wenn nicht definiert: |
type | Angabe des Spalten-Typs Wenn nicht definiert: |
property | Attribut (Eigenschaft) des Objekts; Definiert, welches Attribut in der Spalte angezeigt wird. Sie können Abhängigkeiten definieren und so die anzuzeigende Eigenschaft auf bestimmte Objekte einschränken (z.B. nur die Hersteller der Anlagenklasse Computer). Dazu stellen Sie dem Attribut die ID des Objekts/der Klasse voran (4.Vendor). Sie können den Wert ![]() Mögliche Werte:
|
showText | Definiert, ob ein Text für den Wert des Attributs angezeigt wird. Mögliche Werte: Z. B.: neu | offen | geschlossen | ... |
showIcon | Definiert, ob ein Icon für den Wert des Attributs angezeigt wird. Z. B.: Icon des Status Mögliche Werte: |
showColumnTitle | Definiert, ob im Spaltenkopf der Name des Attributs angezeigt wird (z. B.: Status). Mögliche Werte: |
showColumnIcon | Definiert, ob im Spaltenkopf das Icon des Attributs angezeigt wird (true | false). Z. B.: Icon des Status Mögliche Werte: |
size | Größe der Spalte in Pixel Z. B.: 320 |
sortable | Definiert, ob die Spalte sortierbar ist. Mögliche Werte: |
filterable | Definiert, ob die Spalte gefiltert werden kann (Filter-Symbol im Spaltenkopf). Hinweise:
|
hasListFilter | Definiert, ob zum Filtern eine Auswahlliste aller in der Spalte zur Verfügung stehenden Werte angeboten wird (ansonsten Freitext). Nicht anwendbar auf Objekte (Ticket, Organisation, Contact, FAQ und Asset). |
dataType | Datentyp des Attributs (der Eigenschaft). |
resiziable | Definiert, ob der Nutzer die Spaltengröße verändern kann. |
componentID | Definiert, ob im Inhalt der Zelle eine individuelle UI-Komponente verwendet wird, um den Wert darzustellen. Hinweis: Die Mögliche Werte (Auswahl der wichtigsten):
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. |
defaultText | Text, welcher als Spaltenüberschrift verwendet wird, wenn in der Spalte keine konkrete Eigenschaft des Objektes repräsentiert wird. |
translatable | Definiert, ob die Attributwerte in den Zellen automatisch übersetzt werden sollen. Ggf. müssen die entsprechenden Pattern unter hinterlegt werden. |
titleTranslatable | Definiert, ob der Spaltentitel übersetzt automatisch werden soll. Ggf. müssen die entsprechenden Pattern unter hinterlegt werden. |
useObjectServiceForFilter | Nur zur internen Verwendung. (Definiert, ob die Tabelle einen Object Service nutzt oder nicht.) |
rtl | Richtet den Spalteninhalt rechtsbündig aus. Mögliche Werte: Setzen Sie den Parameter auf |
Konfigurationsschlüssel | ticket-new-assigned-assets |
Das Tabellen-Widget zeigt die Assets an, welche dem ausgewählten Kontakt zugeordnet sind. Dazu verwendet der Filter in den loadingOptions
das Suchattribut AssignedContact
, welches eine ContactID erwartet. Diese wird initial per Platzhalter (<KIX_TICKET_ContactID>) ermittelt.
Die 1. Spalte der Widget-Tabelle lässt eine Interaktion mit dem Dynamischen Feld Betroffenes Asset zu, welches in den Dialogen Neues Ticket und Ticket bearbeiten enthalten ist. Wird im Widget ein Asset per Häkchen ausgewählt, wird dieses Asset automatisch am Ticket als Betroffenes Asset gesetzt. Diese Interaktion wird durch den Wert add-to-affected-assets-cell
im Attribut componentID
gesteuert. Ist dieses Verhalten auch an anderen Asset-Tabellen gewünscht, können Sie die Spalte an den betreffenden Tabellen implementieren. Beachten Sie jedoch, dass das Asset nur ins Feld Betroffenes Asset gesetzt werden kann und nicht in andere Dynamische Felder.
Als Konfigurationsbeispiel ist die Konfiguration des Tabellen-Widgets Ticket zu Kontakt angegeben:
{ "id": "ticket-details-contact-tickets", "name": "Tickets for Contact", "type": "Widget", "widgetId": "table-widget", "title": "Translatable#Tickets for Contact", "actions": [], "subConfigurationDefinition": null, "configuration": { "id": "ticket-details-contact-ticket-widget", "name": "Contact Tickets", "type": "TableWidget", "objectType": "Ticket", "sort": null, "subConfigurationDefinition": null, "tableConfiguration": { "id": "ticket-details-contact-tickets-table-config", "name": "Contact Tickets", "type": "Table", "objectType": "Ticket", "loadingOptions": { "filter": [ { "property": "StateType", "operator": "EQ", "type": "STRING", "filterType": "AND", "value": "Open" }, { "property": "ContactID", "operator": "EQ", "type": "NUMERIC", "filterType": "AND", "value": "<KIX_TICKET_ContactID>" }, { "property": "TicketID", "operator": "NE", "type": "NUMERIC", "filterType": "AND", "value": "<KIX_TICKET_TicketID>" } ], "sortOrder": null, "limit": 100 }, "displayLimit": 10, "tableColumns": [ { "id": null, "name": null, "type": null, "property": "Title", "showText": true, "showIcon": false, "showColumnTitle": true, "showColumnIcon": false, "size": 320, "sortable": true, "filterable": true, "hasListFilter": false, "dataType": "STRING", "resizable": true, "componentId": null, "defaultText": null, "translatable": true, "titleTranslatable": true, "useObjectServiceForFilter": false }, { "id": null, "name": null, "type": null, "property": "TypeID", "showText": false, "showIcon": true, "showColumnTitle": true, "showColumnIcon": false, "size": 50, "sortable": true, "filterable": true, "hasListFilter": true, "dataType": "STRING", "resizable": true, "componentId": null, "defaultText": null, "translatable": true, "titleTranslatable": true, "useObjectServiceForFilter": false } ], "tableColumnConfigurations": null, "enableSelection": false, "toggle": false, "toggleOptions": null, "sortOrder": null, "headerHeight": 1.75, "rowHeight": 1.75, "emptyResultHint": "Translatable#0 data sets found.", "fixedFirstColumn": false, "additionalTableObjectsHandler": [], "intersection": true, "searchId": null }, "headerComponents": null, "showFilter": false, "shortTable": false, "predefinedTableFilters": null, "cache": false, "resetFilterOnReload": true }, "minimized": false, "minimizable": true, "icon": "kix-icon-ticket", "contextDependent": false, "contextObjectDependent": true, "formDependent": false, "formDependencyProperties": [ "DynamicFields.myDynamicFieldName" ] }