Browse code

Aktivovanie neaktivneho tabu po zatvoreni aktivneho

Cinan Rakosnik authored on 27/03/2013 at 11:13:20
Showing 2 changed files
... ...
@@ -10,13 +10,16 @@ class Xmpp.Views.Tabbar.TabView extends Backbone.View
10 10
 
11 11
   initialize: () ->
12 12
     _.bindAll(this)
13
+    @active = false
13 14
 
14 15
   setActive: ->
15 16
     $(@el).addClass('active')
17
+    @active = true
16 18
     @render()
17 19
 
18 20
   setInactive: ->
19 21
     $(@el).removeClass('active')
22
+    @active = false
20 23
     @render()
21 24
 
22 25
   render: ->
... ...
@@ -37,7 +40,8 @@ class Xmpp.Views.Tabbar.TabView extends Backbone.View
37 37
 
38 38
   destroy: ->
39 39
     App.debug 'destroy chatWindow and tab'
40
-    @chatWindow.remove()
40
+    if @active
41
+      @chatWindow.remove()
41 42
     @remove()
42 43
 
43 44
   hideChat: ->
... ...
@@ -45,8 +49,8 @@ class Xmpp.Views.Tabbar.TabView extends Backbone.View
45 45
       @chatWindow.hide();
46 46
 
47 47
   closeChat: ->
48
-    Backbone.Events.trigger('closeChat', this, @model)
49 48
     @destroy()
49
+    Backbone.Events.trigger('closeChat', this, @model)
50 50
 
51 51
   hasParticipants: (who, withWhom) ->
52 52
     @model && @model.get('who') == who && @model.get('withWhom') == withWhom
... ...
@@ -11,7 +11,16 @@ class Xmpp.Views.Tabbar.TabbarView extends Backbone.View
11 11
       @hideCurrentChatWindow()
12 12
       @addOrSelect(chat)
13 13
     )
14
-    Backbone.Events.on('closeChat', @removeTab)
14
+    Backbone.Events.on('closeChat', (tab, chatModel) =>
15
+      @removeTab(tab)
16
+
17
+      if tab == @activeTab
18
+        firstTab = @selectFirstTab()
19
+        if firstTab
20
+          App.debug 'fire openChat'
21
+          Backbone.Events.trigger('openChat', firstTab.model)
22
+        #TODO: vybrat naposledy pouzity tab
23
+    )
15 24
 
16 25
     @tabs = []
17 26
     @activeTab = null
... ...
@@ -49,3 +58,6 @@ class Xmpp.Views.Tabbar.TabbarView extends Backbone.View
49 49
   render: ->
50 50
     $(@el).html(@template())
51 51
     return this
52
+
53
+  selectFirstTab: ->
54
+    _.first(@tabs)
52 55
\ No newline at end of file