aboutsummaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/app/view/Login.js6
-rw-r--r--web/app/view/LoginController.js15
-rw-r--r--web/l10n/en.json1
3 files changed, 21 insertions, 1 deletions
diff --git a/web/app/view/Login.js b/web/app/view/Login.js
index 4f04a0f37..db3c55261 100644
--- a/web/app/view/Login.js
+++ b/web/app/view/Login.js
@@ -54,6 +54,7 @@ Ext.define('Traccar.view.Login', {
}, {
xtype: 'textfield',
name: 'email',
+ reference: 'userField',
fieldLabel: Strings.userEmail,
allowBlank: false,
enableKeyEvents: true,
@@ -65,6 +66,7 @@ Ext.define('Traccar.view.Login', {
}, {
xtype: 'textfield',
name: 'password',
+ reference: 'passwordField',
fieldLabel: Strings.userPassword,
inputType: 'password',
allowBlank: false,
@@ -74,6 +76,10 @@ Ext.define('Traccar.view.Login', {
},
inputAttrTpl: ['autocomplete="on"']
}, {
+ xtype: 'checkboxfield',
+ reference: 'rememberField',
+ fieldLabel: Strings.userRemember
+ }, {
xtype: 'component',
html: '<iframe id="submitTarget" name="submitTarget" style="display:none"></iframe>'
}, {
diff --git a/web/app/view/LoginController.js b/web/app/view/LoginController.js
index 3dd8af082..7a78a6fb1 100644
--- a/web/app/view/LoginController.js
+++ b/web/app/view/LoginController.js
@@ -1,5 +1,5 @@
/*
- * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ * Copyright 2015 - 2016 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.
@@ -26,6 +26,13 @@ Ext.define('Traccar.view.LoginController', {
this.lookupReference('registerButton').setDisabled(
!Traccar.app.getServer().get('registration'));
this.lookupReference('languageField').setValue(Locale.language);
+ var user = Ext.util.Cookies.get('user');
+ var password = Ext.util.Cookies.get('password');
+ if (user && password) {
+ this.lookupReference('userField').setValue(user);
+ this.lookupReference('passwordField').setValue(password);
+ this.login();
+ }
},
login: function () {
@@ -40,6 +47,10 @@ Ext.define('Traccar.view.LoginController', {
callback: function (options, success, response) {
Ext.getBody().unmask();
if (success) {
+ if (this.lookupReference('rememberField').getValue()) {
+ Ext.util.Cookies.set('user', this.lookupReference('userField').getValue(), Ext.Date.add(new Date(), Ext.Date.YEAR, 1));
+ Ext.util.Cookies.set('password', this.lookupReference('passwordField').getValue(), Ext.Date.add(new Date(), Ext.Date.YEAR, 1));
+ }
Traccar.app.setUser(Ext.decode(response.responseText));
this.fireViewEvent('login');
} else {
@@ -51,6 +62,8 @@ Ext.define('Traccar.view.LoginController', {
},
logout: function () {
+ Ext.util.Cookies.clear('user');
+ Ext.util.Cookies.clear('password');
Ext.Ajax.request({
scope: this,
method: 'DELETE',
diff --git a/web/l10n/en.json b/web/l10n/en.json
index e1866fe62..37e4537f2 100644
--- a/web/l10n/en.json
+++ b/web/l10n/en.json
@@ -30,6 +30,7 @@
"userEmail": "Email",
"userPassword": "Password",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Login",
"loginLanguage": "Language",
"loginRegister": "Register",