Revue appels des éléments des dictionnaires dans scripts front-end avec utilisation de require() et uniquement les éléments nécessaires aux scripts.

This commit is contained in:
Fabrice PENHOËT 2020-10-06 16:34:17 +02:00
parent 528060529a
commit 764fc9bf93
17 changed files with 131 additions and 151 deletions

View File

@ -24,9 +24,9 @@ import { checkSession, getConfig, getTimeDifference } from "./tools/users.js";
import { showBtnPayment, unCheckAllOthers } from "./tools/webportage.js"; import { showBtnPayment, unCheckAllOthers } from "./tools/webportage.js";
// Dictionnaires : // Dictionnaires :
const txt = require("../../lang/"+lang+"/general"); const { serverError } = require("../../lang/"+lang+"/general");
const txtUsers = require("../../lang/"+lang+"/user"); const { infosUserNbGodChilds, infosUserNoGodchilds, needBeConnected } = require("../../lang/"+lang+"/user");
const txtSubscriptions = require("../../lang/"+lang+"/subscription"); const { infosExpirated, infosNbDays } = require("../../lang/"+lang+"/subscription");
// Principaux éléments du DOM manipulés : // Principaux éléments du DOM manipulés :
const divCrash = document.getElementById("crash"); const divCrash = document.getElementById("crash");
@ -48,11 +48,11 @@ const initialise = async () =>
{ {
const config = await getConfig(); const config = await getConfig();
if(!config) if(!config)
addElement(divCrash, "p", txt.serverError, "", ["error"]); addElement(divCrash, "p", serverError, "", ["error"]);
else else
{ {
// Si l'utilisateur n'est pas connecté avec le bon statut, pas la peine d'aller + loin : // Si l'utilisateur n'est pas connecté avec le bon statut, pas la peine d'aller + loin :
const isConnected=await checkSession(["user"], "/"+configFrontEnd.connectionPage, { message: txtUsers.needBeConnected, color:"error" }, window.location); const isConnected=await checkSession(["user"], "/"+configFrontEnd.connectionPage, { message: needBeConnected, color:"error" }, window.location);
if(isConnected) if(isConnected)
{ {
divMain.style.display="block"; divMain.style.display="block";
@ -107,10 +107,10 @@ const initialise = async () =>
const beginSubTS=new Date(response.Subscription.createdAt).getTime(); const beginSubTS=new Date(response.Subscription.createdAt).getTime();
const nbDaysOk=response.Subscription.numberOfDays-Math.round((Date.now()-beginSubTS)/1000/3600/24); const nbDaysOk=response.Subscription.numberOfDays-Math.round((Date.now()-beginSubTS)/1000/3600/24);
if(nbDaysOk > 0) if(nbDaysOk > 0)
addElement(divSubscribeIntro, "p", txtSubscriptions.infosNbDays.replace("NB_DAYS", nbDaysOk), "", ["info"]); addElement(divSubscribeIntro, "p", infosNbDays.replace("NB_DAYS", nbDaysOk), "", ["info"]);
else else
{ {
addElement(divSubscribeIntro, "p", txtSubscriptions.infosExpirated.replace("NB_DAYS", nbDaysOk), "", ["error"]); addElement(divSubscribeIntro, "p", infosExpirated.replace("NB_DAYS", nbDaysOk), "", ["error"]);
window.location.assign("#subscribe"); window.location.assign("#subscribe");
} }
} }
@ -162,11 +162,11 @@ const initialise = async () =>
if(Array.isArray(response.errors)) if(Array.isArray(response.errors))
response.errors = response.errors.join("<br>"); response.errors = response.errors.join("<br>");
else else
response.errors = txt.serverError; response.errors = serverError;
addElement(divResponse, "p", response.errors, "", ["error"]); addElement(divResponse, "p", response.errors, "", ["error"]);
} }
else else
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
// dans tous les cas, je mets à jour le contenu du formulaire : // dans tous les cas, je mets à jour le contenu du formulaire :
getInfos(); getInfos();
} }
@ -239,10 +239,10 @@ const initialise = async () =>
{ {
const nbGodchilds=response.length; const nbGodchilds=response.length;
if(nbGodchilds===0) if(nbGodchilds===0)
txtGodchilds=txtUsers.infosUserNoGodchilds; txtGodchilds=infosUserNoGodchilds;
else else
{ {
txtGodchilds=txtUsers.infosUserNbGodChilds.replace("#NB", nbGodchilds); txtGodchilds=infosUserNbGodChilds.replace("#NB", nbGodchilds);
for(let i in response) for(let i in response)
txtGodchilds+=response[i].name+" ("+response[i].email+") "; txtGodchilds+=response[i].name+" ("+response[i].email+") ";
} }
@ -257,7 +257,7 @@ const initialise = async () =>
} }
catch(e) catch(e)
{ {
addElement(divCrash, "p", txt.serverError, "", ["error"]); addElement(divCrash, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
} }

View File

@ -22,9 +22,8 @@ import { loadMatomo } from "./tools/matomo.js";
import { checkAnswerDatas, checkSession, getTimeDifference, setSession } from "./tools/users.js"; import { checkAnswerDatas, checkSession, getTimeDifference, setSession } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txtServerError = require("../../lang/"+lang+"/general").serverError; const { serverError } = require("../../lang/"+lang+"/general");
const txtAlreadyConnected = require("../../lang/"+lang+"/user").alreadyConnected; const { alreadyConnected, needChooseLoginWay } = require("../../lang/"+lang+"/user");
const txtNeedChooseLoginWay = require("../../lang/"+lang+"/user").needChooseLoginWay;
// Principaux éléments du DOM manipulés : // Principaux éléments du DOM manipulés :
const myForm = document.getElementById("connection"); const myForm = document.getElementById("connection");
@ -41,7 +40,7 @@ const initialise = async () =>
const isConnected=await checkSession(); const isConnected=await checkSession();
if(isConnected) if(isConnected)
{ {
saveLocaly("message", { message: txtAlreadyConnected, color:"info" });// pour l'afficher sur la page suivante saveLocaly("message", { message: alreadyConnected, color:"info" });// pour l'afficher sur la page suivante
const user=getLocaly("user", true); const user=getLocaly("user", true);
const homePage=user.status+"HomePage"; const homePage=user.status+"HomePage";
window.location.assign("/"+configTemplate[homePage]); window.location.assign("/"+configTemplate[homePage]);
@ -59,7 +58,7 @@ const initialise = async () =>
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
} }
@ -74,7 +73,7 @@ myForm.addEventListener("submit", function(e)
divResponse.innerHTML="";// efface d'éventuels messages déjà affichés divResponse.innerHTML="";// efface d'éventuels messages déjà affichés
let datas=getDatasFromInputs(myForm); let datas=getDatasFromInputs(myForm);
if(isEmpty(datas.password) && isEmpty(datas.getLoginLink)) if(isEmpty(datas.password) && isEmpty(datas.getLoginLink))
addElement(divResponse, "div", txtNeedChooseLoginWay, "", ["error"]); addElement(divResponse, "div", needChooseLoginWay, "", ["error"]);
else else
{ {
const xhr = new XMLHttpRequest(); const xhr = new XMLHttpRequest();
@ -116,7 +115,7 @@ myForm.addEventListener("submit", function(e)
window.location.assign(url); window.location.assign(url);
} }
else else
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
} }
else if (response.errors) else if (response.errors)
{ {
@ -124,7 +123,7 @@ myForm.addEventListener("submit", function(e)
addElement(divResponse, "p", response.errors, "", ["error"]); addElement(divResponse, "p", response.errors, "", ["error"]);
} }
else else
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
} }
} }
xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader("Content-Type", "application/json");
@ -139,7 +138,7 @@ myForm.addEventListener("submit", function(e)
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
}); });

