From 788a499b346724d753798597fb18f8aef17e1588 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Thu, 18 May 2017 10:01:49 +0500 Subject: Implement known position attributes --- web/app/store/AttributeValueTypes.js | 33 +++++ web/app/store/DeviceAttributes.js | 20 +-- web/app/store/GeofenceAttributes.js | 2 +- web/app/store/GroupAttributes.js | 16 +-- web/app/store/PositionAttributes.js | 258 +++++++++++++++++++++++++++++++++++ web/app/store/ServerAttributes.js | 14 +- web/app/store/UserAttributes.js | 24 ++-- 7 files changed, 329 insertions(+), 38 deletions(-) create mode 100644 web/app/store/AttributeValueTypes.js create mode 100644 web/app/store/PositionAttributes.js (limited to 'web/app/store') diff --git a/web/app/store/AttributeValueTypes.js b/web/app/store/AttributeValueTypes.js new file mode 100644 index 0000000..b80eba3 --- /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 . + */ +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 8f476d4..220f9a5 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 9034b3f..2b8d2d8 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 9550724..2a2765f 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 0000000..6d6c0b7 --- /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 . + */ +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 602aab8..64bac24 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 8649eb8..da05d5c 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 }] }); -- cgit v1.2.3