log on / log off for agents
This commit is contained in:
parent
bad3e45b97
commit
cf2c7b5037
|
@ -612,11 +612,13 @@ class Client(Connection):
|
|||
def requestRegInfo(self,agent=''):
|
||||
"""Requests registration info from the server.
|
||||
Returns the Iq object received from the server."""
|
||||
if agent: agent = agent + '.'
|
||||
# if agent: agent = agent + '.'
|
||||
self._reg_info = {}
|
||||
reg_iq = Iq(type='get', to = agent + self._host)
|
||||
# reg_iq = Iq(type='get', to = agent + self._host)
|
||||
reg_iq = Iq(type='get', to = agent)
|
||||
reg_iq.setQuery(NS_REGISTER)
|
||||
self.DEBUG("Requesting reg info from %s%s:" % (agent, self._host), DBG_NODE_IQ)
|
||||
# self.DEBUG("Requesting reg info from %s%s:" % (agent, self._host), DBG_NODE_IQ)
|
||||
self.DEBUG("Requesting reg info from %s:" % agent, DBG_NODE_IQ)
|
||||
self.DEBUG(ustr(reg_iq),DBG_NODE_IQ)
|
||||
return self.SendAndWaitForResponse(reg_iq)
|
||||
|
||||
|
@ -637,9 +639,10 @@ class Client(Connection):
|
|||
|
||||
def sendRegInfo(self, agent=None):
|
||||
"""Sends the populated registration dictionary back to the server"""
|
||||
if agent: agent = agent + '.'
|
||||
# if agent: agent = agent + '.'
|
||||
if agent is None: agent = ''
|
||||
reg_iq = Iq(to = agent + self._host, type='set')
|
||||
# reg_iq = Iq(to = agent + self._host, type='set')
|
||||
reg_iq = Iq(to = agent, type='set')
|
||||
q = reg_iq.setQuery(NS_REGISTER)
|
||||
for info in self._reg_info.keys():
|
||||
q.insertTag(info).putData(self._reg_info[info])
|
||||
|
|
|
@ -344,6 +344,7 @@ class GajimCore:
|
|||
iq._setTag('vCard', common.jabber.NS_VCARD)
|
||||
iq.setID(self.con.getAnID())
|
||||
self.con.send(iq)
|
||||
#('VCARD', {entry1: data, entry2: {entry21: data, ...}, ...})
|
||||
elif ev[0] == 'VCARD':
|
||||
iq = common.jabber.Iq(type="set")
|
||||
iq.setID(self.con.getAnID())
|
||||
|
@ -357,6 +358,13 @@ class GajimCore:
|
|||
else:
|
||||
iq2.insertTag(i).putData(ev[1][i])
|
||||
self.con.send(iq)
|
||||
#('AGENT_LOGGING', (agent, type))
|
||||
elif ev[0] == 'AGENT_LOGGING':
|
||||
t = ev[1][1];
|
||||
if not t:
|
||||
t='available';
|
||||
p = common.jabber.Presence(to=ev[1][0], type=t)
|
||||
self.con.send(p)
|
||||
else:
|
||||
log.debug("Unknown Command %s" % ev[0])
|
||||
elif self.connected == 1:
|
||||
|
|
|
@ -5165,7 +5165,7 @@ when NOT onlie</property>
|
|||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkTextView" id="textview1">
|
||||
<widget class="GtkTextView" id="textview_DESC">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">False</property>
|
||||
|
|
|
@ -840,7 +840,8 @@ class browseAgent_Window:
|
|||
model = self.treeview.get_model()
|
||||
for jid in agents.keys():
|
||||
iter = model.append()
|
||||
model.set(iter, 0, agents[jid]['name'], 1, agents[jid]['service'])
|
||||
# model.set(iter, 0, agents[jid]['name'], 1, agents[jid]['service'])
|
||||
model.set(iter, 0, agents[jid]['name'], 1, jid)
|
||||
|
||||
def on_refresh(self, widget):
|
||||
"""When refresh button is clicked :
|
||||
|
@ -1101,23 +1102,27 @@ class roster_Window:
|
|||
jid = self.l_contact[jid]['user'].jid
|
||||
if not self.tab_vcard.has_key(jid):
|
||||
self.tab_vcard[jid] = infoUser_Window(self.l_contact[jid]['user'], self)
|
||||
|
||||
|
||||
def on_agent_logging(self, widget, jid, type):
|
||||
"""When an agent is requested to log in or off"""
|
||||
self.queueOUT.put(('AGENT_LOGGING', (jid, type)))
|
||||
|
||||
def mk_menu_c(self, event, iter):
|
||||
"""Make user's popup menu"""
|
||||
model = self.tree.get_model()
|
||||
jid = model.get_value(iter, 2)
|
||||
path = model.get_path(iter)
|
||||
self.menu_c = gtk.Menu()
|
||||
menu = gtk.Menu()
|
||||
item = gtk.MenuItem("Start chat")
|
||||
self.menu_c.append(item)
|
||||
menu.append(item)
|
||||
item.connect("activate", self.on_row_activated, path)
|
||||
item = gtk.MenuItem("Rename")
|
||||
self.menu_c.append(item)
|
||||
menu.append(item)
|
||||
#item.connect("activate", self.on_rename, iter)
|
||||
item = gtk.MenuItem()
|
||||
self.menu_c.append(item)
|
||||
menu.append(item)
|
||||
item = gtk.MenuItem("Subscription")
|
||||
self.menu_c.append(item)
|
||||
menu.append(item)
|
||||
|
||||
menu_sub = gtk.Menu()
|
||||
item.set_submenu(menu_sub)
|
||||
|
@ -1130,31 +1135,51 @@ class roster_Window:
|
|||
'I would like to add you to my contact list, please.')
|
||||
|
||||
item = gtk.MenuItem()
|
||||
self.menu_c.append(item)
|
||||
menu.append(item)
|
||||
item = gtk.MenuItem("Remove")
|
||||
self.menu_c.append(item)
|
||||
menu.append(item)
|
||||
item.connect("activate", self.on_req_usub, iter)
|
||||
|
||||
item = gtk.MenuItem()
|
||||
self.menu_c.append(item)
|
||||
menu.append(item)
|
||||
item = gtk.MenuItem("Informations")
|
||||
self.menu_c.append(item)
|
||||
menu.append(item)
|
||||
item.connect("activate", self.on_info, jid)
|
||||
|
||||
self.menu_c.popup(None, None, None, event.button, event.time)
|
||||
self.menu_c.show_all()
|
||||
menu.popup(None, None, None, event.button, event.time)
|
||||
menu.show_all()
|
||||
|
||||
def mk_menu_g(self, event):
|
||||
"""Make group's popup menu"""
|
||||
self.menu_c = gtk.Menu()
|
||||
menu = gtk.Menu()
|
||||
item = gtk.MenuItem("grp1")
|
||||
self.menu_c.append(item)
|
||||
menu.append(item)
|
||||
item = gtk.MenuItem("grp2")
|
||||
self.menu_c.append(item)
|
||||
menu.append(item)
|
||||
item = gtk.MenuItem("grp3")
|
||||
self.menu_c.append(item)
|
||||
self.menu_c.popup(None, None, None, event.button, event.time)
|
||||
self.menu_c.show_all()
|
||||
menu.append(item)
|
||||
menu.popup(None, None, None, event.button, event.time)
|
||||
menu.show_all()
|
||||
|
||||
def mk_menu_agent(self, event, iter):
|
||||
"""Make agent's popup menu"""
|
||||
model = self.tree.get_model()
|
||||
jid = model.get_value(iter, 1)
|
||||
menu = gtk.Menu()
|
||||
item = gtk.MenuItem("Log on")
|
||||
if self.l_contact[jid]['user'].show != 'offline':
|
||||
item.set_sensitive(FALSE)
|
||||
menu.append(item)
|
||||
item.connect("activate", self.on_agent_logging, jid, 'available')
|
||||
|
||||
item = gtk.MenuItem("Log off")
|
||||
if self.l_contact[jid]['user'].show == 'offline':
|
||||
item.set_sensitive(FALSE)
|
||||
menu.append(item)
|
||||
item.connect("activate", self.on_agent_logging, jid, 'unavailable')
|
||||
|
||||
menu.popup(None, None, None, event.button, event.time)
|
||||
menu.show_all()
|
||||
|
||||
def authorize(self, widget, jid):
|
||||
"""Authorize a user"""
|
||||
|
@ -1190,8 +1215,7 @@ class roster_Window:
|
|||
if data == 'group':
|
||||
self.mk_menu_g(event)
|
||||
elif data == 'agent':
|
||||
#TODO
|
||||
pass
|
||||
self.mk_menu_agent(event, iter)
|
||||
else:
|
||||
self.mk_menu_c(event, iter)
|
||||
return gtk.TRUE
|
||||
|
|
Loading…
Reference in New Issue