View File

@ -14,8 +14,8 @@ import { helloDev } from "./tools/everywhere.js";
import { getConfig } from "./tools/users.js"; import { getConfig } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txt = require("../../lang/"+lang+"/general"); const { serverError } = require("../../lang/"+lang+"/general");
const txtUsers = require("../../lang/"+lang+"/user"); const { byebyeMessage } = require("../../lang/"+lang+"/user");
helloDev(); helloDev();
@ -27,18 +27,18 @@ const initialise = async () =>
{ {
config = await getConfig(); config = await getConfig();
if(!config) if(!config)
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
else else
{ {
removeLocaly("user"); removeLocaly("user");
removeLocaly("url"); removeLocaly("url");
removeLocaly("message"); removeLocaly("message");
addElement(divResponse, "p", txtUsers.byebyeMessage, "", ["success"]); addElement(divResponse, "p", byebyeMessage, "", ["success"]);
} }
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
} }
} }
initialise(); initialise();

View File

@ -17,8 +17,8 @@ import { getUrlParams } from "./tools/url.js";
import { checkSession, getConfig, setSession } from "./tools/users.js"; import { checkSession, getConfig, setSession } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txt = require("../../lang/"+lang+"/general"); const { serverError } = require("../../lang/"+lang+"/general");
const txtUsers = require("../../lang/"+lang+"/user"); const { badLinkValidationMessage } = require("../../lang/"+lang+"/user");
const divResponse = document.getElementById("response"); const divResponse = document.getElementById("response");
@ -31,7 +31,7 @@ const initialise = async () =>
{ {
config = await getConfig(); config = await getConfig();
if(!config) if(!config)
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
else else
{ {
const datas=getUrlParams(); const datas=getUrlParams();
@ -54,11 +54,11 @@ const initialise = async () =>
if(Array.isArray(response.errors)) if(Array.isArray(response.errors))
response.errors = response.errors.join("<br>"); response.errors = response.errors.join("<br>");
else else
response.errors = txt.serverError; response.errors = serverError;
addElement(divResponse, "p", response.errors, "", ["error"]); addElement(divResponse, "p", response.errors, "", ["error"]);
} }
else else
addElement(divResponse, "p", txtUsers.badLinkValidationMessage.replace("#URL", configFrontEnd.accountPage), "", ["error"]); addElement(divResponse, "p", badLinkValidationMessage.replace("#URL", configFrontEnd.accountPage), "", ["error"]);
} }
} }
xhr.setRequestHeader("Authorization", "Bearer "+datas.t); xhr.setRequestHeader("Authorization", "Bearer "+datas.t);
@ -68,7 +68,7 @@ const initialise = async () =>
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
} }

View File

