Dashboard is an ordered list of indicators and indicator drill pairs.
...
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", "itemId": "78d0d5553ee924d8532515b521fa70f1" }, { "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", "itemId": "019ad374af348531dae3b6dae90de923" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drill", "layout": "primary", "itemId": "05f174e2300cee630980bdc3166cce7f" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_indicator_drill", "layout": "primary", }, "itemId": "cb9742a903269413edda25e0400a5ec1" }, { "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", "itemId": "dd172a51be2b1de46bfbd025eaf87137" }, { "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", "itemId": "69c1e3e090da9681de740157d9214a60" } ] } } |
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", "itemId": "78d0d5553ee924d8532515b521fa70f1" }, { "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", "itemId": "019ad374af348531dae3b6dae90de923" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drill", "layout": "primary", "itemId": "05f174e2300cee630980bdc3166cce7f" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_indicator_drill", "layout": "primary", "itemId": "cb9742a903269413edda25e0400a5ec1" }, { "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", "itemId": "dd172a51be2b1de46bfbd025eaf87137" }, { "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", "itemId": "69c1e3e090da9681de740157d9214a60" } ] }, "accessInfo": { "createdAt": "2017-10-05T08:27:11Z" }, "links": [ { "rel": "self", "href": "/rest/projects/yufqzxkbiecj7jot/md/dashboards/fbvund7hls1s5a5s" } ] } } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "name": "customer_intelligence_dashboard", "type": "dashboard", "content": { "blockRows": [ { "type": "blockRow", "blocks": [ { "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", "itemId": "8ac314a472a91c42bfbeac9cf90a30aa" }, }, { { "type": " "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", "itemId": "45417c00d9b5d52936b8d2b8300eda63" } ], "itemId": "44b154f493ffb6195f253232446beef7" }, { "type": "blockRow", "blocks": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drill", "layout": "secondary", "itemId": "8d053723cb9372574ceeae9bd0c360ba" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_indicator_drill", "layout": "secondary", "itemId": "6a1e11b1795f90b5170da6143e770816" } ]} }, ], { "itemId": "94014766357838ab645158538ddc6ed0" }, { "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", "itemId": "b465747d2a26239f1168e7a6cf250231" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_customer_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_customer_indicator_drill", "layout": "secondary", "itemId": "d13d5b44990292a6c1b051c018410053" } ] } } |
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.
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "name": "indicator_groups_dashboard", "type": "dashboard", "content": { "blockRows": [ { "type": "indicatorGroup", "title": "Catchment Area Analysis", "blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=turnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=turnover_indicator_drill", "layout": "primary", "itemId": "78d0d5553ee924d8532515b521fa70f1" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drill", "layout": "primary", "itemId": "9403698a1ed0cc2e55fcc27762faa1a3" }, { "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", "itemId": "8d053723cb9372574ceeae9bd0c360ba" } ], "itemId": "ccf504abece40ed0bbe992f4931ddae3" }, { "type": "indicatorGroup", "title": "Customer Intelligence", "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", "itemId": "b465747d2a26239f1168e7a6cf250231" }, { "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", "itemId": "ccf504abece40ed0bbe992f4931ddae3" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_indicator_drill", "layout": "primary", "itemId": "9403698a1ed0cc2e55fcc27762faa1a3" }, { "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", "itemId": "ee2069d8ebd36700690adbf9875111f1" } ], "itemId": "9403698a1ed0cc2e55fcc27762faa1a3" }, { "type": "indicatorGroup", "title": "Market Potential", "blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=market_potential_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=market_potential_indicator_drill", "layout": "primary", "itemId": "d13d5b44990292a6c1b051c018410053" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=market_penetration_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=market_penetration_indicator_drill", "layout": "primary", "itemId": "8d053723cb9372574ceeae9bd0c360ba" }, }, { { "type": " "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=potential_customers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=potential_customers_indicator_drill", "layout": "primary", "itemId": "f954ba0708d2a87832469e97d00dac7a" } ], "itemId": "ee2069d8ebd36700690adbf9875111f1" }, { "type": "indicatorGroup", "title": "Demography", "blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=residents_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=residents_indicator_drill", "layout": "primary", "itemId": "6a1e11b1795f90b5170da6143e770816" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=households_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=households_indicator_drill", "layout": "primary", "itemId": "b465747d2a26239f1168e7a6cf250231" } } ] } ], ] } } |
...
"itemId": "d13d5b44990292a6c1b051c018410053"
}
]
}
}
|
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.
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "name": "indicator_groups_dashboard", "type": "dashboard", "content": { "blockRows": [ { "type": "indicatorGroup", "title": "Catchment Area Analysis", "blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=turnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=turnover_indicator_drill", "layout": "primary", "itemId": "9403698a1ed0cc2e55fcc27762faa1a3" }, { "type": "blockRow", "blocks": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drill", "layout": "primary", "itemId": "ccf504abece40ed0bbe992f4931ddae3" }, { "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", "itemId": "78d0d5553ee924d8532515b521fa70f1" } } ] ], } "itemId": "b465747d2a26239f1168e7a6cf250231" } ], "itemId": "6a1e11b1795f90b5170da6143e770816" }, { "type": "indicatorGroup", "title": "Customer Intelligence", "blockRows": [ { "type": "blockRow", "blocks": [ { "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", "itemId": "6a1e11b1795f90b5170da6143e770816" }, { "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", "itemId": "b465747d2a26239f1168e7a6cf250231" } } ] ], }, "itemId": "78d0d5553ee924d8532515b521fa70f1" { }, " { "type": "blockRow", "blocks": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=purchases_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=purchases_indicator_drill", "layout": "primary", "itemId": "d13d5b44990292a6c1b051c018410053" }, { "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", "itemId": "ee2069d8ebd36700690adbf9875111f1" } } ] ], } "itemId": "9403698a1ed0cc2e55fcc27762faa1a3" ] }, } { "type": "indicatorGroup"], "titleitemId": "Market Potentialccf504abece40ed0bbe992f4931ddae3", }, "blockRows": [ { "type": "indicatorGroup", "title": "Market Potential", "blockRows": [ { "type": "blockRow", "blocks": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=market_potential_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=market_potential_indicator_drill", "layout": "primary", "itemId": "110041ea130fb3cb2b8e6ef4d3925184" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=market_penetration_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=market_penetration_indicator_drill", "layout": "primary", "itemId": "3fb652df72521f04ea030cd7e5be4f14" } } ], "itemId": "24855bd309326c03f9517aa26c1585ce" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=potential_customers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=potential_customers_indicator_drill", "layout": "primary", "itemId": "08a28d47c1b25b25b69ba304bf286257" } ], "itemId": "1973df870007c4fc349b855b75d8711d" }, { "type": "indicatorGroup", "title": "Demography", "blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=residents_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=residents_indicator_drill", "layout": "primary", "itemId": "100ba488ab6b56196d1641b4cd86101c" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=households_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=households_indicator_drill", "layout": "primary", "itemId": "a5708f7570f330a1d470bbf2eaaed1ed" } ], "itemId": "d13d5b44990292a6c1b051c018410053" ] } ] } } |
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", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=turnover_indicator_drill", "layout": "primary", "itemId": "79079ad528a0317b574dc6c0c8f5f4d1" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drill", "layout": "primary", "itemId": "40909dd2f0596eab4dfdbc534e1b4c11" }, { "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", "itemId": "9bfe29429a3cdc14c23d1f4571964379" }, { "type": "categories", "indicator": "/rest/projects/$projectId/md/indicators?name=turnover_indicator", "title": "Total Turnover value by channel", "description": "Total Turnover value by channel", "splitProperty": "baskets.on_off_name", "orderBy": { "property": "baskets.on_off_name", "direction": "asc" }, "itemId": "fffb087fa92f979eae3a70cd357dc52c" }, { "type": "categories", "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "title": "Number of Customers by channel", "description": "Number of Customers by channel", "splitProperty": "baskets.on_off_name", "orderBy": { "property": "baskets.on_off_name",, "direction": "asc" "direction": "asc"}, }"itemId": "e802510371745be32fcd1bfa92cb5604" } ] } } |
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": "dashboard", "content": { "blockRows": [ { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=turnover_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=turnover_indicator_drill", "layout": "primary", "itemId": "2134bead33528991273f6ae3b76b2acd" }, { "type": "indicator", "indicator": "/rest/projects/$projectId/md/indicators?name=customers_indicator", "indicatorDrill": "/rest/projects/$projectId/md/indicatorDrills?name=customers_indicator_drill", "layout": "primary", "itemId": "b1049a5fac09e793928340811686e326" }, { "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", "itemId": "0c20c60783f36e3596b026f38f9a1304" } ], "datasetProperties": [ { "dataset": "/rest/projects/$projectId/md/datasets?name=shops", "featureAttributes": [ { "type": "property", "value": "manager_name" }, { "type": "property", "value": "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": "£" } } ], "itemId": "74fe1a6b0d620af9108bfaf5ea910512" } ] } } |
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 | 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 |
...
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 |
...
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 |
...