Mercurial > libervia-backend
comparison frontends/wix/gateways.py @ 39:2e3411a6baad
Wix: external server management in gateways manager, SàT: bug fixes in gateway management
- SàT: from twisted.words.protocols.jabber.error module imported as jab_error to avoir name colision with error log method
- XEP_0100 plugin: added errback for disco info
- XEP_0077 plugin: registration callback now look for "x" element (data form: see XEP-0004), and send an error message if it can't find it.
- Wix: added fields for browsing external server gateways
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 17 Dec 2009 17:29:02 +1100 |
parents | a61beb21d16d |
children | a5b5fb5fc9fd |
comparison
equal
deleted
inserted
replaced
38:3e24753b9e0b | 39:2e3411a6baad |
---|---|
29 | 29 |
30 WARNING_MSG = u"""Be careful ! Gateways allow you to use an external IM (legacy IM), so you can see your contact as jabber contacts. | 30 WARNING_MSG = u"""Be careful ! Gateways allow you to use an external IM (legacy IM), so you can see your contact as jabber contacts. |
31 But when you do this, all your messages go throught the external legacy IM server, it is a huge privacy issue (i.e.: all your messages throught the gateway can be monitored, recorded, analyzed by the external server, most of time a private company).""" | 31 But when you do this, all your messages go throught the external legacy IM server, it is a huge privacy issue (i.e.: all your messages throught the gateway can be monitored, recorded, analyzed by the external server, most of time a private company).""" |
32 | 32 |
33 class GatewaysManager(wx.Frame): | 33 class GatewaysManager(wx.Frame): |
34 def __init__(self, host, gateways, title="Gateways manager"): | 34 def __init__(self, host, gateways, title="Gateways manager", server=None): |
35 super(GatewaysManager, self).__init__(None, title=title) | 35 super(GatewaysManager, self).__init__(None, title=title) |
36 | 36 |
37 self.host = host | 37 self.host = host |
38 if server: | |
39 self.SetTitle(title+" (%s)" % server) | |
38 | 40 |
39 #Fonts | 41 #Fonts |
40 self.normal_font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL) | 42 self.normal_font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL) |
41 self.bold_font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.BOLD) | 43 self.bold_font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.BOLD) |
42 self.italic_font = wx.Font(8, wx.DEFAULT, wx.FONTSTYLE_ITALIC, wx.NORMAL) | 44 self.italic_font = wx.Font(8, wx.DEFAULT, wx.FONTSTYLE_ITALIC, wx.NORMAL) |
45 self.button_font = wx.Font(6, wx.DEFAULT, wx.NORMAL, wx.BOLD) | |
43 | 46 |
44 | 47 |
45 self.modified = {} # dict of modified data (i.e. what we have to save) | 48 self.modified = {} # dict of modified data (i.e. what we have to save) |
46 self.ctl_list = {} # usefull to access ctrl, key = (name, category) | 49 self.ctl_list = {} # usefull to access ctrl, key = (name, category) |
47 | 50 |
75 self.panel.sizer.Add(wx.Window(self.panel, -1)) | 78 self.panel.sizer.Add(wx.Window(self.panel, -1)) |
76 | 79 |
77 for gateway in gateways: | 80 for gateway in gateways: |
78 self.addGateway(gateway, gateways[gateway]) | 81 self.addGateway(gateway, gateways[gateway]) |
79 | 82 |
83 self.ext_server_panel = wx.Panel(self) | |
84 self.ext_server_panel.sizer = wx.BoxSizer(wx.HORIZONTAL) | |
85 self.ext_server_panel.SetSizer(self.ext_server_panel.sizer) | |
86 self.ext_server_panel.SetAutoLayout(True) | |
87 self.sizer.Add(self.ext_server_panel, 0, flag=wx.EXPAND) | |
88 | |
89 ext_server_label = wx.StaticText(self.ext_server_panel, -1, "Use external XMPP server: ") | |
90 ext_server_label.SetFont(wx.ITALIC_FONT) | |
91 self.ext_server_text = wx.TextCtrl(self.ext_server_panel, -1) | |
92 ext_server_button = wx.Button(self.ext_server_panel, -1, "GO !") | |
93 self.ext_server_panel.Bind(wx.EVT_BUTTON, self.browseExternalServer, ext_server_button) | |
94 | |
95 self.ext_server_panel.sizer.Add(ext_server_label) | |
96 self.ext_server_panel.sizer.Add(self.ext_server_text, 1, flag=wx.EXPAND) | |
97 self.ext_server_panel.sizer.Add(ext_server_button) | |
80 | 98 |
81 #self.panel.sizer.Fit(self) | 99 #self.panel.sizer.Fit(self) |
82 self.sizer.Fit(self) | 100 self.sizer.Fit(self) |
83 | 101 |
84 self.Show() | 102 self.Show() |
85 | 103 |
104 def browseExternalServer(self, event): | |
105 """Open the gateway manager on given server""" | |
106 server = self.ext_server_text.GetValue() | |
107 debug("Opening gateways manager on [%s]" % server) | |
108 id = self.host.bridge.findGateways(server) | |
109 self.host.current_action_ids.add(id) | |
110 self.host.current_action_ids_cb[id] = self.host.onGatewaysFound | |
111 self.MakeModal(False) | |
112 self.Destroy() | |
113 | |
114 | |
86 def addGateway(self, gateway, param): | 115 def addGateway(self, gateway, param): |
87 | 116 |
88 | 117 |
89 | 118 |
90 #First The icon | 119 #First The icon |
91 isz = (16,16) | 120 isz = (16,16) |
92 im_icon = wx.StaticBitmap(self.panel, -1, wx.ArtProvider.GetBitmap(wx.ART_GO_FORWARD, wx.ART_TOOLBAR, isz)) | 121 im_icon = wx.StaticBitmap(self.panel, -1, wx.ArtProvider.GetBitmap(wx.ART_GO_FORWARD, wx.ART_TOOLBAR, isz)) |
131 id = self.host.bridge.in_band_register(gateway_jid) | 160 id = self.host.bridge.in_band_register(gateway_jid) |
132 self.host.current_action_ids.add(id) | 161 self.host.current_action_ids.add(id) |
133 print "register id:",id | 162 print "register id:",id |
134 self.MakeModal(False) | 163 self.MakeModal(False) |
135 self.Destroy() | 164 self.Destroy() |
136 event.Skip() | |
137 | 165 |
138 def unregister_cb(event): | 166 def unregister_cb(event): |
139 """Called when unregister button is clicked""" | 167 """Called when unregister button is clicked""" |
140 gateway_jid = event.GetEventObject().gateway_jid | 168 gateway_jid = event.GetEventObject().gateway_jid |
141 id = self.host.bridge.gatewayRegister("CANCEL",gateway_jid, None) | 169 id = self.host.bridge.gatewayRegister("CANCEL",gateway_jid, None) |
142 self.host.current_action_ids.add(id) | 170 self.host.current_action_ids.add(id) |
143 print "unregister id:",id | 171 print "unregister id:",id |
144 self.MakeModal(False) | 172 self.MakeModal(False) |
145 self.Destroy() | 173 self.Destroy() |
146 event.Skip() | |
147 | 174 |
148 button_font = wx.Font(6, wx.DEFAULT, wx.NORMAL, wx.BOLD) | |
149 reg_button = wx.Button(self.panel, -1, "Register", size=wx.Size(-1, 8)) | 175 reg_button = wx.Button(self.panel, -1, "Register", size=wx.Size(-1, 8)) |
150 reg_button.SetFont(button_font) | 176 reg_button.SetFont(self.button_font) |
151 reg_button.gateway_jid = JID(gateway) | 177 reg_button.gateway_jid = JID(gateway) |
152 self.panel.Bind(wx.EVT_BUTTON, register_cb, reg_button) | 178 self.panel.Bind(wx.EVT_BUTTON, register_cb, reg_button) |
153 unreg_button = wx.Button(self.panel, -1, "Unregister", size=wx.Size(-1, 8)) | 179 unreg_button = wx.Button(self.panel, -1, "Unregister", size=wx.Size(-1, 8)) |
154 unreg_button.SetFont(button_font) | 180 unreg_button.SetFont(self.button_font) |
155 unreg_button.gateway_jid = JID(gateway) | 181 unreg_button.gateway_jid = JID(gateway) |
156 self.panel.Bind(wx.EVT_BUTTON, unregister_cb, unreg_button) | 182 self.panel.Bind(wx.EVT_BUTTON, unregister_cb, unreg_button) |
157 | 183 |
158 self.panel.sizer.Add(im_icon) | 184 self.panel.sizer.Add(im_icon) |
159 self.panel.sizer.Add(label) | 185 self.panel.sizer.Add(label) |