Xmpp.Views.Contacts ||= {}
class Xmpp.Views.Contacts.ContactView extends Backbone.View
template: JST["backbone/templates/contacts/contact"]
tagName: 'li'
className: 'clear user'
events:
'click': 'startChat'
initialize: () ->
_.bindAll(this)
@parentList = @attributes['listView']
@model.on('change', @updateContact, this)
updateContact: (contact) ->
@model = contact
@render()
render: ->
contact = @model.toJSON()
$(@el).html(@template(contact))
return this
belongsToActiveList: ->
@parentList.activeGroup == true
startChat: ->
if @belongsToActiveList()
return
who = App.Models.me
withWhom = @model
App.debug ['opening chat with: ', who.get('jid'), withWhom.get('jid')]
chat = App.Collections.chats.find(who, withWhom)
if (! chat)
App.debug ['not found in opened chats, creating new']
chat = new Xmpp.Models.Chat(who: who, withWhom: withWhom)
App.Collections.chats.add(chat)
Backbone.Events.trigger('openChat', chat)