diff --git a/front/src/accountUser.js b/front/src/accountUser.js index 213b1e7..f8a6c29 100644 --- a/front/src/accountUser.js +++ b/front/src/accountUser.js @@ -2,24 +2,22 @@ /// Vérifier que l'utilisateur est bien connecté, a le bon statut et le rediriger vers le formulaire d'inscription si ce n'est pas le cas. /// Si c'est ok, on récupère les infos de son compte et son abonnement et les affiche dans le formulaire. -/// Une information est affichée concernant la possibilité de parrainage et les listes les filleuils existants. +/// Une information est affichée concernant la possibilité de parrainage et liste les filleuls existants. /// Un menu permet à l'utilisateur d'accéder à la modification de ses infos, etc. /// Des boutons de paiement sont aussi affichés suivant le choix de l'utilisateur pour lui permettre de prolonger son abonnement. /// Un message venant d'une autre page peut aussi être à afficher lors du premier chargement. -/// Ajout test email en doublon avant envoi ? - // Fichier de configuration côté client : import { apiUrl, availableLangs, theme } from "../../config/instance.js"; const lang=availableLangs[0]; const configFrontEnd = require("../../views/"+theme+"/config/"+lang+".js"); -// Fonctions utiles au script : !! revoir quand le rest sera fini pour vérifier si tout est utile -import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js"; +// Fonctions utiles au script +import { getLocaly, removeLocaly } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; import { helloDev, updateAccountLink } from "./tools/everywhere.js"; import { getDatasFromInputs, setAttributesToInputs } from "./tools/forms.js"; -import { isEmpty, replaceAll } from "../../tools/main"; +import { isEmpty } from "../../tools/main"; import { checkSession, getConfig, getTimeDifference } from "./tools/users.js"; // Spécifique WebPortage pour paiements: @@ -58,6 +56,10 @@ const initialise = async () => if(isConnected) { divMain.style.display="block"; + // l'éventuelle ancre est ignorée, car absente du DOM avant d'avoir vérifié la connexion + if(window.location.hash!==undefined) + window.location.assign(window.location.hash); + if(!isEmpty(getLocaly("message"))) { addElement(divMessage, "p", getLocaly("message", true).message, "", [getLocaly("message", true).color], "", false); @@ -67,10 +69,10 @@ const initialise = async () => updateAccountLink(user.status, configFrontEnd); // Initialise le formulaire permettant de mettre à jour les infos : setAttributesToInputs(config, formAccount); - // Certains navigateurs ont tendance à remplir tout seul les champs password + // Certains navigateurs remplissent les champs password : newPassword.value=""; - // Fonction affichant les infos connues au premier affichage puis après envoi mise à jour + // Fonction affichant les infos connues au premier affichage, puis après envoi mise à jour const getInfos = () => { const xhrGetInfos = new XMLHttpRequest(); @@ -98,21 +100,22 @@ const initialise = async () => // jours de réception for(let i in response.Subscription.receiptDays) formAccount.elements["d"+response.Subscription.receiptDays[i]].checked="checked"; + // "codes" possibles à transmettre pour parrainer d'autres utilisateurs showGFEmail.innerHTML=response.User.email; showGFCode.innerHTML=config.beginCodeGodfather+response.User.id; } const beginSubTS=new Date(response.Subscription.createdAt).getTime(); const nbDaysOk=response.Subscription.numberOfDays-Math.round((Date.now()-beginSubTS)/1000/3600/24); - if(nbDaysOk>0) - addElement(divSubscribeIntro, "p", txtSubscriptions.infosNbDays.replace("NB_DAYS", nbDaysOk), "", ["information"]); + if(nbDaysOk > 0) + addElement(divSubscribeIntro, "p", txtSubscriptions.infosNbDays.replace("NB_DAYS", nbDaysOk), "", ["info"]); else { addElement(divSubscribeIntro, "p", txtSubscriptions.infosExpirated.replace("NB_DAYS", nbDaysOk), "", ["error"]); window.location.assign("#subscribe"); - } + } } } - xhrGetInfos.setRequestHeader("Authorization", "Bearer "+user.token); + xhrGetInfos.setRequestHeader("Authorization", "Bearer "+user.token); xhrGetInfos.send(); } // Remonte les infos déjà enregistrées : @@ -178,11 +181,11 @@ const initialise = async () => }); // on passe à la caisse ? - const CGV=document.getElementById("CGVOk"); const abo9=document.getElementById("abo9"); const abo18=document.getElementById("abo18"); const abo36=document.getElementById("abo36"); const abo54=document.getElementById("abo54"); + const CGV=document.getElementById("CGVOk"); const divWPBtns=document.getElementById("WPBtns"); divWPBtns.style.display="none"; abo9.addEventListener("change", function(e) @@ -224,7 +227,7 @@ const initialise = async () => divWPBtns.style.display="none"; }); - // Liste des filleuils, si il y en a + // Liste des filleuls, si il y en a const xhrGetGodchilds = new XMLHttpRequest(); xhrGetGodchilds.open("GET", apiUrl+config.userRoutes+config.getGodChilds); xhrGetGodchilds.onreadystatechange = function() @@ -236,10 +239,10 @@ const initialise = async () => { const nbGodchilds=response.length; if(nbGodchilds===0) - txtGodchilds="Pour l'instant, aucune personne ne s'est inscrite, en vous désignant comme \"parrain\".";// revoir : utiliser le dictionnaire User + txtGodchilds=txtUsers.infosUserNoGodchilds; else { - txtGodchilds=nbGodchilds+" utilisateur(s) inscrit(s) en vous désignant comme \"parrain\" :"; + txtGodchilds=txtUsers.infosUserNbGodChilds.replace("#NB", nbGodchilds); for(let i in response) txtGodchilds+=response[i].name+" ("+response[i].email+") "; } diff --git a/lang/fr/user.js b/lang/fr/user.js index 6af1462..5ad09d9 100644 --- a/lang/fr/user.js +++ b/lang/fr/user.js @@ -80,6 +80,8 @@ module.exports = welcomeMessage: "Bienvenue #NAME !", byebyeMessage: "Si vous voyez ce message, c'est que votre déconnexion s'est bien déroulée.
À bientôt !", infosUserForAdmin: "Cet utilisateur (id: ID_USER) a créé son compte le DATE_CREA, la dernière mise à jour datant du DATE_UPDATE.
Date de sa dernière connexion : DATE_CONNECTION.", + infosUserNoGodchilds: "Pour l'instant, aucune personne ne s'est inscrite, en vous désignant comme \"parrain\".", + infosUserNbGodChilds: "Voici les #NB utilisateur(s) inscrit(s) en vous désignant comme \"parrain\" : ", infosAdminGodfather: "Cet utilisateur a été parrainé par ", - infosAdminNbGodChilds: "Ses #NB filleuils : " + infosAdminNbGodChilds: "Ses #NB filleuls : " }; \ No newline at end of file