From d941ec46ee1d3842387837377140e8d1fc854b17 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 11:56:07 -0500 Subject: dividing everything by devicePixelRatio --- public/assets/javascripts/mx/mx.js | 14 +++++++------- public/assets/javascripts/mx/primitives/mx.text.js | 2 +- public/assets/javascripts/mx/primitives/mx.video.js | 4 ++-- public/assets/javascripts/mx/primitives/mx.vimeo.js | 4 ++-- public/assets/javascripts/mx/primitives/mx.youtube.js | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/public/assets/javascripts/mx/mx.js b/public/assets/javascripts/mx/mx.js index 40a5f2e..d59a551 100644 --- a/public/assets/javascripts/mx/mx.js +++ b/public/assets/javascripts/mx/mx.js @@ -162,24 +162,24 @@ var MX = MX || (function (undefined) { Object.defineProperty(this, 'width', { get: function () { return width - || parseInt(self.el.style.width, 10) + || parseInt(self.el.style.width*devicePixelRatio, 10) || 0 }, set: function (val) { width = val - this.el.style.width = width + 'px' + this.el.style.width = (width/devicePixelRatio) + 'px' } }) Object.defineProperty(this, 'height', { get: function () { return height - || parseInt(self.el.style.height, 10) + || parseInt(self.el.style.height*devicePixelRatio, 10) || 0 }, set: function (val) { height = val - this.el.style.height = height + 'px' + this.el.style.height = (height/devicePixelRatio) + 'px' } }) } @@ -302,9 +302,9 @@ var MX = MX || (function (undefined) { + (-this.y).toFixed(floatPrecision) + 'px,' + (-this.z).toFixed(floatPrecision) + 'px) ' + 'scale3d(' - + this.scaleX.toFixed(floatPrecision) + ',' - + this.scaleY.toFixed(floatPrecision) + ',' - + this.scaleZ.toFixed(floatPrecision) + ') ' + + (devicePixelRatio * this.scaleX).toFixed(floatPrecision) + ',' + + (devicePixelRatio * this.scaleY).toFixed(floatPrecision) + ',' + + (devicePixelRatio * this.scaleZ).toFixed(floatPrecision) + ') ' if (rotationTranslation) { transformString += rotationTranslation.before diff --git a/public/assets/javascripts/mx/primitives/mx.text.js b/public/assets/javascripts/mx/primitives/mx.text.js index a0f9283..6b5681b 100644 --- a/public/assets/javascripts/mx/primitives/mx.text.js +++ b/public/assets/javascripts/mx/primitives/mx.text.js @@ -47,7 +47,7 @@ MX.Text = MX.Object3D.extend({ if (! font.color || font.color[0] == "#") { font.color = [0,0,0] } this.inner.style.fontFamily = "'" + font.family + "',sans-serif" - this.el.style.fontSize = (2 * font.size) + "pt" + this.el.style.fontSize = (2 * font.size / devicePixelRatio) + "pt" this.el.style.textAlign = font.align this.el.style.color = rgb_string(font.color) }, diff --git a/public/assets/javascripts/mx/primitives/mx.video.js b/public/assets/javascripts/mx/primitives/mx.video.js index 333e1d2..c281f02 100644 --- a/public/assets/javascripts/mx/primitives/mx.video.js +++ b/public/assets/javascripts/mx/primitives/mx.video.js @@ -31,8 +31,8 @@ MX.Video = MX.Object3D.extend({ this.player.addEventListener("loadedmetadata", this.ready.bind(this)) this.player.addEventListener("error", this.error.bind(this)) this.player.addEventListener("ended", this.finished.bind(this)) - this.player.width = this.width - this.player.height = this.height + this.player.width = "100%" + this.player.height = "100%" this.player.src = this.media.url this.player.load() diff --git a/public/assets/javascripts/mx/primitives/mx.vimeo.js b/public/assets/javascripts/mx/primitives/mx.vimeo.js index e71b105..fe5ce86 100644 --- a/public/assets/javascripts/mx/primitives/mx.vimeo.js +++ b/public/assets/javascripts/mx/primitives/mx.vimeo.js @@ -32,8 +32,8 @@ MX.Vimeo = MX.Object3D.extend({ preload.id = uid preload.setAttribute("src", "//player.vimeo.com/video/" + this.media.token + "?api=1&badge=0&controls=0branding=0&byline=0&portrait=0&title=0&" + loop + "&player_id=" + uid) preload.style.backgroundImage = "url(" + this.media.thumbnail + ")" - preload.style.width = this.media.width + "px" - preload.style.height = this.media.height + "px" + preload.style.width = "100%" + preload.style.height = "100%" preload.style.border = "0" preload.style.pointerEvents = "none" preload.className = "preload" diff --git a/public/assets/javascripts/mx/primitives/mx.youtube.js b/public/assets/javascripts/mx/primitives/mx.youtube.js index 3f342a1..5c92378 100644 --- a/public/assets/javascripts/mx/primitives/mx.youtube.js +++ b/public/assets/javascripts/mx/primitives/mx.youtube.js @@ -31,8 +31,8 @@ MX.Youtube = MX.Object3D.extend({ preload.id = uid preload.style.backgroundImage = "url(" + this.media.thumbnail + ")" preload.style.backgroundSize = "cover" - preload.style.width = this.media.width + "px" - preload.style.height = this.media.height + "px" + preload.style.width = "100%" + preload.style.height = "100%" preload.style.pointerEvents = "none" preload.style.position = "absolute" preload.style.top = "0" -- cgit v1.2.3-70-g09d2 From 47c3a54e2e5935e4db526637ef3f108bd98fce9c Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 12:40:17 -0500 Subject: add repl script, preloads schema --- server/repl.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 server/repl.js diff --git a/server/repl.js b/server/repl.js new file mode 100644 index 0000000..ba94d45 --- /dev/null +++ b/server/repl.js @@ -0,0 +1,17 @@ +var DB_HOST = 'localhost' +var mongoose = require('mongoose') +mongoose.connect('mongodb://' + DB_HOST + '/vvalls', {}, function(){ + console.log("vvalls: connected to", DB_HOST) + var repl = require("repl").start({}); + [ "./lib/schemas/User", + "./lib/schemas/Collaborator", + "./lib/schemas/Documentation", + "./lib/schemas/Layout", + "./lib/schemas/Media", + "./lib/schemas/Project", + ].forEach(function(modName){ + // console.log(name, modName) + var namez = modName.split("/"), name = namez[namez.length-1]; + repl.context[name] = require(modName); + }); +}); -- cgit v1.2.3-70-g09d2 From 5d3b848b729c06bda5d4d6d3834b110dcbb3ef71 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:08:04 -0500 Subject: use req.ips[0] --- server/lib/auth/index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/lib/auth/index.js b/server/lib/auth/index.js index 0c46105..79f1e34 100644 --- a/server/lib/auth/index.js +++ b/server/lib/auth/index.js @@ -86,9 +86,9 @@ var auth = { return res.redirect('/auth/usernameTaken'); } if (! user.created_ip) { - user.created_ip = util.ip2num( req.ip ) + user.created_ip = util.ip2num( req.ips[0] ) } - user.last_ip = util.ip2num( req.ip ) + user.last_ip = util.ip2num( req.ips[0] ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -111,7 +111,7 @@ var auth = { } user.last_seen = new Date () - user.last_ip = util.ip2num( req.ip ) + user.last_ip = util.ip2num( req.ips[0] ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -171,8 +171,8 @@ var auth = { displayName: username, password: password, email: email, - created_ip: util.ip2num( req.ip ), - last_ip: util.ip2num( req.ip ), + created_ip: util.ip2num( req.ips[0] ), + last_ip: util.ip2num( req.ips[0] ), created_at: new Date (), last_seen: new Date (), } -- cgit v1.2.3-70-g09d2 From 9d5c4dcc8e45e96ee9a976ca337a9d389750fb8a Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:10:03 -0500 Subject: sanity check --- server/lib/util.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/lib/util.js b/server/lib/util.js index 1f63a30..273d7d1 100644 --- a/server/lib/util.js +++ b/server/lib/util.js @@ -45,7 +45,9 @@ util.cleanQuery = function (query) { } util.ip2num = function(dot) { - var d = dot.split('.'); + console.log(dot); + + var d = (dot || "127.0.0.1").split('.'); return ((((((+d[0])*256)+(+d[1]))*256)+(+d[2]))*256)+(+d[3]); } -- cgit v1.2.3-70-g09d2 From 74c1e0ca2b343eb9084a90e7a9490f58cb2c81d1 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:12:00 -0500 Subject: databaseHost --- config.json.example | 1 + server/index.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/config.json.example b/config.json.example index 90df381..6028021 100644 --- a/config.json.example +++ b/config.json.example @@ -3,6 +3,7 @@ "hostName": "lvh.me", "port": 3000, "socketPort": 1337, + "databaseHost": "lvh.me", "pageSize": 10, "env": { "development": 1 } } diff --git a/server/index.js b/server/index.js index 4fbd8d1..e817566 100644 --- a/server/index.js +++ b/server/index.js @@ -20,7 +20,7 @@ var http = require('http'), var app = express() var server -var DATABASE_URI = process.env.MONGOLAB_URI || ('mongodb://' + config.hostName + '/vvalls') +var DATABASE_URI = process.env.MONGOLAB_URI || ('mongodb://' + config.databaseHost + '/vvalls') // -- cgit v1.2.3-70-g09d2 From 668241bbbc5150f8d4f573be9a1b4c17c1d017b6 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:29:02 -0500 Subject: cache x-forwarded-for ip address on session object --- server/index.js | 1 + server/lib/middleware.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/server/index.js b/server/index.js index e817566..9a9323c 100644 --- a/server/index.js +++ b/server/index.js @@ -68,6 +68,7 @@ site.setup = function(){ // Essential middleware // app.all('*', middleware.enableCORS); app.all('*', middleware.ensureLocals); + app.all('*', middleware.ensureIP); server = http.createServer(app) server.listen(app.get('port'), function () { diff --git a/server/lib/middleware.js b/server/lib/middleware.js index 7b37658..ad0d228 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -33,6 +33,15 @@ var middleware = { } next(); }, + + ensureIP: function (req, res, next) { + if (req.ips) { + req.ip = req.session.ip = req.ips[0] + } + else { + req.ip = req.session.ip || "127.0.0.1" + } + }, ensureLocals: function (req, res, next) { res.locals.token = req.csrfToken(); -- cgit v1.2.3-70-g09d2 From 0965d0011f1858adae736cfd4df8e88cf1e24893 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:30:56 -0500 Subject: z --- server/lib/auth/index.js | 10 +++++----- server/lib/middleware.js | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/server/lib/auth/index.js b/server/lib/auth/index.js index 79f1e34..0c46105 100644 --- a/server/lib/auth/index.js +++ b/server/lib/auth/index.js @@ -86,9 +86,9 @@ var auth = { return res.redirect('/auth/usernameTaken'); } if (! user.created_ip) { - user.created_ip = util.ip2num( req.ips[0] ) + user.created_ip = util.ip2num( req.ip ) } - user.last_ip = util.ip2num( req.ips[0] ) + user.last_ip = util.ip2num( req.ip ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -111,7 +111,7 @@ var auth = { } user.last_seen = new Date () - user.last_ip = util.ip2num( req.ips[0] ) + user.last_ip = util.ip2num( req.ip ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -171,8 +171,8 @@ var auth = { displayName: username, password: password, email: email, - created_ip: util.ip2num( req.ips[0] ), - last_ip: util.ip2num( req.ips[0] ), + created_ip: util.ip2num( req.ip ), + last_ip: util.ip2num( req.ip ), created_at: new Date (), last_seen: new Date (), } diff --git a/server/lib/middleware.js b/server/lib/middleware.js index ad0d228..2d24693 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -38,9 +38,10 @@ var middleware = { if (req.ips) { req.ip = req.session.ip = req.ips[0] } - else { + else if (req.session.ip) { req.ip = req.session.ip || "127.0.0.1" } + next() }, ensureLocals: function (req, res, next) { -- cgit v1.2.3-70-g09d2 From 58e1ca092e01da7b13e133a0ea50c9767bd48744 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:35:21 -0500 Subject: session.save --- server/lib/middleware.js | 1 + 1 file changed, 1 insertion(+) diff --git a/server/lib/middleware.js b/server/lib/middleware.js index 2d24693..173701d 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -37,6 +37,7 @@ var middleware = { ensureIP: function (req, res, next) { if (req.ips) { req.ip = req.session.ip = req.ips[0] + req.session.save() } else if (req.session.ip) { req.ip = req.session.ip || "127.0.0.1" -- cgit v1.2.3-70-g09d2 From c9325286ba7fcb38166deff8937105789edfb1d2 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:40:53 -0500 Subject: need to store ip on the session due to haproxy --- server/lib/auth/index.js | 10 +++++----- server/lib/middleware.js | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/server/lib/auth/index.js b/server/lib/auth/index.js index 0c46105..a9a2400 100644 --- a/server/lib/auth/index.js +++ b/server/lib/auth/index.js @@ -86,9 +86,9 @@ var auth = { return res.redirect('/auth/usernameTaken'); } if (! user.created_ip) { - user.created_ip = util.ip2num( req.ip ) + user.created_ip = util.ip2num( req.session.ip ) } - user.last_ip = util.ip2num( req.ip ) + user.last_ip = util.ip2num( req.session.ip ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -111,7 +111,7 @@ var auth = { } user.last_seen = new Date () - user.last_ip = util.ip2num( req.ip ) + user.last_ip = util.ip2num( req.session.ip ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -171,8 +171,8 @@ var auth = { displayName: username, password: password, email: email, - created_ip: util.ip2num( req.ip ), - last_ip: util.ip2num( req.ip ), + created_ip: util.ip2num( req.session.ip ), + last_ip: util.ip2num( req.session.ip ), created_at: new Date (), last_seen: new Date (), } diff --git a/server/lib/middleware.js b/server/lib/middleware.js index 173701d..4848ab0 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -35,13 +35,13 @@ var middleware = { }, ensureIP: function (req, res, next) { - if (req.ips) { + if (req.session.ip) { + req.ip = req.session.ip || "127.0.0.1" + } + else if (req.ips) { req.ip = req.session.ip = req.ips[0] req.session.save() } - else if (req.session.ip) { - req.ip = req.session.ip || "127.0.0.1" - } next() }, -- cgit v1.2.3-70-g09d2