Mercurial > libervia-web
annotate browser/libervia_main.py @ 1134:28789926852a
doc: Libervia web framework quick_start + css_framework, first drafts
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 03 Oct 2018 21:01:42 +0200 |
parents | 28e3eb3bb217 |
children | 2af117bfe6cc |
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:
336
diff
changeset
|
4 # Libervia: a Salut à Toi frontend |
1054 | 5 # Copyright (C) 2011-2018 Jérôme Poisson <goffi@goffi.org> |
0 | 6 |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
7 # 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:
336
diff
changeset
|
8 # 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:
336
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
10 # (at your option) any later version. |
0 | 11 |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
12 # 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:
336
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
15 # GNU Affero General Public License for more details. |
0 | 16 |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
17 # 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:
336
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
0 | 19 |
439
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
20 |
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
21 ### logging configuration ### |
467 | 22 from sat_browser import logging |
440
88461e9c3e47
browser_side (log): move logging configuration in a "logging" module + use custom backend with console.debug/info/etc output.
Goffi <goffi@goffi.org>
parents:
439
diff
changeset
|
23 logging.configure() |
88461e9c3e47
browser_side (log): move logging configuration in a "logging" module + use custom backend with console.debug/info/etc output.
Goffi <goffi@goffi.org>
parents:
439
diff
changeset
|
24 from sat.core.log import getLogger |
439
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
25 log = getLogger(__name__) |
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
26 ### |
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
27 |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
28 from sat.core.i18n import D_ |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
29 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
30 from sat_frontends.quick_frontend.quick_app import QuickApp |
631
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
31 from sat_frontends.quick_frontend import quick_widgets |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
32 from sat_frontends.quick_frontend import quick_menus |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
33 |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
34 from sat_frontends.tools.misc import InputHistory |
784
f3cd261ea12f
browser side: workaround for a pyjamas bug which freeze the browser in some case with addURLToText regex
Goffi <goffi@goffi.org>
parents:
783
diff
changeset
|
35 from sat_browser import strings |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
36 from sat_frontends.tools import jid |
675
941e53b3af5c
browser side: host listeners are called when host is instantiated
Goffi <goffi@goffi.org>
parents:
670
diff
changeset
|
37 from sat_frontends.tools import host_listener |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
38 from sat.core.i18n import _ |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
39 |
0 | 40 from pyjamas.ui.RootPanel import RootPanel |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
41 # from pyjamas.ui.HTML import HTML |
43
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
42 from pyjamas.ui.KeyboardListener import KEY_ESCAPE |
108
fad0e51cf565
on failure, Libervia now wait 5 s before trying again to call the serveur + only room name is now shown in tabs
Goffi <goffi@goffi.org>
parents:
107
diff
changeset
|
43 from pyjamas.Timer import Timer |
43
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
44 from pyjamas import Window, DOM |
323
0b7934e75e76
misc: reorganization of the file panels.py + clean the modules import:
souliane <souliane@mailoo.org>
parents:
321
diff
changeset
|
45 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
46 from sat_browser import json |
467 | 47 from sat_browser import register |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
48 from sat_browser.contact_list import ContactList |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
49 from sat_browser import main_panel |
944 | 50 # from sat_browser import chat |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
51 from sat_browser import blog |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
52 from sat_browser import xmlui |
467 | 53 from sat_browser import dialog |
54 from sat_browser import html_tools | |
55 from sat_browser import notification | |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
56 from sat_browser import libervia_widget |
764 | 57 from sat_browser import web_widget |
58 assert web_widget # XXX: just here to avoid pyflakes warning | |
323
0b7934e75e76
misc: reorganization of the file panels.py + clean the modules import:
souliane <souliane@mailoo.org>
parents:
321
diff
changeset
|
59 |
467 | 60 from sat_browser.constants import Const as C |
317
bbadd490e63c
misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
316
diff
changeset
|
61 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
62 |
549
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
63 try: |
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
64 # FIXME: import plugin dynamically |
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
65 from sat_browser import plugin_sec_otr |
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
66 except ImportError: |
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
67 pass |
230
266e9678eec0
browser_side: added the flag REUSE_EXISTING_LIBERVIA_WIDGETS
souliane <souliane@mailoo.org>
parents:
229
diff
changeset
|
68 |
624
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
69 |
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
70 unicode = str # FIXME: pyjamas workaround |
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
71 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
72 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
73 # MAX_MBLOG_CACHE = 500 # Max microblog entries kept in memories # FIXME |
230
266e9678eec0
browser_side: added the flag REUSE_EXISTING_LIBERVIA_WIDGETS
souliane <souliane@mailoo.org>
parents:
229
diff
changeset
|
74 |
58
4fa3d57f72f8
browser side: microblog entries caching
Goffi <goffi@goffi.org>
parents:
57
diff
changeset
|
75 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
76 class SatWebFrontend(InputHistory, QuickApp): |
1123
63a4b8fe9782
browser: fixes to handle encryption changes in backend
Goffi <goffi@goffi.org>
parents:
1054
diff
changeset
|
77 ENCRYPTION_HANDLERS = False # e2e encryption is handled directly by Libervia, |
63a4b8fe9782
browser: fixes to handle encryption changes in backend
Goffi <goffi@goffi.org>
parents:
1054
diff
changeset
|
78 # not backend |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
79 |
0 | 80 def onModuleLoad(self): |
439
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
81 log.info("============ onModuleLoad ==============") |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
82 self.bridge_signals = json.BridgeSignals(self) |
914
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
83 QuickApp.__init__(self, json.BridgeCall, xmlui=xmlui, connect_bridge=False) |
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
84 self.connectBridge() |
700
b81816f42c81
browser side: added signal caching before profile is plugged, as QuickFrontend mechanism is not used
Goffi <goffi@goffi.org>
parents:
699
diff
changeset
|
85 self._profile_plugged = False |
b81816f42c81
browser side: added signal caching before profile is plugged, as QuickFrontend mechanism is not used
Goffi <goffi@goffi.org>
parents:
699
diff
changeset
|
86 self.signals_cache[C.PROF_KEY_NONE] = [] |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
87 self.panel = main_panel.MainPanel(self) |
84 | 88 self.tab_panel = self.panel.tab_panel |
193
f2ae8e170c49
browser side: selected widget caching in UniBox, to avoid to ask the getter at each key pressed, which make the box very slow.
Goffi <goffi@goffi.org>
parents:
192
diff
changeset
|
89 self.tab_panel.addTabListener(self) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
90 self._register_box = None |
0 | 91 RootPanel().add(self.panel) |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
92 |
714
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
93 self.alerts_counter = notification.FaviconCounter() |
834
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
94 self.notification = notification.Notification(self.alerts_counter) |
43
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
95 DOM.addEventPreview(self) |
521
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
96 self.importPlugins() |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
97 self._register = json.RegisterCall() |
914
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
98 self._register.call('menusGet', self.gotMenus) |
318
c12c9a1acf2f
server_side: added support for paramsRegisterApp to define frontend's specific parameters like "Enable unibox"
souliane <souliane@mailoo.org>
parents:
317
diff
changeset
|
99 self._register.call('registerParams', None) |
869
fa7703642c0e
server, browser: replaced isRegistered call by a more generic getSessionMetadata which return a dictionary
Goffi <goffi@goffi.org>
parents:
852
diff
changeset
|
100 self._register.call('getSessionMetadata', self._getSessionMetadataCB) |
205
ee744ffed7fc
browser side: events data are cached until initialisation is finished (we get all microblogs)
Goffi <goffi@goffi.org>
parents:
204
diff
changeset
|
101 self.initialised = False |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
102 self.init_cache = [] # used to cache events until initialisation is done |
478
992b900ab876
browser side: rename and refactor constant UI_PARAMS to CACHED_PARAMS, from a dict of dict to a list of 2-tuple
souliane <souliane@mailoo.org>
parents:
477
diff
changeset
|
103 self.cached_params = {} |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
104 self.next_rsm_index = 0 |
193
f2ae8e170c49
browser side: selected widget caching in UniBox, to avoid to ask the getter at each key pressed, which make the box very slow.
Goffi <goffi@goffi.org>
parents:
192
diff
changeset
|
105 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
106 #FIXME: microblog cache should be managed directly in blog module |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
107 self.mblog_cache = [] # used to keep our own blog entries in memory, to show them in new mblog panel |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
108 |
683
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
109 self._versions={} # SàT and Libervia versions cache |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
110 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
111 @property |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
112 def whoami(self): |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
113 # XXX: works because Libervia is mono-profile |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
114 # if one day Libervia manage several profiles at once, this must be deleted |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
115 return self.profiles[C.PROF_KEY_NONE].whoami |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
116 |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
117 @property |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
118 def contact_list(self): |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
119 return self.contact_lists[C.PROF_KEY_NONE] |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
120 |
613
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
121 @property |
631
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
122 def visible_widgets(self): |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
123 widgets_panel = self.tab_panel.getCurrentPanel() |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
124 return [wid for wid in widgets_panel.widgets if isinstance(wid, quick_widgets.QuickWidget)] |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
125 |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
126 @property |
613
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
127 def base_location(self): |
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
128 """Return absolute base url of this Libervia instance""" |
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
129 url = Window.getLocation().getHref() |
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
130 if url.endswith(C.LIBERVIA_MAIN_PAGE): |
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
131 url = url[:-len(C.LIBERVIA_MAIN_PAGE)] |
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
132 if url.endswith("/"): |
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
133 url = url[:-1] |
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
134 return url |
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
135 |
683
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
136 @property |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
137 def sat_version(self): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
138 return self._versions["sat"] |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
139 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
140 @property |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
141 def libervia_version(self): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
142 return self._versions["libervia"] |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
143 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
144 def getVersions(self, callback=None): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
145 """Ask libervia server for SàT and Libervia version and fill local cache |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
146 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
147 @param callback: method to call when both versions have been received |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
148 """ |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
149 def gotVersion(): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
150 if len(self._versions) == 2 and callback is not None: |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
151 callback() |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
152 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
153 if len(self._versions) == 2: |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
154 # we already have versions in cache |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
155 gotVersion() |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
156 return |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
157 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
158 def gotSat(version): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
159 self._versions["sat"] = version |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
160 gotVersion() |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
161 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
162 def gotLibervia(version): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
163 self._versions["libervia"] = version |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
164 gotVersion() |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
165 |
843
83a40d786e7a
browser: use new style calls for getSignals
Goffi <goffi@goffi.org>
parents:
839
diff
changeset
|
166 self.bridge.getVersion(callback=gotSat, profile=None) |
683
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
167 self.bridge.getLiberviaVersion(callback=gotLibervia, profile=None) # XXX: bridge direct call expect a profile, even for method with no profile needed |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
168 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
169 def registerSignal(self, functionName, handler=None, iface="core", with_profile=True): |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
170 if handler is None: |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
171 callback = getattr(self, "{}{}".format(functionName, "Handler")) |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
172 else: |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
173 callback = handler |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
174 |
914
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
175 self.bridge_signals.register_signal(functionName, callback, with_profile=with_profile) |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
176 |
521
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
177 def importPlugins(self): |
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
178 self.plugins = {} |
549
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
179 try: |
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
180 self.plugins['otr'] = plugin_sec_otr.OTR(self) |
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
181 except TypeError: # plugin_sec_otr has not been imported |
665
6a8a1103ad10
browser_side: OTR uses 'profilePlugged', 'disconnect' and 'gotMenus' listeners
souliane <souliane@mailoo.org>
parents:
663
diff
changeset
|
182 pass |
521
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
183 |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
184 def getSelected(self): |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
185 wid = self.tab_panel.getCurrentPanel() |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
186 if not isinstance(wid, libervia_widget.WidgetsPanel): |
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
187 log.error("Tab widget is not a WidgetsPanel, can't get selected widget") |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
188 return None |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
189 return wid.selected |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
190 |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
191 def setSelected(self, widget): |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
192 """Define the selected widget""" |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
193 widgets_panel = self.tab_panel.getCurrentPanel() |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
194 if not isinstance(widgets_panel, libervia_widget.WidgetsPanel): |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
195 return |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
196 |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
197 selected = widgets_panel.selected |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
198 |
193
f2ae8e170c49
browser side: selected widget caching in UniBox, to avoid to ask the getter at each key pressed, which make the box very slow.
Goffi <goffi@goffi.org>
parents:
192
diff
changeset
|
199 if selected == widget: |
f2ae8e170c49
browser side: selected widget caching in UniBox, to avoid to ask the getter at each key pressed, which make the box very slow.
Goffi <goffi@goffi.org>
parents:
192
diff
changeset
|
200 return |
210
3092f6b1710c
browser side: make the OK button title for group selector configureable + few "cosmetic" changes (PEP 8...)
souliane <souliane@mailoo.org>
parents:
205
diff
changeset
|
201 |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
202 if selected: |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
203 selected.removeStyleName('selected_widget') |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
204 |
616
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
205 # FIXME: check that widget is in the current WidgetsPanel |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
206 widgets_panel.selected = widget |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
207 self.selected_widget = widget |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
208 |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
209 if widget: |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
210 widgets_panel.selected.addStyleName('selected_widget') |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
211 |
33 | 212 def resize(self): |
213 """Resize elements""" | |
214 Window.onResize() | |
215 | |
193
f2ae8e170c49
browser side: selected widget caching in UniBox, to avoid to ask the getter at each key pressed, which make the box very slow.
Goffi <goffi@goffi.org>
parents:
192
diff
changeset
|
216 def onBeforeTabSelected(self, sender, tab_index): |
f2ae8e170c49
browser side: selected widget caching in UniBox, to avoid to ask the getter at each key pressed, which make the box very slow.
Goffi <goffi@goffi.org>
parents:
192
diff
changeset
|
217 return True |
f2ae8e170c49
browser side: selected widget caching in UniBox, to avoid to ask the getter at each key pressed, which make the box very slow.
Goffi <goffi@goffi.org>
parents:
192
diff
changeset
|
218 |
f2ae8e170c49
browser side: selected widget caching in UniBox, to avoid to ask the getter at each key pressed, which make the box very slow.
Goffi <goffi@goffi.org>
parents:
192
diff
changeset
|
219 def onTabSelected(self, sender, tab_index): |
944 | 220 pass |
221 # def onTabSelected(self, sender, tab_index): | |
222 # for widget in self.tab_panel.getCurrentPanel().widgets: | |
223 # if isinstance(widget, chat.Chat): | |
224 # clist = self.contact_list | |
225 # clist.removeAlerts(widget.current_target, True) | |
193
f2ae8e170c49
browser side: selected widget caching in UniBox, to avoid to ask the getter at each key pressed, which make the box very slow.
Goffi <goffi@goffi.org>
parents:
192
diff
changeset
|
226 |
43
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
227 def onEventPreview(self, event): |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
228 if event.type in ["keydown", "keypress", "keyup"] and event.keyCode == KEY_ESCAPE: |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
229 #needed to prevent request cancellation in Firefox |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
230 event.preventDefault() |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
231 return True |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
232 |
606
7af8f4ab3675
browser side: fixed avatar getting + better DEFAULT/EMPTY avatars constants + use of jid.JID for microblog's author
Goffi <goffi@goffi.org>
parents:
597
diff
changeset
|
233 def getAvatarURL(self, jid_): |
7af8f4ab3675
browser side: fixed avatar getting + better DEFAULT/EMPTY avatars constants + use of jid.JID for microblog's author
Goffi <goffi@goffi.org>
parents:
597
diff
changeset
|
234 """Return avatar of a jid if in cache, else ask for it. |
479
c21ea1fe3593
browser side: small refactoring to prepare displaying avatars in the contact panel
souliane <souliane@mailoo.org>
parents:
478
diff
changeset
|
235 |
606
7af8f4ab3675
browser side: fixed avatar getting + better DEFAULT/EMPTY avatars constants + use of jid.JID for microblog's author
Goffi <goffi@goffi.org>
parents:
597
diff
changeset
|
236 @param jid_ (jid.JID): JID of the contact |
662
ebb602d8b3f2
browser_side: replace all instances of 'str' with 'unicode'
souliane <souliane@mailoo.org>
parents:
659
diff
changeset
|
237 @return: the URL to the avatar (unicode) |
606
7af8f4ab3675
browser side: fixed avatar getting + better DEFAULT/EMPTY avatars constants + use of jid.JID for microblog's author
Goffi <goffi@goffi.org>
parents:
597
diff
changeset
|
238 """ |
914
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
239 return self.getAvatar(jid_) or self.getDefaultAvatar() |
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
240 |
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
241 def getDefaultAvatar(self): |
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
242 return C.DEFAULT_AVATAR_URL |
119 | 243 |
84 | 244 def registerWidget(self, wid): |
694
82123705474b
massive (preventive) addition of 'u' (unicode) before the strings passed to logging functions
souliane <souliane@mailoo.org>
parents:
692
diff
changeset
|
245 log.debug(u"Registering %s" % wid.getDebugName()) |
84 | 246 self.libervia_widgets.add(wid) |
247 | |
248 def unregisterWidget(self, wid): | |
249 try: | |
250 self.libervia_widgets.remove(wid) | |
251 except KeyError: | |
694
82123705474b
massive (preventive) addition of 'u' (unicode) before the strings passed to logging functions
souliane <souliane@mailoo.org>
parents:
692
diff
changeset
|
252 log.warning(u'trying to remove a non registered Widget: %s' % wid.getDebugName()) |
210
3092f6b1710c
browser side: make the OK button title for group selector configureable + few "cosmetic" changes (PEP 8...)
souliane <souliane@mailoo.org>
parents:
205
diff
changeset
|
253 |
326
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
254 def refresh(self): |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
255 """Refresh the general display.""" |
780
b3f04e58ec15
browser_side: fixed contact list refresh on param change
souliane <souliane@mailoo.org>
parents:
778
diff
changeset
|
256 self.contact_list.refresh() |
326
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
257 for lib_wid in self.libervia_widgets: |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
258 lib_wid.refresh() |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
259 self.resize() |
33 | 260 |
267
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
261 def addWidget(self, wid, tab_index=None): |
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
262 """ Add a widget at the bottom of the current or specified tab |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
263 |
267
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
264 @param wid: LiberviaWidget to add |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
265 @param tab_index: index of the tab to add the widget to |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
266 """ |
267
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
267 if tab_index is None or tab_index < 0 or tab_index >= self.tab_panel.getWidgetCount(): |
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
268 panel = self.tab_panel.getCurrentPanel() |
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
269 else: |
616
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
270 panel = self.tab_panel.deck.getWidget(tab_index) |
200
0f5c2f799913
browser side: clicking on the contacts list (contact item, group or the "contacts" main title) open a discussion or microblog
Goffi <goffi@goffi.org>
parents:
195
diff
changeset
|
271 panel.addWidget(wid) |
0f5c2f799913
browser side: clicking on the contacts list (contact item, group or the "contacts" main title) open a discussion or microblog
Goffi <goffi@goffi.org>
parents:
195
diff
changeset
|
272 |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
273 def gotMenus(self, backend_menus): |
494
5d8632a7bfde
browser_side: refactorisation of menus and LiberviaWidget's header
souliane <souliane@mailoo.org>
parents:
483
diff
changeset
|
274 """Put the menus data in cache and build the main menu bar |
5d8632a7bfde
browser_side: refactorisation of menus and LiberviaWidget's header
souliane <souliane@mailoo.org>
parents:
483
diff
changeset
|
275 |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
276 @param backend_menus (list[tuple]): menu data from backend |
494
5d8632a7bfde
browser_side: refactorisation of menus and LiberviaWidget's header
souliane <souliane@mailoo.org>
parents:
483
diff
changeset
|
277 """ |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
278 main_menu = self.panel.menu # most of global menu callbacks are in main_menu |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
279 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
280 # Categories (with icons) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
281 self.menus.addCategory(C.MENU_GLOBAL, [D_(u"General")], extra={'icon': 'home'}) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
282 self.menus.addCategory(C.MENU_GLOBAL, [D_(u"Contacts")], extra={'icon': 'social'}) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
283 self.menus.addCategory(C.MENU_GLOBAL, [D_(u"Groups")], extra={'icon': 'social'}) |
782
10a56f6bc5db
browser_side (menu): moved Tarot from Games to Groups
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
284 #self.menus.addCategory(C.MENU_GLOBAL, [D_(u"Games")], extra={'icon': 'games'}) |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
285 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
286 # menus to have before backend menus |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
287 self.menus.addMenu(C.MENU_GLOBAL, (D_(u"Groups"), D_(u"Discussion")), callback=main_menu.onJoinRoom) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
288 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
289 # menus added by the backend/plugins (include other types than C.MENU_GLOBAL) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
290 self.menus.addMenus(backend_menus, top_extra={'icon': 'plugins'}) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
291 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
292 # menus to have under backend menus |
783
d24e56a5f2ef
browser_side: rename "Manage groups" to "Manage contact groups" to avoid confusion
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
293 self.menus.addMenu(C.MENU_GLOBAL, (D_(u"Contacts"), D_(u"Manage contact groups")), callback=main_menu.onManageContactGroups) |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
294 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
295 # separator and right hand menus |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
296 self.menus.addMenuItem(C.MENU_GLOBAL, [], quick_menus.MenuSeparator()) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
297 |
776
627b9073a2ec
browser side: the new menu 'help/official room chat' launch the default_muc room, which can be used to get some help
Goffi <goffi@goffi.org>
parents:
764
diff
changeset
|
298 self.menus.addMenu(C.MENU_GLOBAL, (D_(u"Help"), D_("Official chat room")), top_extra={'icon': 'help'}, callback=main_menu.onOfficialChatRoom) |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
299 self.menus.addMenu(C.MENU_GLOBAL, (D_(u"Help"), D_("Social contract")), top_extra={'icon': 'help'}, callback=main_menu.onSocialContract) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
300 self.menus.addMenu(C.MENU_GLOBAL, (D_(u"Help"), D_("About")), callback=main_menu.onAbout) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
301 self.menus.addMenu(C.MENU_GLOBAL, (D_(u"Settings"), D_("Account")), top_extra={'icon': 'settings'}, callback=main_menu.onAccount) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
302 self.menus.addMenu(C.MENU_GLOBAL, (D_(u"Settings"), D_("Parameters")), callback=main_menu.onParameters) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
303 # XXX: temporary, will change when a full profile will be managed in SàT |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
304 self.menus.addMenu(C.MENU_GLOBAL, (D_(u"Settings"), D_("Upload avatar")), callback=main_menu.onAvatarUpload) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
305 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
306 # we call listener to have menu added by local classes/plugins |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
307 self.callListeners('gotMenus') # FIXME: to be done another way or moved to quick_app |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
308 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
309 # and finally the menus which must appear at the bottom |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
310 self.menus.addMenu(C.MENU_GLOBAL, (D_(u"General"), D_(u"Disconnect")), callback=main_menu.onDisconnect) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
311 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
312 # we can now display all the menus |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
313 main_menu.update(C.MENU_GLOBAL) |
494
5d8632a7bfde
browser_side: refactorisation of menus and LiberviaWidget's header
souliane <souliane@mailoo.org>
parents:
483
diff
changeset
|
314 |
788
7ebde6d1a4bd
browser side: fixed public blog menu (moved temporarily to frontend side)
Goffi <goffi@goffi.org>
parents:
784
diff
changeset
|
315 # XXX: temp, will be reworked in the backed static blog plugin |
7ebde6d1a4bd
browser side: fixed public blog menu (moved temporarily to frontend side)
Goffi <goffi@goffi.org>
parents:
784
diff
changeset
|
316 self.menus.addMenu(C.MENU_JID_CONTEXT, (D_(u"User"), D_("Public blog")), callback=main_menu.onPublicBlog) |
7ebde6d1a4bd
browser side: fixed public blog menu (moved temporarily to frontend side)
Goffi <goffi@goffi.org>
parents:
784
diff
changeset
|
317 |
944 | 318 def removeListener(self, type_, callback): |
319 """Remove a callback from listeners | |
320 | |
321 @param type_: same as for [addListener] | |
322 @param callback: callback to remove | |
323 """ | |
324 # FIXME: workaround for pyjamas | |
325 # check KeyError issue | |
326 assert type_ in C.LISTENERS | |
327 try: | |
328 self._listeners[type_].pop(callback) | |
329 except KeyError: | |
330 pass | |
331 | |
869
fa7703642c0e
server, browser: replaced isRegistered call by a more generic getSessionMetadata which return a dictionary
Goffi <goffi@goffi.org>
parents:
852
diff
changeset
|
332 def _getSessionMetadataCB(self, metadata): |
fa7703642c0e
server, browser: replaced isRegistered call by a more generic getSessionMetadata which return a dictionary
Goffi <goffi@goffi.org>
parents:
852
diff
changeset
|
333 if not metadata['plugged']: |
fa7703642c0e
server, browser: replaced isRegistered call by a more generic getSessionMetadata which return a dictionary
Goffi <goffi@goffi.org>
parents:
852
diff
changeset
|
334 warning = metadata.get("warning") |
852
6f0a127077c4
browser: set the background transparent when the register panel is displayed
souliane <souliane@mailoo.org>
parents:
843
diff
changeset
|
335 self.panel.setStyleAttribute("opacity", "0.25") # set background transparency |
871
54f6c5b86a87
server, browser: new "allow_registration" option to enable/disable new account registration through Liberia interface
Goffi <goffi@goffi.org>
parents:
869
diff
changeset
|
336 self._register_box = register.RegisterBox(self.logged, metadata) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
337 self._register_box.centerBox() |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
338 self._register_box.show() |
415
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
339 if warning: |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
340 dialog.InfoDialog(_('Security warning'), warning).show() |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
341 self._tryAutoConnect(skip_validation=not not warning) |
0 | 342 else: |
1 | 343 self._register.call('isConnected', self._isConnectedCB) |
0 | 344 |
1 | 345 def _isConnectedCB(self, connected): |
0 | 346 if not connected: |
914
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
347 self._register.call('connect', lambda x: self.logged()) |
0 | 348 else: |
349 self.logged() | |
350 | |
351 def logged(self): | |
852
6f0a127077c4
browser: set the background transparent when the register panel is displayed
souliane <souliane@mailoo.org>
parents:
843
diff
changeset
|
352 self.panel.setStyleAttribute("opacity", "1") # background becomes foreground |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
353 if self._register_box: |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
354 self._register_box.hide() |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
355 del self._register_box # don't work if self._register_box is None |
210
3092f6b1710c
browser side: make the OK button title for group selector configureable + few "cosmetic" changes (PEP 8...)
souliane <souliane@mailoo.org>
parents:
205
diff
changeset
|
356 |
657
0b7e4226378d
browser_side: hide the tab bar and contact list's toggle button until the profile is connected
souliane <souliane@mailoo.org>
parents:
655
diff
changeset
|
357 # display the presence status panel and tab bar |
654
40c72f3b7638
browser_side: MainPanel is now based on a DockPanel, which allows to use less tables and also to remove some "window resized" listeners
souliane <souliane@mailoo.org>
parents:
651
diff
changeset
|
358 self.presence_status_panel = main_panel.PresenceStatusPanel(self) |
40c72f3b7638
browser_side: MainPanel is now based on a DockPanel, which allows to use less tables and also to remove some "window resized" listeners
souliane <souliane@mailoo.org>
parents:
651
diff
changeset
|
359 self.panel.addPresenceStatusPanel(self.presence_status_panel) |
657
0b7e4226378d
browser_side: hide the tab bar and contact list's toggle button until the profile is connected
souliane <souliane@mailoo.org>
parents:
655
diff
changeset
|
360 self.panel.tab_panel.getTabBar().setVisible(True) |
426
77d8f55fc5f0
browser_side: hide the presence/status panel until the connection is made
souliane <souliane@mailoo.org>
parents:
422
diff
changeset
|
361 |
843
83a40d786e7a
browser: use new style calls for getSignals
Goffi <goffi@goffi.org>
parents:
839
diff
changeset
|
362 self.bridge_signals.getSignals(callback=self.bridge_signals.signalHandler, profile=None) |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
363 |
242
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
364 def domain_cb(value): |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
365 self._defaultDomain = value |
694
82123705474b
massive (preventive) addition of 'u' (unicode) before the strings passed to logging functions
souliane <souliane@mailoo.org>
parents:
692
diff
changeset
|
366 log.info(u"new account domain: %s" % value) |
242
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
367 |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
368 def domain_eb(value): |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
369 self._defaultDomain = "libervia.org" |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
370 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
371 self.bridge.getNewAccountDomain(callback=domain_cb, errback=domain_eb) |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
372 self.plug_profiles([C.PROF_KEY_NONE]) # XXX: None was used intitially, but pyjamas bug when using variable arguments and None is the only arg. |
312
b4781a350483
browser_side: display a "New message" button and add a "comment" icon for main entries in MicroblogPanel when the unibox is disabled
souliane <souliane@mailoo.org>
parents:
309
diff
changeset
|
373 |
700
b81816f42c81
browser side: added signal caching before profile is plugged, as QuickFrontend mechanism is not used
Goffi <goffi@goffi.org>
parents:
699
diff
changeset
|
374 def profilePlugged(self, dummy): |
b81816f42c81
browser side: added signal caching before profile is plugged, as QuickFrontend mechanism is not used
Goffi <goffi@goffi.org>
parents:
699
diff
changeset
|
375 self._profile_plugged = True |
b81816f42c81
browser side: added signal caching before profile is plugged, as QuickFrontend mechanism is not used
Goffi <goffi@goffi.org>
parents:
699
diff
changeset
|
376 QuickApp.profilePlugged(self, C.PROF_KEY_NONE) |
909
e8b133b77aa4
browser, server: update to get compatibility with 0.7-dev (not finished):
Goffi <goffi@goffi.org>
parents:
871
diff
changeset
|
377 contact_list = self.widgets.getOrCreateWidget(ContactList, None, on_new_widget=None, profile=C.PROF_KEY_NONE) |
944 | 378 self.contact_list_widget = contact_list |
909
e8b133b77aa4
browser, server: update to get compatibility with 0.7-dev (not finished):
Goffi <goffi@goffi.org>
parents:
871
diff
changeset
|
379 self.panel.addContactList(contact_list) |
e8b133b77aa4
browser, server: update to get compatibility with 0.7-dev (not finished):
Goffi <goffi@goffi.org>
parents:
871
diff
changeset
|
380 |
e8b133b77aa4
browser, server: update to get compatibility with 0.7-dev (not finished):
Goffi <goffi@goffi.org>
parents:
871
diff
changeset
|
381 # FIXME: the contact list height has to be set manually the first time |
e8b133b77aa4
browser, server: update to get compatibility with 0.7-dev (not finished):
Goffi <goffi@goffi.org>
parents:
871
diff
changeset
|
382 self.resize() |
e8b133b77aa4
browser, server: update to get compatibility with 0.7-dev (not finished):
Goffi <goffi@goffi.org>
parents:
871
diff
changeset
|
383 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
384 # XXX: as contact_list.update() is slow and it's called a lot of time |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
385 # during profile plugging, we prevent it before it's plugged |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
386 # and do all at once now |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
387 contact_list.update() |
667
166f3b624816
browser_side (blog): clean the MicroblogPanel:
souliane <souliane@mailoo.org>
parents:
665
diff
changeset
|
388 |
752
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
389 try: |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
390 self.mblog_available = C.bool(self.features['XEP-0277']['available']) |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
391 except KeyError: |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
392 self.mblog_available = False |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
393 |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
394 try: |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
395 self.groupblog_available = C.bool(self.features['GROUPBLOG']['available']) |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
396 except KeyError: |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
397 self.groupblog_available = False |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
398 |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
399 blog_widget = self.displayWidget(blog.Blog, ()) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
400 self.setSelected(blog_widget) |
667
166f3b624816
browser_side (blog): clean the MicroblogPanel:
souliane <souliane@mailoo.org>
parents:
665
diff
changeset
|
401 |
752
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
402 if self.mblog_available: |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
403 if not self.groupblog_available: |
778
31c682149d52
browser_side: modify a message to avoid a confusion when fine access blogging is not available
souliane <souliane@mailoo.org>
parents:
776
diff
changeset
|
404 dialog.InfoDialog(_(u"Group blogging not available"), _(u"Your server can manage (micro)blogging, but not fine permissions.<br />You'll only be able to blog publicly.")).show() |
752
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
405 |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
406 else: |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
407 dialog.InfoDialog(_(u"Blogging not available"), _(u"Your server can't handle (micro)blogging.<br />You'll be able to see your contacts (micro)blogs, but not to post yourself.")).show() |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
408 |
606
7af8f4ab3675
browser side: fixed avatar getting + better DEFAULT/EMPTY avatars constants + use of jid.JID for microblog's author
Goffi <goffi@goffi.org>
parents:
597
diff
changeset
|
409 # we fill the panels already here |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
410 # for wid in self.widgets.getWidgets(blog.MicroblogPanel): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
411 # if wid.accept_all(): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
412 # self.bridge.getMassiveMblogs('ALL', (), None, profile=C.PROF_KEY_NONE, callback=wid.massiveInsert) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
413 # else: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
414 # self.bridge.getMassiveMblogs('GROUP', list(wid.accepted_groups), None, profile=C.PROF_KEY_NONE, callback=wid.massiveInsert) |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
415 |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
416 #we ask for our own microblogs: |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
417 # self.loadOurMainEntries() |
312
b4781a350483
browser_side: display a "New message" button and add a "comment" icon for main entries in MicroblogPanel when the unibox is disabled
souliane <souliane@mailoo.org>
parents:
309
diff
changeset
|
418 |
692
7a9c7b9f6a28
browser_side: use host.default_muc instead of C.DEFAULT_MUC
souliane <souliane@mailoo.org>
parents:
687
diff
changeset
|
419 def gotDefaultMUC(default_muc): |
7a9c7b9f6a28
browser_side: use host.default_muc instead of C.DEFAULT_MUC
souliane <souliane@mailoo.org>
parents:
687
diff
changeset
|
420 self.default_muc = default_muc |
909
e8b133b77aa4
browser, server: update to get compatibility with 0.7-dev (not finished):
Goffi <goffi@goffi.org>
parents:
871
diff
changeset
|
421 self.bridge.mucGetDefaultService(profile=None, callback=gotDefaultMUC) |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
422 |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
423 def newWidget(self, wid): |
694
82123705474b
massive (preventive) addition of 'u' (unicode) before the strings passed to logging functions
souliane <souliane@mailoo.org>
parents:
692
diff
changeset
|
424 log.debug(u"newWidget: {}".format(wid)) |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
425 self.addWidget(wid) |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
426 |
663
423182fea41c
browser_side: fixes OTR using the new resource system and proper triggers (send and receive message) or listener (presence update)
souliane <souliane@mailoo.org>
parents:
662
diff
changeset
|
427 def newMessageHandler(self, from_jid_s, msg, type_, to_jid_s, extra, profile=C.PROF_KEY_NONE): |
645
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
428 if type_ == C.MESS_TYPE_HEADLINE: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
429 from_jid = jid.JID(from_jid_s) |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
430 if from_jid.domain == self._defaultDomain: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
431 # we display announcement from the server in a dialog for better visibility |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
432 try: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
433 title = extra['subject'] |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
434 except KeyError: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
435 title = _('Announcement from %s') % from_jid |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
436 msg = strings.addURLToText(html_tools.XHTML2Text(msg)) |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
437 dialog.InfoDialog(title, msg).show() |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
438 return |
646
9972a24592b0
browser side: fixed typo in newMessageHandler
Goffi <goffi@goffi.org>
parents:
645
diff
changeset
|
439 QuickApp.newMessageHandler(self, from_jid_s, msg, type_, to_jid_s, extra, profile) |
645
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
440 |
643
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
441 def disconnectedHandler(self, profile): |
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
442 QuickApp.disconnectedHandler(self, profile) |
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
443 Window.getLocation().reload() |
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
444 |
699
be55a782a976
browser_side: change frontend method "setStatusOnline" for "setPresenceStatus"
souliane <souliane@mailoo.org>
parents:
697
diff
changeset
|
445 def setPresenceStatus(self, show='', status=None, profile=C.PROF_KEY_NONE): |
655
048401e5c506
browser_side: implements setStatusOnline since it is not used only for setting the connected state on/off, but also to update the user presence and status
souliane <souliane@mailoo.org>
parents:
654
diff
changeset
|
446 self.presence_status_panel.setPresence(show) |
699
be55a782a976
browser_side: change frontend method "setStatusOnline" for "setPresenceStatus"
souliane <souliane@mailoo.org>
parents:
697
diff
changeset
|
447 if status is not None: |
be55a782a976
browser_side: change frontend method "setStatusOnline" for "setPresenceStatus"
souliane <souliane@mailoo.org>
parents:
697
diff
changeset
|
448 self.presence_status_panel.setStatus(status) |
242
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
449 |
415
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
450 def _tryAutoConnect(self, skip_validation=False): |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
451 """This method retrieve the eventual URL parameters to auto-connect the user. |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
452 @param skip_validation: if True, set the form values but do not validate it |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
453 """ |
503
88ece2a00c63
browser_side: display new lines and clickable URLs for headline message
souliane <souliane@mailoo.org>
parents:
500
diff
changeset
|
454 params = strings.getURLParams(Window.getLocation().getSearch()) |
250
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
455 if "login" in params: |
730
108bb9d74fa2
browser_side: fixes auto-login (broken by previous changeset)
souliane <souliane@mailoo.org>
parents:
718
diff
changeset
|
456 self._register_box._form.right_side.showStack(0) |
250
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
457 self._register_box._form.login_box.setText(params["login"]) |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
458 self._register_box._form.login_pass_box.setFocus(True) |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
459 if "passwd" in params: |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
460 # try to connect |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
461 self._register_box._form.login_pass_box.setText(params["passwd"]) |
415
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
462 if not skip_validation: |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
463 self._register_box._form.onLogin(None) |
250
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
464 return True |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
465 else: |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
466 # this would eventually set the browser saved password |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
467 Timer(5, lambda: self._register_box._form.login_pass_box.setFocus(True)) |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
468 |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
469 def _actionManagerUnknownError(self): |
299
e4f586fc6101
server and browser side: updated callback system to follow core changes
Goffi <goffi@goffi.org>
parents:
298
diff
changeset
|
470 dialog.InfoDialog("Error", |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
471 "Unmanaged action result", Width="400px").center() |
299
e4f586fc6101
server and browser side: updated callback system to follow core changes
Goffi <goffi@goffi.org>
parents:
298
diff
changeset
|
472 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
473 # def _ownBlogsFills(self, mblogs, mblog_panel=None): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
474 # """Put our own microblogs in cache, then fill the panels with them. |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
475 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
476 # @param mblogs (dict): dictionary mapping a publisher JID to blogs data. |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
477 # @param mblog_panel (MicroblogPanel): the panel to fill, or all if None. |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
478 # """ |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
479 # cache = [] |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
480 # for publisher in mblogs: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
481 # for mblog in mblogs[publisher][0]: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
482 # if 'content' not in mblog: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
483 # log.warning(u"No content found in microblog [%s]" % mblog) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
484 # continue |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
485 # if 'groups' in mblog: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
486 # _groups = set(mblog['groups'].split() if mblog['groups'] else []) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
487 # else: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
488 # _groups = None |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
489 # mblog_entry = blog.MicroblogItem(mblog) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
490 # cache.append((_groups, mblog_entry)) |
215
e830a0c60d32
server side: added the security_limit to setParam
souliane <souliane@mailoo.org>
parents:
213
diff
changeset
|
491 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
492 # self.mblog_cache.extend(cache) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
493 # if len(self.mblog_cache) > MAX_MBLOG_CACHE: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
494 # del self.mblog_cache[0:len(self.mblog_cache - MAX_MBLOG_CACHE)] |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
495 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
496 # widget_list = [mblog_panel] if mblog_panel else self.widgets.getWidgets(blog.MicroblogPanel) |
679 | 497 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
498 # for wid in widget_list: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
499 # self.fillMicroblogPanel(wid, cache) |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
500 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
501 # # FIXME |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
502 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
503 # if self.initialised: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
504 # return |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
505 # self.initialised = True # initialisation phase is finished here |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
506 # for event_data in self.init_cache: # so we have to send all the cached events |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
507 # self.personalEventHandler(*event_data) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
508 # del self.init_cache |
139 | 509 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
510 # def loadOurMainEntries(self, index=0, mblog_panel=None): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
511 # """Load a page of our own blogs from the cache or ask them to the |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
512 # backend. Then fill the panels with them. |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
513 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
514 # @param index (int): starting index of the blog page to retrieve. |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
515 # @param mblog_panel (MicroblogPanel): the panel to fill, or all if None. |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
516 # """ |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
517 # delta = index - self.next_rsm_index |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
518 # if delta < 0: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
519 # assert mblog_panel is not None |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
520 # self.fillMicroblogPanel(mblog_panel, self.mblog_cache[index:index + C.RSM_MAX_ITEMS]) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
521 # return |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
522 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
523 # def cb(result): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
524 # self._ownBlogsFills(result, mblog_panel) |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
525 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
526 # rsm = {'max_': str(delta + C.RSM_MAX_ITEMS), 'index': str(self.next_rsm_index)} |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
527 # self.bridge.getMassiveMblogs('JID', [unicode(self.whoami.bare)], rsm, callback=cb, profile=C.PROF_KEY_NONE) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
528 # self.next_rsm_index = index + C.RSM_MAX_ITEMS |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
529 |
4
7325e787c22b
personalEvent management signal first draft, microblogs are now put in a central grid
Goffi <goffi@goffi.org>
parents:
2
diff
changeset
|
530 ## Signals callbacks ## |
7325e787c22b
personalEvent management signal first draft, microblogs are now put in a central grid
Goffi <goffi@goffi.org>
parents:
2
diff
changeset
|
531 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
532 # def personalEventHandler(self, sender, event_type, data): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
533 # elif event_type == 'MICROBLOG_DELETE': |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
534 # for wid in self.widgets.getWidgets(blog.MicroblogPanel): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
535 # wid.removeEntry(data['type'], data['id']) |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
536 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
537 # if sender == self.whoami.bare and data['type'] == 'main_item': |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
538 # for index in xrange(0, len(self.mblog_cache)): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
539 # entry = self.mblog_cache[index] |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
540 # if entry[1].id == data['id']: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
541 # self.mblog_cache.remove(entry) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
542 # break |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
543 |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
544 # def fillMicroblogPanel(self, mblog_panel, mblogs): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
545 # """Fill a microblog panel with entries in cache |
58
4fa3d57f72f8
browser side: microblog entries caching
Goffi <goffi@goffi.org>
parents:
57
diff
changeset
|
546 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
547 # @param mblog_panel: MicroblogPanel instance |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
548 # """ |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
549 # #XXX: only our own entries are cached |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
550 # for cache_entry in mblogs: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
551 # _groups, mblog_entry = cache_entry |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
552 # mblog_panel.addEntryIfAccepted(self.whoami.bare, *cache_entry) |
439
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
553 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
554 # def getEntityMBlog(self, entity): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
555 # # FIXME: call this after a contact has been added to roster |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
556 # log.info(u"geting mblog for entity [%s]" % (entity,)) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
557 # for lib_wid in self.libervia_widgets: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
558 # if isinstance(lib_wid, blog.MicroblogPanel): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
559 # if lib_wid.isJidAccepted(entity): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
560 # self.bridge.call('getMassiveMblogs', lib_wid.massiveInsert, 'JID', [unicode(entity)]) |
163
b887186e8fc8
browser side: get entity's microblogs for newly added contacts
Goffi <goffi@goffi.org>
parents:
158
diff
changeset
|
561 |
616
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
562 def displayWidget(self, class_, target, dropped=False, new_tab=None, *args, **kwargs): |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
563 """Get or create a LiberviaWidget and select it. When the user dropped |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
564 something, a new widget is always created, otherwise we look for an |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
565 existing widget and re-use it if it's in the current tab. |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
566 |
631
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
567 @arg class_(class): see quick_widgets.getOrCreateWidget |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
568 @arg target: see quick_widgets.getOrCreateWidget |
616
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
569 @arg dropped(bool): if True, assume the widget has been dropped |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
570 @arg new_tab(unicode): if not None, it holds the name of a new tab to |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
571 open for the widget. If None, use the default behavior. |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
572 @param args(list): optional args to create a new instance of class_ |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
573 @param kwargs(list): optional kwargs to create a new instance of class_ |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
574 @return: the widget |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
575 """ |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
576 kwargs['profile'] = C.PROF_KEY_NONE |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
577 |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
578 if dropped: |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
579 kwargs['on_new_widget'] = None |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
580 kwargs['on_existing_widget'] = C.WIDGET_RECREATE |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
581 wid = self.widgets.getOrCreateWidget(class_, target, *args, **kwargs) |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
582 self.setSelected(wid) |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
583 return wid |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
584 |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
585 if new_tab: |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
586 kwargs['on_new_widget'] = None |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
587 kwargs['on_existing_widget'] = C.WIDGET_RECREATE |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
588 wid = self.widgets.getOrCreateWidget(class_, target, *args, **kwargs) |
620
ac5881d683d3
browser_side: move SatWebFrontend.addTab to MainTabPanel.addWidgetsTab and rename MainTabPanel.add to MainTabPanel.addTab
souliane <souliane@mailoo.org>
parents:
616
diff
changeset
|
589 self.tab_panel.addWidgetsTab(new_tab) |
659
8e7d4de56e75
browser_side: allow to drop a widget in the "+" tab
souliane <souliane@mailoo.org>
parents:
658
diff
changeset
|
590 self.addWidget(wid, tab_index=self.tab_panel.getWidgetCount() - 1) |
616
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
591 return wid |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
592 |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
593 kwargs['on_existing_widget'] = C.WIDGET_RAISE |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
594 try: |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
595 wid = self.widgets.getOrCreateWidget(class_, target, *args, **kwargs) |
631
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
596 except quick_widgets.WidgetAlreadyExistsError: |
616
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
597 kwargs['on_existing_widget'] = C.WIDGET_KEEP |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
598 wid = self.widgets.getOrCreateWidget(class_, target, *args, **kwargs) |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
599 widgets_panel = wid.getParent(libervia_widget.WidgetsPanel, expect=False) |
636
86ae737da6f3
browser side (widgets management): removed getWidgetsPanel: we use directly getParent which do the same thing + displayWidget now detect hidden widgets (widgets without parent WidgetsPanel)
Goffi <goffi@goffi.org>
parents:
631
diff
changeset
|
600 if widgets_panel is None: |
86ae737da6f3
browser side (widgets management): removed getWidgetsPanel: we use directly getParent which do the same thing + displayWidget now detect hidden widgets (widgets without parent WidgetsPanel)
Goffi <goffi@goffi.org>
parents:
631
diff
changeset
|
601 # The widget exists but is hidden |
86ae737da6f3
browser side (widgets management): removed getWidgetsPanel: we use directly getParent which do the same thing + displayWidget now detect hidden widgets (widgets without parent WidgetsPanel)
Goffi <goffi@goffi.org>
parents:
631
diff
changeset
|
602 self.addWidget(wid) |
86ae737da6f3
browser side (widgets management): removed getWidgetsPanel: we use directly getParent which do the same thing + displayWidget now detect hidden widgets (widgets without parent WidgetsPanel)
Goffi <goffi@goffi.org>
parents:
631
diff
changeset
|
603 elif widgets_panel != self.tab_panel.getCurrentPanel(): |
86ae737da6f3
browser side (widgets management): removed getWidgetsPanel: we use directly getParent which do the same thing + displayWidget now detect hidden widgets (widgets without parent WidgetsPanel)
Goffi <goffi@goffi.org>
parents:
631
diff
changeset
|
604 # the widget is on an other tab, so we add a new one here |
616
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
605 kwargs['on_existing_widget'] = C.WIDGET_RECREATE |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
606 wid = self.widgets.getOrCreateWidget(class_, target, *args, **kwargs) |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
607 self.addWidget(wid) |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
608 self.setSelected(wid) |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
609 return wid |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
610 |
834
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
611 def isHidden(self): |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
612 """Tells if the frontend window is hidden. |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
613 |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
614 @return bool |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
615 """ |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
616 return self.notification.isHidden() |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
617 |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
618 def updateAlertsCounter(self, extra_inc=0): |
714
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
619 """Update the over whole alerts counter |
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
620 |
834
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
621 @param extra_inc (int): extra counter |
714
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
622 """ |
834
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
623 extra = self.alerts_counter.extra + extra_inc |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
624 self.alerts_counter.update(self.alerts_count, extra=extra) |
714
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
625 |
326
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
626 def _paramUpdate(self, name, value, category, refresh=True): |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
627 """This is called when the paramUpdate signal is received, but also |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
628 during initialization when the UI parameters values are retrieved. |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
629 @param refresh: set to True to refresh the general UI |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
630 """ |
478
992b900ab876
browser side: rename and refactor constant UI_PARAMS to CACHED_PARAMS, from a dict of dict to a list of 2-tuple
souliane <souliane@mailoo.org>
parents:
477
diff
changeset
|
631 for param_cat, param_name in C.CACHED_PARAMS: |
992b900ab876
browser side: rename and refactor constant UI_PARAMS to CACHED_PARAMS, from a dict of dict to a list of 2-tuple
souliane <souliane@mailoo.org>
parents:
477
diff
changeset
|
632 if name == param_name and category == param_cat: |
992b900ab876
browser side: rename and refactor constant UI_PARAMS to CACHED_PARAMS, from a dict of dict to a list of 2-tuple
souliane <souliane@mailoo.org>
parents:
477
diff
changeset
|
633 self.cached_params[(category, name)] = value |
326
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
634 if refresh: |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
635 self.refresh() |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
636 break |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
637 |
478
992b900ab876
browser side: rename and refactor constant UI_PARAMS to CACHED_PARAMS, from a dict of dict to a list of 2-tuple
souliane <souliane@mailoo.org>
parents:
477
diff
changeset
|
638 def getCachedParam(self, category, name): |
992b900ab876
browser side: rename and refactor constant UI_PARAMS to CACHED_PARAMS, from a dict of dict to a list of 2-tuple
souliane <souliane@mailoo.org>
parents:
477
diff
changeset
|
639 """Return a parameter cached value (e.g for refreshing the UI) |
462
07433bd892ee
server and browser sides: fixes UI parameters initialisation with user values + small refactoring
souliane <souliane@mailoo.org>
parents:
460
diff
changeset
|
640 |
662
ebb602d8b3f2
browser_side: replace all instances of 'str' with 'unicode'
souliane <souliane@mailoo.org>
parents:
659
diff
changeset
|
641 @param category (unicode): the parameter category |
ebb602d8b3f2
browser_side: replace all instances of 'str' with 'unicode'
souliane <souliane@mailoo.org>
parents:
659
diff
changeset
|
642 @pram name (unicode): the parameter name |
462
07433bd892ee
server and browser sides: fixes UI parameters initialisation with user values + small refactoring
souliane <souliane@mailoo.org>
parents:
460
diff
changeset
|
643 """ |
478
992b900ab876
browser side: rename and refactor constant UI_PARAMS to CACHED_PARAMS, from a dict of dict to a list of 2-tuple
souliane <souliane@mailoo.org>
parents:
477
diff
changeset
|
644 return self.cached_params[(category, name)] if (category, name) in self.cached_params else None |
462
07433bd892ee
server and browser sides: fixes UI parameters initialisation with user values + small refactoring
souliane <souliane@mailoo.org>
parents:
460
diff
changeset
|
645 |
298
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
646 def sendError(self, errorData): |
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
647 dialog.InfoDialog("Error while sending message", |
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
648 "Your message can't be sent", Width="400px").center() |
662
ebb602d8b3f2
browser_side: replace all instances of 'str' with 'unicode'
souliane <souliane@mailoo.org>
parents:
659
diff
changeset
|
649 log.error("sendError: %s" % unicode(errorData)) |
298
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
650 |
361
f4efffb9627c
browser_side: the popup notifying the message's recipient is no more dependent to the unibox.
souliane <souliane@mailoo.org>
parents:
349
diff
changeset
|
651 def showWarning(self, type_=None, msg=None): |
f4efffb9627c
browser_side: the popup notifying the message's recipient is no more dependent to the unibox.
souliane <souliane@mailoo.org>
parents:
349
diff
changeset
|
652 """Display a popup information message, e.g. to notify the recipient of a message being composed. |
f4efffb9627c
browser_side: the popup notifying the message's recipient is no more dependent to the unibox.
souliane <souliane@mailoo.org>
parents:
349
diff
changeset
|
653 If type_ is None, a popup being currently displayed will be hidden. |
f4efffb9627c
browser_side: the popup notifying the message's recipient is no more dependent to the unibox.
souliane <souliane@mailoo.org>
parents:
349
diff
changeset
|
654 @type_: a type determining the CSS style to be applied (see WarningPopup.showWarning) |
f4efffb9627c
browser_side: the popup notifying the message's recipient is no more dependent to the unibox.
souliane <souliane@mailoo.org>
parents:
349
diff
changeset
|
655 @msg: message to be displayed |
f4efffb9627c
browser_side: the popup notifying the message's recipient is no more dependent to the unibox.
souliane <souliane@mailoo.org>
parents:
349
diff
changeset
|
656 """ |
f4efffb9627c
browser_side: the popup notifying the message's recipient is no more dependent to the unibox.
souliane <souliane@mailoo.org>
parents:
349
diff
changeset
|
657 if not hasattr(self, "warning_popup"): |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
658 self.warning_popup = main_panel.WarningPopup() |
361
f4efffb9627c
browser_side: the popup notifying the message's recipient is no more dependent to the unibox.
souliane <souliane@mailoo.org>
parents:
349
diff
changeset
|
659 self.warning_popup.showWarning(type_, msg) |
f4efffb9627c
browser_side: the popup notifying the message's recipient is no more dependent to the unibox.
souliane <souliane@mailoo.org>
parents:
349
diff
changeset
|
660 |
628
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
661 def showDialog(self, message, title="", type_="info", answer_cb=None, answer_data=None): |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
662 if type_ == 'info': |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
663 popup = dialog.InfoDialog(unicode(title), unicode(message), callback=answer_cb) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
664 elif type_ == 'error': |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
665 popup = dialog.InfoDialog(unicode(title), unicode(message), callback=answer_cb) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
666 elif type_ == 'yes/no': |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
667 popup = dialog.ConfirmDialog(lambda answer: answer_cb(answer, answer_data), |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
668 text=unicode(message), title=unicode(title)) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
669 popup.cancel_button.setText(_("No")) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
670 else: |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
671 popup = dialog.InfoDialog(unicode(title), unicode(message), callback=answer_cb) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
672 log.error(_('unmanaged dialog type: %s'), type_) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
673 popup.show() |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
674 |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
675 def dialogFailure(self, failure): |
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
676 dialog.InfoDialog("Error", |
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
677 unicode(failure), Width="400px").center() |
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
678 |
686
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
679 def showFailure(self, err_data, msg=''): |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
680 """Show a failure that has been returned by an asynchronous bridge method. |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
681 |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
682 @param failure (defer.Failure): Failure instance |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
683 @param msg (unicode): message to display |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
684 """ |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
685 # FIXME: message is lost by JSON, we hardcode it for now... remove msg argument when possible |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
686 err_code, err_obj = err_data |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
687 title = err_obj['message']['faultString'] if isinstance(err_obj['message'], dict) else err_obj['message'] |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
688 self.showDialog(msg, title, 'error') |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
689 |
839
09ace5cbcb9b
browser (games, menu): rename showFailureRoomInvalid to onJoinMUCFailure and display a nice message when the room has already been joined (it is not a real error)
souliane <souliane@mailoo.org>
parents:
835
diff
changeset
|
690 def onJoinMUCFailure(self, err_data): |
09ace5cbcb9b
browser (games, menu): rename showFailureRoomInvalid to onJoinMUCFailure and display a nice message when the room has already been joined (it is not a real error)
souliane <souliane@mailoo.org>
parents:
835
diff
changeset
|
691 """Show a failure that has been returned when trying to join a room. |
686
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
692 |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
693 @param failure (defer.Failure): Failure instance |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
694 """ |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
695 # FIXME: remove asap, see self.showFailure |
839
09ace5cbcb9b
browser (games, menu): rename showFailureRoomInvalid to onJoinMUCFailure and display a nice message when the room has already been joined (it is not a real error)
souliane <souliane@mailoo.org>
parents:
835
diff
changeset
|
696 err_code, err_obj = err_data |
09ace5cbcb9b
browser (games, menu): rename showFailureRoomInvalid to onJoinMUCFailure and display a nice message when the room has already been joined (it is not a real error)
souliane <souliane@mailoo.org>
parents:
835
diff
changeset
|
697 if err_obj["data"] == "AlreadyJoinedRoom": |
09ace5cbcb9b
browser (games, menu): rename showFailureRoomInvalid to onJoinMUCFailure and display a nice message when the room has already been joined (it is not a real error)
souliane <souliane@mailoo.org>
parents:
835
diff
changeset
|
698 msg = _(u"The room has already been joined.") |
09ace5cbcb9b
browser (games, menu): rename showFailureRoomInvalid to onJoinMUCFailure and display a nice message when the room has already been joined (it is not a real error)
souliane <souliane@mailoo.org>
parents:
835
diff
changeset
|
699 err_obj["message"] = _(u"Information") |
09ace5cbcb9b
browser (games, menu): rename showFailureRoomInvalid to onJoinMUCFailure and display a nice message when the room has already been joined (it is not a real error)
souliane <souliane@mailoo.org>
parents:
835
diff
changeset
|
700 else: |
09ace5cbcb9b
browser (games, menu): rename showFailureRoomInvalid to onJoinMUCFailure and display a nice message when the room has already been joined (it is not a real error)
souliane <souliane@mailoo.org>
parents:
835
diff
changeset
|
701 msg = _(u"Invalid room identifier. Please give a room short or full identifier like 'room' or '%s'.") % self.default_muc |
09ace5cbcb9b
browser (games, menu): rename showFailureRoomInvalid to onJoinMUCFailure and display a nice message when the room has already been joined (it is not a real error)
souliane <souliane@mailoo.org>
parents:
835
diff
changeset
|
702 err_obj["message"] = _(u"Error") |
686
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
703 self.showFailure(err_data, msg) |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
704 |
269
9eb9c7d41bdc
browser_side: added generic method "send" in SatWebFrontend
souliane <souliane@mailoo.org>
parents:
267
diff
changeset
|
705 |
0 | 706 if __name__ == '__main__': |
707 app = SatWebFrontend() | |
708 app.onModuleLoad() | |
675
941e53b3af5c
browser side: host listeners are called when host is instantiated
Goffi <goffi@goffi.org>
parents:
670
diff
changeset
|
709 host_listener.callListeners(app) |