app/assets/javascripts/backbone/models/chat.js.coffee
6a6ccd01
 class Xmpp.Models.Chat extends Xmpp.Models.Model
   namespace: 'app.chat'
 
   defaults:
     who: null
     withWhom: null
2a61cdcc
     chatId: null
94bd8368
     isMultiChat: false
6a6ccd01
 
   initialize: ->
     _.bindAll(this)
 
94bd8368
     if (@get('isMultiChat'))
       @set('withWhom', [])
 
31111b63
     #App.Com.openNewMultiChatId(@get('who').get('jid'), @get('withWhom').get('jid'), this)
2a61cdcc
 
94bd8368
   appendWithWhom: (newPerson) ->
     allWithWhom = @get('withWhom');
 
     exists = _.find(allWithWhom, (withWhom) ->
       withWhom == newPerson
     )?
 
     if not exists
       allWithWhom.push(newPerson)
 
2a61cdcc
   setChatId: (id) ->
94bd8368
     App.debug ['multichat has id', id]
2a61cdcc
     @set('chatId', id)
 
6a6ccd01
 class Xmpp.Collections.ChatsCollection extends Backbone.Collection
   model: Xmpp.Models.Chat
 
   initialize: ->
     _.bindAll(this)
 
bcce524b
     Backbone.Events.on('closeChat', (tab, chat) =>
       @removeChat(chat)
     )
6a6ccd01
 
   find: (who, withWhom) ->
fcce5d56
     _.find(@models, (chat) ->
6a6ccd01
       chat.get('who') == who && chat.get('withWhom') == withWhom
     )
 
1f685c13
   findById: (id) ->
     @findWhere(chatId: id)
 
6a6ccd01
   removeChat: (chat) ->
fcce5d56
     @models = _.without(@openedChats, chat)