@ -23,18 +23,10 @@ import { helloDev, updateAccountLink } from "./tools/everywhere.js";
import { dateFormat, isEmpty, replaceAll } from "../../tools/main"; import { dateFormat, isEmpty, replaceAll } from "../../tools/main";
import { checkSession } from "./tools/users.js"; import { checkSession } from "./tools/users.js";
// Dictionnaires : revoir pour ne prendre que les variables utilisées // Dictionnaires :
const txt = require("../../lang/"+lang+"/general"); const { notAllowed, serverError, statsAdmin } = require("../../lang/"+lang+"/general");
const { nextDateWithoutQuestionnaire, nextQuestionnairesList, questionnaireNeedBeCompleted } = require("../../lang/"+lang+"/questionnaire");
const txtNotAllowed = require("../../lang/"+lang+"/general").notAllowed; const { welcomeMessage } = require("../../lang/"+lang+"/user");
const txtServerError = require("../../lang/"+lang+"/general").serverError;
const txtStatsAdmin = require("../../lang/"+lang+"/general").statsAdmin;
const txtNeedBeCompleted = require("../../lang/"+lang+"/questionnaire").needBeCompleted;
const txtNextDateWithoutQuestionnaire = require("../../lang/"+lang+"/questionnaire").nextDateWithoutQuestionnaire;
const txtNextQuestionnairesList = require("../../lang/"+lang+"/questionnaire").nextQuestionnairesList;
const txtWelcome = require("../../lang/"+lang+"/user").welcomeMessage;
const txtQuestionnaire = require("../../lang/"+lang+"/questionnaire");
// Principaux éléments du DOM manipulés : // Principaux éléments du DOM manipulés :
const divMain = document.getElementById("main-content"); const divMain = document.getElementById("main-content");
@ -49,12 +41,12 @@ const initialise = async () =>
{ {
try try
{ {
const isConnected=await checkSession(["manager", "admin"], "/"+configTemplate.connectionPage, { message: txtNotAllowed, color:"error" }); const isConnected=await checkSession(["manager", "admin"], "/"+configTemplate.connectionPage, { message: notAllowed, color:"error" });
if(isConnected) if(isConnected)
{ {
const user=getLocaly("user", true); const user=getLocaly("user", true);
updateAccountLink(user.status, configTemplate); updateAccountLink(user.status, configTemplate);
addElement(divMessage, "h2", txtWelcome.replace("#NAME", user.name)); addElement(divMessage, "h2", welcomeMessage.replace("#NAME", user.name));
divMain.style.display="block"; divMain.style.display="block";
if(!isEmpty(getLocaly("message"))) if(!isEmpty(getLocaly("message")))
{ {
@ -85,7 +77,7 @@ const initialise = async () =>
NB_USERS_DELETED_VALIDED : response.nbDeletedUsersWasValided, NB_USERS_DELETED_VALIDED : response.nbDeletedUsersWasValided,
NB_USERS_DELETED_PREMIUM : response.nbDeletedUsersTotWasPremium NB_USERS_DELETED_PREMIUM : response.nbDeletedUsersTotWasPremium
}; };
addElement(divMessage, "p", replaceAll(txtStatsAdmin, mapText), "", "", "", false); addElement(divMessage, "p", replaceAll(statsAdmin, mapText), "", "", "", false);
} }
} }
} }
@ -108,12 +100,12 @@ const initialise = async () =>
dayStr=new Intl.DateTimeFormat(lang, optionsDayStr).format(new Date(response.questionnaires[i].datePublishing)); dayStr=new Intl.DateTimeFormat(lang, optionsDayStr).format(new Date(response.questionnaires[i].datePublishing));
listHTML+="<li>"+dayStr+" "+dateFormat(response.questionnaires[i].datePublishing, availableLangs[0])+": <a href='"+configTemplate.questionnairesManagementPage+"?id="+response.questionnaires[i].id+"'>"+response.questionnaires[i].title+"</a>"; listHTML+="<li>"+dayStr+" "+dateFormat(response.questionnaires[i].datePublishing, availableLangs[0])+": <a href='"+configTemplate.questionnairesManagementPage+"?id="+response.questionnaires[i].id+"'>"+response.questionnaires[i].title+"</a>";
if(response.questionnaires[i].isPublishable===false) if(response.questionnaires[i].isPublishable===false)
listHTML+=" <span class='error'>("+txtNeedBeCompleted+")</li>"; listHTML+=" <span class='error'>("+questionnaireNeedBeCompleted+")</li>";
listHTML+="</li>"; listHTML+="</li>";
} }
if(response.questionnaires.length!==0) if(response.questionnaires.length!==0)
addElement(divQuestionnaires, "h2", txtNextQuestionnairesList.replace("#NB", response.questionnaires.length)); addElement(divQuestionnaires, "h2", nextQuestionnairesList.replace("#NB", response.questionnaires.length));
addElement(divQuestionnaires, "h4", txtNextDateWithoutQuestionnaire+dateFormat(response.dateNeeded, availableLangs[0]), "", ["info"], "", false); addElement(divQuestionnaires, "h4", nextDateWithoutQuestionnaire+dateFormat(response.dateNeeded, availableLangs[0]), "", ["info"], "", false);
addElement(divQuestionnaires, "ul", listHTML, "", "", "", false); addElement(divQuestionnaires, "ul", listHTML, "", "", "", false);
} }
} }
@ -135,7 +127,7 @@ const initialise = async () =>
if (this.status === 200 && response.message!=undefined) if (this.status === 200 && response.message!=undefined)
addElement(divMessage, "p", response.message, "", ["success"], "", false); addElement(divMessage, "p", response.message, "", ["success"], "", false);
else else
addElement(divMessage, "p", txt.serverError, "", ["error"], "", false); addElement(divMessage, "p", serverError, "", ["error"], "", false);
} }
} }
xhrRegenerate.setRequestHeader("Content-Type", "application/json"); xhrRegenerate.setRequestHeader("Content-Type", "application/json");
@ -147,7 +139,7 @@ const initialise = async () =>
} }
catch(e) catch(e)
{ {
addElement(divCrash, "p", txtServerError, "", ["error"]); addElement(divCrash, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
} }

View File

@ -21,10 +21,10 @@ import { isEmpty, replaceAll } from "../../tools/main";
import { checkSession, getConfig } from "./tools/users.js"; import { checkSession, getConfig } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txt = require("../../lang/"+lang+"/general"); const { nbQuestionnaireWithoudAnswer, noQuestionnaireWithoudAnswer, statsUser } = require("../../lang/"+lang+"/answer");
const txtUsers = require("../../lang/"+lang+"/user"); const { nextPage, previousPage, serverError } = require("../../lang/"+lang+"/general");
const txtAnwers = require("../../lang/"+lang+"/answer"); const { searchQuestionnaireResultTitle, searchQuestionnaireWithResult, searchQuestionnaireWithNoResult } = require("../../lang/"+lang+"/questionnaire");
const txtQuestionnaire = require("../../lang/"+lang+"/questionnaire"); const { needBeConnected, welcomeMessage } = require("../../lang/"+lang+"/user");
// Principaux éléments du DOM manipulés : // Principaux éléments du DOM manipulés :
const divMain= document.getElementById("main-content"); const divMain= document.getElementById("main-content");
@ -47,16 +47,16 @@ const initialise = async () =>
{ {
const config = await getConfig(); const config = await getConfig();
if(!config) if(!config)
addElement(divCrash, "p", txt.serverError, "", ["error"]); addElement(divCrash, "p", serverError, "", ["error"]);
else else
{ {
// Si l'utilisateur n'est pas connecté, pas la peine d'aller + loin : // Si l'utilisateur n'est pas connecté, pas la peine d'aller + loin :
const isConnected=await checkSession(["user"], "/"+configFrontEnd.connectionPage, { message: txtUsers.needBeConnected, color:"error" }, window.location); const isConnected=await checkSession(["user"], "/"+configFrontEnd.connectionPage, { message: needBeConnected, color:"error" }, window.location);
if(isConnected) if(isConnected)
{ {
const user=getLocaly("user", true); const user=getLocaly("user", true);
updateAccountLink(user.status, configFrontEnd); updateAccountLink(user.status, configFrontEnd);
addElement(divMessage, "h1", txtUsers.welcomeMessage.replace("#NAME", user.name)); addElement(divMessage, "h1", welcomeMessage.replace("#NAME", user.name));
divMain.style.display="block"; divMain.style.display="block";
if(!isEmpty(getLocaly("message"))) if(!isEmpty(getLocaly("message")))
{ {
@ -83,7 +83,7 @@ const initialise = async () =>
AVGDURATION : response.avgDuration, AVGDURATION : response.avgDuration,
AVGCORRECTANSWERS : response.avgCorrectAnswers AVGCORRECTANSWERS : response.avgCorrectAnswers
}; };
addElement(divMessage, "p", replaceAll(txtAnwers.statsUser, mapText), "", "", "", false); addElement(divMessage, "p", replaceAll(statsUser, mapText), "", "", "", false);
} }
} }
} }
@ -101,19 +101,19 @@ const initialise = async () =>
if (this.status === 200) if (this.status === 200)
{ {
if(response.nbTot===0) if(response.nbTot===0)
addElement(quizIntro, "p", txtAnwers.noQuestionnaireWithoudAnswer, "", ["success"]); addElement(quizIntro, "p", noQuestionnaireWithoudAnswer, "", ["success"]);
else if(response.html) else if(response.html)
{ {
addElement(quizIntro, "p", txtAnwers.nbQuestionnaireWithoudAnswer.replace("#NB", response.questionnaires.length), "", ["info"]); addElement(quizIntro, "p", nbQuestionnaireWithoudAnswer.replace("#NB", response.questionnaires.length), "", ["info"]);
quizListing.innerHTML=response.html; quizListing.innerHTML=response.html;
window.location.hash="";// sinon les hash s'enchaînent... window.location.hash="";// sinon les hash s'enchaînent...
window.location.assign("#quizsTitle"); window.location.assign("#quizsTitle");
} }
else else
addElement(quizs, "p", txt.serverError, "", ["error"]);// revoir si intérêt d'afficher quelque chose addElement(quizs, "p", serverError, "", ["error"]);// revoir si intérêt d'afficher quelque chose
} }
else else
addElement(quizs, "p", txt.serverError, "", ["error"]); // idem addElement(quizs, "p", serverError, "", ["error"]); // idem
} }
} }
xhrLastQuizs.setRequestHeader("Authorization", "Bearer "+user.token); xhrLastQuizs.setRequestHeader("Authorization", "Bearer "+user.token);
@ -123,7 +123,7 @@ const initialise = async () =>
// La recherche peut être lancée via la bouton submit ou un lien de pagination // La recherche peut être lancée via la bouton submit ou un lien de pagination
const sendSearch = (type="search") => const sendSearch = (type="search") =>
{ {
quizTitle.innerHTML=txtQuestionnaire.searchResultTitle; quizTitle.innerHTML=searchQuestionnaireResultTitle;
quizListing.innerHTML=""+""; quizListing.innerHTML=""+"";
let datas=getDatasFromInputs(formSearch); let datas=getDatasFromInputs(formSearch);
const xhrSearch = new XMLHttpRequest(); const xhrSearch = new XMLHttpRequest();
@ -140,13 +140,13 @@ const initialise = async () =>
{ {
if(response.nbTot===0) if(response.nbTot===0)
{ {
addElement(quizIntro, "p", txtQuestionnaire.notFound, "", ["info"]); addElement(quizIntro, "p", searchQuestionnaireWithNoResult, "", ["info"]);
window.location.hash="";// sinon les hash s'enchaînent... window.location.hash="";// sinon les hash s'enchaînent...
window.location.assign("#quizsTitle"); window.location.assign("#quizsTitle");
} }
else if(response.html) else if(response.html)
{ {
addElement(quizIntro, "p", txtQuestionnaire.searchWithResult.replace("#NB", response.nbTot) , "", ["success"]); addElement(quizIntro, "p", searchQuestionnaireWithResult.replace("#NB", response.nbTot) , "", ["success"]);
quizListing.innerHTML=response.html; quizListing.innerHTML=response.html;
window.location.hash=""; window.location.hash="";
window.location.assign("#quizsTitle"); window.location.assign("#quizsTitle");
@ -156,7 +156,7 @@ const initialise = async () =>
quizPaginationNext.innerHTML=""; quizPaginationNext.innerHTML="";
if(response.begin != 0)// peut retourner "0" et non 0 ! if(response.begin != 0)// peut retourner "0" et non 0 !
{ {
addElement(quizPaginationPrevious, "a", "<< "+txt.previousPage , "previousRes", ["button"], { href: "#search" }); // revoir, les "<<" pourraient être gérées par le CSS addElement(quizPaginationPrevious, "a", "<< "+previousPage , "previousRes", ["button"], { href: "#search" }); // revoir, les "<<" pourraient être gérées par le CSS
const previousPage=document.getElementById("previousRes"); const previousPage=document.getElementById("previousRes");
// le retour à la page précédente peut se faire en cliquant sur le bouton ou via l'historique du navigateur // le retour à la page précédente peut se faire en cliquant sur le bouton ou via l'historique du navigateur
const goBackRes = () => const goBackRes = () =>
@ -183,7 +183,7 @@ const initialise = async () =>
} }
if(response.end < (response.nbTot-1))// -1, car tableau commence à 0 ! if(response.end < (response.nbTot-1))// -1, car tableau commence à 0 !
{ {
addElement(quizPaginationNext, "a", txt.nextPage+ " >>", "nextRes", ["button"], { href: "#search" }, false); addElement(quizPaginationNext, "a", nextPage+ " >>", "nextRes", ["button"], { href: "#search" }, false);
const nextPage=document.getElementById("nextRes"); const nextPage=document.getElementById("nextRes");
nextPage.addEventListener("click", function(e) nextPage.addEventListener("click", function(e)
{ {
@ -196,10 +196,10 @@ const initialise = async () =>
} }
} }
else else
addElement(quizs, "p", txt.serverError, "", ["error"]); addElement(quizs, "p", serverError, "", ["error"]);
} }
else else
addElement(quizs, "p", txt.serverError, "", ["error"]); addElement(quizs, "p", serverError, "", ["error"]);
} }
} }
xhrSearch.setRequestHeader("Content-Type", "application/json"); xhrSearch.setRequestHeader("Content-Type", "application/json");
@ -230,7 +230,7 @@ const initialise = async () =>
catch(e) catch(e)
{ {
console.error(e); console.error(e);
addElement(divCrash, "p", txt.serverError, "", ["error"]); addElement(divCrash, "p", serverError, "", ["error"]);
} }
} }
initialise(); initialise();

