Implement server settings

This commit is contained in:
Anton Tananaev
2015-06-05 18:47:24 +12:00
parent 35ae7fbd26
commit c2afe93f14
6 changed files with 61 additions and 21 deletions

View File

@@ -33,7 +33,13 @@ var strings = {
device_title: 'Devices',
device_name: 'Name',
device_identifier: 'Identifier',
device_remove: 'Remove device?',
device_remove_confirm: 'Remove device?',
device_add: 'Add',
device_edit: 'Edit',
device_remove: 'Remove',
device_logout: 'Logout',
device_settings: 'Settings',
device_settings_server: 'Server',
report_title: 'Reports',
report_device: 'Device',
@@ -51,6 +57,9 @@ var strings = {
report_address: 'Address',
server_title: 'Server settings',
server_latitude: 'Latitude',
server_longitude: 'Longitude',
server_zoom: 'Zoom',
server_registration: 'Registration',
dialog_save: 'Save',

View File

@@ -24,5 +24,14 @@ Ext.define('Traccar.model.Server', {
{ name: 'latitude', type: 'float' },
{ name: 'longitude', type: 'float' },
{ name: 'zoom', type: 'int' }
]
],
proxy: {
type: 'ajax',
url: '/api/server/update',
writer: {
type: 'json',
writeAllFields: true
}
}
});

View File

@@ -36,6 +36,18 @@ Ext.define('Traccar.view.admin.ServerDialog', {
name: 'registration',
fieldLabel: strings.server_registration,
allowBlank: false
}, {
xtype: 'numberfield',
name: 'latitude',
fieldLabel: strings.server_latitude
}, {
xtype: 'numberfield',
name: 'longitude',
fieldLabel: strings.server_longitude
}, {
xtype: 'numberfield',
name: 'zoom',
fieldLabel: strings.server_zoom
}]
},

View File

@@ -21,17 +21,7 @@ Ext.define('Traccar.view.admin.ServerDialogController', {
onSaveClick: function(button) {
var dialog = button.up('window').down('form');
dialog.updateRecord();
var store = Ext.getStore('Devices');
var device = dialog.getRecord();
if (device.phantom) {
store.add(device);
}
store.sync({
failure: function(batch) {
store.rejectChanges(); // TODO
Traccar.ErrorManager.check(true, batch.exceptions[0].getResponse());
}
});
dialog.getRecord().save();
button.up('window').close();
},

View File

@@ -15,7 +15,7 @@
*/
Ext.define('Traccar.view.device.Device', {
extend: 'Ext.grid.Panel',
extend: 'Ext.grid.Panel',
xtype: 'device-view',
requires: [
@@ -29,25 +29,31 @@ Ext.define('Traccar.view.device.Device', {
selType: 'rowmodel',
tbar: [{
text:'Add',
text: strings.device_add,
handler: 'onAddClick',
reference: 'deviceAddButton'
}, {
text:'Edit',
text: strings.device_edit,
disabled: true,
handler: 'onEditClick',
reference: 'deviceEditButton'
}, {
text:'Remove',
text: strings.device_remove,
disabled: true,
handler: 'onRemoveClick',
reference: 'deviceRemoveButton'
}, {
xtype: 'tbfill'
}, {
text:'Settings'
text: strings.device_settings,
menu: [{
text: strings.device_settings_server,
disabled: true,
handler: 'onServerClick',
reference: 'settingsServerButton'
}]
}, {
text:'Logout',
text: strings.device_logout,
handler: 'onLogoutClick'
}],

View File

@@ -19,8 +19,15 @@ Ext.define('Traccar.view.device.DeviceController', {
alias: 'controller.device',
requires: [
'Traccar.view.device.DeviceDialog'
'Traccar.view.device.DeviceDialog',
'Traccar.view.admin.ServerDialog'
],
init: function() {
if (Traccar.getApplication().getUser().get('admin')) {
this.lookupReference('settingsServerButton').setDisabled(false);
}
},
onLogoutClick: function() {
Traccar.LoginManager.logout();
@@ -44,7 +51,7 @@ Ext.define('Traccar.view.device.DeviceController', {
var device = this.getView().getSelectionModel().getSelection()[0];
Ext.Msg.show({
title: strings.device_dialog,
message: strings.device_remove,
message: strings.device_remove_confirm,
buttons: Ext.Msg.YESNO,
buttonText: {
yes: strings.dialog_delete,
@@ -64,6 +71,13 @@ Ext.define('Traccar.view.device.DeviceController', {
var disabled = selected.length > 0;
this.lookupReference('deviceEditButton').setDisabled(disabled);
this.lookupReference('deviceRemoveButton').setDisabled(disabled);
},
onServerClick: function() {
var server = Traccar.getApplication().getServer();
var dialog = Ext.create('Traccar.view.admin.ServerDialog');
dialog.down('form').loadRecord(server);
dialog.show();
}
});