Save halfway
This commit is contained in:
parent
f02925f808
commit
a1de2bda99
|
@ -0,0 +1,26 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="/static/style.css">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<style>
|
||||
body{
|
||||
margin:0;
|
||||
padding:0;
|
||||
overflow:hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
<title>User study version 3D</title>
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
<div class = "canvas">
|
||||
<canvas id="canvas" width="1920" height="1080">
|
||||
Votre navigateur ne supporte pas les canvas, essayez-en un autre.
|
||||
</canvas>
|
||||
</div>
|
||||
|
||||
|
|
@ -1,28 +1,3 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="/static/style.css">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<style>
|
||||
body{
|
||||
margin:0;
|
||||
padding:0;
|
||||
overflow:hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
<title>User study version 3D</title>
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
<div class = "canvas">
|
||||
<canvas id="canvas" width="1920" height="1080">
|
||||
Votre navigateur ne supporte pas les canvas, essayez-en un autre.
|
||||
</canvas>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="/static/three.js"></script>
|
||||
<script src="/static/LoaderSupport.js"></script>
|
14
server.js
14
server.js
|
@ -9,6 +9,9 @@ async function main() {
|
|||
|
||||
const app = express();
|
||||
|
||||
const HTML_BEGINNING = await fs.readFile(__dirname + '/html/index3D-beginning.html');
|
||||
const HTML_END = await fs.readFile(__dirname + '/html/index3D-end.html');
|
||||
|
||||
//let id = 1;
|
||||
|
||||
// Permet de récupérer les données venant du client.
|
||||
|
@ -16,17 +19,16 @@ async function main() {
|
|||
app.use(bodyParser.json());
|
||||
|
||||
// Page d'accueil.
|
||||
app.get('/', function(req, res) {
|
||||
// On envoie le contenu du fichier index.html.
|
||||
return res.sendFile(__dirname + '/html/index3D.html');
|
||||
app.get('/', async function(req, res) {
|
||||
// On envoie le contenu du fichier index.html avec le uuid généré par le server.
|
||||
let uuidScript = '<script>window.uuid = "' + uuid() + '";</script>';
|
||||
return res.send(HTML_BEGINNING + uuidScript + HTML_END);
|
||||
});
|
||||
|
||||
// Route de récupération des données.
|
||||
app.post('/outputs', async function(req, res) {
|
||||
let id = uuid();
|
||||
|
||||
// Ouverture du fichier en mode append.
|
||||
let file = await fs.open(__dirname + '/outputs/' + id + '.json', 'a');
|
||||
let file = await fs.open(__dirname + '/outputs/' + req.body.uuid + '.json', 'w');
|
||||
|
||||
// Ajout d'une ligne.
|
||||
file.write(JSON.stringify(req.body, undefined, 4));
|
||||
|
|
|
@ -19,7 +19,7 @@ function init_variable(premier_appel){
|
|||
///////////////////////////////////////////////////////
|
||||
// CE QUE L'ON RECUPERE A LA FIN
|
||||
// dictionnaire avec les choix pour TOUS les mesh
|
||||
if (premier_appel){choix = {}}
|
||||
if (premier_appel){choix = { uuid: window.uuid }}
|
||||
// dictionnaire avec les checkbox pour TOUS les mesh
|
||||
checkbox_clicked = {}
|
||||
///////////////////////////////////////////////////////
|
||||
|
@ -35,6 +35,7 @@ function init_variable(premier_appel){
|
|||
|
||||
// Au premier appel on init : les interactions
|
||||
if (premier_appel){interactions = [{"time" : new Date().getTime(), "type": get_message("debut_etude", [])}]}
|
||||
choix.interactions = interactions;
|
||||
|
||||
// Couleur
|
||||
alpha_survol = 0.3
|
||||
|
@ -47,10 +48,10 @@ function init_variable(premier_appel){
|
|||
obj_file_random = shuffle(obj_names)
|
||||
|
||||
// ---> nombre de mesh a visionner AU TOTAL
|
||||
nb_mesh = 10//obj_file_random.length
|
||||
nb_mesh = 2//obj_file_random.length
|
||||
|
||||
// ---> nb analyse demandé
|
||||
nb_analyse_demande = 5
|
||||
nb_analyse_demande = 2
|
||||
|
||||
list_idx_tache =[]
|
||||
for (let p=0; p<nb_mesh; p++){list_idx_tache.push(p+1)}
|
||||
|
@ -322,6 +323,26 @@ function init_data(){
|
|||
|
||||
}
|
||||
|
||||
function enregistrement(callback) {
|
||||
// Création de la requête HTTP à envoyer au serveur.
|
||||
let xhr = new XMLHttpRequest();
|
||||
// Préparation de la requête pour l'envoi en POST vers l'url.
|
||||
xhr.open('POST', '/outputs');
|
||||
// Si on envoie les données de manière classique, il faut configurer le header de cette façon.
|
||||
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
||||
// Ajout du listener pour déclencer la suite lorsque la requête sera terminée.
|
||||
xhr.onreadystatechange = function() {
|
||||
//interactions.push({"time": new Date().getTime(), "type": get_message("fin_eetude", [])})
|
||||
// Si la requête est terminée, et que la réponse n'est pas une erreur.
|
||||
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
|
||||
if (typeof callback === 'function') {
|
||||
callback(xhr);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Envoi de la requête vers le serveur, avec les données.
|
||||
xhr.send(JSON.stringify(choix));
|
||||
}
|
||||
|
||||
function animate() {
|
||||
// Temps à chaque animate
|
||||
|
@ -493,6 +514,7 @@ function animate() {
|
|||
document.removeEventListener("keydown", action_clavier_vues)
|
||||
// inti clavier
|
||||
if(premier_tour_page_explication_analyse){
|
||||
enregistrement();
|
||||
//interactions.push({"time": new Date().getTime(), "type": "Début explication analyse"})
|
||||
init_clavier_explication_analyse()
|
||||
init_textes_explication_analyses()
|
||||
|
@ -541,28 +563,15 @@ function animate() {
|
|||
affichage_texte_fin(message_fin)
|
||||
// ECRITURE DES RESULTATS
|
||||
choix['Analyse'] = checkbox_clicked
|
||||
choix['Interactions'] = interactions
|
||||
// Création de la requête HTTP à envoyer au serveur.
|
||||
let xhr = new XMLHttpRequest();
|
||||
// Préparation de la requête pour l'envoi en POST vers l'url.
|
||||
xhr.open('POST', '/outputs');
|
||||
// Si on envoie les données de manière classique, il faut configurer le header de cette façon.
|
||||
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
||||
// Ajout du listener pour déclencer la suite lorsque la requête sera terminée.
|
||||
xhr.onreadystatechange = function() {
|
||||
//interactions.push({"time": new Date().getTime(), "type": get_message("fin_eetude", [])})
|
||||
// Si la requête est terminée, et que la réponse n'est pas une erreur.
|
||||
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
|
||||
console.log(xhr.responseText);
|
||||
message_fin = "> It's done. Your submission has been recorded."
|
||||
envoie_termine = true
|
||||
update_texte_fin(message_fin)
|
||||
interactions.push({"time": new Date().getTime(), "type": get_message("fin_etude", [])})
|
||||
return;
|
||||
}
|
||||
}
|
||||
// Envoi de la requête vers le serveur, avec les données.
|
||||
xhr.send(JSON.stringify(choix));
|
||||
|
||||
enregistrement(function(xhr) {
|
||||
console.log(xhr.responseText);
|
||||
message_fin = "> It's done. Your submission has been recorded."
|
||||
envoie_termine = true
|
||||
update_texte_fin(message_fin)
|
||||
interactions.push({"time": new Date().getTime(), "type": get_message("fin_etude", [])})
|
||||
return;
|
||||
});
|
||||
|
||||
return
|
||||
|
||||
|
|
Loading…
Reference in New Issue