View File

@ -21,7 +21,7 @@ const initialise = async () =>
const isConnected=await checkSession(); const isConnected=await checkSession();
if(isConnected) if(isConnected)
{ {
// on change le lien du compte en haut // on change le lien d'accès au compte
const user=getLocaly("user", true); const user=getLocaly("user", true);
updateAccountLink(user.status, configTemplate); updateAccountLink(user.status, configTemplate);
} }

View File

@ -20,8 +20,8 @@ import { getUrlParams } from "./tools/url.js";
import { checkAnswerDatas, checkSession, getConfig, getTimeDifference, setSession } from "./tools/users.js"; import { checkAnswerDatas, checkSession, getConfig, getTimeDifference, setSession } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txt = require("../../lang/"+lang+"/general"); const { serverError } = require("../../lang/"+lang+"/general");
const txtUsers = require("../../lang/"+lang+"/user"); const { alreadyConnected, badLinkValidationMessage, validationMessage } = require("../../lang/"+lang+"/user");
const divResponse = document.getElementById("response"); const divResponse = document.getElementById("response");
@ -34,14 +34,14 @@ const initialise = async () =>
{ {
config = await getConfig(); config = await getConfig();
if(!config) if(!config)
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
else else
{ {
// si l'utilisateur est déjà connecté, pas la peine d'aller + loin : // si l'utilisateur est déjà connecté, pas la peine d'aller + loin :
const isConnected=await checkSession(); const isConnected=await checkSession();
if(isConnected) if(isConnected)
{ {
saveLocaly("message", { message: txtUsers.alreadyConnected, color:"information" });// pour l'afficher sur la page suivante saveLocaly("message", { message: alreadyConnected, color:"information" });// pour l'afficher sur la page suivante
const user=getLocaly("user", true); const user=getLocaly("user", true);
const homePage=user.status+"HomePage"; const homePage=user.status+"HomePage";
window.location.assign("/"+configFrontEnd[homePage]); window.location.assign("/"+configFrontEnd[homePage]);
@ -67,7 +67,7 @@ const initialise = async () =>
connexionMaxTime+=parseInt(response.connexionTime,10)*3600*1000; connexionMaxTime+=parseInt(response.connexionTime,10)*3600*1000;
setSession(response.userId, response.token, connexionMaxTime); setSession(response.userId, response.token, connexionMaxTime);
removeLocaly("lastAnswer");// ! important pour ne pas enregister plusieurs fois le résultat removeLocaly("lastAnswer");// ! important pour ne pas enregister plusieurs fois le résultat
addElement(divResponse, "p", txtUsers.validationMessage, "", ["success"]);// au cas où blocage redirection addElement(divResponse, "p", validationMessage, "", ["success"]);// au cas où blocage redirection
window.location.assign("/"+configFrontEnd.userHomePage);// connexion par lien ne concerne que les simples "user" window.location.assign("/"+configFrontEnd.userHomePage);// connexion par lien ne concerne que les simples "user"
} }
else if ((this.status === 401 || this.status === 403) && response.errors != undefined) else if ((this.status === 401 || this.status === 403) && response.errors != undefined)
@ -75,11 +75,11 @@ const initialise = async () =>
if(Array.isArray(response.errors)) if(Array.isArray(response.errors))
response.errors = response.errors.join("<br>"); response.errors = response.errors.join("<br>");
else else
response.errors = txt.serverError; response.errors = serverError;
addElement(divResponse, "p", response.errors, "", ["error"]); addElement(divResponse, "p", response.errors, "", ["error"]);
} }
else else
addElement(divResponse, "p", txtUsers.badLinkValidationMessage.replace("#URL", configFrontEnd.connectionPage), "", ["error"]); addElement(divResponse, "p", badLinkValidationMessage.replace("#URL", configFrontEnd.connectionPage), "", ["error"]);
} }
} }
datas.timeDifference=getTimeDifference(config); datas.timeDifference=getTimeDifference(config);
@ -93,7 +93,7 @@ const initialise = async () =>
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
} }
} }
initialise(); initialise();

View File

