summaryrefslogtreecommitdiff
path: root/public/js/lib/chat.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/js/lib/chat.js')
-rw-r--r--public/js/lib/chat.js21
1 files changed, 19 insertions, 2 deletions
diff --git a/public/js/lib/chat.js b/public/js/lib/chat.js
index 6c227eb..0968418 100644
--- a/public/js/lib/chat.js
+++ b/public/js/lib/chat.js
@@ -3,29 +3,46 @@ var ChatView = View.extend({
template: $("#collaborator-template").html(),
events: {
- "submit form": "send"
+ "submit form": "send",
+ "scroll #messages": "scroll",
},
initialize: function(){
this.$msg = this.$("#message")
this.$messages = this.$("#messages")
+ this.messages = this.$messages.get(0)
},
add: function(msg){
var $el = $( this.template )
$el.find(".nick").html(msg.nick)
$el.find(".msg").html(msg.msg)
+ this.$messages.append($el)
+ if (! this.scrolled) {
+ this.scrollToBottom()
+ }
},
send: function(){
+ var val = this.$msg.sanitize()
+ if (! val) return
var msg = {}
msg.room = room.name()
- msg.msg =
+ msg.msg = val
+ msg.nick = user.username
// app.socket.send("message", msg)
},
empty: function(){
this.$messages.empty()
+ },
+
+ scrolled: false,
+ scroll: function(){
+ this.scrolled = (this.messages.scrollTop > this.messages.scrollHeight - this.$el.height() - 100)
+ },
+ scrollToBottom: function(){
+ this.messages.scrollTop = document.body.scrollHeight
}
})