Mercurial > libervia-web
annotate src/browser/libervia_main.py @ 798:3c5b17a3d86e
browser_side: run login callback before window alert so the background starts to be filled before the user clicks
author | souliane <souliane@mailoo.org> |
---|---|
date | Wed, 09 Dec 2015 02:33:49 +0100 |
parents | 7ebde6d1a4bd |
children | f8a7a046ff9c |
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 |
685 | 5 # Copyright (C) 2011, 2012, 2013, 2014, 2015 Jérôme Poisson <goffi@goffi.org> |
0 | 6 |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
10 # (at your option) any later version. |
0 | 11 |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
15 # GNU Affero General Public License for more details. |
0 | 16 |
339
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
2067d6241927
fixed docstrings wrong usage for licence informations
Goffi <goffi@goffi.org>
parents:
336
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
0 | 19 |
439
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
20 |
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
21 ### logging configuration ### |
467 | 22 from sat_browser import logging |
440
88461e9c3e47
browser_side (log): move logging configuration in a "logging" module + use custom backend with console.debug/info/etc output.
Goffi <goffi@goffi.org>
parents:
439
diff
changeset
|
23 logging.configure() |
88461e9c3e47
browser_side (log): move logging configuration in a "logging" module + use custom backend with console.debug/info/etc output.
Goffi <goffi@goffi.org>
parents:
439
diff
changeset
|
24 from sat.core.log import getLogger |
439
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
25 log = getLogger(__name__) |
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
26 ### |
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
27 |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
28 from sat.core.i18n import D_ |
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
29 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
30 from sat_frontends.quick_frontend.quick_app import QuickApp |
631
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
31 from sat_frontends.quick_frontend import quick_widgets |
676
849ffb24d5bf
browser side: menus refactorisation:
Goffi <goffi@goffi.org>
parents:
675
diff
changeset
|
32 from sat_frontends.quick_frontend import quick_menus |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
33 |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
34 from sat_frontends.tools.misc import InputHistory |
784
f3cd261ea12f
browser side: workaround for a pyjamas bug which freeze the browser in some case with addURLToText regex
Goffi <goffi@goffi.org>
parents:
783
diff
changeset
|
35 from sat_browser import strings |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
36 from sat_frontends.tools import jid |
675
941e53b3af5c
browser side: host listeners are called when host is instantiated
Goffi <goffi@goffi.org>
parents:
670
diff
changeset
|
37 from sat_frontends.tools import host_listener |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
38 from sat.core.i18n import _ |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
442
diff
changeset
|
39 |
0 | 40 from pyjamas.ui.RootPanel import RootPanel |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
41 # from pyjamas.ui.HTML import HTML |
43
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
42 from pyjamas.ui.KeyboardListener import KEY_ESCAPE |
108
fad0e51cf565
on failure, Libervia now wait 5 s before trying again to call the serveur + only room name is now shown in tabs
Goffi <goffi@goffi.org>
parents:
107
diff
changeset
|
43 from pyjamas.Timer import Timer |
43
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
44 from pyjamas import Window, DOM |
323
0b7934e75e76
misc: reorganization of the file panels.py + clean the modules import:
souliane <souliane@mailoo.org>
parents:
321
diff
changeset
|
45 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
46 from sat_browser import json |
467 | 47 from sat_browser import register |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
48 from sat_browser.contact_list import ContactList |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
49 from sat_browser import main_panel |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
50 from sat_browser import blog |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
51 from sat_browser import xmlui |
467 | 52 from sat_browser import dialog |
53 from sat_browser import html_tools | |
54 from sat_browser import notification | |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
55 from sat_browser import libervia_widget |
764 | 56 from sat_browser import web_widget |
57 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
|
58 |
467 | 59 from sat_browser.constants import Const as C |
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
|
60 import os.path |
317
bbadd490e63c
misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
316
diff
changeset
|
61 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
62 |
549
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
63 try: |
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
64 # FIXME: import plugin dynamically |
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
65 from sat_browser import plugin_sec_otr |
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
66 except ImportError: |
cd56f2b0e85b
browser_side: disable OTR if the browser is too old to offer crypto.getRandomValues (CSPRNG)
souliane <souliane@mailoo.org>
parents:
548
diff
changeset
|
67 pass |
230
266e9678eec0
browser_side: added the flag REUSE_EXISTING_LIBERVIA_WIDGETS
souliane <souliane@mailoo.org>
parents:
229
diff
changeset
|
68 |
624
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
69 |
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
70 unicode = str # FIXME: pyjamas workaround |
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
71 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
72 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
73 # MAX_MBLOG_CACHE = 500 # Max microblog entries kept in memories # FIXME |
230
266e9678eec0
browser_side: added the flag REUSE_EXISTING_LIBERVIA_WIDGETS
souliane <souliane@mailoo.org>
parents:
229
diff
changeset
|
74 |
58
4fa3d57f72f8
browser side: microblog entries caching
Goffi <goffi@goffi.org>
parents:
57
diff
changeset
|
75 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
76 class SatWebFrontend(InputHistory, QuickApp): |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
77 |
0 | 78 def onModuleLoad(self): |
439
d52f529a6d42
browser side: use of new log system (first draft):
Goffi <goffi@goffi.org>
parents:
433
diff
changeset
|
79 log.info("============ onModuleLoad ==============") |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
80 self.bridge_signals = json.BridgeSignals(self) |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
81 QuickApp.__init__(self, json.BridgeCall, xmlui=xmlui) |
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
|
82 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
|
83 self.signals_cache[C.PROF_KEY_NONE] = [] |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
84 self.panel = main_panel.MainPanel(self) |
84 | 85 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
|
86 self.tab_panel.addTabListener(self) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
87 self._register_box = None |
0 | 88 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
|
89 |
467 | 90 self.notification = notification.Notification() |
714
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
91 self.alerts_counter = notification.FaviconCounter() |
43
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
92 DOM.addEventPreview(self) |
521
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
93 self.importPlugins() |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
94 self._register = json.RegisterCall() |
494
5d8632a7bfde
browser_side: refactorisation of menus and LiberviaWidget's header
souliane <souliane@mailoo.org>
parents:
483
diff
changeset
|
95 self._register.call('getMenus', 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
|
96 self._register.call('registerParams', None) |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
97 self._register.call('isRegistered', self._isRegisteredCB) |
205
ee744ffed7fc
browser side: events data are cached until initialisation is finished (we get all microblogs)
Goffi <goffi@goffi.org>
parents:
204
diff
changeset
|
98 self.initialised = False |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
99 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
|
100 self.cached_params = {} |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
101 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
|
102 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
103 #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
|
104 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
|
105 |
683
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
106 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
|
107 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
108 @property |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
109 def whoami(self): |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
110 # 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
|
111 # 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
|
112 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
|
113 |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
114 @property |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
115 def contact_list(self): |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
116 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
|
117 |
613
deddd1cd8aa5
browser side: added a base_location property to get location of current Libervia instance
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
118 @property |
631
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
119 def visible_widgets(self): |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
120 widgets_panel = self.tab_panel.getCurrentPanel() |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
121 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
|
122 |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
123 @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
|
124 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
|
125 """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
|
126 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
|
127 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
|
128 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
|
129 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
|
130 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
|
131 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
|
132 |
683
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
133 @property |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
134 def sat_version(self): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
135 return self._versions["sat"] |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
136 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
137 @property |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
138 def libervia_version(self): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
139 return self._versions["libervia"] |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
140 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
141 def getVersions(self, callback=None): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
142 """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
|
143 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
144 @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
|
145 """ |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
146 def gotVersion(): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
147 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
|
148 callback() |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
149 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
150 if len(self._versions) == 2: |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
151 # 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
|
152 gotVersion() |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
153 return |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
154 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
155 def gotSat(version): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
156 self._versions["sat"] = version |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
157 gotVersion() |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
158 |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
159 def gotLibervia(version): |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
160 self._versions["libervia"] = version |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
161 gotVersion() |
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 self.bridge.getVersion(callback=gotSat) |
801eb94aa869
browser side: versions management + version is shown in about dialog
Goffi <goffi@goffi.org>
parents:
679
diff
changeset
|
164 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
|
165 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
166 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
|
167 if handler is None: |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
168 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
|
169 else: |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
170 callback = handler |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
171 |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
172 self.bridge_signals.register(functionName, callback, with_profile=with_profile) |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
173 |
521
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
174 def importPlugins(self): |
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
175 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
|
176 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
|
177 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
|
178 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
|
179 pass |
521
69bffcf37ce3
browser_side: add minimal requirements for generic plugins handling
souliane <souliane@mailoo.org>
parents:
520
diff
changeset
|
180 |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
181 def getSelected(self): |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
182 wid = self.tab_panel.getCurrentPanel() |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
183 if not isinstance(wid, libervia_widget.WidgetsPanel): |
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
184 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
|
185 return None |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
186 return wid.selected |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
187 |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
188 def setSelected(self, widget): |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
189 """Define the selected widget""" |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
190 widgets_panel = self.tab_panel.getCurrentPanel() |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
191 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
|
192 return |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
193 |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
194 selected = widgets_panel.selected |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
195 |
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
|
196 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
|
197 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
|
198 |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
199 if selected: |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
200 selected.removeStyleName('selected_widget') |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
201 |
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
|
202 # 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
|
203 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
|
204 self.selected_widget = widget |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
205 |
192
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
206 if widget: |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
207 widgets_panel.selected.addStyleName('selected_widget') |
cf5c83e7d515
browser side: per tab selected widget management
Goffi <goffi@goffi.org>
parents:
179
diff
changeset
|
208 |
33 | 209 def resize(self): |
210 """Resize elements""" | |
211 Window.onResize() | |
212 | |
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
|
213 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
|
214 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
|
215 |
f2ae8e170c49
browser side: selected widget caching in UniBox, to avoid to ask the getter at each key pressed, which make the box very slow.
Goffi <goffi@goffi.org>
parents:
192
diff
changeset
|
216 def onTabSelected(self, sender, tab_index): |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
217 pass |
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
|
218 |
43
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
219 def onEventPreview(self, event): |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
220 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
|
221 #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
|
222 event.preventDefault() |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
223 return True |
a7ff1e6f1229
browser_side: prevent default for escape key (cancel HTTPRequest in FF)
Goffi <goffi@goffi.org>
parents:
41
diff
changeset
|
224 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
225 # FIXME: must not call _entityDataUpdatedCb by itself |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
226 # should not get VCard, backend plugin must be fixed too |
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
|
227 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
|
228 """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
|
229 |
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
|
230 @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
|
231 @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
|
232 """ |
7af8f4ab3675
browser side: fixed avatar getting + better DEFAULT/EMPTY avatars constants + use of jid.JID for microblog's author
Goffi <goffi@goffi.org>
parents:
597
diff
changeset
|
233 assert isinstance(jid_, jid.JID) |
624
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
234 contact_list = self.contact_list # pyjamas issue: need a temporary variable to call a property's method |
9092e624bb27
browser_side: fixes various issues
souliane <souliane@mailoo.org>
parents:
623
diff
changeset
|
235 avatar_hash = contact_list.getCache(jid_, 'avatar') |
606
7af8f4ab3675
browser side: fixed avatar getting + better DEFAULT/EMPTY avatars constants + use of jid.JID for microblog's author
Goffi <goffi@goffi.org>
parents:
597
diff
changeset
|
236 if avatar_hash is None: |
701
9aa2e251a993
browser side: when there is no avatar in cache in getAvatarURL, set its value to empty string to avoid requesting again
Goffi <goffi@goffi.org>
parents:
700
diff
changeset
|
237 # we set to empty string to avoid requesting vcard several times |
9aa2e251a993
browser side: when there is no avatar in cache in getAvatarURL, set its value to empty string to avoid requesting again
Goffi <goffi@goffi.org>
parents:
700
diff
changeset
|
238 contact_list.setCache(jid_, 'avatar', '') |
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
|
239 # we have no value for avatar_hash, so we request the vcard |
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
|
240 self.bridge.getCard(unicode(jid_), profile=C.PROF_KEY_NONE) |
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 if not avatar_hash: |
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
|
242 return C.DEFAULT_AVATAR_URL |
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 ret = os.path.join(C.AVATARS_DIR, avatar_hash) |
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
|
244 return ret |
119 | 245 |
84 | 246 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
|
247 log.debug(u"Registering %s" % wid.getDebugName()) |
84 | 248 self.libervia_widgets.add(wid) |
249 | |
250 def unregisterWidget(self, wid): | |
251 try: | |
252 self.libervia_widgets.remove(wid) | |
253 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
|
254 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
|
255 |
326
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
256 def refresh(self): |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
257 """Refresh the general display.""" |
780
b3f04e58ec15
browser_side: fixed contact list refresh on param change
souliane <souliane@mailoo.org>
parents:
778
diff
changeset
|
258 self.contact_list.refresh() |
326
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
259 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
|
260 lib_wid.refresh() |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
261 self.resize() |
33 | 262 |
267
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
263 def addWidget(self, wid, tab_index=None): |
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
264 """ 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
|
265 |
267
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
266 @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
|
267 @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
|
268 """ |
267
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
269 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
|
270 panel = self.tab_panel.getCurrentPanel() |
a76243c02074
browser_side: changes regarding widgets and tabs:
souliane <souliane@mailoo.org>
parents:
266
diff
changeset
|
271 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
|
272 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
|
273 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
|
274 |
328
835a8ae799e7
Add notifications support, fixes bug 7.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
326
diff
changeset
|
275 def displayNotification(self, title, body): |
835a8ae799e7
Add notifications support, fixes bug 7.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
326
diff
changeset
|
276 self.notification.notify(title, body) |
835a8ae799e7
Add notifications support, fixes bug 7.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
326
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 |
415
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
323 def _isRegisteredCB(self, result): |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
324 registered, warning = result |
0 | 325 if not registered: |
467 | 326 self._register_box = register.RegisterBox(self.logged) |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
327 self._register_box.centerBox() |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
328 self._register_box.show() |
415
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
329 if warning: |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
330 dialog.InfoDialog(_('Security warning'), warning).show() |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
331 self._tryAutoConnect(skip_validation=not not warning) |
0 | 332 else: |
1 | 333 self._register.call('isConnected', self._isConnectedCB) |
0 | 334 |
1 | 335 def _isConnectedCB(self, connected): |
0 | 336 if not connected: |
456
da2a7f2b34c9
browser and server sides: use asyncConnect instead of connect
souliane <souliane@mailoo.org>
parents:
455
diff
changeset
|
337 self._register.call('asyncConnect', lambda x: self.logged()) |
0 | 338 else: |
339 self.logged() | |
340 | |
341 def logged(self): | |
66
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
342 if self._register_box: |
9d8e79ac4c9c
Login/Register box: integration of Adrien Vigneron's design
Goffi <goffi@goffi.org>
parents:
64
diff
changeset
|
343 self._register_box.hide() |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
344 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
|
345 |
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
|
346 # 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
|
347 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
|
348 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
|
349 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
|
350 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
351 self.bridge_signals.call('getSignals', self.bridge_signals.signalHandler) |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
352 |
242
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
353 def domain_cb(value): |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
354 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
|
355 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
|
356 |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
357 def domain_eb(value): |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
358 self._defaultDomain = "libervia.org" |
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
359 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
360 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
|
361 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
|
362 |
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
|
363 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
|
364 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
|
365 QuickApp.profilePlugged(self, C.PROF_KEY_NONE) |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
366 # 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
|
367 # 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
|
368 # and do all at once now |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
369 contact_list = self.contact_list |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
370 contact_list.update() |
667
166f3b624816
browser_side (blog): clean the MicroblogPanel:
souliane <souliane@mailoo.org>
parents:
665
diff
changeset
|
371 |
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
|
372 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
|
373 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
|
374 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
|
375 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
|
376 |
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
|
377 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
|
378 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
|
379 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
|
380 self.groupblog_available = False |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
381 |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
382 blog_widget = self.displayWidget(blog.Blog, ()) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
383 self.setSelected(blog_widget) |
667
166f3b624816
browser_side (blog): clean the MicroblogPanel:
souliane <souliane@mailoo.org>
parents:
665
diff
changeset
|
384 |
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
|
385 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
|
386 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
|
387 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
|
388 |
9b57d117e8c5
browser side: features are checked for microblogging and group blogging. If one of them is not available, a pop-up warns it, and it is not possible to write a new entry.
Goffi <goffi@goffi.org>
parents:
730
diff
changeset
|
389 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
|
390 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
|
391 |
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
|
392 # 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
|
393 # 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
|
394 # if wid.accept_all(): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
395 # 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
|
396 # else: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
397 # 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
|
398 |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
399 #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
|
400 # 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
|
401 |
692
7a9c7b9f6a28
browser_side: use host.default_muc instead of C.DEFAULT_MUC
souliane <souliane@mailoo.org>
parents:
687
diff
changeset
|
402 def gotDefaultMUC(default_muc): |
7a9c7b9f6a28
browser_side: use host.default_muc instead of C.DEFAULT_MUC
souliane <souliane@mailoo.org>
parents:
687
diff
changeset
|
403 self.default_muc = default_muc |
7a9c7b9f6a28
browser_side: use host.default_muc instead of C.DEFAULT_MUC
souliane <souliane@mailoo.org>
parents:
687
diff
changeset
|
404 self.bridge.getDefaultMUC(profile=None, callback=gotDefaultMUC) |
7a9c7b9f6a28
browser_side: use host.default_muc instead of C.DEFAULT_MUC
souliane <souliane@mailoo.org>
parents:
687
diff
changeset
|
405 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
406 def addContactList(self, dummy): |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
407 contact_list = ContactList(self) |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
408 self.panel.addContactList(contact_list) |
658
476d8d9973d3
browser_side: the contact list's height needs a window resize after it's been added or when the tab bar display is changed
souliane <souliane@mailoo.org>
parents:
657
diff
changeset
|
409 |
476d8d9973d3
browser_side: the contact list's height needs a window resize after it's been added or when the tab bar display is changed
souliane <souliane@mailoo.org>
parents:
657
diff
changeset
|
410 # FIXME: the contact list height has to be set manually the first time |
476d8d9973d3
browser_side: the contact list's height needs a window resize after it's been added or when the tab bar display is changed
souliane <souliane@mailoo.org>
parents:
657
diff
changeset
|
411 self.resize() |
476d8d9973d3
browser_side: the contact list's height needs a window resize after it's been added or when the tab bar display is changed
souliane <souliane@mailoo.org>
parents:
657
diff
changeset
|
412 |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
413 return contact_list |
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
414 |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
415 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
|
416 log.debug(u"newWidget: {}".format(wid)) |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
417 self.addWidget(wid) |
589
a5019e62c3e9
browser side: big refactoring to base Libervia on QuickFrontend, first draft:
Goffi <goffi@goffi.org>
parents:
584
diff
changeset
|
418 |
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
|
419 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
|
420 if type_ == C.MESS_TYPE_HEADLINE: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
421 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
|
422 if from_jid.domain == self._defaultDomain: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
423 # 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
|
424 try: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
425 title = extra['subject'] |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
426 except KeyError: |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
427 title = _('Announcement from %s') % from_jid |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
428 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
|
429 dialog.InfoDialog(title, msg).show() |
122b4483dac4
browser side: restored infoDialog for headline messages from server
Goffi <goffi@goffi.org>
parents:
644
diff
changeset
|
430 return |
646
9972a24592b0
browser side: fixed typo in newMessageHandler
Goffi <goffi@goffi.org>
parents:
645
diff
changeset
|
431 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
|
432 |
643
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
433 def disconnectedHandler(self, profile): |
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
434 QuickApp.disconnectedHandler(self, profile) |
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
435 Window.getLocation().reload() |
3e4826948eef
browser side: do a hard reload on disconnected signal
Goffi <goffi@goffi.org>
parents:
637
diff
changeset
|
436 |
699
be55a782a976
browser_side: change frontend method "setStatusOnline" for "setPresenceStatus"
souliane <souliane@mailoo.org>
parents:
697
diff
changeset
|
437 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
|
438 self.presence_status_panel.setPresence(show) |
699
be55a782a976
browser_side: change frontend method "setStatusOnline" for "setPresenceStatus"
souliane <souliane@mailoo.org>
parents:
697
diff
changeset
|
439 if status is not None: |
be55a782a976
browser_side: change frontend method "setStatusOnline" for "setPresenceStatus"
souliane <souliane@mailoo.org>
parents:
697
diff
changeset
|
440 self.presence_status_panel.setStatus(status) |
242
a25aa882e09a
browser_side: add context menu for contact:
souliane <souliane@mailoo.org>
parents:
239
diff
changeset
|
441 |
415
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
442 def _tryAutoConnect(self, skip_validation=False): |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
443 """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
|
444 @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
|
445 """ |
503
88ece2a00c63
browser_side: display new lines and clickable URLs for headline message
souliane <souliane@mailoo.org>
parents:
500
diff
changeset
|
446 params = strings.getURLParams(Window.getLocation().getSearch()) |
250
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
447 if "login" in params: |
730
108bb9d74fa2
browser_side: fixes auto-login (broken by previous changeset)
souliane <souliane@mailoo.org>
parents:
718
diff
changeset
|
448 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
|
449 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
|
450 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
|
451 if "passwd" in params: |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
452 # try to connect |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
453 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
|
454 if not skip_validation: |
fadbba1d793f
server_side: added support for SSL and related parameters:
souliane <souliane@mailoo.org>
parents:
408
diff
changeset
|
455 self._register_box._form.onLogin(None) |
250
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
456 return True |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
457 else: |
38e6211d36ca
browser_side: added auto-connection with URL parameters:
souliane <souliane@mailoo.org>
parents:
244
diff
changeset
|
458 # 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
|
459 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
|
460 |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
461 def _actionManagerUnknownError(self): |
299
e4f586fc6101
server and browser side: updated callback system to follow core changes
Goffi <goffi@goffi.org>
parents:
298
diff
changeset
|
462 dialog.InfoDialog("Error", |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
463 "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
|
464 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
465 # 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
|
466 # """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
|
467 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
468 # @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
|
469 # @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
|
470 # """ |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
471 # cache = [] |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
472 # for publisher in mblogs: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
473 # for mblog in mblogs[publisher][0]: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
474 # if 'content' not in mblog: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
475 # 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
|
476 # continue |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
477 # if 'groups' in mblog: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
478 # _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
|
479 # else: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
480 # _groups = None |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
481 # mblog_entry = blog.MicroblogItem(mblog) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
482 # cache.append((_groups, mblog_entry)) |
215
e830a0c60d32
server side: added the security_limit to setParam
souliane <souliane@mailoo.org>
parents:
213
diff
changeset
|
483 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
484 # self.mblog_cache.extend(cache) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
485 # 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
|
486 # 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
|
487 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
488 # widget_list = [mblog_panel] if mblog_panel else self.widgets.getWidgets(blog.MicroblogPanel) |
679 | 489 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
490 # for wid in widget_list: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
491 # 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
|
492 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
493 # # FIXME |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
494 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
495 # if self.initialised: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
496 # return |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
497 # 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
|
498 # 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
|
499 # self.personalEventHandler(*event_data) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
500 # del self.init_cache |
139 | 501 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
502 # 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
|
503 # """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
|
504 # 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
|
505 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
506 # @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
|
507 # @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
|
508 # """ |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
509 # delta = index - self.next_rsm_index |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
510 # if delta < 0: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
511 # assert mblog_panel is not None |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
512 # 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
|
513 # return |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
514 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
515 # def cb(result): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
516 # self._ownBlogsFills(result, mblog_panel) |
586
3eb3a2c0c011
browser and server side: uses RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
517 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
518 # 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
|
519 # 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
|
520 # 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
|
521 |
4
7325e787c22b
personalEvent management signal first draft, microblogs are now put in a central grid
Goffi <goffi@goffi.org>
parents:
2
diff
changeset
|
522 ## Signals callbacks ## |
7325e787c22b
personalEvent management signal first draft, microblogs are now put in a central grid
Goffi <goffi@goffi.org>
parents:
2
diff
changeset
|
523 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
524 # 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
|
525 # elif event_type == 'MICROBLOG_DELETE': |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
526 # 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
|
527 # wid.removeEntry(data['type'], data['id']) |
226
744426c2b699
browser_side, misc: better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
223
diff
changeset
|
528 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
529 # 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
|
530 # 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
|
531 # entry = self.mblog_cache[index] |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
532 # if entry[1].id == data['id']: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
533 # self.mblog_cache.remove(entry) |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
534 # break |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
535 |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
536 # def fillMicroblogPanel(self, mblog_panel, mblogs): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
537 # """Fill a microblog panel with entries in cache |
58
4fa3d57f72f8
browser side: microblog entries caching
Goffi <goffi@goffi.org>
parents:
57
diff
changeset
|
538 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
539 # @param mblog_panel: MicroblogPanel instance |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
540 # """ |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
541 # #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
|
542 # for cache_entry in mblogs: |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
543 # _groups, mblog_entry = cache_entry |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
544 # 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
|
545 |
716
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
546 # def getEntityMBlog(self, entity): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
547 # # 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
|
548 # 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
|
549 # 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
|
550 # if isinstance(lib_wid, blog.MicroblogPanel): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
551 # if lib_wid.isJidAccepted(entity): |
3b91225b457a
server + browser side: blogging refactoring (draft), huge commit sorry:
Goffi <goffi@goffi.org>
parents:
714
diff
changeset
|
552 # 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
|
553 |
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
|
554 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
|
555 """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
|
556 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
|
557 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
|
558 |
631
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
559 @arg class_(class): see quick_widgets.getOrCreateWidget |
e287a4b431c1
browser side (libervia main): implemented visible_widgets property
Goffi <goffi@goffi.org>
parents:
616
diff
changeset
|
560 @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
|
561 @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
|
562 @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
|
563 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
|
564 @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
|
565 @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
|
566 @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
|
567 """ |
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 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
|
569 |
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 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
|
571 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
|
572 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
|
573 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
|
574 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
|
575 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
|
576 |
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 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
|
578 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
|
579 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
|
580 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
|
581 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
|
582 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
|
583 return wid |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
584 |
1c0d5a87c554
browser_side: add and use method displayWidget to harmonize widget's management in Libervia (not completely done, there are some issues)
souliane <souliane@mailoo.org>
parents:
615
diff
changeset
|
585 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
|
586 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
|
587 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
|
588 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
|
589 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
|
590 wid = self.widgets.getOrCreateWidget(class_, target, *args, **kwargs) |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
591 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
|
592 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
|
593 # 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
|
594 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
|
595 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
|
596 # 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
|
597 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
|
598 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
|
599 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
|
600 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
|
601 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
|
602 |
670
a80c13249f5d
browser_side: rename askConfirmation handler
souliane <souliane@mailoo.org>
parents:
667
diff
changeset
|
603 def askConfirmationHandler(self, confirmation_id, confirmation_type, data): |
251
24335e82fef0
plugin XEP-249: added parameter Misc / Auto-join MUC on invitation:
souliane <souliane@mailoo.org>
parents:
250
diff
changeset
|
604 answer_data = {} |
24335e82fef0
plugin XEP-249: added parameter Misc / Auto-join MUC on invitation:
souliane <souliane@mailoo.org>
parents:
250
diff
changeset
|
605 |
24335e82fef0
plugin XEP-249: added parameter Misc / Auto-join MUC on invitation:
souliane <souliane@mailoo.org>
parents:
250
diff
changeset
|
606 def confirm_cb(result): |
24335e82fef0
plugin XEP-249: added parameter Misc / Auto-join MUC on invitation:
souliane <souliane@mailoo.org>
parents:
250
diff
changeset
|
607 self.bridge.call('confirmationAnswer', None, confirmation_id, result, answer_data) |
24335e82fef0
plugin XEP-249: added parameter Misc / Auto-join MUC on invitation:
souliane <souliane@mailoo.org>
parents:
250
diff
changeset
|
608 |
24335e82fef0
plugin XEP-249: added parameter Misc / Auto-join MUC on invitation:
souliane <souliane@mailoo.org>
parents:
250
diff
changeset
|
609 if confirmation_type == "YES/NO": |
24335e82fef0
plugin XEP-249: added parameter Misc / Auto-join MUC on invitation:
souliane <souliane@mailoo.org>
parents:
250
diff
changeset
|
610 dialog.ConfirmDialog(confirm_cb, text=data["message"], title=data["title"]).show() |
24335e82fef0
plugin XEP-249: added parameter Misc / Auto-join MUC on invitation:
souliane <souliane@mailoo.org>
parents:
250
diff
changeset
|
611 |
24335e82fef0
plugin XEP-249: added parameter Misc / Auto-join MUC on invitation:
souliane <souliane@mailoo.org>
parents:
250
diff
changeset
|
612 def _newAlert(self, message, title, alert_type): |
24335e82fef0
plugin XEP-249: added parameter Misc / Auto-join MUC on invitation:
souliane <souliane@mailoo.org>
parents:
250
diff
changeset
|
613 dialog.InfoDialog(title, message).show() |
239
b911f2b43fd4
browser_side: added input history in the unibox:
souliane <souliane@mailoo.org>
parents:
235
diff
changeset
|
614 |
714
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
615 def updateAlertsCounter(self): |
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
616 """Update the over whole alerts counter |
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
617 |
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
618 """ |
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
619 self.alerts_counter.update(self.alerts_count) |
03e9fe91081c
browser_side: use favico.js to display alerts counter
souliane <souliane@mailoo.org>
parents:
711
diff
changeset
|
620 |
326
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
621 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
|
622 """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
|
623 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
|
624 @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
|
625 """ |
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
|
626 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
|
627 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
|
628 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
|
629 if refresh: |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
630 self.refresh() |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
631 break |
36927be51481
browser_side: fixed the behavior regarding "Enable unibox" parameter:
souliane <souliane@mailoo.org>
parents:
325
diff
changeset
|
632 |
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
|
633 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
|
634 """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
|
635 |
662
ebb602d8b3f2
browser_side: replace all instances of 'str' with 'unicode'
souliane <souliane@mailoo.org>
parents:
659
diff
changeset
|
636 @param category (unicode): the parameter category |
ebb602d8b3f2
browser_side: replace all instances of 'str' with 'unicode'
souliane <souliane@mailoo.org>
parents:
659
diff
changeset
|
637 @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
|
638 """ |
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
|
639 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
|
640 |
298
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
641 def sendError(self, errorData): |
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
642 dialog.InfoDialog("Error while sending message", |
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
643 "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
|
644 log.error("sendError: %s" % unicode(errorData)) |
298
e99f578c7179
browser side: sendMessage alert on error
Goffi <goffi@goffi.org>
parents:
296
diff
changeset
|
645 |
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
|
646 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
|
647 """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
|
648 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
|
649 @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
|
650 @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
|
651 """ |
f4efffb9627c
browser_side: the popup notifying the message's recipient is no more dependent to the unibox.
souliane <souliane@mailoo.org>
parents:
349
diff
changeset
|
652 if not hasattr(self, "warning_popup"): |
648
6d3142b782c3
browser_side: classes reorganisation:
Goffi <goffi@goffi.org>
parents:
646
diff
changeset
|
653 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
|
654 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
|
655 |
628
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
656 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
|
657 if type_ == 'info': |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
658 popup = dialog.InfoDialog(unicode(title), unicode(message), callback=answer_cb) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
659 elif type_ == 'error': |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
660 popup = dialog.InfoDialog(unicode(title), unicode(message), callback=answer_cb) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
661 elif type_ == 'yes/no': |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
662 popup = dialog.ConfirmDialog(lambda answer: answer_cb(answer, answer_data), |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
663 text=unicode(message), title=unicode(title)) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
664 popup.cancel_button.setText(_("No")) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
665 else: |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
666 popup = dialog.InfoDialog(unicode(title), unicode(message), callback=answer_cb) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
667 log.error(_('unmanaged dialog type: %s'), type_) |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
668 popup.show() |
66a547539185
browser_side: implements showDialog
souliane <souliane@mailoo.org>
parents:
624
diff
changeset
|
669 |
718
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
670 def dialogFailure(self, failure): |
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
671 dialog.InfoDialog("Error", |
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
672 unicode(failure), Width="400px").center() |
5745b5e6586a
browser + server sides: actionNew signal handling
Goffi <goffi@goffi.org>
parents:
716
diff
changeset
|
673 |
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
|
674 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
|
675 """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
|
676 |
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
|
677 @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
|
678 @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
|
679 """ |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
680 # 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
|
681 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
|
682 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
|
683 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
|
684 |
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
685 def showFailureRoomInvalid(self, 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
|
686 """Show a failure that has been returned when trying to join an invalid room. |
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 |
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 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
|
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: remove asap, see self.showFailure |
692
7a9c7b9f6a28
browser_side: use host.default_muc instead of C.DEFAULT_MUC
souliane <souliane@mailoo.org>
parents:
687
diff
changeset
|
691 msg = _(u"Invalid room identifier. Please give a room short or full identifier like 'room' or '%s'.") % self.default_muc |
686
90a5a5af2550
browser_side: let the backend check for the validity of MUC JIDs that come from a user input
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
692 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
|
693 |
269
9eb9c7d41bdc
browser_side: added generic method "send" in SatWebFrontend
souliane <souliane@mailoo.org>
parents:
267
diff
changeset
|
694 |
0 | 695 if __name__ == '__main__': |
696 app = SatWebFrontend() | |
697 app.onModuleLoad() | |
675
941e53b3af5c
browser side: host listeners are called when host is instantiated
Goffi <goffi@goffi.org>
parents:
670
diff
changeset
|
698 host_listener.callListeners(app) |