From 2608adeff46f1286deff11a5320cee5647f6d41b Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 18 Sep 2016 11:40:46 +1200 Subject: Move web interface from main repo --- web/app/Application.js | 117 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 web/app/Application.js (limited to 'web/app/Application.js') diff --git a/web/app/Application.js b/web/app/Application.js new file mode 100644 index 00000000..2d806534 --- /dev/null +++ b/web/app/Application.js @@ -0,0 +1,117 @@ +/* + * 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.Application', { + extend: 'Ext.app.Application', + name: 'Traccar', + + requires: [ + 'Traccar.Style', + 'Traccar.AttributeFormatter' + ], + + models: [ + 'Server', + 'User', + 'Group', + 'Device', + 'Position', + 'Attribute', + 'Command', + 'Event', + 'Geofence', + 'Notification', + 'ReportSummary', + 'ReportTrip' + ], + + stores: [ + 'Groups', + 'Devices', + 'AllGroups', + 'AllDevices', + 'Positions', + 'LatestPositions', + 'Users', + 'Attributes', + 'MapTypes', + 'DistanceUnits', + 'SpeedUnits', + 'CommandTypes', + 'TimeUnits', + 'Languages', + 'Events', + 'Geofences', + 'AllGeofences', + 'Notifications', + 'AllNotifications', + 'GeofenceTypes', + 'ReportRoute', + 'ReportEvents', + 'ReportTrips', + 'ReportSummary', + 'ReportTypes', + 'ReportEventTypes' + ], + + controllers: [ + 'Root' + ], + + setUser: function (data) { + var reader = Ext.create('Ext.data.reader.Json', { + model: 'Traccar.model.User' + }); + this.user = reader.readRecords(data).getRecords()[0]; + }, + + getUser: function () { + return this.user; + }, + + setServer: function (data) { + var reader = Ext.create('Ext.data.reader.Json', { + model: 'Traccar.model.Server' + }); + this.server = reader.readRecords(data).getRecords()[0]; + }, + + getServer: function () { + return this.server; + }, + + getPreference: function (key, defaultValue) { + return this.getUser().get(key) || this.getServer().get(key) || defaultValue; + }, + + showError: function (response) { + var data; + if (Ext.isString(response)) { + Ext.Msg.alert(Strings.errorTitle, response); + } else if (response.responseText) { + data = Ext.decode(response.responseText); + if (data.details) { + Ext.Msg.alert(Strings.errorTitle, data.details); + } else { + Ext.Msg.alert(Strings.errorTitle, data.message); + } + } else if (response.statusText) { + Ext.Msg.alert(Strings.errorTitle, response.statusText); + } else { + Ext.Msg.alert(Strings.errorTitle, Strings.errorConnection); + } + } +}); -- cgit v1.2.3