mirror of
https://github.com/traccar/traccar.git
synced 2026-02-05 13:13:55 -05:00
Implement server settings
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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
|
||||
}]
|
||||
},
|
||||
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
|
||||
|
||||
@@ -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'
|
||||
}],
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user