Corrected long last page with dynamic reloading
This commit is contained in:
parent
837baa6673
commit
5006d1d71d
|
@ -1270,7 +1270,13 @@ DBReq.UserVerifier.prototype.execute = function() {
|
||||||
},
|
},
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
var ok = result.reduce(function(prev, next) { return prev && next; });
|
var ok = result.reduce(function(prev, next) { return prev && next; });
|
||||||
self.finish(ok);
|
self.client.query(
|
||||||
|
"UPDATE Users SET valid = $1 WHERE id = $2",
|
||||||
|
[ok, self.userId],
|
||||||
|
function(err, result) {
|
||||||
|
self.finish(ok);
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1286,7 +1292,40 @@ DBReq.UserVerifier.prototype.finish = function(finalResult) {
|
||||||
this.finishAction(finalResult);
|
this.finishAction(finalResult);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
DBReq.UserGetter = function(userId, finishAction) {
|
||||||
|
this.userId = userId;
|
||||||
|
this.finishAction = finishAction;
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
pg.connect(pgc.url, function(err, client, release) {
|
||||||
|
self.client = client;
|
||||||
|
self.release = release;
|
||||||
|
|
||||||
|
self.execute();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
DBReq.UserGetter.prototype.execute = function() {
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
this.client.query(
|
||||||
|
'SELECT worker_id AS "workerId", valid FROM Users WHERE id = $1',
|
||||||
|
[self.userId],
|
||||||
|
function(err, result) {
|
||||||
|
self.finish(result.rows[0].workerId, result.rows[0].valid);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
DBReq.UserGetter.prototype.finish = function(workerId, valid) {
|
||||||
|
|
||||||
|
this.release();
|
||||||
|
this.release = null;
|
||||||
|
this.client = null;
|
||||||
|
|
||||||
|
this.finishAction(workerId, valid);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Try to get a user by id, and creates it if it doesn't exists
|
* Try to get a user by id, and creates it if it doesn't exists
|
||||||
|
@ -1386,4 +1425,8 @@ DBReq.verifyUser = function(id, callback) {
|
||||||
new DBReq.UserVerifier(id, callback);
|
new DBReq.UserVerifier(id, callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
DBReq.getUser = function(id, callback) {
|
||||||
|
new DBReq.UserGetter(id, callback);
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = DBReq;
|
module.exports = DBReq;
|
||||||
|
|
|
@ -3,24 +3,23 @@ var vcode = require('../../lib/vcode.js');
|
||||||
|
|
||||||
module.exports.index = function(req, res) {
|
module.exports.index = function(req, res) {
|
||||||
|
|
||||||
db.verifyUser(req.session.userId, function(ok) {
|
// If not micro-worker
|
||||||
|
if (req.session.workerId === undefined) {
|
||||||
|
|
||||||
if (ok) {
|
res.setHead('Content-Type', 'text/html');
|
||||||
|
|
||||||
res.locals.vcode = vcode(req.session.workerId, req.session.campaignIp);
|
res.render('normal.jade', res.locals, function(err, result) {
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
res.locals.workerId = req.session.workerId;
|
|
||||||
req.session = null;
|
|
||||||
res.locals.session = null;
|
|
||||||
|
|
||||||
res.setHeader('Content-Type', 'text/html');
|
|
||||||
|
|
||||||
res.render('index.jade', res.locals, function(err, result) {
|
|
||||||
res.send(result);
|
res.send(result);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
res.setHeader('Content-Type', 'text/html');
|
||||||
|
|
||||||
|
res.render('vcode.jade', res.locals, function(err, result) {
|
||||||
|
console.log(err);
|
||||||
|
res.send(result);
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,8 +6,3 @@ block content
|
||||||
source(src="/static/data/music/thankyou.ogg")
|
source(src="/static/data/music/thankyou.ogg")
|
||||||
source(src="/static/data/music/thankyou.mp3")
|
source(src="/static/data/music/thankyou.mp3")
|
||||||
|
|
||||||
if (vcode !== undefined)
|
|
||||||
p Your vcode is #{vcode}.
|
|
||||||
else if (workerId !== undefined)
|
|
||||||
p You have no vcode because you're bad
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
extends ../../../views/base.jade
|
||||||
|
|
||||||
|
block content
|
||||||
|
h1 Thank you for everything !
|
||||||
|
audio(autoplay)
|
||||||
|
source(src="/static/data/music/thankyou.ogg")
|
||||||
|
source(src="/static/data/music/thankyou.mp3")
|
||||||
|
|
||||||
|
p We are verifying that the experiment was correctly done...
|
||||||
|
#vcode
|
||||||
|
|
||||||
|
script.
|
||||||
|
function tryVcode() {
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.open('GET', '/vcode', true);
|
||||||
|
xhr.onreadystatechange = function (aEvt) {
|
||||||
|
if (xhr.readyState == 4) {
|
||||||
|
if(xhr.status == 200) {
|
||||||
|
changeHtml(xhr.responseText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
xhr.send(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
function changeHtml(vcode) {
|
||||||
|
if (vcode === 'not ready') {
|
||||||
|
setTimeout(tryVcode, 1000);
|
||||||
|
} else if (vcode === 'no vcode') {
|
||||||
|
$('#vcode').html('Sorry, the experiment has not been correctly done ! You have no vcode.');
|
||||||
|
} else {
|
||||||
|
$('#vcode').html('Your vcode is ' + vcode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tryVcode();
|
|
@ -0,0 +1,39 @@
|
||||||
|
var db = require('../prototype/dbrequests.js');
|
||||||
|
var vcode = require('../../lib/vcode.js');
|
||||||
|
|
||||||
|
module.exports.index = function(req, res) {
|
||||||
|
|
||||||
|
// If not micro-worker
|
||||||
|
if (req.session.workerId === undefined) {
|
||||||
|
|
||||||
|
res.setHeader('Content-Type', 'text/html');
|
||||||
|
|
||||||
|
res.send(null);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Else, check that exp was correctly done
|
||||||
|
db.getUser(req.session.userId, function(workerId, ok) {
|
||||||
|
|
||||||
|
res.setHeader('Content-Type', 'text/html');
|
||||||
|
|
||||||
|
if (ok === true) {
|
||||||
|
|
||||||
|
var code = vcode(req.session.workerId);
|
||||||
|
res.send(code);
|
||||||
|
|
||||||
|
} else if (ok === false) {
|
||||||
|
|
||||||
|
res.send('no vcode');
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
res.send('not ready');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
module.exports = {
|
||||||
|
'/vcode': 'index',
|
||||||
|
};
|
|
@ -1,16 +1,20 @@
|
||||||
var pg = require('pg');
|
var pg = require('pg');
|
||||||
var pgc = require('../../private.js');
|
var pgc = require('../../private.js');
|
||||||
|
var db = require('../../controllers/prototype/dbrequests.js');
|
||||||
var mail = require('../../lib/mail.js');
|
var mail = require('../../lib/mail.js');
|
||||||
var Log = require('../../lib/NodeLog.js');
|
var Log = require('../../lib/NodeLog.js');
|
||||||
|
|
||||||
module.exports.index = function(req, res) {
|
module.exports.index = function(req, res) {
|
||||||
|
|
||||||
|
db.verifyUser(req.session.userId, function() {});
|
||||||
|
|
||||||
var text = '';
|
var text = '';
|
||||||
|
|
||||||
for (var i in req.body) {
|
for (var i in req.body) {
|
||||||
text += i + ' : ' + req.body[i] + '\n';
|
text += i + ' : ' + req.body[i] + '\n';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pg.connect(pgc.url, function(err, client, release) {
|
pg.connect(pgc.url, function(err, client, release) {
|
||||||
|
|
||||||
client.query(
|
client.query(
|
||||||
|
|
|
@ -42,7 +42,8 @@ CREATE TABLE Users(
|
||||||
age VARCHAR(10),
|
age VARCHAR(10),
|
||||||
rating INT,
|
rating INT,
|
||||||
lasttime INT,
|
lasttime INT,
|
||||||
male BOOLEAN
|
male BOOLEAN,
|
||||||
|
valid BOOLEAN DEFAULT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Scene(
|
CREATE TABLE Scene(
|
||||||
|
|
Loading…
Reference in New Issue