aboutsummaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2015-10-03 12:12:16 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2015-10-03 12:12:16 +1300
commit00ebfd00f204bdfbd8e66254b79c7b8814d7ee3b (patch)
tree002bf979f90b14f1323900ca9656606113b523fc /web
parent8460acbc69ab19f35fd5079ab615ea11a6a09675 (diff)
downloadtrackermap-server-00ebfd00f204bdfbd8e66254b79c7b8814d7ee3b.tar.gz
trackermap-server-00ebfd00f204bdfbd8e66254b79c7b8814d7ee3b.tar.bz2
trackermap-server-00ebfd00f204bdfbd8e66254b79c7b8814d7ee3b.zip
Move and clean up state classes
Diffstat (limited to 'web')
-rw-r--r--web/app/view/Main.js2
-rw-r--r--web/app/view/MainMobile.js2
-rw-r--r--web/app/view/state/State.js35
-rw-r--r--web/app/view/state/StateController.js162
4 files changed, 2 insertions, 199 deletions
diff --git a/web/app/view/Main.js b/web/app/view/Main.js
index 958042542..781cfad6b 100644
--- a/web/app/view/Main.js
+++ b/web/app/view/Main.js
@@ -20,7 +20,7 @@ Ext.define('Traccar.view.Main', {
requires: [
'Traccar.view.Device',
- 'Traccar.view.state.State',
+ 'Traccar.view.State',
'Traccar.view.report.Report',
'Traccar.view.map.Map'
],
diff --git a/web/app/view/MainMobile.js b/web/app/view/MainMobile.js
index 310f3a872..0562edb70 100644
--- a/web/app/view/MainMobile.js
+++ b/web/app/view/MainMobile.js
@@ -20,7 +20,7 @@ Ext.define('Traccar.view.MainMobile', {
requires: [
'Traccar.view.Device',
- 'Traccar.view.state.State',
+ 'Traccar.view.State',
'Traccar.view.map.Map'
],
diff --git a/web/app/view/state/State.js b/web/app/view/state/State.js
deleted file mode 100644
index 99e3a00f7..000000000
--- a/web/app/view/state/State.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-Ext.define('Traccar.view.state.State', {
- extend: 'Ext.grid.Panel',
- xtype: 'stateView',
-
- requires: [
- 'Traccar.view.state.StateController'
- ],
-
- controller: 'state',
- store: 'Attributes',
-
- title: strings.stateTitle,
-
- columns: [
- { text: strings.stateName, dataIndex: 'name', flex: 1 },
- { text: strings.stateValue, dataIndex: 'value', flex: 1 }
- ]
-
-});
diff --git a/web/app/view/state/StateController.js b/web/app/view/state/StateController.js
deleted file mode 100644
index 9019d996e..000000000
--- a/web/app/view/state/StateController.js
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-Ext.define('Traccar.view.state.StateController', {
- extend: 'Ext.app.ViewController',
- alias: 'controller.state',
-
- config: {
- listen: {
- controller: {
- '*': {
- selectDevice: 'selectDevice'
- }
- }
- }
- },
-
- init: function() {
- var store = Ext.getStore('LatestPositions');
- store.on('add', this.add, this);
- store.on('update', this.update, this);
- },
-
- keys: {
- 'fixTime': {
- priority: 1,
- name: strings.positionTime
- },
- 'latitude': {
- priority: 2,
- name: strings.positionLatitude
- },
- 'longitude': {
- priority: 3,
- name: strings.positionLongitude
- },
- 'valid': {
- priority: 4,
- name: strings.positionValid
- },
- 'altitude': {
- priority: 5,
- name: strings.positionAltitude
- },
- 'speed': {
- priority: 6,
- name: strings.positionSpeed
- },
- 'course': {
- priority: 7,
- name: strings.positionCourse
- },
- 'address': {
- priority: 8,
- name: strings.positionAddress
- },
- 'protocol': {
- priority: 9,
- name: strings.positionProtocol
- }
- },
-
- formatValue: function(value) {
- if (typeof(id) === 'number') {
- return +value.toFixed(2);
- } else {
- return value;
- }
- },
-
- updatePosition: function(position) {
-
- var attributes;
- var value;
- var unit;
- var store = Ext.getStore('Attributes');
- store.removeAll();
-
- for (var key in position.data) {
- if (position.data.hasOwnProperty(key) && this.keys[key] !== undefined) {
- store.add(Ext.create('Traccar.model.Attribute', {
- priority: this.keys[key].priority,
- name: this.keys[key].name,
- value: Traccar.AttributeFormatter.getFormatter(key)(position.get(key))
- }));
- }
- }
-
- var xml = position.get('attributes');
- if (typeof xml === 'string' || xml instanceof String) {
- attributes = this.parseXml(xml);
- } else {
- attributes = xml;
- }
- for (var key in attributes) {
- if (attributes.hasOwnProperty(key)) {
- store.add(Ext.create('Traccar.model.Attribute', {
- priority: 1024,
- name: key.replace(/^./, function (match) {
- return match.toUpperCase();
- }),
- value: Traccar.AttributeFormatter.getFormatter(key)(attributes[key])
- }));
- }
- }
- },
-
- selectDevice: function(device) {
- this.deviceId = device.get('id');
- var found = Ext.getStore('LatestPositions').query('deviceId', this.deviceId);
- if (found.getCount() > 0) {
- this.updatePosition(found.first());
- } else {
- Ext.getStore('Attributes').removeAll();
- }
- },
-
- add: function(store, data) {
- if (this.deviceId === data[0].get('deviceId')) {
- this.updatePosition(data[0]);
- }
- },
-
- update: function(store, data) {
- if (this.deviceId === data.get('deviceId')) {
- this.updatePosition(data);
- }
- },
-
- parseXml: function(xml) {
- var dom = null;
- if (window.DOMParser) {
- dom = (new DOMParser()).parseFromString(xml, "text/xml");
- } else if (window.ActiveXObject) {
- dom = new ActiveXObject('Microsoft.XMLDOM');
- dom.async = false;
- dom.loadXML(xml);
- }
-
- var result = {};
- var length = dom.childNodes[0].childNodes.length;
- for(var i = 0; i < length; i++) {
- var node = dom.childNodes[0].childNodes[i];
- result[node.nodeName] = node.innerHTML; // use textContent in future
- }
- return result;
- }
-
-});