aboutsummaryrefslogtreecommitdiff
path: root/web/app/controller/Root.js
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2017-06-07 08:21:06 -0700
committerGitHub <noreply@github.com>2017-06-07 08:21:06 -0700
commita330ae09293c62aae381cb2c7f36cfa76b86e813 (patch)
tree26478c08fc6f7136ec8355d13af2a1bbf97207dc /web/app/controller/Root.js
parentb6f2faab0d35d54189fefd7567b6310023c3ad7b (diff)
parente04a02921ea015d4f4fe69c1c3f1813a07be9cf4 (diff)
downloadtrackermap-web-a330ae09293c62aae381cb2c7f36cfa76b86e813.tar.gz
trackermap-web-a330ae09293c62aae381cb2c7f36cfa76b86e813.tar.bz2
trackermap-web-a330ae09293c62aae381cb2c7f36cfa76b86e813.zip
Merge pull request #501 from Abyss777/position_attributes_reports
Known position attributes for reports and charts
Diffstat (limited to 'web/app/controller/Root.js')
-rw-r--r--web/app/controller/Root.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/web/app/controller/Root.js b/web/app/controller/Root.js
index 8d604b62..5d22a74a 100644
--- a/web/app/controller/Root.js
+++ b/web/app/controller/Root.js
@@ -26,7 +26,31 @@ Ext.define('Traccar.controller.Root', {
],
init: function () {
+ var i, data, attribute, chartTypesStore = Ext.getStore('ReportChartTypes');
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
+ data = Ext.getStore('PositionAttributes').getData().items;
+ for (i = 0; i < data.length; i++) {
+ attribute = data[i];
+ Traccar.model.Position.addFields([{
+ name: 'attribute.' + attribute.get('key'),
+ attributeKey: attribute.get('key'),
+ calculate: this.calculateAttribute,
+ persist: false
+ }]);
+ if (attribute.get('valueType') === 'number') {
+ chartTypesStore.add({
+ key: 'attribute.' + attribute.get('key'),
+ name: attribute.get('name')
+ });
+ }
+ }
+ },
+
+ calculateAttribute: function (data) {
+ var value = data.attributes[this.attributeKey];
+ if (value !== undefined) {
+ return Traccar.AttributeFormatter.getAttributeConverter(this.attributeKey)(value);
+ }
},
onLaunch: function () {