@ -25,17 +25,9 @@ import { getUrlParams } from "./tools/url.js";
import { checkSession, getPassword } from "./tools/users.js"; import { checkSession, getPassword } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txtAddOkMessage = require("../../lang/"+lang+"/general").addOkMessage; const { addOkMessage, serverError } = require("../../lang/"+lang+"/general");
const txtServerError = require("../../lang/"+lang+"/general").serverError; const { infosAdminGodfather, infosAdminNbGodChilds, infosUserForAdmin, needBeConnected, searchUsersWithoutResult } = require("../../lang/"+lang+"/user");
const txtInfosAdminGodfather = require("../../lang/"+lang+"/user").infosAdminGodfather; const { infosExpiratedAdmin, infosNbDaysAdmin, infosPaymentsAdmin, isNotValided } = require("../../lang/"+lang+"/subscription");
const txtInfosAdminNbGodChilds = require("../../lang/"+lang+"/user").infosAdminNbGodChilds;
const txtInfosUserForAdmin = require("../../lang/"+lang+"/user").infosUserForAdmin;
const txtNeedBeConnected = require("../../lang/"+lang+"/user").needBeConnected;
const txtNotFound = require("../../lang/"+lang+"/user").notFound;
const txtInfosExpiratedAdmin = require("../../lang/"+lang+"/subscription").infosExpiratedAdmin;
const txtInfosNbDaysAdmin = require("../../lang/"+lang+"/subscription").infosNbDaysAdmin;
const txtInfosPaymentsAdmin = require("../../lang/"+lang+"/subscription").infosPaymentsAdmin;
const txtIsNotValided = require("../../lang/"+lang+"/subscription").isNotValided;
// Principaux éléments du DOM manipulés : // Principaux éléments du DOM manipulés :
const divMain = document.getElementById("main-content"); const divMain = document.getElementById("main-content");
@ -60,7 +52,7 @@ const initialise = async () =>
{ {
try try
{ {
const isConnected=await checkSession(["manager", "admin"], "/"+configTemplate.connectionPage, { message: txtNeedBeConnected, color:"error" }, window.location); const isConnected=await checkSession(["manager", "admin"], "/"+configTemplate.connectionPage, { message: needBeConnected, color:"error" }, window.location);
if(isConnected) if(isConnected)
{ {
const user=getLocaly("user", true); const user=getLocaly("user", true);
@ -120,7 +112,7 @@ const initialise = async () =>
DATE_UPDATE : dateFormat(response.User.updatedAt), DATE_UPDATE : dateFormat(response.User.updatedAt),
DATE_CONNECTION : dateFormat(response.User.connectedAt) DATE_CONNECTION : dateFormat(response.User.connectedAt)
}; };
let subscribeIntro=replaceAll(txtInfosUserForAdmin, mapText); let subscribeIntro=replaceAll(infosUserForAdmin, mapText);
for(let data in response.User) for(let data in response.User)
{ {
if(formUser.elements[data]!==undefined) if(formUser.elements[data]!==undefined)
@ -143,14 +135,14 @@ const initialise = async () =>
const beginSubTS=new Date(response.Subscription.createdAt).getTime(); const beginSubTS=new Date(response.Subscription.createdAt).getTime();
const nbDaysOk=response.Subscription.numberOfDays-Math.round((Date.now()-beginSubTS)/1000/3600/24); const nbDaysOk=response.Subscription.numberOfDays-Math.round((Date.now()-beginSubTS)/1000/3600/24);
if(nbDaysOk > 0) if(nbDaysOk > 0)
subscribeIntro+="<br>"+txtInfosNbDaysAdmin.replace("NB_DAYS", nbDaysOk); subscribeIntro+="<br>"+infosNbDaysAdmin.replace("NB_DAYS", nbDaysOk);
else else
subscribeIntro+="<br>"+txtInfosExpiratedAdmin; subscribeIntro+="<br>"+infosExpiratedAdmin;
addElement(divSubscribeIntro, "p", subscribeIntro, "", ["info"], "", false); addElement(divSubscribeIntro, "p", subscribeIntro, "", ["info"], "", false);
} }
else else
{ {
addElement(divSubscribeIntro, "p", txtIsNotValided, "", ["error"]); addElement(divSubscribeIntro, "p", isNotValided, "", ["error"]);
validationCheckBox.style.display="block"; validationCheckBox.style.display="block";
} }
deleteCheckBox.style.display="block"; deleteCheckBox.style.display="block";
@ -175,7 +167,7 @@ const initialise = async () =>
AMOUNT : responsePay[i].amount, AMOUNT : responsePay[i].amount,
CLIENT_NAME : responsePay[i].clientName CLIENT_NAME : responsePay[i].clientName
}; };
txtPayments+="<li>"+replaceAll(txtInfosPaymentsAdmin, mapText)+"</li>"; txtPayments+="<li>"+replaceAll(infosNbDaysAdmin, mapText)+"</li>";
} }
addElement(divPaymentsInfos, "ul", txtPayments, "", ["info"], "", false); addElement(divPaymentsInfos, "ul", txtPayments, "", ["info"], "", false);
divPaymentsInfos.style.display="block" divPaymentsInfos.style.display="block"
@ -198,7 +190,7 @@ const initialise = async () =>
let responseGF=JSON.parse(this.responseText); let responseGF=JSON.parse(this.responseText);
if (this.status === 200 && responseGF.User != undefined) if (this.status === 200 && responseGF.User != undefined)
{ {
addElement(divGodchildsInfos, "p", txtInfosAdminGodfather+"<a href='/"+configTemplate.usersManagementPage+"?id="+responseGF.User.id+"'>"+responseGF.User.name+"</a>"+".<br>", "", ["info"], "", false); addElement(divGodchildsInfos, "p", infosAdminGodfather+"<a href='/"+configTemplate.usersManagementPage+"?id="+responseGF.User.id+"'>"+responseGF.User.name+"</a>"+".<br>", "", ["info"], "", false);
divGodchildsInfos.style.display="block"; divGodchildsInfos.style.display="block";
} }
} }
@ -220,7 +212,7 @@ const initialise = async () =>
{ {
if(responseGS.length!==0) if(responseGS.length!==0)
{ {
txtGodchilds+=txtInfosAdminNbGodChilds.replace("#NB", responseGS.length); txtGodchilds+=infosAdminGodfather.replace("#NB", responseGS.length);
for(let i in responseGS) for(let i in responseGS)
txtGodchilds+="<a href='/"+configTemplate.usersManagementPage+"?id="+responseGS[i].id+"'>"+responseGS[i].name+"</a>"; txtGodchilds+="<a href='/"+configTemplate.usersManagementPage+"?id="+responseGS[i].id+"'>"+responseGS[i].name+"</a>";
addElement(divGodchildsInfos, "p", txtGodchilds+".", "", ["info"], "", false); addElement(divGodchildsInfos, "p", txtGodchilds+".", "", ["info"], "", false);
@ -286,7 +278,7 @@ const initialise = async () =>
let response=JSON.parse(this.responseText); let response=JSON.parse(this.responseText);
if (this.status === 201 && response.id!=undefined) if (this.status === 201 && response.id!=undefined)
{ {
addElement(divResponse, "p", txtAddOkMessage, "", ["success"]); addElement(divResponse, "p", addOkMessage, "", ["success"]);
datas.id=response.id; datas.id=response.id;
} }
else if (this.status === 200 && response.message!=undefined) else if (this.status === 200 && response.message!=undefined)
@ -302,11 +294,11 @@ const initialise = async () =>
if(Array.isArray(response.errors)) if(Array.isArray(response.errors))
response.errors = response.errors.join("<br>"); response.errors = response.errors.join("<br>");
else else
response.errors = txtServerError; response.errors = serverError;
addElement(divResponse, "p", response.errors, "", ["error"]); addElement(divResponse, "p", response.errors, "", ["error"]);
} }
else else
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
if(isEmpty(response.errors)) if(isEmpty(response.errors))
{ {
if(datas.deleteOk===undefined) if(datas.deleteOk===undefined)
@ -337,7 +329,7 @@ const initialise = async () =>
if (this.status === 200 && Array.isArray(response)) if (this.status === 200 && Array.isArray(response))
{ {
if(response.length===0) if(response.length===0)
addElement(divSearchResult, "p", txtNotFound, "", ["info"]); addElement(divSearchResult, "p", searchUsersWithoutResult, "", ["info"]);
else else
{ {
let selectHTML="<option value=''></option>"; let selectHTML="<option value=''></option>";
@ -353,7 +345,7 @@ const initialise = async () =>
} }
} }
else else
addElement(divSearchResult, "p", txtServerError, "", ["error"]); addElement(divSearchResult, "p", serverError, "", ["error"]);
} }
} }
xhrSearch.setRequestHeader("Content-Type", "application/json"); xhrSearch.setRequestHeader("Content-Type", "application/json");
@ -365,7 +357,7 @@ const initialise = async () =>
} }
catch(e) catch(e)
{ {
addElement(divCrash, "p", txtServerError, "", ["error"]); addElement(divCrash, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
} }

View File

@ -16,8 +16,8 @@ import { getUrlParams } from "./tools/url.js";
import { checkSession, getConfig, setSession } from "./tools/users.js"; import { checkSession, getConfig, setSession } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txt = require("../../lang/"+lang+"/general"); const { serverError } = require("../../lang/"+lang+"/general");
const txtUsers = require("../../lang/"+lang+"/user"); const { badLinkValidationMessage } = require("../../lang/"+lang+"/user");
const divResponse = document.getElementById("response"); const divResponse = document.getElementById("response");
@ -30,7 +30,7 @@ const initialise = async () =>
{ {
config = await getConfig(); config = await getConfig();
if(!config) if(!config)
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
else else
{ {
const datas=getUrlParams(); const datas=getUrlParams();
@ -54,11 +54,11 @@ const initialise = async () =>
if(Array.isArray(response.errors)) if(Array.isArray(response.errors))
response.errors = response.errors.join("<br>"); response.errors = response.errors.join("<br>");
else else
response.errors = txt.serverError; response.errors = serverError;
addElement(divResponse, "p", response.errors, "", ["error"]); addElement(divResponse, "p", response.errors, "", ["error"]);
} }
else else
addElement(divResponse, "p", txtUsers.badLinkValidationMessage.replace("#URL", configFrontEnd.accountPage), "", ["error"]); addElement(divResponse, "p", badLinkValidationMessage.replace("#URL", configFrontEnd.accountPage), "", ["error"]);
} }
} }
xhr.setRequestHeader("Authorization", "Bearer "+datas.t); xhr.setRequestHeader("Authorization", "Bearer "+datas.t);
@ -68,7 +68,7 @@ const initialise = async () =>
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
} }

