aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web/app/store/SpeedUnits.js16
-rw-r--r--web/app/view/report/Report.js11
-rw-r--r--web/app/view/state/StateController.js8
3 files changed, 32 insertions, 3 deletions
diff --git a/web/app/store/SpeedUnits.js b/web/app/store/SpeedUnits.js
index b658fc936..ee345621b 100644
--- a/web/app/store/SpeedUnits.js
+++ b/web/app/store/SpeedUnits.js
@@ -20,5 +20,19 @@ Ext.define('Traccar.store.SpeedUnits', {
data : [
{'key': 'kph', 'name': strings.shared_kph},
{'key': 'mph', 'name': strings.shared_mph}
- ]
+ ],
+
+ convert: function(value, unit) {
+ switch (unit) {
+ case 'kph':
+ return value * 1.852;
+ case 'mph':
+ return value * 1.15078;
+ }
+ return value;
+ },
+
+ getUnitName: function(unit) {
+ return this.findRecord('key', unit).get('name');
+ }
});
diff --git a/web/app/view/report/Report.js b/web/app/view/report/Report.js
index d52243139..320d336fa 100644
--- a/web/app/view/report/Report.js
+++ b/web/app/view/report/Report.js
@@ -80,7 +80,16 @@ Ext.define('Traccar.view.report.Report', {
{ text: strings.position_latitude, dataIndex: 'latitude', flex: 1 },
{ text: strings.position_longitude, dataIndex: 'longitude', flex: 1 },
{ text: strings.position_altitude, dataIndex: 'altitude', flex: 1 },
- { text: strings.position_speed, dataIndex: 'speed', flex: 1 },
+ {
+ text: strings.position_speed,
+ dataIndex: 'speed',
+ flex: 1,
+ renderer: function(value) {
+ var speedUnits = Ext.getStore('SpeedUnits');
+ var unit = Traccar.getApplication().getUser().get('speedUnit') || Traccar.getApplication().getServer().get('speedUnit') || '';
+ return speedUnits.convert(value, unit) + ' ' + speedUnits.getUnitName(unit);
+ }
+ },
{ text: strings.position_course, dataIndex: 'course', flex: 1 },
{ text: strings.position_address, dataIndex: 'address', flex: 1 }
]
diff --git a/web/app/view/state/StateController.js b/web/app/view/state/StateController.js
index 1e2c271d1..66b1c48ac 100644
--- a/web/app/view/state/StateController.js
+++ b/web/app/view/state/StateController.js
@@ -81,10 +81,16 @@ Ext.define('Traccar.view.state.StateController', {
for (var key in position.data) {
if (position.data.hasOwnProperty(key) && this.keys[key] !== undefined) {
+ var value = position.get(key);
+ if (key === 'speed') {
+ var speedUnits = Ext.getStore('SpeedUnits');
+ var unit = Traccar.getApplication().getUser().get('speedUnit') || Traccar.getApplication().getServer().get('speedUnit') || '';
+ value = speedUnits.convert(value, unit) + ' ' + speedUnits.getUnitName(unit);
+ }
store.add(Ext.create('Traccar.model.Parameter', {
priority: this.keys[key].priority,
name: this.keys[key].name,
- value: position.get(key)
+ value: value
}));
}
}