aboutsummaryrefslogtreecommitdiff
path: root/web/app/view/Report.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/app/view/Report.js')
-rw-r--r--web/app/view/Report.js118
1 files changed, 118 insertions, 0 deletions
diff --git a/web/app/view/Report.js b/web/app/view/Report.js
new file mode 100644
index 000000000..060c9c46a
--- /dev/null
+++ b/web/app/view/Report.js
@@ -0,0 +1,118 @@
+/*
+ * 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.Report', {
+ extend: 'Ext.grid.Panel',
+ xtype: 'reportView',
+
+ requires: [
+ 'Traccar.view.ReportController'
+ ],
+
+ controller: 'report',
+ store: 'Positions',
+
+ title: strings.reportTitle,
+
+ tbar: [{
+ xtype: 'tbtext',
+ html: strings.reportDevice
+ }, {
+ xtype: 'combobox',
+ reference: 'deviceField',
+ store: 'Devices',
+ valueField: 'id',
+ displayField: 'name',
+ typeAhead: true,
+ queryMode: 'local'
+ }, '-', {
+ xtype: 'tbtext',
+ html: strings.reportFrom
+ }, {
+ xtype: 'datefield',
+ reference: 'fromDateField',
+ startDay: styles.weekStartDay,
+ value: new Date(new Date().getTime() - 30 * 60 * 1000)
+ }, {
+ xtype: 'timefield',
+ reference: 'fromTimeField',
+ maxWidth: styles.reportTime,
+ format: styles.timeFormat,
+ value: new Date(new Date().getTime() - 30 * 60 * 1000)
+ }, '-', {
+ xtype: 'tbtext',
+ html: strings.reportTo
+ }, {
+ xtype: 'datefield',
+ reference: 'toDateField',
+ startDay: styles.weekStartDay,
+ value: new Date()
+ }, {
+ xtype: 'timefield',
+ reference: 'toTimeField',
+ maxWidth: styles.reportTime,
+ format: styles.timeFormat,
+ value: new Date()
+ }, '-', {
+ text: strings.reportShow,
+ handler: 'onShowClick'
+ }, {
+ text: strings.reportClear,
+ handler: 'onClearClick'
+ }],
+
+ listeners: {
+ selectionchange: 'onSelectionChange'
+ },
+
+ columns: [{
+ text: strings.positionValid,
+ dataIndex: 'valid',
+ flex: 1,
+ renderer: Traccar.AttributeFormatter.getFormatter('valid')
+ }, {
+ text: strings.positionTime,
+ dataIndex: 'fixTime',
+ flex: 1,
+ xtype: 'datecolumn',
+ renderer: Traccar.AttributeFormatter.getFormatter('fixTime')
+ }, {
+ text: strings.positionLatitude,
+ dataIndex: 'latitude',
+ flex: 1,
+ renderer: Traccar.AttributeFormatter.getFormatter('latitude')
+ }, {
+ text: strings.positionLongitude,
+ dataIndex: 'longitude',
+ flex: 1,
+ renderer: Traccar.AttributeFormatter.getFormatter('latitude')
+ }, {
+ text: strings.positionAltitude,
+ dataIndex: 'altitude',
+ flex: 1,
+ renderer: Traccar.AttributeFormatter.getFormatter('altitude')
+ }, {
+ text: strings.positionSpeed,
+ dataIndex: 'speed',
+ flex: 1,
+ renderer: Traccar.AttributeFormatter.getFormatter('speed')
+ }, {
+ text: strings.positionAddress,
+ dataIndex: 'address',
+ flex: 1,
+ renderer: Traccar.AttributeFormatter.getFormatter('address')
+ }]
+});