Dashboard is an ordered list of indicators and indicator drill pairs.
Indicators on dashboard offer various ways of formatting. It's possible to group them, change their size or font, or display one of its indicator drill blocks directly on dashboard. They can also be collapsed or expanded (using right mouse click).
Dashboards are referenced in views. Each view references exactly one dashboard.
Info |
---|
See various setups of a dashboard in action in the Features Catalog for Developers project. |
Syntax
This is the syntax of the dashboard located in the Customer Intelligence view of the Retail Solution Demo project.
It's the simplest way to display an array of indicators. Each of them has one row and is primary
. For more customized dashboards, see the syntax examples and visual representation below.
...
title | Dashboard object syntax |
---|
...
Dashboard is an ordered list of indicators and indicator drill pairs.
Indicators on dashboard offer various ways of formatting. It's possible to group them, change their size or font, or display one of its indicator drill blocks directly on dashboard. They can also be collapsed or expanded (using right mouse click).
Dashboards are referenced in views. Each view references exactly one dashboard.
Info |
---|
See various setups of a dashboard in action in the Features Catalog for Developers project. |
Syntax
This is the syntax of the dashboard located in the Customer Intelligence view of the Retail Solution Demo project.
It's the simplest way to display an array of indicators. Each of them has one row and is primary
. For more customized dashboards, see the syntax examples and visual representation below.
Code Block | ||
---|---|---|
| ||
{
"name": "customer_intelligence_dashboard",
"type": "dashboard",
"content": {
"blockRows": [
{
"type": "indicator",
"indicator": "/rest/projects/$projectId/md/indicators?name=online_turnover_indicator",
"indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=online_turnover_indicator_drill",
"layout": "primary"
},
{
"type": "indicator",
"indicator": "/rest/projects/$projectId/md/indicators?name=offline_turnover_indicator",
"indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=offline_turnover_indicator_drill",
"layout": "primary"
},
{
"type": "indicator",
"indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator",
"indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drill",
"layout": "primary"
},
{
"type": "indicator",
"indicator": "/rest/projects/$projectId/md/indicators?name=purchases_indicator",
"indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_indicator_drill",
"layout": "primary"
},
{
"type": "indicator",
"indicator": "/rest/projects/$projectId/md/indicators?name=average_purchase_indicator",
"indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=average_purchase_indicator_drill",
"layout": "primary"
},
{
"type": "indicator",
"indicator": "/rest/projects/$projectId/md/indicators?name=purchases_customer_indicator",
"indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_customer_indicator_drill",
"layout": "primary"
}
]
}
}
|
Code Block | ||||
---|---|---|---|---|
| ||||
{ "url": "/rest/projects/yufqzxkbiecj7jot/md/dashboards/fbvund7hls1s5a5s", "dumpTime": "2018-01-25T14:19:34Z", "version": "0", "content": { "id": "fbvund7hls1s5a5s", "name": "customer_intelligence_dashboard", "type": "dashboard", "content": { "blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=online_turnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=online_turnover_indicator_drill", "layout": "primary" }, { { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=onlineoffline_turnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=onlineoffline_turnover_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=offline_turnovercustomers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=offline_turnovercustomers_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customerspurchases_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customerspurchases_indicator_drill", "layout": "primary" }, { "type": "indicator",, "indicator": "/rest/projects/$projectId/md/indicators?name=purchasesaverage_purchase_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchasesaverage_purchase_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=averagepurchases_purchasecustomer_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=averagepurchases_purchasecustomer_indicator_drill", "layout": "primary" }, ] }, { "accessInfo": { "typecreatedAt": "indicator",2017-10-05T08:27:11Z" }, "indicatorlinks": "/rest/projects/$projectId/md/indicators?name=purchases_customer_indicator", [ { "indicatorDrillrel": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_customer_indicator_drillself", "layouthref": "primary/rest/projects/yufqzxkbiecj7jot/md/dashboards/fbvund7hls1s5a5s" } ] } } |
Additional syntax examples
Code Block | ||||
---|---|---|---|---|
| ||||
{ "urlname": "/rest/projects/yufqzxkbiecj7jot/md/dashboards/fbvund7hls1s5a5scustomer_intelligence_dashboard", "dumpTimetype": "2018-01-25T14:19:34Zdashboard", "versioncontent": "0",{ "contentblockRows": [ { "id": "fbvund7hls1s5a5s", { "name": "customer_intelligence_dashboard", "type": "dashboardblockRow", "content": { "blocks": [ "blockRows": [ { { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=online_turnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=online_turnover_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=offline_turnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=offline_turnover_indicator_drill"drill", "layout": "primary" } ] }, { "layout "type": "primary"blockRow", "blocks": [ }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drill", "layout": "primarysecondary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_indicator_drill", "layout": "primarysecondary" }, } ] }, { { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=average_purchase_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=average_purchase_indicator_drill", "layout": "primary" }, { { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_customer_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_customer_indicator_drill", "layout": "primarysecondary" } ] } }, "accessInfo": { "createdAt": "2017-10-05T08:27:11Z" }, "links": [ { "rel": "self", "href": "/rest/projects/yufqzxkbiecj7jot/md/dashboards/fbvund7hls1s5a5s" } ] } } |
...
}
|
It is possible to split two indicators in half and display them in one row. This is a good way to squeeze more indicators on one dashboard.
To do that, we have to put them to the blockRow
object. We have modified the dashboard from the main syntax example so that its first and second indicator are in a blockRow
object, as well as the third and fourth indicator. Please note that a maximum of 2 indicators can be displayed in one row.
You can also notice that some of the indicators have secondary
layout. Using this layout, the indicator tile and the font become smaller, allowing you to display yet more indicators on one dashboard. The two indicators in a blockRow
should have identical layout
, otherwise one tile will be larger than the other and the row will look weird.
-
Code Block | ||||
---|---|---|---|---|
| ||||
{ "name": "customerindicator_intelligencegroups_dashboard", "type": "dashboard", "content": { "blockRows": [ [ { {"type": "indicatorGroup", "typetitle": "blockRowCatchment Area Analysis", "blocksblockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=online_turnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=online_turnover_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=offline_turnovercustomers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=offline_turnovercustomers_indicator_drill", "layout": "primary" }, ] { },"type": "indicator", { "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_customer_indicator", "typeindicatorDrill": "blockRow/rest/projects/$projectId/md/indicatorDrills?name=purchases_customer_indicator_drill", "blocks": [ "layout": "primary" { } "type": "indicator",] }, "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", { "indicatorDrilltype": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drillindicatorGroup", "layout"title": "secondaryCustomer Intelligence", },"blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchasesonline_turnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchasesonline_turnover_indicator_drill", "layout": "secondary" "layout": "primary" } }, ] }, { { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=averageoffline_purchaseturnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=averageoffline_purchaseturnover_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_customer_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_customer_indicator_drill", "layout": "primary" }, "layout": "secondary" { } ] } } |
It is possible to split two indicators in half and display them in one row. This is a good way to squeeze more indicators on one dashboard.
To do that, we have to put them to the blockRow
object. We have modified the dashboard from the main syntax example so that its first and second indicator are in a blockRow
object, as well as the third and fourth indicator. Please note that a maximum of 2 indicators can be displayed in one row.
You can also notice that some of the indicators have secondary
layout. Using this layout, the indicator tile and the font become smaller, allowing you to display yet more indicators on one dashboard. The two indicators in a blockRow
should have identical layout
, otherwise one tile will be larger than the other and the row will look weird.
-
Code Block | ||||
---|---|---|---|---|
| ||||
{"type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=average_purchase_indicator", "nameindicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=average_purchase_indicator_groups_dashboard",drill", "typelayout": "dashboard",primary" } ] "content": { "blockRows": [ }, { "type": "indicatorGroup", "title": "CatchmentMarket Area AnalysisPotential", "blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=turnovermarket_potential_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=turnovermarket_potential_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customersmarket_penetration_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customersmarket_penetration_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchasespotential_customercustomers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchasespotential_customercustomers_indicator_drill", "layout": "primary" } ] }, { "type": "indicatorGroup", "title": "Customer IntelligenceDemography", "blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=online_turnoverresidents_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=online_turnoverresidents_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=offline_turnoverhouseholds_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=offline_turnoverhouseholds_indicator_drill", "layout": "primary" }, ] { } ] } } |
It is possible to group a number of indicators in an indicatorGroups
array. This is a good way to display high number of indicators in a compact way.
This example shows the indicators from the first four views of the Retail Solution Demo grouped into one view's dashboard with indicatorGroups
.
-
Code Block | ||||
---|---|---|---|---|
| ||||
{ "typename": "indicator_groups_dashboard", "type": "dashboard", "content": { "blockRows": [ "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_indicator", { "indicatorDrilltype": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_indicator_drillindicatorGroup", "layout"title": "primary"Catchment Area Analysis", },"blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=average_purchaseturnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=average_purchaseturnover_indicator_drill", "layout": "primary" }, ] { }, { "type": "blockRow", "type": "indicatorGroup", "titleblocks": "Market[ Potential", "blockRows": [ { { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=marketcustomers_potential_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=market_potentialcustomers_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=marketpurchases_penetrationcustomer_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=marketpurchases_penetrationcustomer_indicator_drill", "layout": "primary" "layout": "primary" }, } { "type": "indicator",] } "indicator": "/rest/projects/$projectId/md/indicators?name=potential_customers_indicator", ] "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=potential_customers_indicator_drill",}, { "layouttype": "primaryindicatorGroup", "title": "Customer Intelligence", } "blockRows": [ ] }, { { "type": "indicatorGroupblockRow", "titleblocks": "Demography", [ "blockRows": [ { { "type": "indicator", "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=residentsonline_turnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=residentsonline_turnover_indicator_drill", "layout": "primary" }, }, { { "type": "indicator", "indicatortype": "/rest/projects/$projectId/md/indicators?name=households_indicator", "indicatorDrill "indicator": "/rest/projects/$projectId/md/indicatorDrillsindicators?name=householdsoffline_indicator_drill", "layout": "primary" turnover_indicator", } ] "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=offline_turnover_indicator_drill", } ] } } |
It is possible to group a number of indicators in an indicatorGroups
array. This is a good way to display high number of indicators in a compact way.
This example shows the indicators from the first four views of the Retail Solution Demo grouped into one view's dashboard with indicatorGroups
.
-
Code Block | ||||
---|---|---|---|---|
| ||||
{ "name": "indicator_groups_dashboard", "type": "dashboard", "contentlayout": {"primary" "blockRows": [ { } "type": "indicatorGroup", ] "title": "Catchment Area Analysis", "blockRows": [}, { "type": "indicatorblockRow", "indicatorblocks": "/rest/projects/$projectId/md/indicators?name=turnover_indicator", [ { "indicatorDrilltype": "/rest/projects/$projectId/md/indicatorDrills?name=turnover_indicator_drill"indicator", "layout "indicator": "primary"/rest/projects/$projectId/md/indicators?name=purchases_indicator", }, "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_indicator_drill", { "typelayout": "blockRowprimary", "blocks": [ }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customersaverage_purchase_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customersaverage_purchase_indicator_drill", "layout": "primary" }, ] { } ] "type": "indicator", }, { "indicatortype": "/rest/projects/$projectId/md/indicators?name=purchases_customer_indicatorindicatorGroup", "title": "Market Potential", "indicatorDrillblockRows": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_customer_indicator_drill",[ { "layout": "primary" "type": "blockRow", } "blocks": [ ] { } ] "type": "indicator", }, { "typeindicator": "indicatorGroup/rest/projects/$projectId/md/indicators?name=market_potential_indicator", "title": "Customer Intelligence", "blockRows": ["indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=market_potential_indicator_drill", { "type"layout": "blockRowprimary", "blocks": [ }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=onlinemarket_turnoverpenetration_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=onlinemarket_turnoverpenetration_indicator_drill", "layout": "primary" }, ] { }, "type": "indicator", { "indicatortype": "/rest/projects/$projectId/md/indicators?name=offline_turnover_indicator", "indicatorDrillindicator": "/rest/projects/$projectId/md/indicatorDrillsindicators?name=offlinepotential_turnovercustomers_indicator_drill", "layout": "primary" "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=potential_customers_indicator_drill", } "layout": "primary" ] } }, ] }, { { "type": "blockRowindicatorGroup", "title": "blocksDemography":, [ "blockRows": [ { { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchasesresidents_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchasesresidents_indicator_drill", "layout": "primary" }, { "type": "indicator", , "indicator": "/rest/projects/$projectId/md/indicators?name=averagehouseholds_purchase_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=averagehouseholds_purchase_indicator_drill", "layout": "primary" "layout": "primary" } ] } ] } } |
This example combines the use of indicatorGroups
and blockRow
objects.
Code Block | ||||
---|---|---|---|---|
| ||||
{ "name": "catchment_area_dashboard", "type": "dashboard", ] "content": { "blockRows": [ } { ] "type": "indicator", }, {"indicator": "/rest/projects/$projectId/md/indicators?name=turnover_indicator", "typeindicatorDrill": "indicatorGroup/rest/projects/$projectId/md/indicatorDrills?name=turnover_indicator_drill", "titlelayout": "Market Potential""primary" }, { "blockRows": [ "type": "indicator", { "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "typeindicatorDrill": "blockRow", /rest/projects/$projectId/md/indicatorDrills?name=customers_ina ranking indicator drill blockdicator_drill", "blockslayout": ["primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=marketpurchases_potentialcustomer_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=marketpurchases_potentialcustomer_indicator_drill", "layout": "primary" ", "layout": "primary" }, }, { { "type": "categories", "typeindicator": "/rest/projects/$projectId/md/indicators?name=turnover_indicator", "title": "Total Turnover value by channel", "indicator": "/rest/projects/$projectId/md/indicators?name=market_penetration_indicator", "description": "Total Turnover value by channel", "indicatorDrillsplitProperty": "/rest/projects/$projectId/md/indicatorDrills?name=market_penetration_indicator_drill",baskets.on_off_name", "orderBy": { "layoutproperty": "primary"baskets.on_off_name", "direction": "asc" } } }, ] { }, "type": "categories", { "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "typetitle": "indicatorNumber of Customers by channel", "description": "Number of Customers by channel", "indicator "splitProperty": "/rest/projects/$projectId/md/indicators?name=potential_customers_indicatorbaskets.on_off_name", "orderBy": { "indicatorDrill "property": "/rest/projects/$projectId/md/indicatorDrills?name=potential_customers_indicator_drill", baskets.on_off_name", "layoutdirection": "primaryasc" } } ] ] } }, { } |
It is possible to display the categories
block (from indicator drill) directly on a dashboard. In that case, a block with corresponding indicator must be specified. For the block description, see content.blocks.categories
.
Code Block | ||||
---|---|---|---|---|
| ||||
{ "type"name": "indicatorGroupcatchment_area_dashboard", "title"type": "Demographydashboard", "content": { "blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=residentsturnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=residentsturnover_indicator_drill", "layout": "primary" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=householdscustomers_indicator",a ranking indicator drill block "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=householdscustomers_indicator_drill", "layout": "primary" }, }{ ]"type": "indicator", } "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_customer_indicator", ] } } |
This example combines the use of indicatorGroups
and blockRow
objects.
Code Block | ||||
---|---|---|---|---|
| ||||
{ "nameindicatorDrill": "catchment_area_dashboard",/rest/projects/$projectId/md/indicatorDrills?name=purchases_customer_indicator_drill", "type": "dashboard", "contentlayout": { "primary" "blockRows": [ }, { "type": "indicatordistribution", "indicatortitle": "/rest/projects/$projectId/md/indicators?name=turnover_indicatorOptional distribution title", "indicatorDrillindicator": "/rest/projects/$projectId/md/indicatorDrillsindicators?name=online_turnover_indicator_drill", "layout": "primary" }, { "type": "indicatorranking", "indicatortitle": "/rest/projects/$projectId/md/indicators?name=customers_indicatorOptional ranking title", "indicatorDrillindicator": "/rest/projects/$projectId/md/indicatorDrillsindicators?name=customersonline_turnover_indicator_drill", }, "layout": "primary" { }, {"type": "timeSeries", "typetitle": "indicatorOptional time series title", "indicator": "/rest/projects/$projectId/md/indicators?name=purchasesonline_customerturnover_indicator", } ] } } |
It is possible to display the categories
block (from indicator drill) directly on a dashboard. In that case, a block with corresponding indicator must be specified. For the block description, see content.blocks.categories
.
Code Block | ||||
---|---|---|---|---|
| ||||
{ "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_customer_indicator_drillname": "catchment_area_dashboard", "type": "dashboard", "content": { "layoutblockRows": "primary" [ { }, {"type": "indicator", "typeindicator": "categories/rest/projects/$projectId/md/indicators?name=turnover_indicator", "indicatorindicatorDrill": "/rest/projects/$projectId/md/indicatorsindicatorDrills?name=turnover_indicator_drill", "titlelayout": "primary"Total Turnover value by channel", }, "description": "Total Turnover value by channel",{ "splitPropertytype": "baskets.on_off_nameindicator", "orderByindicator": {"/rest/projects/$projectId/md/indicators?name=customers_indicator", "propertyindicatorDrill": "baskets.on_off_name", /rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drill", "directionlayout": "ascprimary"a ranking indicator drill block }, { }, {"type": "indicator", "typeindicator": "categories/rest/projects/$projectId/md/indicators?name=purchases_customer_indicator", "indicatorindicatorDrill": "/rest/projects/$projectId/md/indicatorsindicatorDrills?name=customerspurchases_customer_indicator_drill", "titlelayout": "Number of Customers by channel","primary" } ], "descriptiondatasetProperties": "Number of Customers by channel", [ { "splitPropertydataset": "baskets.on_off_name/rest/projects/$projectId/md/datasets?name=shops", "orderByfeatureAttributes": [ { { "property": "baskets.on_off_name", "directiontype": "ascproperty", } "value": "manager_name" } ] } } |
It is possible to display the categories
block (from indicator drill) directly on a dashboard. In that case, a block with corresponding indicator must be specified. For the block description, see content.blocks.categories
.
Code Block | ||||
---|---|---|---|---|
| ||||
{ "name": "catchment_area_dashboard",, { "type": "dashboardproperty", "content": { "blockRowsvalue": ["opening_hours" { }, "type": "indicator", { "indicator": "/rest/projects/$projectId/md/indicators?name=turnover_indicator", "indicatorDrilltype": "/rest/projects/$projectId/md/indicatorDrills?name=turnover_indicator_drillproperty", "layout "value": "primarycontact_phone" }, { { "type": "indicator", "indicatortype": "/rest/projects/$projectId/md/indicators?name=customers_indicator",property", "indicatorDrillvalue": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drillcontact_mail", "layout": "primary" "format": { }, { "type": "indicatoremail", "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_customer_indicator", } "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_customer_indicator_drill", }, "layout": "primary" { } ], "datasetProperties": [ "type": "property", { "datasetvalue": "/rest/projects/$projectId/md/datasets?name=shops",employees" "featureAttributes": [ }, { "type": "property", "value": "managermonthly_namerent", },"format": { "type": "number", { "type": "propertyfraction": 0, "valuesymbol": "opening_hours£" }, } { } ] "type": "property", } ] } "value": "contact_phone" }, { "type": "property", "value": "contact_mail", "format": { "type": "email" } }, { "type": "property", "value": "employees" }, { "type": "property", "value": "monthly_rent", "format": { "type": "number", "fraction": 0, "symbol": "£" } } ] } ] } } |
It is also possible to define (but not display) the dataset.properties.featureAttributes
on a dashboard. This way, attributes can be defined per view, in case you want to see the properties of a dataset in one view, but not the other. When defined in dataset, the attributes are active per the whole project.
Key description
content
...
Status | ||||
---|---|---|---|---|
|
...
array of either:
- indicator and indicator drill pairs
- a
blockRow
object containing a maximum of 2 indicator and indicator drill pairs in one line - an
indicatorGroup
object containing grouped indicator and indicator drill pairs - a categories indicator drill block
see the syntax examples above
...
Status | ||||
---|---|---|---|---|
|
...
definition of dataset's featureAttributes
and defaultSearch
per view options
content.blockRows.indicator
blockRows.indicator
...
}
|
It is also possible to define (but not display) the dataset.properties.featureAttributes
on a dashboard. This way, attributes can be defined per view, in case you want to see the properties of a dataset in one view, but not the other. When defined in dataset, the attributes are active per the whole project.
Key description
content
Key | Type | Optionality | Description | Constraints | ||||||
---|---|---|---|---|---|---|---|---|---|---|
blockRows | array |
| array of either:
see the syntax examples above | |||||||
datasetProperties | array |
| definition of dataset's |
content.blockRows.indicator
blockRows.indicator
A regular indicator tile in one row.
Key | Type | Optionality | Description | Constraints | ||||||
---|---|---|---|---|---|---|---|---|---|---|
type | string |
| type identifier, always indicator | [indicator] | ||||||
indicator | string |
| URL link to the indicator object | /rest/projects/$projectId/md/indicators?name={indicatorName} | ||||||
indicatorDrill | string |
| URL link to the indicator drill object | /rest/projects/$projectId/md/indicatorDrills?name={ | ||||||
layout | string |
| layout of the indicator when not specified, the indicator's layout is | [primary, secondary] | ||||||
collapsed | boolean |
| determines if the indicator should be collapsed when entering the view |
content.blockRows.blockRow
blockRows.blockRow
An object defining one row in a dashboard. Can contain a maximum of 2 indicators, which will be split in half and displayed in one row.
Key | Type | Optionality | Description | Constraints | ||||||
---|---|---|---|---|---|---|---|---|---|---|
type | string |
| type identifier, always blockRow | [ | ||||||
blocks | array |
| array of indicator and indicator drill pairs | size = 2 |
content.
blockRows.
indicatorGroup
blockRows.
A number of indicators in a named collapsible group.
Key | Type | Optionality | Description | Constraints | ||||||
---|---|---|---|---|---|---|---|---|---|---|
type | string |
| type identifier, always indicatorGroup | [indicatorGroup] | ||||||
title | string |
| title of the indicator group | (*) | ||||||
description | string |
| description of the indicator group | (*) | ||||||
collapsed | boolean |
| determines if the group should be collapsed when entering the view | [true, false] | ||||||
blockRows | array |
| array of either:
see the syntax example above |
content.
blockRows.categories
blockRows.categories
The syntax of categories block on dashboard is identical to the regular categories syntax. See indicatorDrill.content.blocks.categories
.
content.blockRows.distribution
Distribution block's scale and the distribution of the data is defined in its paired indicator.content
.
Distribution also has a description, which is not configurable through metadata, but is compiled from the properties of its paired indicator
, according to this formula: "Distribution of indicator.title
in granularity
"
Key | Type | Optionality | Description | Constraints |
---|---|---|---|---|
type | string | REQUIRED | type identifier, always | [ |
title | string | OPTIONAL | human-readable title of the categories block | (*) |
indicator | string | OPTIONAL | URL link to the indicator object | /rest/projects/$projectId/md/indicators?name={indicatorName} |
onDashboard | boolean | OPTIONAL | determines if the block should be displayed directly on a dashboard | [ |
collapsed | boolean | OPTIONAL | determines if the block should be collapsed when entering the view |
|
content.blockRows.ranking
Ranking block can be switched to display either markers, or areas (when they're both available in the view). When there is a higher number of elements, infinite scroll is used.
Ranking also has a description, which is not configurable through metadata, but is compiled from the properties of its paired indicator
, according to this formula: "Rank of object
according to indicator.title
" (note: object
in this case is either a polygon from a certain granularity, or a marker).
...
Key | Type | Optionality | Description | Constraints |
---|---|---|---|---|
type | string |
...
Status | ||||
---|---|---|---|---|
|
...
REQUIRED | type identifier, always | [ranking] | ||
title | string | OPTIONAL | human-readable title of the categories block | (*) |
indicator | string |
...
Status | ||||
---|---|---|---|---|
|
OPTIONAL | URL link to |
...
the indicator |
...
Status | ||||
---|---|---|---|---|
|
...
content.blockRows.blockRow
blockRows.blockRow
An object defining one row in a dashboard. Can contain a maximum of 2 indicators, which will be split in half and displayed in one row.
...
Status | ||||
---|---|---|---|---|
|
...
Status | ||||
---|---|---|---|---|
|
...
array of indicator and indicator drill pairs
...
content.
blockRows.
indicatorGroup
blockRows.
...
object | /rest/projects/$projectId/md/indicators?name={indicatorName} |
onDashboard | boolean |
...
Status | ||||
---|---|---|---|---|
|
...
URL link to the indicator drill object
...
Status | ||||
---|---|---|---|---|
|
...
layout of the indicator
when not specified, the indicator's layout is primary
...
OPTIONAL | determines if the block should be displayed directly on a dashboard | [ | ||
featureType | string | OPTIONAL | specifies which feature type should be ranked by default default = | [granularity, markers] |
direction | string | OPTIONAL | specifies the direction of ranked objects default = | [ |
collapsed | boolean | OPTIONAL | determines if the block should be collapsed when entering the view |
|
content.blockRows.timeSeries
Time series visualises the progress and trend of the respective indicator in a selected time frame. Additionally, it can be extended with time series of another indicator.
However, its time frame is set by view.content.filterGroup.globalDate
filter. The component itself also allows the user to set the granularity of the block (days, weeks, months, quarters or years).
Time series also has a description, which is not configurable through metadata, but is compiled from the properties of its paired indicator
, according to this formula: "Progress of indicator.title
from view.content.filterGroup.globalDate.startDate
to view.content.filterGroup.globalDate.endDate
"
...
Key | Type | Optionality | Description | Constraints |
---|---|---|---|---|
type | string |
...
REQUIRED | type identifier, always |
...
| [ |
...
| |
title | string |
...
Status | ||||
---|---|---|---|---|
|
...
Status | ||||
---|---|---|---|---|
|
...
Status | ||||
---|---|---|---|---|
|
...
OPTIONAL | human-readable title of the categories block | (*) | ||
indicator | string | OPTIONAL | URL link to the indicator object | /rest/projects/$projectId/md/indicators?name={indicatorName} |
onDashboard | boolean | OPTIONAL | determines if the block should be displayed directly on a dashboard | [ |
defaultPeriod | string | OPTIONAL | specifies the default period dataset selected by default | /rest/projects/$projectId/md/datasets?name={datasetName} |
additionalSeries | array | OPTIONAL | array of additionalSeries objects | |
annotations | array | OPTIONAL | array of annotations objects | |
collapsed | boolean | OPTIONAL | determines if the block should be collapsed when entering the view |
|
...
Status | ||||
---|---|---|---|---|
|
...
array of either:
- indicator and indicator drill pairs
- a
blockRow
object containing a maximum of 2 indicator and indicator drill pairs in one line
see the syntax example above
content.
blockRows.categories
blockRows.categories
...
content.
datasetProperties
datasetProperties
...
Key | Type | Optionality | Description | Constraints | ||||||
---|---|---|---|---|---|---|---|---|---|---|
dataset | string |
| URL link to the dataset, whose properties will be set | /rest/projects/$projectId/md/datasets?name={datasetName} | ||||||
defaultSearch | string |
| specifies if the dataset will be enabled in Refine search enable = dataset will be enabled disable = dataset will be disabled auto = dataset will be enabled if its features are visible in the map | [enable, disable, auto] | ||||||
featureAttributes | array |
| array of |
...