diff options
| author | Jules Laplace <jules@okfoc.us> | 2015-08-06 17:01:22 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2015-08-06 17:01:22 -0400 |
| commit | 3427003fedae990c689841ac47f1d421a3f3d4ae (patch) | |
| tree | 65bcfa90152cf237c58a8c0088d406857d3b7570 /public | |
| parent | 6276fd8df4a0faa37b92496a6f47a35ba8312de6 (diff) | |
whole state revives on reload..
Diffstat (limited to 'public')
| -rw-r--r-- | public/js/lib/bg.js | 19 | ||||
| -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 |
4 files changed, 32 insertions, 3 deletions
diff --git a/public/js/lib/bg.js b/public/js/lib/bg.js index 2bcd284..4d6dfb8 100644 --- a/public/js/lib/bg.js +++ b/public/js/lib/bg.js @@ -1,11 +1,20 @@ var bg = (function(){ var bg = {} + var transitioning = false bg.el = document.getElementById("bg") bg.change = function(picture){ + bg.picture = picture + var img = new Image () img.src = picture.url + + transitioning = true + if (transitioning) { + bg.update() + return + } oktween.add({ obj: bg.el.style, from: { opacity: 1 }, @@ -13,16 +22,22 @@ var bg = (function(){ easing: "circ_in", duration: 200, finished: function(){ - bg.el.style.backgroundImage = "url(" + picture.url + ")" - bg.el.className = picture.tile ? "tile" : "" + bg.update() } }).then({ delay: 500, to: { opacity: 1 }, easing: "circ_in", duration: 200, + finished: function(){ + transitioning = false + } }) } + bg.update = function(){ + bg.el.style.backgroundImage = "url(" + bg.picture.url + ")" + bg.el.className = bg.picture.tile ? "tile" : "" + } return bg })()
\ No newline at end of file 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) }) }, |
