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