Mercurial > libervia-web
annotate src/browser/sat_browser/register.py @ 795:a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
author | souliane <souliane@mailoo.org> |
---|---|
date | Tue, 08 Dec 2015 15:11:02 +0100 |
parents | 249e49f56f67 |
children | fad9c9f82ae3 |
rev | line source |
---|---|
0 | 1 #!/usr/bin/python |
2 # -*- coding: utf-8 -*- | |
3 | |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
4 # Libervia: a Salut à Toi frontend |
685 | 5 # Copyright (C) 2011, 2012, 2013, 2014, 2015 Jérôme Poisson <goffi@goffi.org> |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
6 # Copyright (C) 2011, 2012 Adrien Vigneron <adrienvigneron@mailoo.org> |
0 | 7 |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
8 # This program is free software: you can redistribute it and/or modify |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
9 # it under the terms of the GNU Affero General Public License as published by |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
10 # the Free Software Foundation, either version 3 of the License, or |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
11 # (at your option) any later version. |
0 | 12 |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
13 # This program is distributed in the hope that it will be useful, |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
16 # GNU Affero General Public License for more details. |
0 | 17 |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
18 # You should have received a copy of the GNU Affero General Public License |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
249
diff
changeset
|
19 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
0 | 20 |
21 #This page manage subscription and new account creation | |
22 | |
451 | 23 import pyjd # this is dummy in pyjs |
445
c0ff91cabea0
server_side, browser_side: new account password must contain at least 6 chars + cosmetic change for register warning message
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
24 from sat.core.i18n import _ |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
445
diff
changeset
|
25 |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
26 from pyjamas.ui.SimplePanel import SimplePanel |
0 | 27 from pyjamas.ui.VerticalPanel import VerticalPanel |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
28 from pyjamas.ui.HorizontalPanel import HorizontalPanel |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
29 from pyjamas.ui.StackPanel import StackPanel |
0 | 30 from pyjamas.ui.PasswordTextBox import PasswordTextBox |
31 from pyjamas.ui.TextBox import TextBox | |
32 from pyjamas.ui.FormPanel import FormPanel | |
33 from pyjamas.ui.Button import Button | |
46 | 34 from pyjamas.ui.Label import Label |
445
c0ff91cabea0
server_side, browser_side: new account password must contain at least 6 chars + cosmetic change for register warning message
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
35 from pyjamas.ui.HTML import HTML |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
36 from pyjamas.ui.PopupPanel import PopupPanel |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
37 from pyjamas.ui.Image import Image |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
38 from pyjamas.ui.Hidden import Hidden |
0 | 39 from pyjamas import Window |
422
20c508f9b32a
browser side: fixed bad use of Timer
Goffi <goffi@goffi.org>
parents:
382
diff
changeset
|
40 from pyjamas.ui.KeyboardListener import KEY_ENTER |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
445
diff
changeset
|
41 from pyjamas.Timer import Timer |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
445
diff
changeset
|
42 |
46 | 43 import re |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
445
diff
changeset
|
44 |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
445
diff
changeset
|
45 from constants import Const as C |
0 | 46 |
47 | |
795
a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
souliane <souliane@mailoo.org>
parents:
793
diff
changeset
|
48 KEY_AROBASE = 81 # XXX: this is the keycode for onKeyUp, the one which works for onKeyPress is 64! |
a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
souliane <souliane@mailoo.org>
parents:
793
diff
changeset
|
49 |
a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
souliane <souliane@mailoo.org>
parents:
793
diff
changeset
|
50 |
0 | 51 class RegisterPanel(FormPanel): |
52 | |
53 def __init__(self, callback): | |
54 """ | |
55 @param callback: method to call if login successful | |
56 """ | |
57 FormPanel.__init__(self) | |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
58 self.setSize('600px', '350px') |
0 | 59 self.callback = callback |
60 self.setMethod(FormPanel.METHOD_POST) | |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
61 main_panel = HorizontalPanel() |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
62 main_panel.setStyleName('registerPanel_main') |
77 | 63 left_side = Image("media/libervia/register_left.png") |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
64 main_panel.add(left_side) |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
65 |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
66 ##StackPanel## |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
67 self.right_side = StackPanel(StyleName='registerPanel_right_side') |
67 | 68 main_panel.add(self.right_side) |
69 main_panel.setCellWidth(self.right_side, '100%') | |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
70 |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
71 ##Login stack## |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
72 login_stack = SimplePanel() |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
73 login_stack.setStyleName('registerPanel_content') |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
74 login_vpanel = VerticalPanel() |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
75 login_stack.setWidget(login_vpanel) |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
76 |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
77 self.login_warning_msg = HTML('') |
161 | 78 self.login_warning_msg.setStyleName('formWarning') |
79 login_vpanel.add(self.login_warning_msg) | |
46 | 80 |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
81 login_label = Label('Login:') |
46 | 82 self.login_box = TextBox() |
83 self.login_box.setName("login") | |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
84 self.login_box.addKeyboardListener(self) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
85 login_pass_label = Label('Password:') |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
86 self.login_pass_box = PasswordTextBox() |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
87 self.login_pass_box.setName("login_password") |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
88 self.login_pass_box.addKeyboardListener(self) |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
89 |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
90 login_vpanel.add(login_label) |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
91 login_vpanel.add(self.login_box) |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
92 login_vpanel.add(login_pass_label) |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
93 login_vpanel.add(self.login_pass_box) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
94 login_but = Button("Log in", getattr(self, "onLogin")) |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
95 login_but.setStyleName('button') |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
96 login_but.addStyleName('red') |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
97 login_vpanel.add(login_but) |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
98 |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
99 #The hidden submit_type field |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
100 self.submit_type = Hidden('submit_type') |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
101 login_vpanel.add(self.submit_type) |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
102 |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
103 ##Register stack## |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
104 register_stack = SimplePanel() |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
105 register_stack.setStyleName('registerPanel_content') |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
106 register_vpanel = VerticalPanel() |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
107 register_stack.setWidget(register_vpanel) |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
108 |
445
c0ff91cabea0
server_side, browser_side: new account password must contain at least 6 chars + cosmetic change for register warning message
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
109 self.register_warning_msg = HTML('') |
161 | 110 self.register_warning_msg.setStyleName('formWarning') |
111 register_vpanel.add(self.register_warning_msg) | |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
112 |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
113 register_login_label = Label('Login:') |
67 | 114 self.register_login_box = TextBox() |
115 self.register_login_box.setName("register_login") | |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
116 self.register_login_box.addKeyboardListener(self) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
117 email_label = Label('E-mail:') |
46 | 118 self.email_box = TextBox() |
119 self.email_box.setName("email") | |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
120 self.email_box.addKeyboardListener(self) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
121 register_pass_label = Label('Password:') |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
122 self.register_pass_box = PasswordTextBox() |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
123 self.register_pass_box.setName("register_password") |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
124 self.register_pass_box.addKeyboardListener(self) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
125 register_vpanel.add(register_login_label) |
67 | 126 register_vpanel.add(self.register_login_box) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
127 register_vpanel.add(email_label) |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
128 register_vpanel.add(self.email_box) |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
129 register_vpanel.add(register_pass_label) |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
130 register_vpanel.add(self.register_pass_box) |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
131 |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
132 register_but = Button("Register a new account", getattr(self, "onRegister")) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
133 register_but.setStyleName('button') |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
134 register_but.addStyleName('red') |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
135 register_vpanel.add(register_but) |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
136 |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
137 self.right_side.add(login_stack, 'Return to the login screen') |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
138 self.right_side.add(register_stack, 'No account yet? Create a new one!') |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
139 self.right_side.addStackChangeListener(self) |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
140 login_stack.setWidth(None) |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
141 register_stack.setWidth(None) |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
142 |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
143 self.add(main_panel) |
0 | 144 self.addFormHandler(self) |
145 self.setAction('register_api/login') | |
146 | |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
147 def onStackChanged(self, sender, index): |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
148 if index == 0: |
222
759fd7386e1e
browser_side: set the focus to the first field when a tab is selected from the register panel
souliane <souliane@mailoo.org>
parents:
216
diff
changeset
|
149 self.login_box.setFocus(True) |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
150 elif index == 1: |
222
759fd7386e1e
browser_side: set the focus to the first field when a tab is selected from the register panel
souliane <souliane@mailoo.org>
parents:
216
diff
changeset
|
151 self.register_login_box.setFocus(True) |
759fd7386e1e
browser_side: set the focus to the first field when a tab is selected from the register panel
souliane <souliane@mailoo.org>
parents:
216
diff
changeset
|
152 |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
153 def onKeyPress(self, sender, keycode, modifiers): |
795
a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
souliane <souliane@mailoo.org>
parents:
793
diff
changeset
|
154 # XXX: this is triggered before the textbox value has changed |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
155 if keycode == KEY_ENTER: |
237
531b8809d1ab
browser_side: fixed browser built-in auto-completion in login/register panels
souliane <souliane@mailoo.org>
parents:
222
diff
changeset
|
156 # Browsers offer an auto-completion feature to any |
531b8809d1ab
browser_side: fixed browser built-in auto-completion in login/register panels
souliane <souliane@mailoo.org>
parents:
222
diff
changeset
|
157 # text box, but the selected value is not set when |
531b8809d1ab
browser_side: fixed browser built-in auto-completion in login/register panels
souliane <souliane@mailoo.org>
parents:
222
diff
changeset
|
158 # the widget looses the focus. Using a timer with |
531b8809d1ab
browser_side: fixed browser built-in auto-completion in login/register panels
souliane <souliane@mailoo.org>
parents:
222
diff
changeset
|
159 # any delay value > 0 would do the trick. |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
160 if sender == self.login_box: |
422
20c508f9b32a
browser side: fixed bad use of Timer
Goffi <goffi@goffi.org>
parents:
382
diff
changeset
|
161 Timer(5, lambda timer: self.login_pass_box.setFocus(True)) |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
162 elif sender == self.login_pass_box: |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
163 self.onLogin(None) |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
164 elif sender == self.register_login_box: |
422
20c508f9b32a
browser side: fixed bad use of Timer
Goffi <goffi@goffi.org>
parents:
382
diff
changeset
|
165 Timer(5, lambda timer: self.email_box.setFocus(True)) |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
166 elif sender == self.email_box: |
422
20c508f9b32a
browser side: fixed bad use of Timer
Goffi <goffi@goffi.org>
parents:
382
diff
changeset
|
167 Timer(5, lambda timer: self.register_pass_box.setFocus(True)) |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
168 elif sender == self.register_pass_box: |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
169 self.onRegister(None) |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
170 |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
171 def onKeyUp(self, sender, keycode, modifiers): |
795
a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
souliane <souliane@mailoo.org>
parents:
793
diff
changeset
|
172 # XXX: this is triggered after the textbox value has changed |
a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
souliane <souliane@mailoo.org>
parents:
793
diff
changeset
|
173 if sender == self.login_box: |
a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
souliane <souliane@mailoo.org>
parents:
793
diff
changeset
|
174 if keycode == KEY_AROBASE: |
a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
souliane <souliane@mailoo.org>
parents:
793
diff
changeset
|
175 self.login_warning_msg.setHTML(_('<span class="formInfo">Entering a full JID is only needed to connect with an external XMPP account.</span>')) |
a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
souliane <souliane@mailoo.org>
parents:
793
diff
changeset
|
176 elif "@" not in self.login_box.getText(): |
a6b39838353f
browser_side: inform the user that entering a full JID in the login box is only needed for external XMPP account
souliane <souliane@mailoo.org>
parents:
793
diff
changeset
|
177 self.login_warning_msg.setHTML("") |
216
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
178 |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
179 def onKeyDown(self, sender, keycode, modifiers): |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
180 pass |
9827cda1a6b0
browser_side: added key listener to login and register panels
souliane <souliane@mailoo.org>
parents:
173
diff
changeset
|
181 |
62 | 182 def onLogin(self, button): |
750
8ac862f6e5b3
browser and server sides: allow to connect with a JID that is not registered on the local server
souliane <souliane@mailoo.org>
parents:
729
diff
changeset
|
183 if not re.match(r'^[a-z0-9_-]+(@[a-z0-9_-]+\.[a-z0-9_-]+)?$', self.login_box.getText(), re.IGNORECASE): |
8ac862f6e5b3
browser and server sides: allow to connect with a JID that is not registered on the local server
souliane <souliane@mailoo.org>
parents:
729
diff
changeset
|
184 self.login_warning_msg.setHTML('Invalid login, valid characters<br>are a-z A-Z 0-9 _ - or a bare JID') |
173
3d998119237e
browser side: added login characters check in login panel (similar to the one in register panel)
Goffi <goffi@goffi.org>
parents:
165
diff
changeset
|
185 else: |
3d998119237e
browser side: added login characters check in login panel (similar to the one in register panel)
Goffi <goffi@goffi.org>
parents:
165
diff
changeset
|
186 self.submit_type.setValue('login') |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
487
diff
changeset
|
187 self.submit(None) |
46 | 188 |
62 | 189 def onRegister(self, button): |
487
e588335b6aa8
browser and server side: force lower case for the profile name at new account creation + fixes CSS for textarea
souliane <souliane@mailoo.org>
parents:
481
diff
changeset
|
190 # XXX: for now libervia forces the creation to lower case |
e588335b6aa8
browser and server side: force lower case for the profile name at new account creation + fixes CSS for textarea
souliane <souliane@mailoo.org>
parents:
481
diff
changeset
|
191 self.register_login_box.setText(self.register_login_box.getText().lower()) |
445
c0ff91cabea0
server_side, browser_side: new account password must contain at least 6 chars + cosmetic change for register warning message
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
192 if not re.match(r'^[a-z0-9_-]+$', self.register_login_box.getText(), re.IGNORECASE): |
c0ff91cabea0
server_side, browser_side: new account password must contain at least 6 chars + cosmetic change for register warning message
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
193 self.register_warning_msg.setHTML(_('Invalid login, valid characters<br>are a-z A-Z 0-9 _ -')) |
750
8ac862f6e5b3
browser and server sides: allow to connect with a JID that is not registered on the local server
souliane <souliane@mailoo.org>
parents:
729
diff
changeset
|
194 elif not re.match(r'^[a-z0-9_-]+@[a-z0-9_-]+\.[a-z0-9_-]+$', self.email_box.getText(), re.IGNORECASE): |
445
c0ff91cabea0
server_side, browser_side: new account password must contain at least 6 chars + cosmetic change for register warning message
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
195 self.register_warning_msg.setHTML(_('Invalid email address')) |
c0ff91cabea0
server_side, browser_side: new account password must contain at least 6 chars + cosmetic change for register warning message
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
196 elif len(self.register_pass_box.getText()) < C.PASSWORD_MIN_LENGTH: |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
197 self.register_warning_msg.setHTML(_('Your password must contain<br>at least %d characters.') % C.PASSWORD_MIN_LENGTH) |
46 | 198 else: |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
199 self.register_warning_msg.setHTML("") |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
200 self.submit_type.setValue('register') |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
487
diff
changeset
|
201 self.submit(None) |
46 | 202 |
0 | 203 def onSubmit(self, event): |
204 pass | |
205 | |
206 def onSubmitComplete(self, event): | |
207 result = event.getResults() | |
481
bbdc5357dc00
browser and server sides: refactor HTTP request result values + handle "NoReply" error
souliane <souliane@mailoo.org>
parents:
467
diff
changeset
|
208 if result == C.PROFILE_AUTH_ERROR: |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
209 self.login_warning_msg.setHTML(_('Your login and/or password is incorrect. Please try again.')) |
481
bbdc5357dc00
browser and server sides: refactor HTTP request result values + handle "NoReply" error
souliane <souliane@mailoo.org>
parents:
467
diff
changeset
|
210 elif result == C.XMPP_AUTH_ERROR: |
464
bea9788f3170
browser and server sides: don't handle the "connectionError" signal anymore, we now use asyncConnect errback:
souliane <souliane@mailoo.org>
parents:
451
diff
changeset
|
211 # TODO: call stdui action CHANGE_XMPP_PASSWD_ID as it's done in primitivus |
bea9788f3170
browser and server sides: don't handle the "connectionError" signal anymore, we now use asyncConnect errback:
souliane <souliane@mailoo.org>
parents:
451
diff
changeset
|
212 Window.alert(_(u'Your SàT profile has been authenticated but the associated XMPP account failed to connect. Please use another SàT frontend to set another XMPP password.')) |
481
bbdc5357dc00
browser and server sides: refactor HTTP request result values + handle "NoReply" error
souliane <souliane@mailoo.org>
parents:
467
diff
changeset
|
213 elif result == C.PROFILE_LOGGED: |
0 | 214 self.callback() |
481
bbdc5357dc00
browser and server sides: refactor HTTP request result values + handle "NoReply" error
souliane <souliane@mailoo.org>
parents:
467
diff
changeset
|
215 elif result == C.SESSION_ACTIVE: |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
216 Window.alert(_('Session already active, this should not happen, please contact the author to fix it.')) |
481
bbdc5357dc00
browser and server sides: refactor HTTP request result values + handle "NoReply" error
souliane <souliane@mailoo.org>
parents:
467
diff
changeset
|
217 elif result == C.NO_REPLY: |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
218 Window.alert(_("Did not receive a reply (the timeout expired or the connection is broken).")) |
481
bbdc5357dc00
browser and server sides: refactor HTTP request result values + handle "NoReply" error
souliane <souliane@mailoo.org>
parents:
467
diff
changeset
|
219 elif result == C.ALREADY_EXISTS: |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
220 self.register_warning_msg.setHTML(_('This login already exists,<br>please choose another one.')) |
481
bbdc5357dc00
browser and server sides: refactor HTTP request result values + handle "NoReply" error
souliane <souliane@mailoo.org>
parents:
467
diff
changeset
|
221 elif result == C.INTERNAL_ERROR: |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
222 self.register_warning_msg.setHTML(_('An registration error occurred, please contact the server administrator.')) |
481
bbdc5357dc00
browser and server sides: refactor HTTP request result values + handle "NoReply" error
souliane <souliane@mailoo.org>
parents:
467
diff
changeset
|
223 elif result == C.REGISTRATION_SUCCEED: |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
224 self.login_warning_msg.setHTML("") |
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
225 self.register_warning_msg.setHTML("") |
67 | 226 self.login_box.setText(self.register_login_box.getText()) |
445
c0ff91cabea0
server_side, browser_side: new account password must contain at least 6 chars + cosmetic change for register warning message
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
227 self.login_pass_box.setText('') |
67 | 228 self.register_login_box.setText('') |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
229 self.register_pass_box.setText('') |
67 | 230 self.email_box.setText('') |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
231 self.right_side.showStack(0) |
382
06fbe6055925
browser_side: focus the password input after account creation
souliane <souliane@mailoo.org>
parents:
340
diff
changeset
|
232 self.login_pass_box.setFocus(True) |
729
273b39f04d8e
browser_side: change login and register panels (makes it more visible and less confusing)
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
233 Window.alert(_('An email has been sent to you with your login informations\nPlease remember that this is ONLY A TECHNICAL DEMO.')) |
0 | 234 else: |
793
249e49f56f67
browser and server sides: removed constant UNMANAGED_FAULT_STRING which is used only to be displayed to the user, but it doesn't mean anything to him
souliane <souliane@mailoo.org>
parents:
750
diff
changeset
|
235 Window.alert(_("An error occurred and we couldn't process your request. Please report the following error name to the administrators of your network: '%s'" % result)) |
0 | 236 |
222
759fd7386e1e
browser_side: set the focus to the first field when a tab is selected from the register panel
souliane <souliane@mailoo.org>
parents:
216
diff
changeset
|
237 |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
238 class RegisterBox(PopupPanel): |
0 | 239 |
222
759fd7386e1e
browser_side: set the focus to the first field when a tab is selected from the register panel
souliane <souliane@mailoo.org>
parents:
216
diff
changeset
|
240 def __init__(self, callback, *args, **kwargs): |
759fd7386e1e
browser_side: set the focus to the first field when a tab is selected from the register panel
souliane <souliane@mailoo.org>
parents:
216
diff
changeset
|
241 PopupPanel.__init__(self, *args, **kwargs) |
759fd7386e1e
browser_side: set the focus to the first field when a tab is selected from the register panel
souliane <souliane@mailoo.org>
parents:
216
diff
changeset
|
242 self._form = RegisterPanel(callback) |
759fd7386e1e
browser_side: set the focus to the first field when a tab is selected from the register panel
souliane <souliane@mailoo.org>
parents:
216
diff
changeset
|
243 self.setWidget(self._form) |
759fd7386e1e
browser_side: set the focus to the first field when a tab is selected from the register panel
souliane <souliane@mailoo.org>
parents:
216
diff
changeset
|
244 |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
245 def onWindowResized(self, width, height): |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
246 super(RegisterBox, self).onWindowResized(width, height) |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
247 self.centerBox() |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
248 |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
249 def show(self): |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
250 super(RegisterBox, self).show() |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
251 self.centerBox() |
222
759fd7386e1e
browser_side: set the focus to the first field when a tab is selected from the register panel
souliane <souliane@mailoo.org>
parents:
216
diff
changeset
|
252 self._form.login_box.setFocus(True) |