diff options
Diffstat (limited to 'web')
-rw-r--r-- | web/Application.js | 3 | ||||
-rw-r--r-- | web/Login.js | 11 | ||||
-rw-r--r-- | web/RegisterDialog.js | 77 | ||||
-rw-r--r-- | web/Strings.js | 1 |
4 files changed, 90 insertions, 2 deletions
diff --git a/web/Application.js b/web/Application.js index 594ce0635..85826e6a5 100644 --- a/web/Application.js +++ b/web/Application.js @@ -51,6 +51,9 @@ Ext.Loader.loadScript({ } else { Ext.create('Login').show(); } + }, + failure: function() { + alert(error); } }) } diff --git a/web/Login.js b/web/Login.js index 871bef17b..cdc312bf8 100644 --- a/web/Login.js +++ b/web/Login.js @@ -37,7 +37,10 @@ Ext.define('LoginForm', { }], buttons: [{ - text: Strings.login_register + text: Strings.login_register, + handler: function() { + Ext.create('RegisterDialog').show(); + } }, { text: Strings.login_login, handler: function() { @@ -59,10 +62,14 @@ Ext.define('LoginForm', { Ext.define('Login', { extend: 'Ext.window.Window', - requires: [ 'MainView' ], + requires: [ + 'MainView', + 'RegisterDialog' + ], title: Strings.login_title, closable: false, + resizable: false, items: [{ xtype: 'login-form' }], diff --git a/web/RegisterDialog.js b/web/RegisterDialog.js new file mode 100644 index 000000000..c69026ea6 --- /dev/null +++ b/web/RegisterDialog.js @@ -0,0 +1,77 @@ +/* + * Copyright 2015 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +Ext.define('RegisterForm', { + extend: 'Ext.form.Panel', + xtype: 'register-form', + + defaultType: 'textfield', + bodyPadding: Styles.panel_padding, + + defaults: { anchor: '100%' }, + + url: '/api/register', + jsonSubmit: true, + + items: [{ + allowBlank: false, + fieldLabel: Strings.login_name, + name: 'name' + }, { + allowBlank: false, + fieldLabel: Strings.login_email, + name: 'email', + vtype: 'email' + }, { + allowBlank: false, + fieldLabel: Strings.login_password, + name: 'password', + inputType: 'password' + }], + + buttons: [{ + text: Strings.dialog_create, + handler: function() { + var win = this.up('window'); + var form = this.up('form').getForm(); + if (form.isValid()) { + form.submit({ + success: function() { + win.close(); + }, + failure: function() { + // error + } + }); + } + } + + }, { + text: Strings.dialog_cancel, + handler: function() { + this.up('window').close(); + } + }] +}); + +Ext.define('RegisterDialog', { + extend: 'Ext.window.Window', + + title: Strings.login_register, + resizable: false, + + items: [{ xtype: 'register-form' }] +}); diff --git a/web/Strings.js b/web/Strings.js index 9c89f7fa0..33ec25c49 100644 --- a/web/Strings.js +++ b/web/Strings.js @@ -18,6 +18,7 @@ Ext.define('Strings', { singleton: true, login_title: 'Login', + login_name: 'Name', login_email: 'Email', login_password: 'Password', login_register: 'Register', |