Corrected long last page with dynamic reloading
This commit is contained in:
parent
837baa6673
commit
5006d1d71d
|
@ -1270,11 +1270,17 @@ DBReq.UserVerifier.prototype.execute = function() {
|
|||
},
|
||||
function(err, result) {
|
||||
var ok = result.reduce(function(prev, next) { return prev && next; });
|
||||
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);
|
||||
};
|
||||
|
||||
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
|
||||
|
@ -1386,4 +1425,8 @@ DBReq.verifyUser = function(id, callback) {
|
|||
new DBReq.UserVerifier(id, callback);
|
||||
};
|
||||
|
||||
DBReq.getUser = function(id, callback) {
|
||||
new DBReq.UserGetter(id, callback);
|
||||
}
|
||||
|
||||
module.exports = DBReq;
|
||||
|
|
|
@ -3,24 +3,23 @@ var vcode = require('../../lib/vcode.js');
|
|||
|
||||
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.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.render('normal.jade', res.locals, function(err, 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.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 pgc = require('../../private.js');
|
||||
var db = require('../../controllers/prototype/dbrequests.js');
|
||||
var mail = require('../../lib/mail.js');
|
||||
var Log = require('../../lib/NodeLog.js');
|
||||
|
||||
module.exports.index = function(req, res) {
|
||||
|
||||
db.verifyUser(req.session.userId, function() {});
|
||||
|
||||
var text = '';
|
||||
|
||||
for (var i in req.body) {
|
||||
text += i + ' : ' + req.body[i] + '\n';
|
||||
}
|
||||
|
||||
|
||||
pg.connect(pgc.url, function(err, client, release) {
|
||||
|
||||
client.query(
|
||||
|
|
|
@ -42,7 +42,8 @@ CREATE TABLE Users(
|
|||
age VARCHAR(10),
|
||||
rating INT,
|
||||
lasttime INT,
|
||||
male BOOLEAN
|
||||
male BOOLEAN,
|
||||
valid BOOLEAN DEFAULT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE Scene(
|
||||
|
|
Loading…
Reference in New Issue