diff options
Diffstat (limited to 'web/app/store')
-rw-r--r-- | web/app/store/CommandTypes.js | 19 | ||||
-rw-r--r-- | web/app/store/KnownCommands.js | 234 | ||||
-rw-r--r-- | web/app/store/TimeUnits.js | 24 |
3 files changed, 253 insertions, 24 deletions
diff --git a/web/app/store/CommandTypes.js b/web/app/store/CommandTypes.js index a14dd58e..f14cb596 100644 --- a/web/app/store/CommandTypes.js +++ b/web/app/store/CommandTypes.js @@ -18,28 +18,11 @@ Ext.define('Traccar.store.CommandTypes', { extend: 'Ext.data.Store', - fields: ['type', 'name'], + model: 'Traccar.model.KnownCommand', proxy: { type: 'rest', url: 'api/commandtypes', - reader: { - type: 'json', - getData: function (data) { - Ext.each(data, function (entry) { - var nameKey, name; - entry.name = entry.type; - if (typeof entry.type !== 'undefined') { - nameKey = 'command' + entry.type.charAt(0).toUpperCase() + entry.type.slice(1); - name = Strings[nameKey]; - if (typeof name !== 'undefined') { - entry.name = name; - } - } - }); - return data; - } - }, listeners: { 'exception': function (proxy, response) { Traccar.app.showError(response); diff --git a/web/app/store/KnownCommands.js b/web/app/store/KnownCommands.js new file mode 100644 index 00000000..8bf2e24e --- /dev/null +++ b/web/app/store/KnownCommands.js @@ -0,0 +1,234 @@ +/* + * 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.KnownCommands', { + extend: 'Ext.data.Store', + model: 'Traccar.model.KnownCommand', + + data: [{ + type: 'custom', + parameters: [{ + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }, { + type: 'positionPeriodic', + parameters: [{ + key: 'frequency', + name: Strings.commandFrequency, + valueType: 'number', + allowDecimals: false, + minValue: 0, + dataType: 'frequency' + }] + }, { + type: 'setTimezone', + parameters: [{ + key: 'timezoneName', + name: Strings.commandTimezone, + valueType: 'string', + dataType: 'timezone' + }] + }, { + type: 'sendSms', + parameters: [{ + key: 'phone', + name: Strings.commandPhone, + valueType: 'string' + }, { + key: 'message', + name: Strings.commandMessage, + valueType: 'string' + }] + }, { + type: 'sendUssd', + parameters: [{ + key: 'phone', + name: Strings.commandPhone, + valueType: 'string' + }] + }, { + type: 'sosNumber', + parameters: [{ + key: 'index', + name: Strings.commandIndex, + valueType: 'number', + allowDecimals: false, + minValue: 0 + }, { + key: 'phone', + name: Strings.commandPhone, + valueType: 'string' + }] + }, { + type: 'silenceTime', + parameters: [{ + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }, { + type: 'setPhonebook', + parameters: [{ + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }, { + type: 'voiceMessage', + parameters: [{ + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }, { + type: 'outputControl', + parameters: [{ + key: 'index', + name: Strings.commandIndex, + valueType: 'number', + allowDecimals: false, + minValue: 0 + }, { + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }, { + type: 'voiceMonitoring', + parameters: [{ + key: 'enable', + name: Strings.commandEnable, + valueType: 'boolean' + }] + }, { + type: 'setAgps', + parameters: [{ + key: 'enable', + name: Strings.commandEnable, + valueType: 'boolean' + }] + }, { + type: 'setIndicator', + parameters: [{ + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }, { + type: 'configuration', + parameters: [{ + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }, { + type: 'setConnection', + parameters: [{ + key: 'server', + name: Strings.commandServer, + valueType: 'string' + }, { + key: 'port', + name: Strings.commandPort, + valueType: 'number', + allowDecimals: false, + minValue: 1, + maxValue: 65535 + }] + }, { + type: 'setOdometer', + parameters: [{ + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }, { + type: 'modePowerSaving', + parameters: [{ + key: 'enable', + name: Strings.commandEnable, + valueType: 'boolean' + }] + }, { + type: 'modeDeepSleep', + parameters: [{ + key: 'enable', + name: Strings.commandEnable, + valueType: 'boolean' + }] + }, { + type: 'movementAlarm', + parameters: [{ + key: 'radius', + name: Strings.commandRadius, + valueType: 'number', + allowDecimals: false, + minValue: 0 + }] + }, { + type: 'alarmBattery', + parameters: [{ + key: 'enable', + name: Strings.commandEnable, + valueType: 'boolean' + }] + }, { + type: 'alarmSos', + parameters: [{ + key: 'enable', + name: Strings.commandEnable, + valueType: 'boolean' + }] + }, { + type: 'alarmRemove', + parameters: [{ + key: 'enable', + name: Strings.commandEnable, + valueType: 'boolean' + }] + }, { + type: 'alarmClock', + parameters: [{ + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }, { + type: 'alarmSpeed', + parameters: [{ + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }, { + type: 'alarmFall', + parameters: [{ + key: 'enable', + name: Strings.commandEnable, + valueType: 'boolean' + }] + }, { + type: 'alarmVibration', + parameters: [{ + key: 'data', + name: Strings.commandData, + valueType: 'string' + }] + }] +}); diff --git a/web/app/store/TimeUnits.js b/web/app/store/TimeUnits.js index efcf1d66..0d16c4bb 100644 --- a/web/app/store/TimeUnits.js +++ b/web/app/store/TimeUnits.js @@ -1,5 +1,5 @@ /* - * Copyright 2015 Anton Tananaev (anton@traccar.org) + * Copyright 2015 - 2017 Anton Tananaev (anton@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 @@ -17,16 +17,28 @@ Ext.define('Traccar.store.TimeUnits', { extend: 'Ext.data.Store', - fields: ['name', 'factor'], + fields: ['key', 'name', 'factor'], data: [{ - name: Strings.sharedSecond, + key: 's', + name: Strings.sharedSecondAbbreviation, factor: 1 }, { - name: Strings.sharedMinute, + key: 'm', + name: Strings.sharedMinuteAbbreviation, factor: 60 }, { - name: Strings.sharedHour, + key: 'h', + name: Strings.sharedHourAbbreviation, factor: 3600 - }] + }], + + convertValue: function (value, unit, back) { + var model; + if (!unit) { + unit = 'kn'; + } + model = this.findRecord('key', unit); + return back ? value * model.get('factor') : value / model.get('factor'); + } }); |