CMS Dashboard Config Setup
The Dashboard is created with the combination of React Grid Layout, HighCharts, CubeJs, as well as a considerable amount of custom code to integrate these pieces.
In order to integrate the aforementioned piecese and be able to use the CMS Dashboard properly, we need to set up the associated YAML configuartion file located at /default/dashboard
when viewing from the CMS config editor. Currently, the CMS Dashboard config is essentially an object with several fields that each represent a major section of the config:
We are utilizing high charts for the data visualizations
availableDashletsPerGroup
This section is responsible for assigning the dashlets that are available to each user group. Each key of this object will be a user group's id, and they are mapped to an array of the dashlet ids that the user group has access to. More details are available on the Available Dashlets Per Group Page
availableDashlets
This section contains fields that affects what is rendered in the sideBar of the Dashboard Editor, as well as a dashlet's layout related functionality. More details are available on the Available Dashlets Page
dashletDictionary
This section contains fields that affect how a specific dashlet's content will be generated. This includes the Setting Fields that are needed to populate the dashlet's settings form, the data query with which the dashlet will retrieve data, and toggles for various dashlet features.
More details are available on the Dashlet Dictionary Page
commonFieldOptions
This section is an object whose keys are mapped to commonly reused field options that can be referenced by a SettingField inside of the dashletDictionary. See below for an example.
Here is what a sample configuration file may look like:
availableDashletsPerGroup:
"19":
- summaryTiles
- totalCaseValueVolume
- avgTimeToClose
- feedbackStats
- muleScoreDistribution
- avgAlertStatistics
- caseAgeByStatus
- traceRequestStats
"9541":
- totalCaseValueVolume
- avgTimeToClose
availableDashlets:
- label: Summary Tile
width: 2
height: 2
minWidth: 2
minHeight: 2
tooltip: Display a total count for a selection and create a shortcut link
description: Display the total count for your summary type selection and create a shortcut link.
chartType: summary
dashletId: summaryTiles
dashletType: General Dashlets
- label: Average Time To Close Cases
width: 4
height: 2
tooltip: Display the average time to close cases over a time frame
description: Display the average time to close all cases or build a chart showing the average time to close cases by the priority level set at the time the case closed.
minWidth: 4
chartType: barHorizontal
dashletId: avgTimeToClose
dashletType: General Dashlets
dashletDictionary:
summaryTiles:
description: Display the total count for your summary type selection and create a shortcut link.
queries:
newCases:
order: {}
filters:
- values: []
operator: equals
dimension: NewCases.caseType
- values:
- $currentTenant
operator: equals
dimension: NewCases.tenant
measures:
- NewCases.count
timeDimensions: []
openCases:
order: {}
filters:
- values: []
operator: equals
dimension: CmsCase.caseTypeName
- values:
- closed
- alert
- dismissed
operator: notEquals
dimension: CmsCase.caseStatusName
- values:
- $currentUser
operator: equals
dimension: CmsCase.assignee
measures:
- CmsCase.count
timeDimensions: []
updatedCases:
order: {}
filters:
- values: []
operator: equals
dimension: UpdatedCases.caseType
- values:
- $currentUser
operator: equals
dimension: UpdatedCases.assignee
measures:
- UpdatedCases.count
timeDimensions: []
settingsFields:
- label: Case Type
options:
- label: aml
value: aml
- label: fraud
value: fraud
fieldName: caseType
fieldType: select
filterDimension:
- CmsCase.caseTypeName
- NewCases.caseType
- UpdatedCases.caseType
- label: Summary Type
options:
- label: My Open Cases
value: openCases
- label: New Cases
value: newCases
- label: My Updated Cases
value: updatedCases
fieldName: queryType
fieldType: select
- label: Title
fieldName: title
fieldType: input
commonFieldOptions:
timeFrames:
- label: Past week
value: from 6 days ago to now
- label: Past 2 weeks
value: from 13 days ago to now
- label: Past 30 days
value: from 29 days ago to now
- label: Past 3 months
value: from 89 days ago to now
- label: Past 6 months
value: from 179 days ago to now
- label: Past year
value: from 364 days ago to now
- label: Past 18 months
value: from 540 days ago to now