Mercurial > libervia-web
annotate browser/libervia_main.py @ 1163:cd6dd7f66551
we are in dev version again
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 02 Mar 2019 18:44:20 +0100 |
parents | 3048bd137aaf |
children |
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 |
1144 | 5 # Copyright (C) 2011-2019 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 |
1156
3048bd137aaf
server, browser: changed blog items serialisation following changes in backend
Goffi <goffi@goffi.org>
parents:
1144
diff
changeset
|
28 from sat_browser import json |
3048bd137aaf
server, browser: changed blog items serialisation following changes in backend
Goffi <goffi@goffi.org>
parents:
1144
diff
changeset
|
29 # XXX: workaround for incomplete json.dumps in pyjamas |
3048bd137aaf
server, browser: changed blog items serialisation following changes in backend
Goffi <goffi@goffi.org>
parents:
1144
diff
changeset
|
30 import json as json_pyjs |
3048bd137aaf
server, browser: changed blog items serialisation following changes in backend
Goffi <goffi@goffi.org>
parents:
1144
diff
changeset
|
31 dumps_old = json_pyjs.dumps |
3048bd137aaf
server, browser: changed blog items serialisation following changes in backend
Goffi <goffi@goffi.org>
parents:
1144
diff
changeset
|
32 json_pyjs.dumps = lambda obj, *args, **kwargs: dumps_old(obj) |
3048bd137aaf
server, browser: changed blog items serialisation following changes in backend
Goffi <goffi@goffi.org>
parents:
1144
diff
changeset
|
33 |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
34 from sat.core.i18n import D_ |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
35 |
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.quick_frontend.quick_app import QuickApp |
631
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
37 from sat_frontends.quick_frontend import quick_widgets |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
38 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
|
39 |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
40 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
|
41 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
|
42 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
|
43 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
|
44 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
|
45 |
0 | 46 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
|
47 # 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
|
48 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
|
49 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
|
50 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
|
51 |
467 | 52 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
|
53 from sat_browser.contact_list import ContactList |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
54 from sat_browser import main_panel |
944 | 55 # 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
|
56 from sat_browser import blog |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
57 from sat_browser import xmlui |
467 | 58 from sat_browser import dialog |
59 from sat_browser import html_tools | |
60 from sat_browser import notification | |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
61 from sat_browser import libervia_widget |
764 | 62 from sat_browser import web_widget |
63 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
|
64 |
467 | 65 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
|
66 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
67 |
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
|
68 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
|
69 # 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
|
70 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
|
71 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
|
72 pass |
230
266e9678eec0
browser_side: added the flag REUSE_EXISTING_LIBERVIA_WIDGETS
souliane <souliane@mailoo.org>
parents:
229
diff
changeset
|
73 |
624
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
74 |
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
75 unicode = str # FIXME: pyjamas workaround |
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
76 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
77 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
78 # 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
|
79 |
58
4fa3d57f72f8
browser side: microblog entries caching
Goffi <goffi@goffi.org>
parents:
57
diff
changeset
|
80 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
81 class SatWebFrontend(InputHistory, QuickApp): |
1123
63a4b8fe9782
browser: fixes to handle encryption changes in backend
Goffi <goffi@goffi.org>
parents:
1054
diff
changeset
|
82 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
|
83 # not backend |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
84 |
0 | 85 def onModuleLoad(self): |
439
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
86 log.info("============ onModuleLoad ==============") |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
87 self.bridge_signals = json.BridgeSignals(self) |
914
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
88 QuickApp.__init__(self, json.BridgeCall, xmlui=xmlui, connect_bridge=False) |
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
89 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
|
90 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
|
91 self.signals_cache[C.PROF_KEY_NONE] = [] |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
92 self.panel = main_panel.MainPanel(self) |
84 | 93 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
|
94 self.tab_panel.addTabListener(self) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
95 self._register_box = None |
0 | 96 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
|
97 |
714
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
98 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
|
99 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
|
100 DOM.addEventPreview(self) |
521
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
101 self.importPlugins() |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
102 self._register = json.RegisterCall() |
914
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
103 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
|
104 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
|
105 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
|
106 self.initialised = False |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
107 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
|
108 self.cached_params = {} |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
109 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
|
110 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
111 #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
|
112 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
|
113 |
683
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
114 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
|
115 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
116 @property |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
117 def whoami(self): |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
118 # 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
|
119 # 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
|
120 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
|
121 |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
122 @property |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
123 def contact_list(self): |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
124 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
|
125 |
613
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
126 @property |
631
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
127 def visible_widgets(self): |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
128 widgets_panel = self.tab_panel.getCurrentPanel() |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
129 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
|
130 |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
131 @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
|
132 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
|
133 """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
|
134 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
|
135 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
|
136 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
|
137 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
|
138 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
|
139 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
|
140 |
683
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
141 @property |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
142 def sat_version(self): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
143 return self._versions["sat"] |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
144 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
145 @property |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
146 def libervia_version(self): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
147 return self._versions["libervia"] |
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 getVersions(self, callback=None): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
150 """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
|
151 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
152 @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
|
153 """ |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
154 def gotVersion(): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
155 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
|
156 callback() |
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 if len(self._versions) == 2: |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
159 # 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
|
160 gotVersion() |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
161 return |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
162 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
163 def gotSat(version): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
164 self._versions["sat"] = version |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
165 gotVersion() |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
166 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
167 def gotLibervia(version): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
168 self._versions["libervia"] = version |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
169 gotVersion() |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
170 |
843
83a40d786e7a
browser: use new style calls for getSignals
Goffi <goffi@goffi.org>
parents:
839
diff
changeset
|
171 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
|
172 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
|
173 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
174 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
|
175 if handler is None: |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
176 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
|
177 else: |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
178 callback = handler |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
179 |
914
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
180 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
|
181 |
521
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
182 def importPlugins(self): |
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
183 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
|
184 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
|
185 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
|
186 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
|
187 pass |
521
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
188 |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
189 def getSelected(self): |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
190 wid = self.tab_panel.getCurrentPanel() |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
191 if not isinstance(wid, libervia_widget.WidgetsPanel): |
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
192 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
|
193 return None |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
194 return wid.selected |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
195 |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
196 def setSelected(self, widget): |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
197 """Define the selected widget""" |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
198 widgets_panel = self.tab_panel.getCurrentPanel() |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
199 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
|
200 return |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
201 |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
202 selected = widgets_panel.selected |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
203 |
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
|
204 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
|
205 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
|
206 |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
207 if selected: |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
208 selected.removeStyleName('selected_widget') |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
209 |
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
|
210 # 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
|
211 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
|
212 self.selected_widget = widget |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
213 |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
214 if widget: |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
215 widgets_panel.selected.addStyleName('selected_widget') |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
216 |
33 | 217 def resize(self): |
218 """Resize elements""" | |
219 Window.onResize() | |
220 | |
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
|
221 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
|
222 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
|
223 |
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
|
224 def onTabSelected(self, sender, tab_index): |
944 | 225 pass |
226 # def onTabSelected(self, sender, tab_index): | |
227 # for widget in self.tab_panel.getCurrentPanel().widgets: | |
228 # if isinstance(widget, chat.Chat): | |
229 # clist = self.contact_list | |
230 # 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
|
231 |
43
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
232 def onEventPreview(self, event): |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
233 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
|
234 #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
|
235 event.preventDefault() |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
236 return True |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
237 |
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 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
|
239 """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
|
240 |
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
|
241 @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
|
242 @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
|
243 """ |
914
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
244 return self.getAvatar(jid_) or self.getDefaultAvatar() |
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
245 |
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
246 def getDefaultAvatar(self): |
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
247 return C.DEFAULT_AVATAR_URL |
119 | 248 |
84 | 249 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
|
250 log.debug(u"Registering %s" % wid.getDebugName()) |
84 | 251 self.libervia_widgets.add(wid) |
252 | |
253 def unregisterWidget(self, wid): | |
254 try: | |
255 self.libervia_widgets.remove(wid) | |
256 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
|
257 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
|
258 |
326
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
259 def refresh(self): |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
260 """Refresh the general display.""" |
780
b3f04e58ec15
browser_side: fixed contact list refresh on param change
souliane <souliane@mailoo.org>
parents:
778
diff
changeset
|
261 self.contact_list.refresh() |
326
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
262 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
|
263 lib_wid.refresh() |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
264 self.resize() |
33 | 265 |
267
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
266 def addWidget(self, wid, tab_index=None): |
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
267 """ 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
|
268 |
267
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
269 @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
|
270 @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
|
271 """ |
267
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
272 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
|
273 panel = self.tab_panel.getCurrentPanel() |
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
274 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
|
275 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
|
276 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
|
277 |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
278 def gotMenus(self, backend_menus): |
494
5d8632a7bfde
browser_side: refactorisation of menus and LiberviaWidget's header
souliane <souliane@mailoo.org>
parents:
483
diff
changeset
|
279 """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
|
280 |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
281 @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
|
282 """ |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
283 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
|
284 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
285 # Categories (with icons) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
286 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
|
287 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
|
288 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
|
289 #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
|
290 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
291 # menus to have before backend menus |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
292 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
|
293 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
294 # 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
|
295 self.menus.addMenus(backend_menus, top_extra={'icon': 'plugins'}) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
296 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
297 # 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
|
298 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
|
299 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
300 # separator and right hand menus |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
301 self.menus.addMenuItem(C.MENU_GLOBAL, [], quick_menus.MenuSeparator()) |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
302 |
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
|
303 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
|
304 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
|
305 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
|
306 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
|
307 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
|
308 # 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
|
309 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
|
310 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
311 # we call listener to have menu added by local classes/plugins |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
312 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
|
313 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
314 # and finally the menus which must appear at the bottom |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
315 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
|
316 |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
317 # we can now display all the menus |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
318 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
|
319 |
788
7ebde6d1a4bd
browser side: fixed public blog menu (moved temporarily to frontend side)
Goffi <goffi@goffi.org>
parents:
784
diff
changeset
|
320 # 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
|
321 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
|
322 |
944 | 323 def removeListener(self, type_, callback): |
324 """Remove a callback from listeners | |
325 | |
326 @param type_: same as for [addListener] | |
327 @param callback: callback to remove | |
328 """ | |
329 # FIXME: workaround for pyjamas | |
330 # check KeyError issue | |
331 assert type_ in C.LISTENERS | |
332 try: | |
333 self._listeners[type_].pop(callback) | |
334 except KeyError: | |
335 pass | |
336 | |
869
fa7703642c0e
server, browser: replaced isRegistered call by a more generic getSessionMetadata which return a dictionary
Goffi <goffi@goffi.org>
parents:
852
diff
changeset
|
337 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
|
338 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
|
339 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
|
340 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
|
341 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
|
342 self._register_box.centerBox() |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
343 self._register_box.show() |
415
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
344 if warning: |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
345 dialog.InfoDialog(_('Security warning'), warning).show() |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
346 self._tryAutoConnect(skip_validation=not not warning) |
0 | 347 else: |
1 | 348 self._register.call('isConnected', self._isConnectedCB) |
0 | 349 |
1 | 350 def _isConnectedCB(self, connected): |
0 | 351 if not connected: |
914
0c0551967bdf
server, browser: partial Libervia fix
Goffi <goffi@goffi.org>
parents:
913
diff
changeset
|
352 self._register.call('connect', lambda x: self.logged()) |
0 | 353 else: |
354 self.logged() | |
355 | |
356 def logged(self): | |
852
6f0a127077c4
browser: set the background transparent when the register panel is displayed
souliane <souliane@mailoo.org>
parents:
843
diff
changeset
|
357 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
|
358 if self._register_box: |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
359 self._register_box.hide() |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
360 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
|
361 |
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
|
362 # 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
|
363 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
|
364 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
|
365 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
|
366 |
843
83a40d786e7a
browser: use new style calls for getSignals
Goffi <goffi@goffi.org>
parents:
839
diff
changeset
|
367 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
|
368 |
242
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
369 def domain_cb(value): |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
370 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
|
371 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
|
372 |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
373 def domain_eb(value): |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
374 self._defaultDomain = "libervia.org" |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
375 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
376 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
|
377 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
|
378 |
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
|
379 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
|
380 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
|
381 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
|
382 contact_list = self.widgets.getOrCreateWidget(ContactList, None, on_new_widget=None, profile=C.PROF_KEY_NONE) |
944 | 383 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
|
384 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
|
385 |
e8b133b77aa4
browser, server: update to get compatibility with 0.7-dev (not finished):
Goffi <goffi@goffi.org>
parents:
871
diff
changeset
|
386 # 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
|
387 self.resize() |
e8b133b77aa4
browser, server: update to get compatibility with 0.7-dev (not finished):
Goffi <goffi@goffi.org>
parents:
871
diff
changeset
|
388 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
389 # 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
|
390 # 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
|
391 # and do all at once now |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
392 contact_list.update() |
667
166f3b624816
browser_side (blog): clean the MicroblogPanel:
souliane <souliane@mailoo.org>
parents:
665
diff
changeset
|
393 |
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
|
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.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
|
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.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
|
398 |
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
|
399 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
|
400 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
|
401 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
|
402 self.groupblog_available = False |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
403 |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
404 blog_widget = self.displayWidget(blog.Blog, ()) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
405 self.setSelected(blog_widget) |
667
166f3b624816
browser_side (blog): clean the MicroblogPanel:
souliane <souliane@mailoo.org>
parents:
665
diff
changeset
|
406 |
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
|
407 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
|
408 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
|
409 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
|
410 |
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
|
411 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
|
412 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
|
413 |
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
|
414 # 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
|
415 # 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
|
416 # if wid.accept_all(): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
417 # 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
|
418 # else: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
419 # 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
|
420 |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
421 #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
|
422 # 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
|
423 |
692
7a9c7b9f6a28
browser_side: use host.default_muc instead of C.DEFAULT_MUC
souliane <souliane@mailoo.org>
parents:
687
diff
changeset
|
424 def gotDefaultMUC(default_muc): |
7a9c7b9f6a28
browser_side: use host.default_muc instead of C.DEFAULT_MUC
souliane <souliane@mailoo.org>
parents:
687
diff
changeset
|
425 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
|
426 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
|
427 |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
428 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
|
429 log.debug(u"newWidget: {}".format(wid)) |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
430 self.addWidget(wid) |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
431 |
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
|
432 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
|
433 if type_ == C.MESS_TYPE_HEADLINE: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
434 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
|
435 if from_jid.domain == self._defaultDomain: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
436 # 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
|
437 try: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
438 title = extra['subject'] |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
439 except KeyError: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
440 title = _('Announcement from %s') % from_jid |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
441 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
|
442 dialog.InfoDialog(title, msg).show() |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
443 return |
646
9972a24592b0
browser side: fixed typo in newMessageHandler
Goffi <goffi@goffi.org>
parents:
645
diff
changeset
|
444 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
|
445 |
643
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
446 def disconnectedHandler(self, profile): |
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
447 QuickApp.disconnectedHandler(self, profile) |
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
448 Window.getLocation().reload() |
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
449 |
699
be55a782a976
browser_side: change frontend method "setStatusOnline" for "setPresenceStatus"
souliane <souliane@mailoo.org>
parents:
697
diff
changeset
|
450 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
|
451 self.presence_status_panel.setPresence(show) |
699
be55a782a976
browser_side: change frontend method "setStatusOnline" for "setPresenceStatus"
souliane <souliane@mailoo.org>
parents:
697
diff
changeset
|
452 if status is not None: |
be55a782a976
browser_side: change frontend method "setStatusOnline" for "setPresenceStatus"
souliane <souliane@mailoo.org>
parents:
697
diff
changeset
|
453 self.presence_status_panel.setStatus(status) |
242
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
454 |
415
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
455 def _tryAutoConnect(self, skip_validation=False): |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
456 """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
|
457 @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
|
458 """ |
503
88ece2a00c63
browser_side: display new lines and clickable URLs for headline message
souliane <souliane@mailoo.org>
parents:
500
diff
changeset
|
459 params = strings.getURLParams(Window.getLocation().getSearch()) |
250
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
460 if "login" in params: |
730
108bb9d74fa2
browser_side: fixes auto-login (broken by previous changeset)
souliane <souliane@mailoo.org>
parents:
718
diff
changeset
|
461 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
|
462 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
|
463 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
|
464 if "passwd" in params: |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
465 # try to connect |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
466 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
|
467 if not skip_validation: |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
468 self._register_box._form.onLogin(None) |
250
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
469 return True |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
470 else: |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
471 # 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
|
472 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
|
473 |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
474 def _actionManagerUnknownError(self): |
299
e4f586fc6101
server and browser side: updated callback system to follow core changes
Goffi <goffi@goffi.org>
parents:
298
diff
changeset
|
475 dialog.InfoDialog("Error", |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
476 "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
|
477 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
478 # 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
|
479 # """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
|
480 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
481 # @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
|
482 # @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
|
483 # """ |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
484 # cache = [] |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
485 # for publisher in mblogs: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
486 # for mblog in mblogs[publisher][0]: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
487 # if 'content' not in mblog: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
488 # 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
|
489 # continue |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
490 # if 'groups' in mblog: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
491 # _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
|
492 # else: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
493 # _groups = None |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
494 # mblog_entry = blog.MicroblogItem(mblog) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
495 # cache.append((_groups, mblog_entry)) |
215
e830a0c60d32
server side: added the security_limit to setParam
souliane <souliane@mailoo.org>
parents:
213
diff
changeset
|
496 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
497 # self.mblog_cache.extend(cache) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
498 # 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
|
499 # 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
|
500 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
501 # widget_list = [mblog_panel] if mblog_panel else self.widgets.getWidgets(blog.MicroblogPanel) |
679 | 502 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
503 # for wid in widget_list: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
504 # 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
|
505 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
506 # # FIXME |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
507 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
508 # if self.initialised: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
509 # return |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
510 # 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
|
511 # 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
|
512 # self.personalEventHandler(*event_data) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
513 # del self.init_cache |
139 | 514 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
515 # 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
|
516 # """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
|
517 # 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
|
518 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
519 # @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
|
520 # @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
|
521 # """ |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
522 # delta = index - self.next_rsm_index |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
523 # if delta < 0: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
524 # assert mblog_panel is not None |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
525 # 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
|
526 # return |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
527 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
528 # def cb(result): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
529 # self._ownBlogsFills(result, mblog_panel) |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
530 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
531 # 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
|
532 # 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
|
533 # 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
|
534 |
4
7325e787c22b
personalEvent management signal first draft, microblogs are now put in a central grid
Goffi <goffi@goffi.org>
parents:
2
diff
changeset
|
535 ## Signals callbacks ## |
7325e787c22b
personalEvent management signal first draft, microblogs are now put in a central grid
Goffi <goffi@goffi.org>
parents:
2
diff
changeset
|
536 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
537 # 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
|
538 # elif event_type == 'MICROBLOG_DELETE': |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
539 # 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
|
540 # wid.removeEntry(data['type'], data['id']) |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
541 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
542 # 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
|
543 # 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
|
544 # entry = self.mblog_cache[index] |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
545 # if entry[1].id == data['id']: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
546 # self.mblog_cache.remove(entry) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
547 # break |
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 # def fillMicroblogPanel(self, mblog_panel, mblogs): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
550 # """Fill a microblog panel with entries in cache |
58
4fa3d57f72f8
browser side: microblog entries caching
Goffi <goffi@goffi.org>
parents:
57
diff
changeset
|
551 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
552 # @param mblog_panel: MicroblogPanel instance |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
553 # """ |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
554 # #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
|
555 # for cache_entry in mblogs: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
556 # _groups, mblog_entry = cache_entry |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
557 # 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
|
558 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
559 # def getEntityMBlog(self, entity): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
560 # # 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
|
561 # 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
|
562 # 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
|
563 # if isinstance(lib_wid, blog.MicroblogPanel): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
564 # if lib_wid.isJidAccepted(entity): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
565 # 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
|
566 |
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
|
567 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
|
568 """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
|
569 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
|
570 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
|
571 |
631
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
572 @arg class_(class): see quick_widgets.getOrCreateWidget |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
573 @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
|
574 @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
|
575 @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
|
576 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
|
577 @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
|
578 @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
|
579 @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
|
580 """ |
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 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
|
582 |
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 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
|
584 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
|
585 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
|
586 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
|
587 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
|
588 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
|
589 |
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
|
590 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
|
591 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
|
592 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
|
593 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
|
594 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
|
595 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
|
596 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
|
597 |
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 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
|
599 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
|
600 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
|
601 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
|
602 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
|
603 wid = self.widgets.getOrCreateWidget(class_, target, *args, **kwargs) |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
604 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
|
605 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
|
606 # 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
|
607 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
|
608 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
|
609 # 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
|
610 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
|
611 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
|
612 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
|
613 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
|
614 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
|
615 |
834
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
616 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
|
617 """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
|
618 |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
619 @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
|
620 """ |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
621 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
|
622 |
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
623 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
|
624 """Update the over whole alerts counter |
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
625 |
834
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
626 @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
|
627 """ |
834
2491898b3041
browser (chat, notification): remove the textual alerts counter, merge it with the favicon counter
souliane <souliane@mailoo.org>
parents:
818
diff
changeset
|
628 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
|
629 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
|
630 |
326
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
631 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
|
632 """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
|
633 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
|
634 @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
|
635 """ |
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
|
636 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
|
637 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
|
638 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
|
639 if refresh: |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
640 self.refresh() |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
641 break |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
642 |
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
|
643 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
|
644 """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
|
645 |
662
ebb602d8b3f2
browser_side: replace all instances of 'str' with 'unicode'
souliane <souliane@mailoo.org>
parents:
659
diff
changeset
|
646 @param category (unicode): the parameter category |
ebb602d8b3f2
browser_side: replace all instances of 'str' with 'unicode'
souliane <souliane@mailoo.org>
parents:
659
diff
changeset
|
647 @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
|
648 """ |
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
|
649 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
|
650 |
298
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
651 def sendError(self, errorData): |
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
652 dialog.InfoDialog("Error while sending message", |
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
653 "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
|
654 log.error("sendError: %s" % unicode(errorData)) |
298
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
655 |
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
|
656 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
|
657 """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
|
658 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
|
659 @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
|
660 @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
|
661 """ |
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
|
662 if not hasattr(self, "warning_popup"): |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
663 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
|
664 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
|
665 |
628
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
666 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
|
667 if type_ == 'info': |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
668 popup = dialog.InfoDialog(unicode(title), unicode(message), callback=answer_cb) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
669 elif type_ == 'error': |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
670 popup = dialog.InfoDialog(unicode(title), unicode(message), callback=answer_cb) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
671 elif type_ == 'yes/no': |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
672 popup = dialog.ConfirmDialog(lambda answer: answer_cb(answer, answer_data), |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
673 text=unicode(message), title=unicode(title)) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
674 popup.cancel_button.setText(_("No")) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
675 else: |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
676 popup = dialog.InfoDialog(unicode(title), unicode(message), callback=answer_cb) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
677 log.error(_('unmanaged dialog type: %s'), type_) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
678 popup.show() |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
679 |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
680 def dialogFailure(self, failure): |
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
681 dialog.InfoDialog("Error", |
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
682 unicode(failure), Width="400px").center() |
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
683 |
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
|
684 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
|
685 """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
|
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
|
687 @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
|
688 @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
|
689 """ |
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
|
690 # 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
|
691 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
|
692 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
|
693 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
|
694 |
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
|
695 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
|
696 """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
|
697 |
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
|
698 @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
|
699 """ |
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
|
700 # 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
|
701 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
|
702 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
|
703 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
|
704 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
|
705 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
|
706 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
|
707 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
|
708 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
|
709 |
269
9eb9c7d41bdc
browser_side: added generic method "send" in SatWebFrontend
souliane <souliane@mailoo.org>
parents:
267
diff
changeset
|
710 |
0 | 711 if __name__ == '__main__': |
712 app = SatWebFrontend() | |
713 app.onModuleLoad() | |
675
941e53b3af5c
browser side: host listeners are called when host is instantiated
Goffi <goffi@goffi.org>
parents:
670
diff
changeset
|
714 host_listener.callListeners(app) |