... | ... |
@@ -53,10 +53,6 @@ class Xmpp.Collections.ContactsCollection extends Backbone.Collection |
53 | 53 |
Backbone.Events.trigger('resizeWorkspace') |
54 | 54 |
) |
55 | 55 |
|
56 |
- Backbone.Events.on('closeChat', (chat) => |
|
57 |
- @moveToInactiveList('all') |
|
58 |
- ) |
|
59 |
- |
|
60 | 56 |
appendContact: (contact) -> |
61 | 57 |
App.debug ['apppend', contact] |
62 | 58 |
@friendsList.appendContact(contact) |
... | ... |
@@ -6,21 +6,28 @@ class Xmpp.Views.Tabbar.TabView extends Backbone.View |
6 | 6 |
className: 'tab' |
7 | 7 |
|
8 | 8 |
events: |
9 |
- 'click .js-close': 'fireCloseChatTrigger' |
|
9 |
+ 'click .js-close': 'closeChat' |
|
10 | 10 |
'click a div': 'switchChatWindow' |
11 | 11 |
|
12 | 12 |
initialize: () -> |
13 | 13 |
_.bindAll(this) |
14 | 14 |
@active = false |
15 |
+ @isClosingTab = false |
|
15 | 16 |
|
16 | 17 |
Backbone.Events.on('closeChat', (chat) => |
17 |
- if chat == @model |
|
18 |
- @destroy() |
|
18 |
+ if not @isClosingTab |
|
19 |
+ if chat == @model |
|
20 |
+ @destroy() |
|
19 | 21 |
) |
20 | 22 |
|
21 | 23 |
@model.get('who').on('change:name', @render) |
22 | 24 |
|
23 |
- fireCloseChatTrigger: -> |
|
25 |
+ closeChat: -> |
|
26 |
+ # zatvorenie musi prebehnut ako prva akcia, |
|
27 |
+ # lebo zavisi na poradi a eventy mi nezarucia spravne poradie |
|
28 |
+ @destroy() |
|
29 |
+ |
|
30 |
+ @isClosingTab = true |
|
24 | 31 |
Backbone.Events.trigger('closeChat', @model) |
25 | 32 |
|
26 | 33 |
setActive: -> |
... | ... |
@@ -57,9 +64,10 @@ class Xmpp.Views.Tabbar.TabView extends Backbone.View |
57 | 57 |
@chatWindow.render() |
58 | 58 |
|
59 | 59 |
destroy: -> |
60 |
- App.debug 'destroy chatWindow and tab' |
|
61 | 60 |
if @active |
61 |
+ App.debug 'destroy chatWindow' |
|
62 | 62 |
@chatWindow.remove() |
63 |
+ App.debug 'destroy tab' |
|
63 | 64 |
@remove() |
64 | 65 |
|
65 | 66 |
hideChat: -> |
... | ... |
@@ -17,7 +17,12 @@ class Xmpp.Views.Tabbar.TabbarView extends Backbone.View |
17 | 17 |
_tab.model == chat |
18 | 18 |
) |
19 | 19 |
|
20 |
- @closeTab(tab) if tab |
|
20 |
+ if tab |
|
21 |
+ @removeTab(tab) |
|
22 |
+ |
|
23 |
+ if tab == @activeTab |
|
24 |
+ App.Collections.contacts.moveToInactiveList('all') |
|
25 |
+ @openFirstTab() |
|
21 | 26 |
) |
22 | 27 |
|
23 | 28 |
Backbone.Events.on('removeContact', (contact) => |
... | ... |
@@ -58,15 +63,9 @@ class Xmpp.Views.Tabbar.TabbarView extends Backbone.View |
58 | 58 |
App.debug 'zakryvam chat window' |
59 | 59 |
@activeTab.hideChat() |
60 | 60 |
|
61 |
- closeTab: (tab) -> |
|
62 |
- @removeTab(tab) |
|
63 |
- |
|
64 |
- if tab == @activeTab |
|
65 |
- firstTab = @selectFirstTab() |
|
66 |
- if firstTab |
|
67 |
- App.debug 'fire openChat' |
|
68 |
- Backbone.Events.trigger('openChat', firstTab.model) |
|
69 |
- #TODO: vybrat naposledy pouzity tab |
|
61 |
+ openFirstTab: -> |
|
62 |
+ firstTab = @selectFirstTab() |
|
63 |
+ Backbone.Events.trigger('openChat', firstTab.model) if firstTab |
|
70 | 64 |
|
71 | 65 |
removeTab: (tab) -> |
72 | 66 |
@tabs = _.without(@tabs, tab) |
... | ... |
@@ -76,4 +75,7 @@ class Xmpp.Views.Tabbar.TabbarView extends Backbone.View |
76 | 76 |
return this |
77 | 77 |
|
78 | 78 |
selectFirstTab: -> |
79 |
- _.first(@tabs) |
|
80 | 79 |
\ No newline at end of file |
80 |
+ _.first(@tabs) |
|
81 |
+ |
|
82 |
+ isEmpty: -> |
|
83 |
+ _.isEmpty(@tabs) |
|
81 | 84 |
\ No newline at end of file |