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
/// 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.
/// Dans ce but son résultat est stocké temporairement.
/// 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 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.
// Configurations générales provenant du backend :
import { availableLangs, theme } from "../../../config/instance.js";
import { availableLangs } from "../../../config/instance.js";
const lang=availableLangs[0];
// Fonctions :
@ -40,7 +40,7 @@ const divResponse=document.getElementById("response");
// L'url permet de savoir si nous sommes sur un quiz unique ou groupé :
let btnShow;
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=[];
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) :
allPreviousAnswers=await checkAllPreviousResults(userDB);
// Si oui, on affiche ceux enregistrés pour ce quiz :
if(allPreviousAnswers.length !== 0)
await showPreviousResults(userDB, quizInfos.QuestionnaireId, quizInfos.GroupId);
}
@ -92,10 +93,10 @@ const showQuestionnaire = () =>
window.location.assign(here+"#questionnaire");
}
// L'utilisateur demande à voir le quiz :
let chronoBegin=0;
if(btnShow)
{
// L'utilisateur demande à voir le quiz :
btnShow.addEventListener("click", function(e)
{
try
@ -138,7 +139,7 @@ myForm.addEventListener("submit", async function(e)
// Affichage du résultat, suivant les cas :
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.
if(allPreviousAnswers.length !==0)
if(allPreviousAnswers.length !== 0)
{
const saveResponses=await saveResult(userDB, answer);
if(saveResponses)
@ -158,7 +159,7 @@ myForm.addEventListener("submit", async function(e)
}
addElement(divResponse, "p", getOuput, "", ["info"]);
// 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 !== "")
{
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 :
await showPreviousResults(userDB, quizInfos.QuestionnaireId, quizInfos.GroupId);
// Nouveau quiz
// Nouveau quiz ?
await saveNewQuiz(userDB, quizInfos);
// Redirection vers la liste des résultats :
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"]);
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) =>
{
const getUserQuizs=await getAllQuizs(userDB);