Mercurial > libervia-web
changeset 50:72c51a4839cc
MUC group joining
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 26 May 2011 20:13:41 +0200 |
parents | f1d2eb9b2523 |
children | 9f19e16187ff |
files | browser_side/panels.py libervia.py libervia.tac |
diffstat | 3 files changed, 56 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/browser_side/panels.py Thu May 26 19:15:44 2011 +0200 +++ b/browser_side/panels.py Thu May 26 20:13:41 2011 +0200 @@ -29,10 +29,13 @@ from pyjamas.ui.TabPanel import TabPanel from pyjamas.ui.HTMLPanel import HTMLPanel from pyjamas.ui.Grid import Grid +from pyjamas.ui.DialogBox import DialogBox from pyjamas.ui.AutoComplete import AutoCompleteTextBox from pyjamas.ui.MenuBar import MenuBar from pyjamas.ui.MenuItem import MenuItem from pyjamas.ui.Label import Label +from pyjamas.ui.TextBox import TextBox +from pyjamas.ui.Button import Button from pyjamas.ui.HTML import HTML from pyjamas.ui.Frame import Frame from pyjamas.ui.DropWidget import DropWidget @@ -72,12 +75,16 @@ menu_general.addItem("Social contract", MenuCmd(self, "onSocialContract")) menu_general.addItem("About", MenuCmd(self, "onAbout")) + menu_group = MenuBar(vertical=True) + menu_group.addItem("join room", MenuCmd(self, "onJoinRoom")) + menu_games = MenuBar(vertical=True) menu_games.addItem("Tarot", MenuCmd(self, "onTarotGame")) menu_games.addItem("Xiangqi", MenuCmd(self, "onXiangqiGame")) menubar = MenuBar(vertical=False) menubar.addItem(MenuItem("General", menu_general)) + menubar.addItem(MenuItem("Groups", menu_group)) menubar.addItem(MenuItem("Games", True, menu_games)) self.add(menubar) @@ -101,6 +108,40 @@ _dialog = dialog.InfoDialog("About", _about) _dialog.show() + #Group menu + def onJoinRoom(self): + _dialog = None + _edit = None + + def onOK(sender): + if not _edit.getText(): + Window.alert('You must enter a room jid in the form libervia@conference.libervia.org') + if self.host.whoami: + nick = self.host.whoami.node + self.host.bridge.call('joinMUC', None, _edit.getText(), nick) + _dialog.hide() + + def onCancel(sender): + _dialog.hide() + + _main_panel = VerticalPanel() + _label = Label("Discussion room:") + _edit = TextBox() + _edit.setText('libervia@conference.tazar.int') + hpanel = HorizontalPanel() + hpanel.add(_label) + hpanel.add(_edit) + _main_panel.add(hpanel) + button_panel = HorizontalPanel() + button_panel.add(Button("Join", onOK)) + button_panel.add(Button("Cancel", onCancel)) + _main_panel.add(button_panel) + _dialog = DialogBox(centered=True) + _dialog.setHTML('<b>Group discussions</b>') + _dialog.setWidget(_main_panel) + _dialog.show() + + #Game menu def onTarotGame(self):
--- a/libervia.py Thu May 26 19:15:44 2011 +0200 +++ b/libervia.py Thu May 26 20:13:41 2011 +0200 @@ -65,8 +65,8 @@ class BridgeCall(LiberviaJsonProxy): def __init__(self): LiberviaJsonProxy.__init__(self, "/json_api", - ["getContacts", "sendMessage", "sendMblog", "getMblogNodes", "getProfileJid", "getHistory", - "getPresenceStatus", "getRoomJoined", "launchTarotGame", "getTarotCardsPaths", "tarotGameReady", "tarotGameContratChoosed", + ["getContacts", "sendMessage", "sendMblog", "getMblogNodes", "getProfileJid", "getHistory", "getPresenceStatus", + "joinMUC", "getRoomJoined", "launchTarotGame", "getTarotCardsPaths", "tarotGameReady", "tarotGameContratChoosed", "tarotGamePlayCards"]) class BridgeSignals(LiberviaJsonProxy):
--- a/libervia.tac Thu May 26 19:15:44 2011 +0200 +++ b/libervia.tac Thu May 26 20:13:41 2011 +0200 @@ -187,6 +187,16 @@ return {} return self.sat_host.bridge.getHistory(from_jid, to_jid, size) + def jsonrpc_joinMUC(self, room_jid, nick): + """Join a Multi-User Chat room""" + profile = ISATSession(self.session).profile + try: + room_jid = JID(room_jid) + except: + warning('Invalid room jid') + return + self.sat_host.bridge.joinMUC(room_jid.host, room_jid.user, nick, profile) + def jsonrpc_getRoomJoined(self): """Return list of room already joined by user""" profile = ISATSession(self.session).profile @@ -360,10 +370,12 @@ login: %(login)s password: %(password)s +Your Jabber ID (JID) is: %(jid)s + Any feedback welcome Cheers -Goffi""" % { 'login': login, 'password': password }).encode('utf-8') +Goffi""" % { 'login': login, 'password': password, 'jid':"%s@%s" % (login, _NEW_ACCOUNT_DOMAIN) }).encode('utf-8') msg = MIMEText(body, 'plain', 'UTF-8') msg['Subject'] = 'Libervia account created' msg['From'] = _email_from @@ -382,7 +394,6 @@ d = sendmail(_email_host, _email_from, email, msg.as_string()) d.addCallbacks(email_ok, email_ko) - print "rturn REGISTRATION" return "REGISTRATION" def __cleanWaiting(self, login):