summaryrefslogtreecommitdiff
path: root/public/js/lib/views/room
diff options
context:
space:
mode:
Diffstat (limited to 'public/js/lib/views/room')
-rw-r--r--public/js/lib/views/room/chat.js2
-rw-r--r--public/js/lib/views/room/room.js19
-rw-r--r--public/js/lib/views/room/userlist.js20
3 files changed, 28 insertions, 13 deletions
diff --git a/public/js/lib/views/room/chat.js b/public/js/lib/views/room/chat.js
index 058d02d..222522f 100644
--- a/public/js/lib/views/room/chat.js
+++ b/public/js/lib/views/room/chat.js
@@ -9,7 +9,7 @@ var ChatView = View.extend({
"scroll #messages": "scroll",
},
- initialize: function(){
+ initialize: function(socket){
var $msg = this.$msg = this.$("#message")
this.$messages = this.$("#messages")
this.messages = this.$messages.get(0)
diff --git a/public/js/lib/views/room/room.js b/public/js/lib/views/room/room.js
index 10c4d08..3b3b253 100644
--- a/public/js/lib/views/room/room.js
+++ b/public/js/lib/views/room/room.js
@@ -6,20 +6,21 @@ var RoomView = View.extend({
},
initialize: function(name){
- this.name = name
- chat = this.chatView = new ChatView ()
- this.userlist = new UserlistView ()
app.socket = ws.connect(name)
+
+ var base = this
+ this.name = name
+ chat = this.chatView = new ChatView (socket)
+ this.userlist = new UserlistView (socket)
+
app.socket.emit("join", { nick: user.username })
-
- app.socket.on("joined", function(msgs){
- msgs && msgs.forEach(chat.add)
- })
- app.socket.on("messages", function(msgs){
- msgs && msgs.forEach(chat.add)
+ app.socket.on("welcome", function(room){
+ room.messages.forEach(chat.add)
+ base.userlist.users = room.users
+ base.userlist.update()
})
app.socket.on("message", function(msg){
diff --git a/public/js/lib/views/room/userlist.js b/public/js/lib/views/room/userlist.js
index d638a02..600f647 100644
--- a/public/js/lib/views/room/userlist.js
+++ b/public/js/lib/views/room/userlist.js
@@ -5,11 +5,25 @@ var UserlistView = View.extend({
events: {
},
- initialize: function(){
+ users: {},
+ initialize: function(socket){
+ var base = this
+ app.socket.on("joined", function(data){
+ base.users[data.nick] = true
+ base.update()
+ })
+ app.socket.on("parted", function(data){
+ delete base.users[data.nick]
+ base.update()
+ })
},
- update: function(users){
-
+ update: function(){
+ base.el.empty()
+ Object.keys(base.users).sort().forEach(function(nick){
+ var el = document.createElement("div")
+ base.el.appendChild(el)
+ })
},
}) \ No newline at end of file