comparison libervia.py @ 66:9d8e79ac4c9c

Login/Register box: integration of Adrien Vigneron's design
author Goffi <goffi@goffi.org>
date Wed, 15 Jun 2011 00:52:02 +0200
parents 104e71ce2293
children 68d360caeecb
comparison
equal deleted inserted replaced
65:8f421a12b8f9 66:9d8e79ac4c9c
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # -*- coding: utf-8 -*- 2 # -*- coding: utf-8 -*-
3 3
4 """ 4 """
5 Libervia: a Salut à Toi frontend 5 Libervia: a Salut à Toi frontend
6 Copyright (C) 2011 Jérôme Poisson (goffi@goffi.org) 6 Copyright (C) 2011 Jérôme Poisson <goffi@goffi.org>
7 7
8 This program is free software: you can redistribute it and/or modify 8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU Affero General Public License as published by 9 it under the terms of the GNU Affero General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or 10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version. 11 (at your option) any later version.
23 from pyjamas.ui.RootPanel import RootPanel 23 from pyjamas.ui.RootPanel import RootPanel
24 from pyjamas.ui.HTML import HTML 24 from pyjamas.ui.HTML import HTML
25 from pyjamas.ui.KeyboardListener import KEY_ESCAPE 25 from pyjamas.ui.KeyboardListener import KEY_ESCAPE
26 from pyjamas import Window, DOM 26 from pyjamas import Window, DOM
27 from pyjamas.JSONService import JSONProxy 27 from pyjamas.JSONService import JSONProxy
28 from browser_side.register import RegisterPanel, RegisterBox 28 from browser_side.register import RegisterBox
29 from browser_side.contact import ContactPanel 29 from browser_side.contact import ContactPanel
30 from browser_side import panels, dialog 30 from browser_side import panels, dialog
31 from browser_side.jid import JID 31 from browser_side.jid import JID
32 from browser_side.tools import html_sanitize 32 from browser_side.tools import html_sanitize
33 33
108 self.room_list = set() #set of rooms 108 self.room_list = set() #set of rooms
109 self.mblog_cache = [] #used to keep blog entries in memory, to show them in new mblog panel 109 self.mblog_cache = [] #used to keep blog entries in memory, to show them in new mblog panel
110 self.discuss_panel.changePanel(0,self.mpanels[0]) 110 self.discuss_panel.changePanel(0,self.mpanels[0])
111 self.discuss_panel.changePanel(1,self.mpanels[1]) 111 self.discuss_panel.changePanel(1,self.mpanels[1])
112 self.discuss_panel.changePanel(2,self.mpanels[2]) 112 self.discuss_panel.changePanel(2,self.mpanels[2])
113 self._dialog = None 113 self._register_box = None
114 RootPanel().add(self.panel) 114 RootPanel().add(self.panel)
115 DOM.addEventPreview(self) 115 DOM.addEventPreview(self)
116 self.resize() 116 self.resize()
117 self._register = RegisterCall() 117 self._register = RegisterCall()
118 self._register.call('isRegistered',self._isRegisteredCB) 118 self._register.call('isRegistered',self._isRegisteredCB)
149 self.tab_panel.add(panel, label) 149 self.tab_panel.add(panel, label)
150 self.other_panels.append(panel) 150 self.other_panels.append(panel)
151 151
152 def _isRegisteredCB(self, registered): 152 def _isRegisteredCB(self, registered):
153 if not registered: 153 if not registered:
154 self._dialog = RegisterBox(self.logged,centered=True) 154 self._register_box = RegisterBox(self.logged)
155 self._dialog.show() 155 self._register_box.centerBox()
156 self._register_box.show()
156 else: 157 else:
157 self._register.call('isConnected', self._isConnectedCB) 158 self._register.call('isConnected', self._isConnectedCB)
158 159
159 def _isConnectedCB(self, connected): 160 def _isConnectedCB(self, connected):
160 if not connected: 161 if not connected:
161 self._register.call('connect',lambda x:self.logged()) 162 self._register.call('connect',lambda x:self.logged())
162 else: 163 else:
163 self.logged() 164 self.logged()
164 165
165 def logged(self): 166 def logged(self):
166 if self._dialog: 167 if self._register_box:
167 self._dialog.hide() 168 self._register_box.hide()
168 del self._dialog # don't work if self._dialog is None 169 del self._register_box # don't work if self._register_box is None
169 170
170 #it's time to fill the page 171 #it's time to fill the page
171 self.bridge.call('getContacts', self._getContactsCB) 172 self.bridge.call('getContacts', self._getContactsCB)
172 self.bridge_signals.call('getSignals', self._getSignalsCB) 173 self.bridge_signals.call('getSignals', self._getSignalsCB)
173 #We want to know our own jid 174 #We want to know our own jid