Relecture avant réécriture en style objet.

This commit is contained in:
Fabrice PENHOËT 2022-03-15 16:30:22 +01:00
parent 362b5e836f
commit 1730fa08df
2 changed files with 10 additions and 10 deletions

View File

@ -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);
} }
}); });

View File

@ -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);