diff options
Diffstat (limited to 'web')
-rw-r--r-- | web/Application.js | 6 | ||||
-rw-r--r-- | web/Login.js | 30 | ||||
-rw-r--r-- | web/Strings.js | 1 |
3 files changed, 28 insertions, 9 deletions
diff --git a/web/Application.js b/web/Application.js index a1794770a..2cd8df2a0 100644 --- a/web/Application.js +++ b/web/Application.js @@ -19,12 +19,10 @@ Ext.application({ requires: [ 'Strings', 'Styles', - 'Login', - 'MainView' + 'Login' ], launch: function() { - //Ext.create('Login').show(); - Ext.create('MainView', { renderTo: document.body }); + Ext.create('Login').show(); } }); diff --git a/web/Login.js b/web/Login.js index 6c42d7ddb..bdae5723d 100644 --- a/web/Login.js +++ b/web/Login.js @@ -23,10 +23,12 @@ Ext.define('LoginForm', { defaults: { anchor: '100%' }, + url: '/api/login', + items: [{ allowBlank: false, fieldLabel: Strings.login_user, - name: 'user' + name: 'name' }, { allowBlank: false, fieldLabel: Strings.login_password, @@ -34,16 +36,34 @@ Ext.define('LoginForm', { inputType: 'password' }], - buttons: [ - { text: Strings.login_register }, - { text: Strings.login_login } - ] + buttons: [{ + text: Strings.login_register + }, { + text: Strings.login_login, + handler: function() { + var win = this.up('window'); + var form = this.up('form').getForm(); + if (form.isValid()) { + form.submit({ + success: function(form, action) { + win.close(); + Ext.create('MainView', { renderTo: document.body }); + }, + failure: function(form, action) { + Ext.Msg.alert(Strings.login_title, Strings.login_failed); + } + }); + } + } + }] }); Ext.define('Login', { extend: 'Ext.window.Window', + requires: [ 'MainView' ], title: Strings.login_title, + closable: false, items: [{ xtype: 'login-form' }] }); diff --git a/web/Strings.js b/web/Strings.js index 5d310fb4c..6d210f75b 100644 --- a/web/Strings.js +++ b/web/Strings.js @@ -22,6 +22,7 @@ Ext.define('Strings', { login_password: 'Password', login_register: 'Register', login_login: 'Login', + login_failed: 'Incorrect user name or password.', device_title: 'Devices', |