| ... | ... |
@@ -15,7 +15,10 @@ class Xmpp.Collections.ChatsCollection extends Backbone.Collection |
| 15 | 15 |
initialize: -> |
| 16 | 16 |
_.bindAll(this) |
| 17 | 17 |
|
| 18 |
- @on("add", @newChat)
|
|
| 18 |
+ @on('add', @newChat)
|
|
| 19 |
+ Backbone.Events.on('closeChat', (tab, chat) =>
|
|
| 20 |
+ @removeChat(chat) |
|
| 21 |
+ ) |
|
| 19 | 22 |
|
| 20 | 23 |
newChat: (chat) -> |
| 21 | 24 |
# App.debug ['adding chat to chatCollection', chat] |
| ... | ... |
@@ -30,7 +30,16 @@ class Xmpp.Collections.ContactsCollection extends Backbone.Collection |
| 30 | 30 |
@activeList = new Xmpp.Views.Contacts.ListView(collection: this, attributes: {title: 'chat.roster.chat-group', id: 'js-active-friends'})
|
| 31 | 31 |
@activeList.setAsActiveChatGroup() |
| 32 | 32 |
|
| 33 |
- @on("add", @appendContact)
|
|
| 33 |
+ @on('add', @appendContact)
|
|
| 34 |
+ |
|
| 35 |
+ Backbone.Events.on('openChat', (chat) =>
|
|
| 36 |
+ @moveToInactiveList('all')
|
|
| 37 |
+ @moveToActiveList(chat.get('withWhom'))
|
|
| 38 |
+ ) |
|
| 39 |
+ |
|
| 40 |
+ Backbone.Events.on('closeChat', (tab, chat) =>
|
|
| 41 |
+ @moveToInactiveList(chat.get('withWhom'))
|
|
| 42 |
+ ) |
|
| 34 | 43 |
|
| 35 | 44 |
appendContact: (contact) -> |
| 36 | 45 |
@friendsList.appendContact(contact) |
| ... | ... |
@@ -28,7 +28,7 @@ class Xmpp.Views.Contacts.ContactView extends Backbone.View |
| 28 | 28 |
belongsToActiveList: -> |
| 29 | 29 |
@parentList.activeGroup == true |
| 30 | 30 |
|
| 31 |
- startChat: (event) -> |
|
| 31 |
+ startChat: -> |
|
| 32 | 32 |
if @belongsToActiveList() |
| 33 | 33 |
return |
| 34 | 34 |
|
| ... | ... |
@@ -39,14 +39,9 @@ class Xmpp.Views.Contacts.ContactView extends Backbone.View |
| 39 | 39 |
|
| 40 | 40 |
chat = App.Collections.chats.find(who, withWhom) |
| 41 | 41 |
if (! chat) |
| 42 |
-# App.debug ['not found in opened chats, creating new', chat] |
|
| 42 |
+ App.debug ['not found in opened chats, creating new'] |
|
| 43 | 43 |
chat = new Xmpp.Models.Chat(who: who, withWhom: withWhom) |
| 44 | 44 |
App.Collections.chats.add(chat) |
| 45 | 45 |
|
| 46 |
- App.Views.tabbar.addOrSelect(chat) |
|
| 47 |
- App.Collections.contacts.moveToInactiveList('all')
|
|
| 48 |
- App.Collections.contacts.moveToActiveList(withWhom) |
|
| 49 |
-# @openChat(chat) |
|
| 50 |
- |
|
| 51 |
- openChat: (chat) -> |
|
| 46 |
+ Backbone.Events.trigger('openChat', chat)
|
|
| 52 | 47 |
|
| ... | ... |
@@ -27,9 +27,7 @@ class Xmpp.Views.Tabbar.TabView extends Backbone.View |
| 27 | 27 |
return this |
| 28 | 28 |
|
| 29 | 29 |
closeChat: -> |
| 30 |
- App.Views.tabbar.removeTab(this) |
|
| 31 |
- App.Collections.chats.removeChat(@model) |
|
| 32 |
- App.Collections.contacts.moveToInactiveList(@model.get('withWhom'))
|
|
| 30 |
+ Backbone.Events.trigger('closeChat', this, @model)
|
|
| 33 | 31 |
@remove() |
| 34 | 32 |
|
| 35 | 33 |
hasParticipants: (who, withWhom) -> |