View File

@ -1,7 +1,7 @@
// -- GESTION DE LA PAGE DU FINANCEMENT PARTICIPATIF (SANS DEVOIR ÊTRE CONNECTÉ) // -- GESTION DE LA PAGE DU FINANCEMENT PARTICIPATIF (SANS DEVOIR ÊTRE CONNECTÉ)
/// Permet d'afficher les boutons de paiement WP suivant le choix de l'utilisateur. /// Permet d'afficher les boutons de paiement WP suivant le choix de l'utilisateur.
/// Matomo est également activité son internaute non connecté. /// Matomo est également activé si l'internaute n'est pas connecté.
// Fichier de configuration tirés du backend : // Fichier de configuration tirés du backend :
import { availableLangs, theme } from "../../config/instance.js"; import { availableLangs, theme } from "../../config/instance.js";

View File

@ -21,8 +21,8 @@ import { loadMatomo } from "./tools/matomo.js";
import { checkSession, getTimeDifference } from "./tools/users.js"; import { checkSession, getTimeDifference } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txtServerError = require("../../lang/"+lang+"/general").serverError; const { noPreviousAnswer, previousAnswersLine, previousAnswersStats, previousAnswersTitle, responseSavedError, wantToSaveResponses } = require("../../lang/"+lang+"/answer");
const txtAnswers = require("../../lang/"+lang+"/answer"); const { serverError } = require("../../lang/"+lang+"/general");
// Principaux éléments du DOM manipulés : // Principaux éléments du DOM manipulés :
const myForm = document.getElementById("questionnaire"); const myForm = document.getElementById("questionnaire");
@ -83,7 +83,7 @@ btnShow.addEventListener("click", function(e)
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
}); });
@ -160,7 +160,7 @@ myForm.addEventListener("submit", function(e)
checkPreviousResponses(user); checkPreviousResponses(user);
} }
else else
getOuput+="<br>"+txtAnswers.responseSavedError.replace("#URL", configTemplate.userHomePage); getOuput+="<br>"+responseSavedError.replace("#URL", configTemplate.userHomePage);
// on redirige vers le résultat // on redirige vers le résultat
window.location.hash=""; window.location.hash="";
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"...
@ -176,7 +176,7 @@ myForm.addEventListener("submit", function(e)
{ // si pas connecté, on enregistre le résultat côté client pour permettre de le retrouver au moment de la création du compte ou de la connexion. { // si pas connecté, on enregistre le résultat côté client pour permettre de le retrouver au moment de la création du compte ou de la connexion.
if(saveAnswer(answer)) if(saveAnswer(answer))
{ {
getOuput+="<br><br>"+txtAnswers.wantToSaveResponses; getOuput+="<br><br>"+wantToSaveResponses;
addElement(divResponse, "p", getOuput, "", ["info"]); addElement(divResponse, "p", getOuput, "", ["info"]);
document.querySelector(".subscribeBtns").style.display="block"; document.querySelector(".subscribeBtns").style.display="block";
} }
@ -197,7 +197,7 @@ myForm.addEventListener("submit", function(e)
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
}) })
@ -217,7 +217,7 @@ const checkPreviousResponses = (user) =>
{ {
const nbResponses=response.length; const nbResponses=response.length;
let previousAnswersContent=""; let previousAnswersContent="";
addElement(explanationsTitle, "span", txtAnswers.previousAnswersTitle.replace("#NOM", user.name)); addElement(explanationsTitle, "span", previousAnswersTitle.replace("#NOM", user.name));
if(nbResponses!==0) if(nbResponses!==0)
{ {
let totNbQuestions=0, totNbCorrectAnswers=0, totDuration=0, mapLineContent; let totNbQuestions=0, totNbCorrectAnswers=0, totDuration=0, mapLineContent;
@ -233,18 +233,18 @@ const checkPreviousResponses = (user) =>
NBQUESTIONS : response[i].nbQuestions, NBQUESTIONS : response[i].nbQuestions,
AVGDURATION : response[i].duration AVGDURATION : response[i].duration
}; };
previousAnswersContent+="<li>"+replaceAll(txtAnswers.previousAnswersLine, mapLineContent)+"</li>"; previousAnswersContent+="<li>"+replaceAll(previousAnswersLine, mapLineContent)+"</li>";
} }
mapLineContent = mapLineContent =
{ {
AVGDURATION : Math.round(totDuration/nbResponses), AVGDURATION : Math.round(totDuration/nbResponses),
AVGCORRECTANSWERS : Math.round(totNbCorrectAnswers/totNbQuestions*100) AVGCORRECTANSWERS : Math.round(totNbCorrectAnswers/totNbQuestions*100)
}; };
previousAnswersContent="<h5>"+replaceAll(txtAnswers.previousAnswersStats, mapLineContent)+"</h5>"+previousAnswersContent; previousAnswersContent="<h5>"+replaceAll(previousAnswersStats, mapLineContent)+"</h5>"+previousAnswersContent;
addElement(explanationsContent, "ul", previousAnswersContent); addElement(explanationsContent, "ul", previousAnswersContent);
} }
else else
addElement(explanationsContent, "ul", txtAnswers.noPreviousAnswer); addElement(explanationsContent, "ul", noPreviousAnswer);
// dans un cas comme dans l'autre, bouton pour revenir à l'accueil du compte // dans un cas comme dans l'autre, bouton pour revenir à l'accueil du compte
addElement(explanationsContent, "p", "<a href=\"/"+configTemplate.userHomePage+"\" class=\"button cardboard\">"+configTemplate.userHomePageTxt+"</a>", "", ["btn"], "", false); addElement(explanationsContent, "p", "<a href=\"/"+configTemplate.userHomePage+"\" class=\"button cardboard\">"+configTemplate.userHomePageTxt+"</a>", "", ["btn"], "", false);

