texte area presque ok
This commit is contained in:
parent
e47a0c1dee
commit
5e67b28aea
|
@ -84,13 +84,13 @@ function init_variable(premier_appel){
|
||||||
|
|
||||||
// Enchainement des pages
|
// Enchainement des pages
|
||||||
if (premier_appel){
|
if (premier_appel){
|
||||||
page_avertissement = true
|
page_avertissement = false
|
||||||
page_contexte = false
|
page_contexte = false
|
||||||
page_inscription = false
|
page_inscription = false
|
||||||
page_explication = false
|
page_explication = false
|
||||||
page_warning = false
|
page_warning = false
|
||||||
page_explication_bis = false
|
page_explication_bis = false
|
||||||
page_vues = false // false
|
page_vues = true // false
|
||||||
page_explication_analyse = false
|
page_explication_analyse = false
|
||||||
page_analyse = false
|
page_analyse = false
|
||||||
// cas raz : on recommence juste la partie vues
|
// cas raz : on recommence juste la partie vues
|
||||||
|
@ -102,6 +102,7 @@ function init_variable(premier_appel){
|
||||||
page_warning = false
|
page_warning = false
|
||||||
page_explication_bis = false
|
page_explication_bis = false
|
||||||
page_vues = true // false
|
page_vues = true // false
|
||||||
|
page_explication_analyse = false
|
||||||
page_analyse = false
|
page_analyse = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -427,7 +428,6 @@ function animate() {
|
||||||
else{
|
else{
|
||||||
// on enlève les touches du clavier associé à la page inscription
|
// on enlève les touches du clavier associé à la page inscription
|
||||||
document.removeEventListener("keydown", action_clavier_explication)}
|
document.removeEventListener("keydown", action_clavier_explication)}
|
||||||
|
|
||||||
//init touche clavier
|
//init touche clavier
|
||||||
if(premier_tour_page_vues){
|
if(premier_tour_page_vues){
|
||||||
// init clavier pour les vues
|
// init clavier pour les vues
|
||||||
|
@ -501,10 +501,15 @@ function animate() {
|
||||||
interactions.push({"time": new Date().getTime(), "type": "debut analyse n°1"})
|
interactions.push({"time": new Date().getTime(), "type": "debut analyse n°1"})
|
||||||
init_clavier_analyse()
|
init_clavier_analyse()
|
||||||
init_variable_analyse()
|
init_variable_analyse()
|
||||||
|
old_renderer = document.getElementById('renderer')
|
||||||
|
if (old_renderer!= null){
|
||||||
|
old_renderer.parentElement.removeChild(old_renderer)
|
||||||
|
}
|
||||||
premier_tour_page_analyse = false}
|
premier_tour_page_analyse = false}
|
||||||
|
|
||||||
ctx.clearRect(0, 0, canvas.width, canvas.height)
|
ctx.clearRect(0, 0, canvas.width, canvas.height)
|
||||||
traitement_fin()
|
|
||||||
|
traitement_analyse()
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -8,13 +8,13 @@ h_bouton_analyse = 0.1*window.innerHeight
|
||||||
// Variable
|
// Variable
|
||||||
function init_variable_analyse(){
|
function init_variable_analyse(){
|
||||||
// liste des checkbox clické pour chaque recap
|
// liste des checkbox clické pour chaque recap
|
||||||
checkbox_clicked_courant = {}
|
//checkbox_clicked_courant = {}
|
||||||
for (let p=0; p<nb_choix_demande; p++){
|
// for (let p=0; p<nb_choix_demande; p++){
|
||||||
checkbox_clicked_courant["Viewpoint_"+(p+1)] = {idx_checkbox:[], mots:[]}
|
// checkbox_clicked_courant["Viewpoint_"+(p+1)] = {idx_checkbox:[], mots:[]}
|
||||||
}
|
// }
|
||||||
|
checkbox_clicked_courant = {idx_checkbox:[], mots:[]}
|
||||||
// Analayse des choix avec les checkboxs
|
// Analayse des choix avec les checkboxs
|
||||||
keywords = ["1. De face", "2. De profil", "3. Debout", "4. Eyes contact", "5. toto"]
|
keywords = shuffle(["Side view", "Front view", "Global view", "Eyes contact", "Pleasant", "Recognizable"]).concat(["Other:"])
|
||||||
|
|
||||||
y_recap = 0.2*window.innerHeight
|
y_recap = 0.2*window.innerHeight
|
||||||
taille_texte_explication = 0.01*window.innerWidth
|
taille_texte_explication = 0.01*window.innerWidth
|
||||||
|
@ -37,18 +37,18 @@ function affichage_legende(pos){
|
||||||
|
|
||||||
function affichage_texte(){
|
function affichage_texte(){
|
||||||
// Texte
|
// Texte
|
||||||
draw_rectangle(0,0,canvas.width, canvas.height, "rgb(3, 26, 33)", 1) // ou + clair 4, 38, 48
|
//draw_rectangle(0,0,canvas.width, canvas.height, "rgb(3, 26, 33)", 1) // ou + clair 4, 38, 48
|
||||||
affichage_titre("Analysis your choices", (0.018*window.innerWidth)+"pt Courier", "#EF476F", yt = 0.1*window.innerHeight)
|
affichage_titre("Analysis your selections: why did you choose these viewpoints?", (0.015*window.innerWidth)+"pt Courier", "#EF476F", yt = 0.1*window.innerHeight)
|
||||||
}
|
}
|
||||||
|
|
||||||
// idx_tache est la num de la tache à aller chercher dans all_ctxMins
|
// idx_tache est la num de la tache à aller chercher dans all_ctxMins
|
||||||
function affichage_analyse(idx_tache){
|
function affichage_analyse(idx_tache){
|
||||||
canvasMins = all_canvasMins['tache_N'+list_idx_tache[idx_tache]][1]
|
//canvasMins = all_canvasMins['tache_N'+list_idx_tache[idx_tache]][1]
|
||||||
for (let i=0; i<nb_choix_demande; i++){
|
for (let i=0; i<nb_choix_demande; i++){
|
||||||
affichage_legende(i)
|
affichage_legende(i)
|
||||||
x_recap = (i+1)*x_recap_init + i*(H_3D/2)
|
x_recap = (i+1)*x_recap_init + i*(H_3D/2)
|
||||||
ctx.drawImage(canvasMins[i], x_recap, y_recap, H_3D/2, H_3D/2)
|
//ctx.drawImage(canvasMins[i], x_recap, y_recap, H_3D/2, H_3D/2)
|
||||||
//draw_contour(dx + (ecart_analyse+ W_3D/2.5)*i, 250, H_3D/2.5, H_3D/2.5, "rgb(255,0,0)")
|
draw_contour( x_recap, y_recap, H_3D/2, H_3D/2, "rgb(255,0,0)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,7 +67,6 @@ function progress_bar_analyse(N_analyse, N_analyse_total){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
///////////////////// Bouton
|
///////////////////// Bouton
|
||||||
|
|
||||||
|
@ -92,10 +91,15 @@ function affichage_bouton_valider_analyse(m){
|
||||||
}
|
}
|
||||||
|
|
||||||
function condition_valider(){
|
function condition_valider(){
|
||||||
for(let k=0; k<nb_choix_demande;k++){
|
//S'il n'y a pas de checkbox cochée
|
||||||
if (checkbox_clicked_courant['Viewpoint_'+(k+1)].idx_checkbox.length == 0){
|
if (checkbox_clicked_courant.idx_checkbox.length == 0){
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
//il y a Other: other --> texte non vide
|
||||||
|
if (checkbox_clicked_courant.idx_checkbox.indexOf(keywords.length-1)!=-1){
|
||||||
|
if(document.getElementById('texte_area').value.length == 0){
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -105,12 +109,17 @@ function action_bouton_valider_analyse(){
|
||||||
// si au moins un mot est coché et qu'il reste des analyse à faire
|
// si au moins un mot est coché et qu'il reste des analyse à faire
|
||||||
if (condition_valider()){
|
if (condition_valider()){
|
||||||
// sauvegarde des checkbox clikée et les mesh
|
// sauvegarde des checkbox clikée et les mesh
|
||||||
checkbox_clicked['Analyse_N'+(num_analyse+1)] = {"mesh" : choix["tache_N"+list_idx_tache[idx_tache]].mesh ,"Checkbox" : checkbox_clicked_courant}
|
if (checkbox_clicked_courant.idx_checkbox.indexOf(keywords.length-1)!=-1){
|
||||||
//RAZ pour la prochaine analyse
|
texte_toto = lecture_zone_texte()
|
||||||
checkbox_clicked_courant = {}
|
checkbox_clicked['Analyse_N'+(num_analyse+1)] = {"mesh" : choix["tache_N"+list_idx_tache[idx_tache]].mesh ,"Checkbox" : checkbox_clicked_courant, "Texte_other":texte_toto}
|
||||||
for (let p=0; p<nb_choix_demande; p++){
|
} else {
|
||||||
checkbox_clicked_courant["Viewpoint_"+(p+1)] = {idx_checkbox:[], mots:[]}
|
checkbox_clicked['Analyse_N'+(num_analyse+1)] = {"mesh" : choix["tache_N"+list_idx_tache[idx_tache]].mesh ,"Checkbox" : checkbox_clicked_courant}
|
||||||
}
|
}
|
||||||
|
//RAZ pour la prochaine analyse
|
||||||
|
checkbox_clicked_courant = {idx_checkbox:[], mots:[]}
|
||||||
|
keywords = shuffle(keywords).concat(["Other:"])
|
||||||
|
toto = document.getElementById('texte_area')
|
||||||
|
if (toto!= null){toto.parentElement.removeChild(toto)}
|
||||||
// analyse suivant
|
// analyse suivant
|
||||||
num_analyse = num_analyse + 1
|
num_analyse = num_analyse + 1
|
||||||
// indice mesh da l'analyse suivante
|
// indice mesh da l'analyse suivante
|
||||||
|
@ -123,60 +132,116 @@ function action_bouton_valider_analyse(){
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
///////////////////// Checkbox
|
///////////////////// Checkbox
|
||||||
|
function measure_largeur(pos){
|
||||||
|
if (pos>=0){
|
||||||
|
l = 0
|
||||||
|
for (let p = 0; p<=pos; p++){
|
||||||
|
l = l + ctx.measureText(keywords[p]).width + 0.05*window.innerWidth
|
||||||
|
}
|
||||||
|
return l
|
||||||
|
}
|
||||||
|
else{return 0}
|
||||||
|
}
|
||||||
|
|
||||||
function traitement_empty_checkbox(){
|
function traitement_empty_checkbox(){
|
||||||
for(let p=0; p<nb_choix_demande; p++){
|
//for(let p=0; p<nb_choix_demande; p++){
|
||||||
for (let i = 0 ; i < keywords.length; i++){
|
for (let i = 0 ; i < keywords.length; i++){
|
||||||
// checkbox vide
|
// checkbox vide
|
||||||
x_checkbox = (p+1)*x_recap_init + p*(H_3D/2)
|
//i*((window.innerWidth * 8/10)/6)
|
||||||
y_checkbox = y_checkbox_init + (h_checkbox* 1.5)*i
|
if(i<keywords.length-1){x_checkbox = window.innerWidth*1/10 + measure_largeur(i-1); y_checkbox = y_checkbox_init}
|
||||||
|
else {x_checkbox = window.innerWidth*1/10; y_checkbox = y_checkbox_init + 2*h_checkbox}
|
||||||
ctx.drawImage(imgs["checkbox"], x_checkbox , y_checkbox, w_checkbox, h_checkbox)
|
ctx.drawImage(imgs["checkbox"], x_checkbox , y_checkbox, w_checkbox, h_checkbox)
|
||||||
// Texte
|
// Texte
|
||||||
print_text(handle_text(keywords[i], x_checkbox + w_checkbox + 30, y_checkbox + 20, taille_texte_explication+"pt Courier", longueur_max_error))
|
print_text(handle_text(keywords[i], x_checkbox + w_checkbox + 10, y_checkbox + 18, taille_texte_explication+"pt Courier", longueur_max_error))
|
||||||
// survol
|
// survol
|
||||||
if (is_inside(xyMouseMove, x_checkbox, y_checkbox, w_checkbox, h_checkbox)){
|
if (is_inside(xyMouseMove, x_checkbox, y_checkbox, w_checkbox, h_checkbox)){
|
||||||
draw_rectangle(x_checkbox, y_checkbox, w_checkbox, h_checkbox, "rgb(0, 255, 0)", alpha_survol)
|
draw_rectangle(x_checkbox, y_checkbox, w_checkbox, h_checkbox, "rgb(0, 255, 0)", alpha_survol)
|
||||||
}
|
}
|
||||||
// clicked
|
// clicked
|
||||||
if (clicked && is_inside(xyMouseMove, x_checkbox, y_checkbox, w_checkbox, h_checkbox)){
|
if (clicked && is_inside(xyMouseMove, x_checkbox, y_checkbox, w_checkbox, h_checkbox)){
|
||||||
check_ou_decheck(i,p)
|
check_ou_decheck(i)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
//}
|
||||||
|
|
||||||
|
function check_ou_decheck(i_mot){
|
||||||
|
//s'il n'y a pas deja un check dessus
|
||||||
|
if (checkbox_clicked_courant.idx_checkbox.indexOf(i_mot) == -1){
|
||||||
|
checkbox_clicked_courant.idx_checkbox.push(i_mot)
|
||||||
|
checkbox_clicked_courant.mots.push(keywords[i_mot])
|
||||||
|
interactions.push({"time": new Date().getTime(), "type": "ajout check sur : analyse n°"+(num_analyse+1)+", mot "+keywords[i_mot]+" à "})
|
||||||
|
console.log("ajout "+keywords[i_mot])
|
||||||
|
// checkbox Other
|
||||||
|
if (i_mot == keywords.length-1){
|
||||||
|
zone_texte()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
position_i = checkbox_clicked_courant.idx_checkbox.indexOf(i_mot)
|
||||||
|
checkbox_clicked_courant.idx_checkbox.splice(position_i,1)
|
||||||
|
checkbox_clicked_courant.mots.splice(position_i,1)
|
||||||
|
console.log("retrait "+keywords[i_mot])
|
||||||
|
interactions.push({"time": new Date().getTime(), "type": "retrait check sur : analyse n°"+(num_analyse+1)+", mot "+keywords[i_mot]+" à "})
|
||||||
|
if (i_mot == keywords.length-1){
|
||||||
|
toto = document.getElementById('texte_area')
|
||||||
|
if (toto!= null){toto.parentElement.removeChild(toto)}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function check_ou_decheck(i_mot, p_vue){
|
function draw_check(){
|
||||||
//s'il n'y a pas deja un check dessus
|
idx_check = checkbox_clicked_courant.idx_checkbox
|
||||||
if (checkbox_clicked_courant["Viewpoint_"+(p_vue+1)].idx_checkbox.indexOf(i_mot) == -1){
|
|
||||||
checkbox_clicked_courant["Viewpoint_"+(p_vue+1)].idx_checkbox.push(i_mot)
|
|
||||||
checkbox_clicked_courant["Viewpoint_"+(p_vue+1)].mots.push(keywords[i_mot])
|
|
||||||
interactions.push({"time": new Date().getTime(), "type": "ajout check sur : analyse n°"+(num_analyse+1)+", mot "+keywords[i_mot]+" à "+(p_vue+1)+"e vues"})
|
|
||||||
console.log("ajout "+keywords[i_mot]+" à "+(p_vue+1)+"e vues")
|
|
||||||
}
|
|
||||||
|
|
||||||
else{
|
|
||||||
position_i = checkbox_clicked_courant["Viewpoint_"+(p_vue+1)].idx_checkbox.indexOf(i_mot)
|
|
||||||
checkbox_clicked_courant["Viewpoint_"+(p_vue+1)].idx_checkbox.splice(position_i,1)
|
|
||||||
checkbox_clicked_courant["Viewpoint_"+(p_vue+1)].mots.splice(position_i,1)
|
|
||||||
console.log("retrait "+keywords[i_mot]+" à "+(p_vue+1)+"e vues")
|
|
||||||
interactions.push({"time": new Date().getTime(), "type": "retrait check sur : analyse n°"+(num_analyse+1)+", mot "+keywords[i_mot]+" à "+(p_vue+1)+"e vues"})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function draw_check(p_vue){
|
|
||||||
idx_check = checkbox_clicked_courant["Viewpoint_"+(p_vue+1)].idx_checkbox
|
|
||||||
// pour chacune de ces checkbox cliquée on affiche un check
|
// pour chacune de ces checkbox cliquée on affiche un check
|
||||||
for (let i = 0 ; i < idx_check.length; i++){
|
for (let i = 0 ; i < idx_check.length; i++){
|
||||||
pos = idx_check[i]
|
pos = idx_check[i]
|
||||||
x_checkbox = (p_vue+1)*x_recap_init + p_vue*(H_3D/2)
|
if (pos == keywords.length-1){x_checkbox = window.innerWidth*1/10; y_checkbox = y_checkbox_init + 2*h_checkbox}
|
||||||
y_checkbox = y_checkbox_init + (h_checkbox* 1.5)*pos
|
else{
|
||||||
|
x_checkbox = window.innerWidth*1/10 + measure_largeur(pos-1)
|
||||||
|
y_checkbox = y_checkbox_init
|
||||||
|
}
|
||||||
ctx.drawImage(imgs["check"], x_checkbox-5 , y_checkbox-5, w_checkbox+10, h_checkbox+10)
|
ctx.drawImage(imgs["check"], x_checkbox-5 , y_checkbox-5, w_checkbox+10, h_checkbox+10)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function zone_texte(){
|
||||||
|
inscription_finie = false
|
||||||
|
h_text_zone = 0.15*window.innerHeight
|
||||||
|
nb_caract_min = 1
|
||||||
|
nb_caract_max = 250
|
||||||
|
x_texte_zone = (window.innerWidth/4)
|
||||||
|
y_texte_zone = y_checkbox_init + 3*h_checkbox
|
||||||
|
ecart_texte_zone = 0.2*window.innerHeight
|
||||||
|
|
||||||
|
// Zone de texte : Name
|
||||||
|
input2 = document.createElement('textarea');
|
||||||
|
input2.type = 'text';
|
||||||
|
input2.id = 'texte_area';
|
||||||
|
input2.maxLength = nb_caract_max
|
||||||
|
input2.cols = 0.02*window.innerWidth
|
||||||
|
// style
|
||||||
|
input2.style.position = 'fixed';
|
||||||
|
input2.style.left = x_texte_zone+'px';
|
||||||
|
input2.style.top = y_texte_zone+'px';//ecart_texte_zone+y_texte_zone+'px';
|
||||||
|
input2.style.textAlign = 'left'
|
||||||
|
input2.style.height = h_text_zone
|
||||||
|
input2.style.display = true
|
||||||
|
input2.style.font = taille_texte_inscription+"pt Courier"
|
||||||
|
document.body.appendChild(input2);
|
||||||
|
//input2.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
function lecture_zone_texte(){
|
||||||
|
toto = document.getElementById('texte_area')
|
||||||
|
if(toto.value != null){
|
||||||
|
return toto.value
|
||||||
|
}
|
||||||
|
}
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
///////////////////// MAIN
|
///////////////////// MAIN
|
||||||
function traitement_fin(){
|
function traitement_analyse(){
|
||||||
if ((num_analyse < nb_analyse_demande)){
|
if ((num_analyse < nb_analyse_demande)){
|
||||||
// affiche les textes de la page sauf les ceheckbox
|
// affiche les textes de la page sauf les ceheckbox
|
||||||
affichage_texte()
|
affichage_texte()
|
||||||
|
@ -187,7 +252,7 @@ function traitement_fin(){
|
||||||
// affiche les nb_demande_choix images recap
|
// affiche les nb_demande_choix images recap
|
||||||
affichage_analyse(idx_tache)
|
affichage_analyse(idx_tache)
|
||||||
// affiche progress bar
|
// affiche progress bar
|
||||||
progress_bar_analyse(num_analyse, nb_analyse_demande)
|
//progress_bar_analyse(num_analyse, nb_analyse_demande)
|
||||||
if (num_analyse < nb_analyse_demande-1){
|
if (num_analyse < nb_analyse_demande-1){
|
||||||
// bouton valider
|
// bouton valider
|
||||||
affichage_bouton_valider_analyse("en_cours")}
|
affichage_bouton_valider_analyse("en_cours")}
|
||||||
|
|
|
@ -164,8 +164,8 @@ color_rouge = "rgb(239, 71, 111)"
|
||||||
explications_analyse={
|
explications_analyse={
|
||||||
"texte0":{"t":"You have finished selecting the best viewpoints for each object.", "y": window.innerHeight*0.15, "c": color_blanc},
|
"texte0":{"t":"You have finished selecting the best viewpoints for each object.", "y": window.innerHeight*0.15, "c": color_blanc},
|
||||||
"texte1":{"t":"Now I ask you to justify your choices.", "y":window.innerHeight*0.25, "c": color_blanc},
|
"texte1":{"t":"Now I ask you to justify your choices.", "y":window.innerHeight*0.25, "c": color_blanc},
|
||||||
"texte2":{"t":"For this, for some objects, the views you have chosen will reappear..", "y":window.innerHeight*0.38, "c": color_blanc},
|
"texte2":{"t":"For this, for some objects, the views you have chosen will reappear.", "y":window.innerHeight*0.38, "c": color_blanc},
|
||||||
"texte3":{"t":"For each of the views you will have to select the main characteristic that made you decide to select this viewpoint..", "y": window.innerHeight*0.52, "c": color_blanc},
|
"texte3":{"t":"For each of the viewpoints, you will have to select one or more reasons that made you decide to select these viewpoints.", "y": window.innerHeight*0.52, "c": color_blanc},
|
||||||
}
|
}
|
||||||
|
|
||||||
explications_analyse_page_1 = [explications_analyse["texte0"], explications_analyse["texte1"], explications_analyse["texte2"], explications_analyse["texte3"]]
|
explications_analyse_page_1 = [explications_analyse["texte0"], explications_analyse["texte1"], explications_analyse["texte2"], explications_analyse["texte3"]]
|
||||||
|
|
Loading…
Reference in New Issue