app/assets/javascripts/backbone/views/tabbar/tabbar.js.coffee
6a6ccd01
 Xmpp.Views.Tabbar ||= {}
 
 class Xmpp.Views.Tabbar.TabbarView extends Backbone.View
   template: JST["backbone/templates/tabbar/tabbar"]
   el: $('#js-tabbar')
 
   initialize: () ->
     _.bindAll(this)
 
bcce524b
     Backbone.Events.on('openChat', @addOrSelect)
                    .on('closeChat', @removeTab)
 
6a6ccd01
     @tabs = []
     @render()
 
   addOrSelect: (chat) ->
     tab = _.find(@tabs, (tab) ->
       tab.hasParticipants(chat.get('who'), chat.get('withWhom'))
     )
 
     if (!! tab)
       App.debug 'selecting existing tab'
     else
       App.debug 'adding new tab'
       tab = new Xmpp.Views.Tabbar.TabView(model: chat)
       @tabs.push tab
       $(@el).append(tab.render().el)
 
     _.each(@tabs, (tab) ->
       tab.setInactive()
     )
 
     tab.setActive().el
 
   removeTab: (tab) ->
     @tabs = _.without(@tabs, tab)
 
   render: ->
     $(@el).html('')
     return this