Diagramm-Widgets

Diagramm-Widgets werden im Typ chartWidget oder einem seiner Unterelemente konfiguriert. Sie verwenden die Bibliothek Highcharts. Alle Attribute sind JSON-Objekte.

Die folgende Abbildung zeigt das Standarddiagramm-Widget mit der Anzahl der Vorgänge in der aktuellen Sicht:

Sie können Attribute sowohl im Widget-Skript als auch in der Seitenanpassung setzen. Die im Skript gesetzten Werte überschreiben die Werte, die in der Seitenanpassung eingegeben werden.

Allgemeine Attribute:

Highchart-Attribute:

Code-Beispiel

Das folgende Beispiel zeigt ein Skript, das für das Standarddiagramm-Widget, das die Anzahl der Vorgänge in der aktuellen Sicht zeigt, verwendet wird. Das Skript muss eine HashMap mit den Attributen, die gesetzt werden sollen, zurückgeben.

import com.consol.cmas.common.model.ticket.*;

import com.consol.cmas.common.model.ticket.view.*;

import java.util.*;

import java.util.Map.Entry;

 

if (viewId == -1) {

return [visible: 'false']

}

 

def engineerLocale = engineerService.getCurrentLocale()

def view = viewService.getById(viewId)

def viewName = localizationService.getLocalizedProperty(View.class, "name", viewId, engineerLocale)

 

ViewCriteria allCriteria = new ViewCriteria(view,

ViewAssignmentParameter.allTickets(),

ViewGroupParameter.allTickets(),

new ViewOrderParameter())

 

 

def allTickets = ticketService.getCountForView(allCriteria)

 

 

ViewCriteria ownCriteria = new ViewCriteria(view,

ViewAssignmentParameter.allTickets(engineerService.getCurrent()),

ViewGroupParameter.onlyOwnTickets(),

new ViewOrderParameter())

 

def ownTickets = ticketService.getCountForView(ownCriteria)

 

ViewCriteria unassignedCriteria = new ViewCriteria(view,

ViewAssignmentParameter.allUnassignedTickets(),

ViewGroupParameter.onlyUnassignedTickets(),

new ViewOrderParameter())

 

def unassignedTickets = ticketService.getCountForView(unassignedCriteria)

 

 

def data = []

 

data.add("{name: _('all'), data:[${allTickets}]}" as String)

data.add("{name: _('own'), data:[${ownTickets}]}"as String)

data.add("{name: _('unassigned'), data:[${unassignedTickets}]}"as String)

 

 

return [series: "[${data.join(',')}]" as String,

visible: 'true',

chart: "{type: 'column'}", title: "{text: '${viewName}'}" as String,

tooltip:"{headerFormat:''}" ,

localization:"de: {all:'Alle',own:'Eigene',unassigned:'Unzugewiesene'},"+ "en: {all:'All', own:'Own', unassigned: 'Unassigned'}"];

Code-Beispiel 42: Skript für das Standarddiagramm-Widget ticketsInViewDataWidget.groovy

Die Art des Diagramms kann im Subattribut type des Attributs chart geändert werden. Es ist eine große Anzahl an Diagrammtypen verfügbar, siehe https://api.highcharts.com/highcharts/plotOptions.

Die folgende Abbildung zeigt ein Diagramm des Typs funnel:

Das folgende Codebeispiel zeigt das Grundprinzip der Implementierung eines Trichter-Widgets. Zur Veranschaulichung werden statische Daten verwendet.

return [title: "{text: _('title')}",

chart: "{type: 'funnel', \

marginLeft: '50', \

marginRight: '150'}",

plotOptions: "{series:{ height: '90%', \

width: '85%', \

neckWidth: '20%', \

neckHeight: '20%', \

dataLabels: {enabled:'true', \

format: '<b>{point.name}</b> ({point.y:,.0f})', \

softConnector: 'true'}}}",

visible: "true",

series: "[{name: _('users'), \

data: [[_('visits') , 15654], \

[_('downloads'), 4064], \

[_('requests') , 1987]]}]",

localization: "de: {title: 'Vertriebstrichter', \

users: 'Individuelle Benutzer', \

visits: 'Seitenaufrufe', \

downloads: 'Downloads', \

requests: 'Anfrage Preisliste'}, \

en: {title: 'Salesfunnel', \

users: 'Unique users', \

visits: 'Page visits', \

downloads: 'Downloads', \

requests: 'Requests for price list'}"

]

Code-Beispiel 43: Skript für ein Vertriebstrichterdiagramm mit Demo-Daten