Mercurial > libervia-web
comparison src/browser/sat_browser/xmlui.py @ 589:a5019e62c3e9 frontends_multi_profiles
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
/!\ not finished, partially working and highly instable
- add collections module with an OrderedDict like class
- SatWebFrontend inherit from QuickApp
- general sat_frontends tools.jid module is used
- bridge/json methods have moved to json module
- UniBox is partially removed (should be totally removed before merge to trunk)
- Signals are now register with the generic registerSignal method (which is called mainly in QuickFrontend)
- the generic getOrCreateWidget method from QuickWidgetsManager is used instead of Libervia's specific methods
- all Widget are now based more or less directly on QuickWidget
- with the new QuickWidgetsManager.getWidgets method, it's no more necessary to check all widgets which are instance of a particular class
- ChatPanel and related moved to chat module
- MicroblogPanel and related moved to blog module
- global and overcomplicated send method has been disabled: each class should manage its own sending
- for consistency with other frontends, former ContactPanel has been renamed to ContactList and vice versa
- for the same reason, ChatPanel has been renamed to Chat
- for compatibility with QuickFrontend, a fake profile is used in several places, it is set to C.PROF_KEY_NONE (real profile is managed server side for obvious security reasons)
- changed default url for web panel to SàT website, and contact address to generic SàT contact address
- ContactList is based on QuickContactList, UI changes are done in update method
- bride call (now json module) have been greatly improved, in particular call can be done in the same way as for other frontends (bridge.method_name(arg1, arg2, ..., callback=cb, errback=eb). Blocking method must be called like async methods due to javascript architecture
- in bridge calls, a callback can now exists without errback
- hard reload on BridgeSignals remote error has been disabled, a better option should be implemented
- use of constants where that make sens, some style improvments
- avatars are temporarily disabled
- lot of code disabled, will be fixed or removed before merge
- various other changes, check diff for more details
server side: manage remote exception on getEntityData, removed getProfileJid call, added getWaitingConf, added getRoomsSubjects
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 24 Jan 2015 01:45:39 +0100 |
parents | fed185c95f1c |
children | ebb602d8b3f2 |
comparison
equal
deleted
inserted
replaced
585:bade589dbd5a | 589:a5019e62c3e9 |
---|---|
405 | 405 |
406 | 406 |
407 class XMLUIPanel(LiberviaXMLUIBase, xmlui.XMLUIPanel, VerticalPanel): | 407 class XMLUIPanel(LiberviaXMLUIBase, xmlui.XMLUIPanel, VerticalPanel): |
408 widget_factory = WidgetFactory() | 408 widget_factory = WidgetFactory() |
409 | 409 |
410 def __init__(self, host, parsed_xml, title=None, flags=None): | 410 def __init__(self, host, parsed_xml, title=None, flags=None, callback=None, profile=C.PROF_KEY_NONE): |
411 self.widget_factory._xmlui_main = self | 411 self.widget_factory._xmlui_main = self |
412 VerticalPanel.__init__(self) | 412 VerticalPanel.__init__(self) |
413 self.setSize('100%', '100%') | 413 self.setSize('100%', '100%') |
414 xmlui.XMLUIPanel.__init__(self, host, parsed_xml, title, flags) | 414 xmlui.XMLUIPanel.__init__(self, host, parsed_xml, title, flags, callback, profile) |
415 | 415 |
416 def setCloseCb(self, close_cb): | 416 def setCloseCb(self, close_cb): |
417 self.close_cb = close_cb | 417 self.close_cb = close_cb |
418 | 418 |
419 def _xmluiClose(self): | 419 def _xmluiClose(self): |
443 hpanel.add(Button('Cancel', lambda ignore: self._xmluiClose())) | 443 hpanel.add(Button('Cancel', lambda ignore: self._xmluiClose())) |
444 self.add(hpanel) | 444 self.add(hpanel) |
445 | 445 |
446 def show(self): | 446 def show(self): |
447 options = ['NO_CLOSE'] if self.type == C.XMLUI_FORM else [] | 447 options = ['NO_CLOSE'] if self.type == C.XMLUI_FORM else [] |
448 _dialog = dialog.GenericDialog(self.title, self, options=options) | 448 _dialog = dialog.GenericDialog(self.xmlui_title, self, options=options) |
449 self.setCloseCb(_dialog.close) | 449 self.setCloseCb(_dialog.close) |
450 _dialog.show() | 450 _dialog.show() |
451 | 451 |
452 | 452 |
453 class XMLUIDialog(LiberviaXMLUIBase, xmlui.XMLUIDialog): | 453 class XMLUIDialog(LiberviaXMLUIBase, xmlui.XMLUIDialog): |
454 dialog_factory = GenericFactory() | 454 dialog_factory = GenericFactory() |
455 | 455 |
456 def __init__(self, host, parsed_dom, title = None, flags = None): | 456 def __init__(self, host, parsed_dom, title = None, flags = None, callback=None, profile=C.PROF_KEY_NONE): |
457 xmlui.XMLUIDialog.__init__(self, host, parsed_dom, title, flags) | 457 xmlui.XMLUIDialog.__init__(self, host, parsed_dom, title, flags, callback, profile) |
458 | 458 |
459 xmlui.registerClass(xmlui.CLASS_PANEL, XMLUIPanel) | 459 xmlui.registerClass(xmlui.CLASS_PANEL, XMLUIPanel) |
460 xmlui.registerClass(xmlui.CLASS_DIALOG, XMLUIDialog) | 460 xmlui.registerClass(xmlui.CLASS_DIALOG, XMLUIDialog) |
461 | 461 |
462 def create(*args, **kwargs): | 462 def create(*args, **kwargs): |