class Xmpp.Models.Contact extends Xmpp.Models.Model
namespace: 'app.roster'
defaults:
jid: ''
name: ''
status: 'offline'
message: ''
avatar: ''
belongsTo: ''
initialize: ->
_.bindAll(this)
if ! @get('name')
@set(name: @get('jid'))
firstname: ->
@get('name').split(' ')[0]
class Xmpp.Collections.ContactsCollection extends Backbone.Collection
model: Xmpp.Models.Contact
initialize: ->
_.bindAll(this)
@friendsList = new Xmpp.Views.Contacts.ListView(collection: this, attributes: {title: 'chat.roster.friends', id: 'js-inactive-friends'})
@friendsList.createListContainer()
@activeList = new Xmpp.Views.Contacts.ListView(collection: this, attributes: {title: 'chat.roster.chat-group', id: 'js-active-friends'})
@activeList.setAsActiveChatGroup()
@on("add", @appendContact)
appendContact: (contact) ->
@friendsList.appendContact(contact)
moveToActiveList: (contact) ->
@_switchContactBelongingList(@get(contact), @friendsList, @activeList)
moveToInactiveList: (contact) ->
if contact == 'all'
_.each(@activeList.contactViews, (view) =>
@_switchContactBelongingList(view.model, @activeList, @friendsList)
)
else
@_switchContactBelongingList(@get(contact), @activeList, @friendsList)
updateStatus: (response) ->
@get(response.jid).set(message: response.status.message, status: response.status.status)
udpateVcard: (response) ->
@get(response.jid).set(name: response.vcard.name, avatar: response.vcard.avatar)
_switchContactBelongingList: (contact, fromList, toList) ->
if !contact?
false
fromList.detachContact(contact) && toList.appendContact(contact)
true