summaryrefslogtreecommitdiff
path: root/public/js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-08-06 17:01:22 -0400
committerJules Laplace <jules@okfoc.us>2015-08-06 17:01:22 -0400
commit3427003fedae990c689841ac47f1d421a3f3d4ae (patch)
tree65bcfa90152cf237c58a8c0088d406857d3b7570 /public/js
parent6276fd8df4a0faa37b92496a6f47a35ba8312de6 (diff)
whole state revives on reload..
Diffstat (limited to 'public/js')
-rw-r--r--public/js/lib/bg.js19
-rw-r--r--public/js/lib/views/room/chat.js13
-rw-r--r--public/js/lib/views/room/room.js2
-rw-r--r--public/js/lib/views/room/userlist.js1
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)
})
},