Relecture avant réécriture en style objet.
This commit is contained in:
parent
362b5e836f
commit
1730fa08df
|
@ -1,12 +1,12 @@
|
||||||
// -- GESTION DU FORMULAIRE PERMETTANT D'AFFICHER ET RÉPONDRE À UN QUIZ
|
// -- GESTION DU FORMULAIRE PERMETTANT D'AFFICHER ET RÉPONDRE À UN QUIZ
|
||||||
|
|
||||||
/// Il n'est pas nécessaire d'avoir une base de données locale active pour répondre à un quiz.
|
/// Il n'est pas nécessaire d'avoir une base de données locale active pour répondre à un quiz.
|
||||||
/// Mais si ce n'est pas déjà le cas et que cela semble techniquement possible, on propose au répondant de sauvegarder son résultat.
|
/// Mais si ce n'est pas déjà le cas et que cela semble techniquement possible, il est proposé au répondant de sauvegarder durablement son résultat.
|
||||||
/// Dans ce but son résultat est stocké temporairement.
|
/// Dans ce but son résultat est d'abord stocké temporairement.
|
||||||
/// Si la base de donnée locale existe déjà, l'enregistrement de son résultat se fait automatiquement dans IndexedDB et ses éventuels précédents résultats sont affichés.
|
/// Si la base de donnée locale existe déjà, l'enregistrement de son résultat se fait automatiquement dans IndexedDB et ses éventuels précédents résultats sont affichés.
|
||||||
|
|
||||||
// Configurations générales provenant du backend :
|
// Configurations générales provenant du backend :
|
||||||
import { availableLangs, theme } from "../../../config/instance.js";
|
import { availableLangs } from "../../../config/instance.js";
|
||||||
const lang=availableLangs[0];
|
const lang=availableLangs[0];
|
||||||
|
|
||||||
// Fonctions :
|
// Fonctions :
|
||||||
|
@ -40,7 +40,7 @@ const divResponse=document.getElementById("response");
|
||||||
// L'url permet de savoir si nous sommes sur un quiz unique ou groupé :
|
// L'url permet de savoir si nous sommes sur un quiz unique ou groupé :
|
||||||
let btnShow;
|
let btnShow;
|
||||||
if(quizInfos.url.indexOf("/gp/") == -1)
|
if(quizInfos.url.indexOf("/gp/") == -1)
|
||||||
btnShow=document.getElementById("showQuestionnaire"); // le quiz est affiché directement pour les groupes
|
btnShow=document.getElementById("showQuestionnaire"); // le quiz est affiché directement pour les groupes, ce qui déclenche le compteur
|
||||||
|
|
||||||
let userDB, allPreviousAnswers=[];
|
let userDB, allPreviousAnswers=[];
|
||||||
const initialise = async () =>
|
const initialise = async () =>
|
||||||
|
@ -61,6 +61,7 @@ const initialise = async () =>
|
||||||
{
|
{
|
||||||
// Vérifie si l'utilisateur a déjà sauvegardé au moins un résultat (et donc est ok pour les sauvegardes) :
|
// Vérifie si l'utilisateur a déjà sauvegardé au moins un résultat (et donc est ok pour les sauvegardes) :
|
||||||
allPreviousAnswers=await checkAllPreviousResults(userDB);
|
allPreviousAnswers=await checkAllPreviousResults(userDB);
|
||||||
|
// Si oui, on affiche ceux enregistrés pour ce quiz :
|
||||||
if(allPreviousAnswers.length !== 0)
|
if(allPreviousAnswers.length !== 0)
|
||||||
await showPreviousResults(userDB, quizInfos.QuestionnaireId, quizInfos.GroupId);
|
await showPreviousResults(userDB, quizInfos.QuestionnaireId, quizInfos.GroupId);
|
||||||
}
|
}
|
||||||
|
@ -92,10 +93,10 @@ const showQuestionnaire = () =>
|
||||||
window.location.assign(here+"#questionnaire");
|
window.location.assign(here+"#questionnaire");
|
||||||
}
|
}
|
||||||
|
|
||||||
// L'utilisateur demande à voir le quiz :
|
|
||||||
let chronoBegin=0;
|
let chronoBegin=0;
|
||||||
if(btnShow)
|
if(btnShow)
|
||||||
{
|
{
|
||||||
|
// L'utilisateur demande à voir le quiz :
|
||||||
btnShow.addEventListener("click", function(e)
|
btnShow.addEventListener("click", function(e)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -138,7 +139,7 @@ myForm.addEventListener("submit", async function(e)
|
||||||
// Affichage du résultat, suivant les cas :
|
// Affichage du résultat, suivant les cas :
|
||||||
let getOuput=getResultOutput(answer);
|
let getOuput=getResultOutput(answer);
|
||||||
// S'il y a déjà une réponse dans la bd, c'est que l'utilisateur est ok pour les enregister.
|
// S'il y a déjà une réponse dans la bd, c'est que l'utilisateur est ok pour les enregister.
|
||||||
if(allPreviousAnswers.length !==0)
|
if(allPreviousAnswers.length !== 0)
|
||||||
{
|
{
|
||||||
const saveResponses=await saveResult(userDB, answer);
|
const saveResponses=await saveResult(userDB, answer);
|
||||||
if(saveResponses)
|
if(saveResponses)
|
||||||
|
@ -158,7 +159,7 @@ myForm.addEventListener("submit", async function(e)
|
||||||
}
|
}
|
||||||
addElement(divResponse, "p", getOuput, "", ["info"]);
|
addElement(divResponse, "p", getOuput, "", ["info"]);
|
||||||
// On redirige vers le résultat :
|
// On redirige vers le résultat :
|
||||||
const here=window.location; // window.location à ajouter pour ne pas quitter la page en mode "preview".
|
const here=window.location;
|
||||||
if(window.location.hash !== "")
|
if(window.location.hash !== "")
|
||||||
{
|
{
|
||||||
window.location.hash=""; // ! le "#" reste
|
window.location.hash=""; // ! le "#" reste
|
||||||
|
@ -194,7 +195,7 @@ btnSave.addEventListener("click", async function(e)
|
||||||
{
|
{
|
||||||
// Nouvel enregistrement = actualisation nécessaire de la liste des résultats pour ce quiz :
|
// Nouvel enregistrement = actualisation nécessaire de la liste des résultats pour ce quiz :
|
||||||
await showPreviousResults(userDB, quizInfos.QuestionnaireId, quizInfos.GroupId);
|
await showPreviousResults(userDB, quizInfos.QuestionnaireId, quizInfos.GroupId);
|
||||||
// Nouveau quiz
|
// Nouveau quiz ?
|
||||||
await saveNewQuiz(userDB, quizInfos);
|
await saveNewQuiz(userDB, quizInfos);
|
||||||
// Redirection vers la liste des résultats :
|
// Redirection vers la liste des résultats :
|
||||||
const here=window.location; // window.location à ajouter pour ne pas quitter la page en mode "preview".
|
const here=window.location; // window.location à ajouter pour ne pas quitter la page en mode "preview".
|
||||||
|
@ -214,5 +215,4 @@ btnSave.addEventListener("click", async function(e)
|
||||||
addElement(divResponse, "p", serverError, "", ["error"]);
|
addElement(divResponse, "p", serverError, "", ["error"]);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
|
@ -304,7 +304,7 @@ export const getAllQuizs = (db) =>
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ajout le quiz à la base de donnée de l'utilisateur, s'il n'y existe pas déjà
|
// Ajoute le quiz à la base de donnée de l'utilisateur, s'il n'y est pas déjà
|
||||||
export const saveNewQuiz = async (userDB, quizInfos) =>
|
export const saveNewQuiz = async (userDB, quizInfos) =>
|
||||||
{
|
{
|
||||||
const getUserQuizs=await getAllQuizs(userDB);
|
const getUserQuizs=await getAllQuizs(userDB);
|
||||||
|
|
Loading…
Reference in New Issue