| ... | ... |
@@ -12,14 +12,23 @@ this.App = |
| 12 | 12 |
|
| 13 | 13 |
UI: |
| 14 | 14 |
setAutoHeight: -> |
| 15 |
- windowHeight = $(window).height() |
|
| 15 |
+ App.UI.resizeRoster() |
|
| 16 |
+ App.UI.resizeMessages() |
|
| 17 |
+ |
|
| 18 |
+ resizeRoster: -> |
|
| 16 | 19 |
if (windowHeight < $('.roster').css('min-height').replace(/[^-\d\.]/g, ''))
|
| 17 | 20 |
return |
| 18 | 21 |
|
| 22 |
+ windowHeight = $(window).height() |
|
| 19 | 23 |
toolboxHeight = $("#height-setter-1 .toolbox").height()
|
| 20 |
- $("#height-setter-1").css({height: windowHeight - toolboxHeight - 70})
|
|
| 21 |
- $("#height-setter-1 .friends").css({height: windowHeight - toolboxHeight - 100})
|
|
| 22 |
- $("#height-setter-2").css({height: windowHeight - $('#tabbar').outerHeight() - $('#msg-writer').outerHeight() - 57})
|
|
| 24 |
+ $(".friends").css({height: windowHeight - toolboxHeight - $('#js-me').height() - 40})
|
|
| 25 |
+ $("#height-setter-1").css({height: windowHeight - toolboxHeight - $('#js-active-friends').height() - 120})
|
|
| 26 |
+ |
|
| 27 |
+ resizeMessages: -> |
|
| 28 |
+ windowHeight = $(window).height() |
|
| 29 |
+ $("#height-setter-2").css({height: windowHeight - $('#tabbar').outerHeight() - $('#msg-writer').outerHeight() - 62})
|
|
| 30 |
+ messagesContainer = $('.messages')
|
|
| 31 |
+ messagesContainer.animate(scrollTop: messagesContainer.height(), 'fast') |
|
| 23 | 32 |
|
| 24 | 33 |
filterContacts: (searchTerm) -> |
| 25 | 34 |
App.Collections.contacts.filter(searchTerm) |
| ... | ... |
@@ -246,7 +255,6 @@ this.App = |
| 246 | 246 |
) |
| 247 | 247 |
|
| 248 | 248 |
tab.chatWindow.appendMessage(contact, new Date(), result.message) |
| 249 |
- tab.chatWindow.log(message) |
|
| 250 | 249 |
) |
| 251 | 250 |
|
| 252 | 251 |
Models: |
| ... | ... |
@@ -50,6 +50,7 @@ class Xmpp.Collections.ContactsCollection extends Backbone.Collection |
| 50 | 50 |
@moveToInactiveList('all')
|
| 51 | 51 |
# App.debug chat |
| 52 | 52 |
@moveToActiveList(chat.get('withWhom'))
|
| 53 |
+ Backbone.Events.trigger('resizeWorkspace')
|
|
| 53 | 54 |
) |
| 54 | 55 |
|
| 55 | 56 |
Backbone.Events.on('closeChat', (chat) =>
|
| ... | ... |
@@ -59,6 +60,7 @@ class Xmpp.Collections.ContactsCollection extends Backbone.Collection |
| 59 | 59 |
appendContact: (contact) -> |
| 60 | 60 |
App.debug ['apppend', contact] |
| 61 | 61 |
@friendsList.appendContact(contact) |
| 62 |
+ Backbone.Events.trigger('resizeWorkspace')
|
|
| 62 | 63 |
|
| 63 | 64 |
mergeContacts: (contact) -> |
| 64 | 65 |
App.debug ['merging contacts', contact] |
| ... | ... |
@@ -123,11 +125,13 @@ class Xmpp.Collections.ContactsCollection extends Backbone.Collection |
| 123 | 123 |
@remove(contact) |
| 124 | 124 |
|
| 125 | 125 |
# ignore 'unsubscribe' type of action |
| 126 |
+ Backbone.Events.trigger('resizeWorkspace')
|
|
| 126 | 127 |
|
| 127 | 128 |
# toto sem asi nepatri, ale asi do views. Nic to v skutocnosti nerobi s modelmi. |
| 128 | 129 |
filter: (searchTerm) -> |
| 129 | 130 |
@friendsList.filter(searchTerm) |
| 130 | 131 |
@activeList.filter(searchTerm) |
| 132 |
+ Backbone.Events.trigger('resizeWorkspace')
|
|
| 131 | 133 |
|
| 132 | 134 |
findByJid: (jid) -> |
| 133 | 135 |
@get(jid) |
| ... | ... |
@@ -16,10 +16,7 @@ class Xmpp.Views.Chat.WindowView extends Backbone.View |
| 16 | 16 |
@historyStack = [] |
| 17 | 17 |
|
| 18 | 18 |
render: -> |
| 19 |
- historyStackHtml = _.map(@historyStack, (view) -> |
|
| 20 |
- view.render().el.outerHTML |
|
| 21 |
- ) |
|
| 22 |
- $(@el).html(@template(showWriter: true, history: historyStackHtml)) |
|
| 19 |
+ $(@el).html(@template(showWriter: true)) |
|
| 23 | 20 |
@show() |
| 24 | 21 |
return this |
| 25 | 22 |
|
| ... | ... |
@@ -72,12 +69,5 @@ class Xmpp.Views.Chat.WindowView extends Backbone.View |
| 72 | 72 |
|
| 73 | 73 |
appendMessage: (user, date, msg) -> |
| 74 | 74 |
messageView = new Xmpp.Views.Chat.MessageView(user: user, date: date, message: msg) |
| 75 |
- $(@el).find('#msg-writer').before(messageView.render().el)
|
|
| 76 |
- @log(messageView) |
|
| 77 |
- |
|
| 78 |
- log: (view) -> |
|
| 79 |
- if (@historyStack.length + 1 >= @maxHistoryLength) |
|
| 80 |
- @historyStack = @historyStack.slice(@historyStack.length - @maxHistoryLength + 1) |
|
| 81 |
- |
|
| 82 |
- @historyStack.push(view) |
|
| 83 |
-# App.debug @historyStack |
|
| 75 |
+ $(@el).find('.messages').append(messageView.render().el)
|
|
| 76 |
+ App.UI.resizeMessages() |
|
| 84 | 77 |
\ No newline at end of file |
| ... | ... |
@@ -198,8 +198,8 @@ |
| 198 | 198 |
|
| 199 | 199 |
.friends {
|
| 200 | 200 |
height: inherit; |
| 201 |
- overflow-x: hidden; |
|
| 202 |
- overflow-y: auto; |
|
| 201 |
+ //overflow-x: hidden; |
|
| 202 |
+ //overflow-y: auto; |
|
| 203 | 203 |
|
| 204 | 204 |
.group-header {
|
| 205 | 205 |
margin: 16px 3px 3px; |
| ... | ... |
@@ -447,6 +447,7 @@ |
| 447 | 447 |
padding: 9px; |
| 448 | 448 |
min-height: 367px; |
| 449 | 449 |
width: 730px; |
| 450 |
+ position: relative; |
|
| 450 | 451 |
|
| 451 | 452 |
.event {
|
| 452 | 453 |
color: $status-color; |
| ... | ... |
@@ -16,14 +16,14 @@ |
| 16 | 16 |
.leftside.left |
| 17 | 17 |
.roster.border.no-top-border.top-border |
| 18 | 18 |
.my-info#js-me |
| 19 |
- .wrap#height-setter-1 |
|
| 20 |
- .friends |
|
| 21 |
- #js-active-friends |
|
| 19 |
+ .friends |
|
| 20 |
+ #js-active-friends |
|
| 21 |
+ .wrap#height-setter-1 |
|
| 22 | 22 |
#js-inactive-friends |
| 23 |
- .toolbox |
|
| 24 |
- %input#js-search-contacts{type: 'search', placeholder: "#{I18n.t('chat.roster.search')}", name: 'contact'}
|
|
| 25 |
- %a{ href: '#'}
|
|
| 26 |
- %span.icon-cog |
|
| 23 |
+ .toolbox |
|
| 24 |
+ %input#js-search-contacts{type: 'search', placeholder: "#{I18n.t('chat.roster.search')}", name: 'contact'}
|
|
| 25 |
+ %a{ href: '#'}
|
|
| 26 |
+ %span.icon-cog |
|
| 27 | 27 |
.chatting-window.left.rightside |
| 28 | 28 |
.tabbar#tabbar |
| 29 | 29 |
.wrap#js-tabbar |