aboutsummaryrefslogtreecommitdiff
path: root/web/app/store
diff options
context:
space:
mode:
authorAbyss777 <abyss@fox5.ru>2017-05-18 10:01:49 +0500
committerAbyss777 <abyss@fox5.ru>2017-05-18 16:18:26 +0500
commit788a499b346724d753798597fb18f8aef17e1588 (patch)
tree07a29a92434aba956697360d6ef867ca1a328060 /web/app/store
parent31187bc2a3ae41ab553a6472b7592895e3641fe8 (diff)
downloadtrackermap-web-788a499b346724d753798597fb18f8aef17e1588.tar.gz
trackermap-web-788a499b346724d753798597fb18f8aef17e1588.tar.bz2
trackermap-web-788a499b346724d753798597fb18f8aef17e1588.zip
Implement known position attributes
Diffstat (limited to 'web/app/store')
-rw-r--r--web/app/store/AttributeValueTypes.js33
-rw-r--r--web/app/store/DeviceAttributes.js20
-rw-r--r--web/app/store/GeofenceAttributes.js2
-rw-r--r--web/app/store/GroupAttributes.js16
-rw-r--r--web/app/store/PositionAttributes.js258
-rw-r--r--web/app/store/ServerAttributes.js14
-rw-r--r--web/app/store/UserAttributes.js24
7 files changed, 329 insertions, 38 deletions
diff --git a/web/app/store/AttributeValueTypes.js b/web/app/store/AttributeValueTypes.js
new file mode 100644
index 00000000..b80eba39
--- /dev/null
+++ b/web/app/store/AttributeValueTypes.js
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2017 Anton Tananaev (anton@traccar.org)
+ * Copyright 2017 Andrey Kunitsyn (andrey@traccar.org)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+Ext.define('Traccar.store.AttributeValueTypes', {
+ extend: 'Ext.data.Store',
+ fields: ['id', 'name'],
+ proxy: 'memory',
+
+ data: [{
+ id: 'string',
+ name: Strings.sharedTypeString
+ }, {
+ id: 'number',
+ name: Strings.sharedTypeNumber
+ }, {
+ id: 'boolean',
+ name: Strings.sharedTypeBoolean
+ }]
+});
diff --git a/web/app/store/DeviceAttributes.js b/web/app/store/DeviceAttributes.js
index 8f476d4e..220f9a5b 100644
--- a/web/app/store/DeviceAttributes.js
+++ b/web/app/store/DeviceAttributes.js
@@ -23,33 +23,33 @@ Ext.define('Traccar.store.DeviceAttributes', {
data: [{
key: 'speedLimit',
name: Strings.attributeSpeedLimit,
- type: 'number',
- convert: 'speed'
+ valueType: 'number',
+ dataType: 'speed'
}, {
key: 'report.ignoreOdometer',
name: Strings.attributeReportIgnoreOdometer,
- type: 'boolean'
+ valueType: 'boolean'
}, {
key: 'maintenance.start',
name: Strings.attributeMaintenanceStart,
- type: 'number',
- convert: 'distance'
+ valueType: 'number',
+ dataType: 'distance'
}, {
key: 'maintenance.interval',
name: Strings.attributeMaintenanceInterval,
- type: 'number',
- convert: 'distance'
+ valueType: 'number',
+ dataType: 'distance'
}, {
key: 'web.reportColor',
name: Strings.attributeWebReportColor,
- type: 'color'
+ valueType: 'color'
}, {
key: 'devicePassword',
name: Strings.attributeDevicePassword,
- type: 'string'
+ valueType: 'string'
}, {
key: 'processing.copyAttributes',
name: Strings.attributeProcessingCopyAttributes,
- type: 'string'
+ valueType: 'string'
}]
});
diff --git a/web/app/store/GeofenceAttributes.js b/web/app/store/GeofenceAttributes.js
index 9034b3f3..2b8d2d89 100644
--- a/web/app/store/GeofenceAttributes.js
+++ b/web/app/store/GeofenceAttributes.js
@@ -23,6 +23,6 @@ Ext.define('Traccar.store.GeofenceAttributes', {
data: [{
key: 'color',
name: Strings.attributeColor,
- type: 'color'
+ valueType: 'color'
}]
});
diff --git a/web/app/store/GroupAttributes.js b/web/app/store/GroupAttributes.js
index 95507243..2a2765f5 100644
--- a/web/app/store/GroupAttributes.js
+++ b/web/app/store/GroupAttributes.js
@@ -23,25 +23,25 @@ Ext.define('Traccar.store.GroupAttributes', {
data: [{
key: 'speedLimit',
name: Strings.attributeSpeedLimit,
- type: 'number',
- convert: 'speed'
+ valueType: 'number',
+ dataType: 'speed'
}, {
key: 'report.ignoreOdometer',
name: Strings.attributeReportIgnoreOdometer,
- type: 'boolean'
+ valueType: 'boolean'
}, {
key: 'maintenance.start',
name: Strings.attributeMaintenanceStart,
- type: 'number',
- convert: 'distance'
+ valueType: 'number',
+ dataType: 'distance'
}, {
key: 'maintenance.interval',
name: Strings.attributeMaintenanceInterval,
- type: 'number',
- convert: 'distance'
+ valueType: 'number',
+ dataType: 'distance'
}, {
key: 'processing.copyAttributes',
name: Strings.attributeProcessingCopyAttributes,
- type: 'string'
+ valueType: 'string'
}]
});
diff --git a/web/app/store/PositionAttributes.js b/web/app/store/PositionAttributes.js
new file mode 100644
index 00000000..6d6c0b71
--- /dev/null
+++ b/web/app/store/PositionAttributes.js
@@ -0,0 +1,258 @@
+/*
+ * Copyright 2017 Anton Tananaev (anton@traccar.org)
+ * Copyright 2017 Andrey Kunitsyn (andrey@traccar.org)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+Ext.define('Traccar.store.PositionAttributes', {
+ extend: 'Ext.data.Store',
+ model: 'Traccar.model.KnownAttribute',
+ proxy: 'memory',
+
+ data: [{
+ key: 'raw',
+ name: Strings.positionRaw,
+ valueType: 'string'
+ }, {
+ key: 'index',
+ name: Strings.positionIndex,
+ valueType: 'number'
+ }, {
+ key: 'hdop',
+ name: Strings.positionHdop,
+ valueType: 'number'
+ }, {
+ key: 'vdop',
+ name: Strings.positionVdop,
+ valueType: 'number'
+ }, {
+ key: 'pdop',
+ name: Strings.positionPdop,
+ valueType: 'number'
+ }, {
+ key: 'sat',
+ name: Strings.positionSat,
+ valueType: 'number'
+ }, {
+ key: 'satVisible',
+ name: Strings.positionSatVisible,
+ valueType: 'number'
+ }, {
+ key: 'rssi',
+ name: Strings.positionRssi,
+ valueType: 'number'
+ }, {
+ key: 'gps',
+ name: Strings.positionGps,
+ valueType: 'number'
+ }, {
+ key: 'event',
+ name: Strings.positionEvent,
+ valueType: 'string'
+ }, {
+ key: 'alarm',
+ name: Strings.alarm,
+ valueType: 'string'
+ }, {
+ key: 'status',
+ name: Strings.positionStatus,
+ valueType: 'string'
+ }, {
+ key: 'odometer',
+ name: Strings.positionOdometer,
+ valueType: 'number',
+ dataType: 'distance'
+ }, {
+ key: 'serviceOdometer',
+ name: Strings.positionServiceOdometer,
+ valueType: 'number',
+ dataType: 'distance'
+ }, {
+ key: 'tripOdometer',
+ name: Strings.positionTripOdometer,
+ valueType: 'number',
+ dataType: 'distance'
+ }, {
+ key: 'hours',
+ name: Strings.positionHours,
+ valueType: 'string'
+ }, {
+ key: 'input',
+ name: Strings.positionInput,
+ valueType: 'string'
+ }, {
+ key: 'output',
+ name: Strings.positionOutput,
+ valueType: 'string'
+ }, {
+ key: 'power',
+ name: Strings.positionPower,
+ valueType: 'number',
+ dataType: 'voltage'
+ }, {
+ key: 'battery',
+ name: Strings.positionBattery,
+ valueType: 'number',
+ dataType: 'voltage'
+ }, {
+ key: 'batteryLevel',
+ name: Strings.positionBatteryLevel,
+ valueType: 'number',
+ dataType: 'percentage'
+ }, {
+ key: 'fuel',
+ name: Strings.positionFuel,
+ valueType: 'number',
+ dataType: 'volume'
+ }, {
+ key: 'fuelConsumption',
+ name: Strings.positionFuelConsumption,
+ valueType: 'number',
+ dataType: 'consumption'
+ }, {
+ key: 'rfid',
+ name: Strings.positionRfid,
+ valueType: 'string'
+ }, {
+ key: 'versionFw',
+ name: Strings.positionVersionFw,
+ valueType: 'string'
+ }, {
+ key: 'versionHw',
+ name: Strings.positionVersionHw,
+ valueType: 'string'
+ }, {
+ key: 'type',
+ name: Strings.sharedType,
+ valueType: 'string'
+ }, {
+ key: 'ignition',
+ name: Strings.positionIgnition,
+ valueType: 'boolean'
+ }, {
+ key: 'flags',
+ name: Strings.positionFlags,
+ valueType: 'string'
+ }, {
+ key: 'charge',
+ name: Strings.positionCharge,
+ valueType: 'string'
+ }, {
+ key: 'ip',
+ name: Strings.positionIp,
+ valueType: 'string'
+ }, {
+ key: 'archive',
+ name: Strings.positionArchive,
+ valueType: 'boolean'
+ }, {
+ key: 'distance',
+ name: Strings.positionDistance,
+ valueType: 'number',
+ dataType: 'distance'
+ }, {
+ key: 'totalDistance',
+ name: Strings.deviceTotalDistance,
+ valueType: 'number',
+ dataType: 'distance'
+ }, {
+ key: 'rpm',
+ name: Strings.positionRpm,
+ valueType: 'number'
+ }, {
+ key: 'vin',
+ name: Strings.positionVin,
+ valueType: 'string'
+ }, {
+ key: 'approximate',
+ name: Strings.positionApproximate,
+ valueType: 'boolean'
+ }, {
+ key: 'throttle',
+ name: Strings.positionThrottle,
+ valueType: 'number'
+ }, {
+ key: 'motion',
+ name: Strings.positionMotion,
+ valueType: 'number'
+ }, {
+ key: 'armed',
+ name: Strings.positionArmed,
+ valueType: 'number'
+ }, {
+ key: 'geofence',
+ name: Strings.sharedGeofence,
+ valueType: 'string'
+ }, {
+ key: 'acceleration',
+ name: Strings.positionAcceleration,
+ valueType: 'number'
+ }, {
+ key: 'deviceTemp',
+ name: Strings.positionDeviceTemp,
+ valueType: 'number',
+ dataType: 'temperature'
+ }, {
+ key: 'operator',
+ name: Strings.positionOperator,
+ valueType: 'number',
+ dataType: 'temperature'
+ }, {
+ key: 'command',
+ name: Strings.deviceCommand,
+ valueType: 'string'
+ }, {
+ key: 'blocked',
+ name: Strings.positionBlocked,
+ valueType: 'boolean'
+ }, {
+ key: 'dtcs',
+ name: Strings.positionDtcs,
+ valueType: 'string'
+ }, {
+ key: 'obdSpeed',
+ name: Strings.positionObdSpeed,
+ valueType: 'number',
+ dataType: 'speed'
+ }, {
+ key: 'obdOdometer',
+ name: Strings.positionObdOdometer,
+ valueType: 'number',
+ dataType: 'distance'
+ }, {
+ key: 'result',
+ name: Strings.eventCommandResult,
+ valueType: 'string'
+ }],
+
+ getAttributeName: function (key) {
+ var model = this.getById(key);
+ if (model) {
+ return model.get('name');
+ } else {
+ return key.replace(/^./, function (match) {
+ return match.toUpperCase();
+ });
+ }
+ },
+
+ getAttributeDataType: function (key) {
+ var model = this.getById(key);
+ if (model && model.get('dataType')) {
+ return model.get('dataType');
+ } else {
+ return null;
+ }
+ }
+});
diff --git a/web/app/store/ServerAttributes.js b/web/app/store/ServerAttributes.js
index 602aab87..64bac240 100644
--- a/web/app/store/ServerAttributes.js
+++ b/web/app/store/ServerAttributes.js
@@ -23,22 +23,22 @@ Ext.define('Traccar.store.ServerAttributes', {
data: [{
key: 'speedLimit',
name: Strings.attributeSpeedLimit,
- type: 'number',
- convert: 'speed'
+ valueType: 'number',
+ dataType: 'speed'
}, {
key: 'maintenance.start',
name: Strings.attributeMaintenanceStart,
- type: 'number',
- convert: 'distance'
+ valueType: 'number',
+ dataType: 'distance'
}, {
key: 'maintenance.interval',
name: Strings.attributeMaintenanceInterval,
- type: 'number',
- convert: 'distance'
+ valueType: 'number',
+ dataType: 'distance'
}, {
key: 'web.liveRouteLength',
name: Strings.attributeWebLiveRouteLength,
- type: 'number',
+ valueType: 'number',
allowDecimals: false
}]
});
diff --git a/web/app/store/UserAttributes.js b/web/app/store/UserAttributes.js
index 8649eb8b..da05d5c8 100644
--- a/web/app/store/UserAttributes.js
+++ b/web/app/store/UserAttributes.js
@@ -23,54 +23,54 @@ Ext.define('Traccar.store.UserAttributes', {
data: [{
key: 'mail.smtp.host',
name: Strings.attributeMailSmtpHost,
- type: 'string'
+ valueType: 'string'
}, {
key: 'mail.smtp.port',
name: Strings.attributeMailSmtpPort,
- type: 'number',
+ valueType: 'number',
allowDecimals: false,
minValue: 1,
maxValue: 65535
}, {
key: 'mail.smtp.starttls.enable',
name: Strings.attributeMailSmtpStarttlsEnable,
- type: 'boolean'
+ valueType: 'boolean'
}, {
key: 'mail.smtp.starttls.required',
name: Strings.attributeMailSmtpStarttlsRequired,
- type: 'boolean'
+ valueType: 'boolean'
}, {
key: 'mail.smtp.ssl.enable',
name: Strings.attributeMailSmtpSslEnable,
- type: 'boolean'
+ valueType: 'boolean'
}, {
key: 'mail.smtp.ssl.trust',
name: Strings.attributeMailSmtpSslTrust,
- type: 'string'
+ valueType: 'string'
}, {
key: 'mail.smtp.ssl.protocols',
name: Strings.attributeMailSmtpSslProtocols,
- type: 'string'
+ valueType: 'string'
}, {
key: 'mail.smtp.from',
name: Strings.attributeMailSmtpFrom,
- type: 'string'
+ valueType: 'string'
}, {
key: 'mail.smtp.auth',
name: Strings.attributeMailSmtpAuth,
- type: 'boolean'
+ valueType: 'boolean'
}, {
key: 'mail.smtp.username',
name: Strings.attributeMailSmtpUsername,
- type: 'string'
+ valueType: 'string'
}, {
key: 'mail.smtp.password',
name: Strings.attributeMailSmtpPassword,
- type: 'string'
+ valueType: 'string'
}, {
key: 'web.liveRouteLength',
name: Strings.attributeWebLiveRouteLength,
- type: 'number',
+ valueType: 'number',
allowDecimals: false
}]
});