View File

@ -19,9 +19,8 @@ import { loadMatomo } from "./tools/matomo.js";
import { checkAnswerDatas, checkSession, getPassword, getTimeDifference } from "./tools/users.js"; import { checkAnswerDatas, checkSession, getPassword, getTimeDifference } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txtServerError = require("../../lang/"+lang+"/general").serverError; const { notRequired, serverError } = require("../../lang/"+lang+"/general");
const txtNotRequired = require("../../lang/"+lang+"/general").notRequired; const { alreadyConnected, godfatherFound, godfatherNotFound, needUniqueEmail, passwordCopied } = require("../../lang/"+lang+"/user");
const txtUsers = require("../../lang/"+lang+"/user");
// Principaux éléments du DOM manipulés : // Principaux éléments du DOM manipulés :
const myForm=document.getElementById("subscription"); const myForm=document.getElementById("subscription");
@ -43,7 +42,7 @@ const initialise = async () =>
const isConnected=await checkSession(); const isConnected=await checkSession();
if(isConnected) if(isConnected)
{ {
saveLocaly("message", { message: txtUsers.alreadyConnected, color:"info" });// pour l'afficher sur la page suivante saveLocaly("message", { message: alreadyConnected, color:"info" });// pour l'afficher sur la page suivante
const user=getLocaly("user", true); const user=getLocaly("user", true);
const homePage=user.status+"HomePage"; const homePage=user.status+"HomePage";
window.location.assign("/"+configTemplate[homePage]); window.location.assign("/"+configTemplate[homePage]);
@ -57,7 +56,7 @@ const initialise = async () =>
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
} }
@ -72,7 +71,7 @@ passwordLink.addEventListener("click", function(e)
// Copie du mot de passe généré dans le "presse-papier" de l'ordinateur : // Copie du mot de passe généré dans le "presse-papier" de l'ordinateur :
passwordInput.select(); passwordInput.select();
document.execCommand("copy"); document.execCommand("copy");
addElement(passwordHelp, "div", txtUsers.passwordCopied, "", ["success"]); addElement(passwordHelp, "div", passwordCopied, "", ["success"]);
}); });
// Test si l'e-mail saisi est déjà utilisé par un autre compte. // Test si l'e-mail saisi est déjà utilisé par un autre compte.
@ -95,7 +94,7 @@ emailInput.addEventListener("blur", function(e)
let response=JSON.parse(this.responseText); let response=JSON.parse(this.responseText);
if (this.status === 200 && response.free!==undefined && response.free === false) if (this.status === 200 && response.free!==undefined && response.free === false)
{ {
addElement(document.getElementById("emailMessage"), "div", txtUsers.needUniqueEmail.replace("#URL", configTemplate.connectionPage), "", ["error"]); addElement(document.getElementById("emailMessage"), "div", needUniqueEmail.replace("#URL", configTemplate.connectionPage), "", ["error"]);
btnSubmit.setAttribute("disabled", true); btnSubmit.setAttribute("disabled", true);
} }
else else
@ -111,7 +110,7 @@ emailInput.addEventListener("blur", function(e)
// Vérification que le code/e-mail de parrainage saisi est valide. // Vérification que le code/e-mail de parrainage saisi est valide.
codeGodfatherInput.addEventListener("focus", function(e) codeGodfatherInput.addEventListener("focus", function(e)
{ // on efface l'éventuel message d'erreur si on revient sur le champ pour tester un autre code. { // on efface l'éventuel message d'erreur si on revient sur le champ pour tester un autre code.
addElement(document.getElementById("codeGodfatherMessage"), "i", txtNotRequired); addElement(document.getElementById("codeGodfatherMessage"), "i", notRequired);
}); });
codeGodfatherInput.addEventListener("blur", function(e) codeGodfatherInput.addEventListener("blur", function(e)
{ {
@ -125,9 +124,9 @@ codeGodfatherInput.addEventListener("blur", function(e)
if (this.readyState == XMLHttpRequest.DONE) if (this.readyState == XMLHttpRequest.DONE)
{ {
if (this.status === 204) if (this.status === 204)
addElement(document.getElementById("codeGodfatherMessage"), "div", txtUsers.godfatherNotFound, "", ["error"]); addElement(document.getElementById("codeGodfatherMessage"), "div", godfatherNotFound, "", ["error"]);
else else
addElement(document.getElementById("codeGodfatherMessage"), "div", txtUsers.godfatherFound, "", ["success"]); addElement(document.getElementById("codeGodfatherMessage"), "div", godfatherFound, "", ["success"]);
} }
} }
xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader("Content-Type", "application/json");
@ -161,7 +160,7 @@ myForm.addEventListener("submit", function(e)
addElement(divResponse, "p", response.errors, "", ["error"]); addElement(divResponse, "p", response.errors, "", ["error"]);
} }
else else
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
} }
} }
xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader("Content-Type", "application/json");
@ -176,7 +175,7 @@ myForm.addEventListener("submit", function(e)
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
console.error(e); console.error(e);
} }
}); });

View File

