diff options
Diffstat (limited to 'public/js/lib/views/room')
| -rw-r--r-- | public/js/lib/views/room/chat.js | 13 | ||||
| -rw-r--r-- | public/js/lib/views/room/room.js | 2 | ||||
| -rw-r--r-- | public/js/lib/views/room/userlist.js | 1 |
3 files changed, 15 insertions, 1 deletions
diff --git a/public/js/lib/views/room/chat.js b/public/js/lib/views/room/chat.js index 0932e47..aadd9bc 100644 --- a/public/js/lib/views/room/chat.js +++ b/public/js/lib/views/room/chat.js @@ -32,6 +32,19 @@ var ChatView = View.extend({ } }, + addMany: function(msgs){ + var base = this + var wasScrolled = this.scrolled + this.scrolled = true + msgs.forEach(function(msg){ + base.add(msg) + }) + this.scrolled = wasScrolled + if (! this.scrolled) { + this.scrollToBottom() + } + }, + send: function(e){ e && e.preventDefault() var val = this.$msg.sanitize() diff --git a/public/js/lib/views/room/room.js b/public/js/lib/views/room/room.js index f8b6324..88f5b20 100644 --- a/public/js/lib/views/room/room.js +++ b/public/js/lib/views/room/room.js @@ -17,7 +17,7 @@ var RoomView = View.extend({ app.socket.on("welcome", function(room){ console.log(room) - room.messages.forEach(base.chat.add) + base.chat.addMany( room.messages ) base.userlist.users = room.users base.userlist.update() base.settings.update(room.settings) diff --git a/public/js/lib/views/room/userlist.js b/public/js/lib/views/room/userlist.js index 09b911b..43a3a1f 100644 --- a/public/js/lib/views/room/userlist.js +++ b/public/js/lib/views/room/userlist.js @@ -23,6 +23,7 @@ var UserlistView = View.extend({ this.$el.empty() Object.keys(base.users).sort().forEach(function(nick){ var el = document.createElement("div") + el.innerHTML = nick base.el.appendChild(el) }) }, |
