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
|
||||
|
||||
/// 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);
|
||||
}
|
||||
|
||||
});
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user