@ -21,8 +21,8 @@ import { getUrlParams } from "./tools/url.js";
import { checkSession } from "./tools/users.js"; import { checkSession } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txtServerError = require("../../lang/"+lang+"/general").serverError; const { serverError } = require("../../lang/"+lang+"/general");
const txtUsers = require("../../lang/"+lang+"/user"); const { alreadyConnected, badLinkValidationMessage, validationMessage } = require("../../lang/"+lang+"/user");
const divResponse = document.getElementById("response"); const divResponse = document.getElementById("response");
@ -34,7 +34,7 @@ const initialise = async () =>
const isConnected=await checkSession(); const isConnected=await checkSession();
if(isConnected) if(isConnected)
{ {
saveLocaly("message", { message: txtUsers.alreadyConnected, color:"info" }); saveLocaly("message", { message: alreadyConnected, color:"info" });
const user=getLocaly("user", true); const user=getLocaly("user", true);
const homePage=user.status+"HomePage";// lors de la création d'un compte, seul le statut "user" est possible. const homePage=user.status+"HomePage";// lors de la création d'un compte, seul le statut "user" est possible.
window.location.assign("/"+configTemplate[homePage]); window.location.assign("/"+configTemplate[homePage]);
@ -54,7 +54,7 @@ const initialise = async () =>
let response=JSON.parse(this.responseText); let response=JSON.parse(this.responseText);
if (this.status === 200 && response.userId != undefined && response.token != undefined) if (this.status === 200 && response.userId != undefined && response.token != undefined)
{ {
saveLocaly("message", { message: txtUsers.validationMessage, color:"success" });// pour l'afficher sur la page suivante saveLocaly("message", { message: validationMessage, color:"success" });// pour l'afficher sur la page suivante
window.location.assign("/"+configTemplate.connectionPage); window.location.assign("/"+configTemplate.connectionPage);
} }
else if ((this.status === 200 || this.status === 404) && response.errors != undefined) else if ((this.status === 200 || this.status === 404) && response.errors != undefined)
@ -63,7 +63,7 @@ const initialise = async () =>
addElement(divResponse, "p", response.errors, "", ["error"]); addElement(divResponse, "p", response.errors, "", ["error"]);
} }
else else
addElement(divResponse, "p", txtUsers.badLinkValidationMessage.replace("#URL", configTemplate.connectionPage), "", ["error"]); addElement(divResponse, "p", badLinkValidationMessage.replace("#URL", configTemplate.connectionPage), "", ["error"]);
} }
} }
xhr.send(); xhr.send();
@ -73,7 +73,7 @@ const initialise = async () =>
catch(e) catch(e)
{ {
console.error(e); console.error(e);
addElement(divResponse, "p", txtServerError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
} }
} }
initialise(); initialise();

View File

@ -17,9 +17,8 @@ import { getUrlParams } from "./tools/url.js";
import { checkSession, getConfig, setSession } from "./tools/users.js"; import { checkSession, getConfig, setSession } from "./tools/users.js";
// Dictionnaires : // Dictionnaires :
const txt = require("../../lang/"+lang+"/general"); const { serverError } = require("../../lang/"+lang+"/general");
const txtUsers = require("../../lang/"+lang+"/user"); const { unsubscriptionFail } = require("../../lang/"+lang+"/subscription");
const txtSubscriptions = require("../../lang/"+lang+"/subscription");
const divResponse = document.getElementById("response"); const divResponse = document.getElementById("response");
@ -32,7 +31,7 @@ const initialise = async () =>
{ {
config = await getConfig(); config = await getConfig();
if(!config) if(!config)
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
else else
{ {
const datas=getUrlParams(); const datas=getUrlParams();
@ -48,7 +47,7 @@ const initialise = async () =>
if (this.status === 200 && response.message != undefined) if (this.status === 200 && response.message != undefined)
addElement(divResponse, "p", response.message.replace("#URL", configFrontEnd.accountPage), "", ["success"]); addElement(divResponse, "p", response.message.replace("#URL", configFrontEnd.accountPage), "", ["success"]);
else else
addElement(divResponse, "p", txtSubscriptions.unsubscriptionFail.replace("#URL", configFrontEnd.accountPage), "", ["error"]); addElement(divResponse, "p", unsubscriptionFail.replace("#URL", configFrontEnd.accountPage), "", ["error"]);
} }
} }
xhr.send(); xhr.send();
@ -57,7 +56,7 @@ const initialise = async () =>
} }
catch(e) catch(e)
{ {
addElement(divResponse, "p", txt.serverError, "", ["error"]); addElement(divResponse, "p", serverError, "", ["error"]);
} }
} }
initialise(); initialise();

View File

@ -28,13 +28,12 @@ module.exports =
needUrl: "Merci de fournir l'url à votre quiz.", needUrl: "Merci de fournir l'url à votre quiz.",
nextDateWithoutQuestionnaire: "Prochaine date sans quiz programmé : ", nextDateWithoutQuestionnaire: "Prochaine date sans quiz programmé : ",
nextQuestionnairesList: "Les #NB prochains quizs devant être publiés", nextQuestionnairesList: "Les #NB prochains quizs devant être publiés",
notFound : "Aucun quiz n'a pas été trouvé.",
questionnairesName: "quiz", questionnairesName: "quiz",
questionnaireNeedBeCompleted: "Quiz incomplet", questionnaireNeedBeCompleted: "Quiz incomplet",
publishedAt: ", le", publishedAt: ", le",
publishedBy: "Quiz publié par", publishedBy: "Quiz publié par",
searchQuestionnaireResultTitle : "Résultat pour votre recherche",
searchQuestionnaireWithNoResult : "Aucun quiz n'a été trouvé pour votre recherche.", searchQuestionnaireWithNoResult : "Aucun quiz n'a été trouvé pour votre recherche.",
searchResultTitle : "Résultat pour votre recherche", searchQuestionnaireWithResult : "Voici #NB quizs pour votre recherche :",
searchWithResult : "Voici #NB quizs pour votre recherche :",
wrongAnswerTxt: "Mauvaise réponse" wrongAnswerTxt: "Mauvaise réponse"
}; };

View File

@ -70,8 +70,8 @@ module.exports =
needUniqueEmail: "L'adresse e-mail que vous avez saisie est déjà utilisée pour un compte utilisateur. Si vous avez déjà un compte, <a href='/#URL'>cliquez-ici pour vous connecter</a>.", needUniqueEmail: "L'adresse e-mail que vous avez saisie est déjà utilisée pour un compte utilisateur. Si vous avez déjà un compte, <a href='/#URL'>cliquez-ici pour vous connecter</a>.",
needValidationToLogin : "Vous devez d'abord valider votre compte avant de pouvoir vous connecter. Pour ce faire, un nouveau lien vient de vous être envoyé par e-mail.", needValidationToLogin : "Vous devez d'abord valider votre compte avant de pouvoir vous connecter. Pour ce faire, un nouveau lien vient de vous être envoyé par e-mail.",
needValidLastConnectionDate : "La date de dernière connexion n'est pas valide.", needValidLastConnectionDate : "La date de dernière connexion n'est pas valide.",
notFound: "L'utilisateur n'a pas été trouvé.",
passwordCopied: "Le mot de passe généré a été copié dans le presse-papier de votre ordinateur (ou mobile). Vous pouvez le \"coller\" où vous le souhaitez.", passwordCopied: "Le mot de passe généré a été copié dans le presse-papier de votre ordinateur (ou mobile). Vous pouvez le \"coller\" où vous le souhaitez.",
searchUsersWithoutResult: "L'utilisateur n'a pas été trouvé.",
tooManyLoginFails : "Désolé mais il y a eu trop de tentatives de connexion infructueuses pour cette adresse e-mail. Vous devez attendre MINUTES minutes pour essayer de nouveau.", tooManyLoginFails : "Désolé mais il y a eu trop de tentatives de connexion infructueuses pour cette adresse e-mail. Vous devez attendre MINUTES minutes pour essayer de nouveau.",
updatedFailedGodfatherNotFound : "L'identifiant fourni pour le parrain ne correspond à aucun utilisateur.", updatedFailedGodfatherNotFound : "L'identifiant fourni pour le parrain ne correspond à aucun utilisateur.",
updatedNeedGoodEmail : "Mais la nouvelle adresse e-mail n'a pu être enregistrée, car elle n'a pas un format correct.", updatedNeedGoodEmail : "Mais la nouvelle adresse e-mail n'a pu être enregistrée, car elle n'a pas un format correct.",