Mercurial > libervia-web
comparison src/browser/sat_browser/base_menu.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 | 85699d18921f |
children | c2abadf31afb |
comparison
equal
deleted
inserted
replaced
585:bade589dbd5a | 589:a5019e62c3e9 |
---|---|
52 else: | 52 else: |
53 self.callback = getattr(object_, handler) | 53 self.callback = getattr(object_, handler) |
54 self.data = data | 54 self.data = data |
55 | 55 |
56 def execute(self): | 56 def execute(self): |
57 log.debug("execute %s" % self.callback) | |
57 self.callback(self.data) if self.data else self.callback() | 58 self.callback(self.data) if self.data else self.callback() |
58 | 59 |
59 | 60 |
60 class PluginMenuCmd: | 61 class PluginMenuCmd: |
61 """Like MenuCmd, but instead of executing a method, it will command the bridge to launch an action""" | 62 """Like MenuCmd, but instead of executing a method, it will command the bridge to launch an action""" |
305 return [cat.item for cat in self.node.getCategories(parent_path)] | 306 return [cat.item for cat in self.node.getCategories(parent_path)] |
306 | 307 |
307 def addMenuItem(self, path, path_i18n, types, menu_cmd, asHTML=False): | 308 def addMenuItem(self, path, path_i18n, types, menu_cmd, asHTML=False): |
308 return self.node.addMenuItem(path, path_i18n, types, menu_cmd, asHTML).item | 309 return self.node.addMenuItem(path, path_i18n, types, menu_cmd, asHTML).item |
309 | 310 |
310 def addCategory(self, path, path_i18n, types, menu_bar): | 311 def addCategory(self, path, path_i18n, types, menu_bar=None): |
311 return self.node.addCategory(path, path_i18n, types, menu_bar).item | 312 return self.node.addCategory(path, path_i18n, types, menu_bar).item |
312 | 313 |
313 def addItem(self, item, asHTML=None, popup=None): | 314 def addItem(self, item, asHTML=None, popup=None): |
314 return self.node.addItem(item, asHTML, popup).item | 315 return self.node.addItem(item, asHTML, popup).item |
315 | 316 |