diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-08-03 22:59:07 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-03 22:59:07 +0800 |
commit | 01ca0eb015ae6167a4701db522cc087f8844e2a2 (patch) | |
tree | 05c273c5018a67e3433f169c057071ae591f8f28 /web/app | |
parent | c2851143d996e8ae1741adb1b6f20cc7e447f327 (diff) | |
parent | 6f32f4a9460ff3be2823d7a133659d29bf057237 (diff) | |
download | traccar-server-01ca0eb015ae6167a4701db522cc087f8844e2a2.tar.gz traccar-server-01ca0eb015ae6167a4701db522cc087f8844e2a2.tar.bz2 traccar-server-01ca0eb015ae6167a4701db522cc087f8844e2a2.zip |
Merge pull request #2175 from ninioe/master
Added remember me checkbox at login
Diffstat (limited to 'web/app')
-rw-r--r-- | web/app/view/Login.js | 6 | ||||
-rw-r--r-- | web/app/view/LoginController.js | 13 |
2 files changed, 19 insertions, 0 deletions
diff --git a/web/app/view/Login.js b/web/app/view/Login.js index 4f04a0f37..259086854 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: 'rememberMeField', + fieldLabel: Strings.rememberMe + }, { 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..f78b1e560 100644 --- a/web/app/view/LoginController.js +++ b/web/app/view/LoginController.js @@ -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 pass = Ext.util.Cookies.get('pass'); + if (user && pass) { + this.lookupReference('userField').setValue(user); + this.lookupReference('passwordField').setValue(pass); + 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('rememberMeField').getValue()) { + Ext.util.Cookies.set('user', this.lookupReference('userField').getValue(), Ext.Date.add(new Date(), Ext.Date.YEAR, 1)); + Ext.util.Cookies.set('pass', 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('pass'); Ext.Ajax.request({ scope: this, method: 'DELETE', |