Relecture JS gestion compte utilisateur avec notamment debug prise en compte des ancres et textes ajoutés dans dictionnaire
This commit is contained in:
parent
3239991037
commit
893f0cdf9a
@ -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+") ";
|
||||
}
|
||||
|
@ -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.<br>À bientôt !",
|
||||
infosUserForAdmin: "Cet utilisateur (id: ID_USER) a <b>créé son compte le DATE_CREA</b>, la dernière mise à jour datant du DATE_UPDATE.<br><b>Date de sa dernière connexion : DATE_CONNECTION.</b>",
|
||||
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 : "
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user