aboutsummaryrefslogtreecommitdiff
path: root/web/app/view/ReportController.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/app/view/ReportController.js')
-rw-r--r--web/app/view/ReportController.js80
1 files changed, 80 insertions, 0 deletions
diff --git a/web/app/view/ReportController.js b/web/app/view/ReportController.js
new file mode 100644
index 000000000..0b3e30f17
--- /dev/null
+++ b/web/app/view/ReportController.js
@@ -0,0 +1,80 @@
+/*
+ * 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.ReportController', {
+ extend: 'Ext.app.ViewController',
+ alias: 'controller.report',
+
+ config: {
+ listen: {
+ controller: {
+ '*': {
+ selectDevice: 'selectDevice'
+ }
+ }
+ }
+ },
+
+ onShowClick: function() {
+ var deviceId, fromDate, fromTime, from, toDate, toTime, to, store;
+
+ deviceId = this.lookupReference('deviceField').getValue();
+
+ fromDate = this.lookupReference('fromDateField').getValue();
+ fromTime = this.lookupReference('fromTimeField').getValue();
+
+ from = new Date(
+ fromDate.getFullYear(), fromDate.getMonth(), fromDate.getDate(),
+ fromTime.getHours(), fromTime.getMinutes(), fromTime.getSeconds(), fromTime.getMilliseconds());
+
+ toDate = this.lookupReference('toDateField').getValue();
+ toTime = this.lookupReference('toTimeField').getValue();
+
+ to = new Date(
+ toDate.getFullYear(), toDate.getMonth(), toDate.getDate(),
+ toTime.getHours(), toTime.getMinutes(), toTime.getSeconds(), toTime.getMilliseconds());
+
+ store = Ext.getStore('Positions');
+ store.load({
+ params:{
+ deviceId: deviceId,
+ from: from.toISOString(),
+ to: to.toISOString()
+ },
+ scope: this,
+ callback: function() {
+ this.fireEvent("reportShow");
+ }
+ });
+ },
+
+ onClearClick: function() {
+ Ext.getStore('Positions').removeAll();
+ this.fireEvent("reportClear");
+ },
+
+ onSelectionChange: function(selected) {
+ if (selected.getCount() > 0) {
+ this.fireEvent("selectReport", selected.getLastSelected());
+ }
+ },
+
+ selectDevice: function(device) {
+ if (device !== undefined) {
+ this.getView().getSelectionModel().deselectAll();
+ }
+ }
+});