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.
|
/// 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.
|
/// 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.
|
/// 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.
|
/// 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.
|
/// 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 :
|
// Fichier de configuration côté client :
|
||||||
import { apiUrl, availableLangs, theme } from "../../config/instance.js";
|
import { apiUrl, availableLangs, theme } from "../../config/instance.js";
|
||||||
const lang=availableLangs[0];
|
const lang=availableLangs[0];
|
||||||
const configFrontEnd = require("../../views/"+theme+"/config/"+lang+".js");
|
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
|
// Fonctions utiles au script
|
||||||
import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js";
|
import { getLocaly, removeLocaly } from "./tools/clientstorage.js";
|
||||||
import { addElement } from "./tools/dom.js";
|
import { addElement } from "./tools/dom.js";
|
||||||
import { helloDev, updateAccountLink } from "./tools/everywhere.js";
|
import { helloDev, updateAccountLink } from "./tools/everywhere.js";
|
||||||
import { getDatasFromInputs, setAttributesToInputs } from "./tools/forms.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";
|
import { checkSession, getConfig, getTimeDifference } from "./tools/users.js";
|
||||||
|
|
||||||
// Spécifique WebPortage pour paiements:
|
// Spécifique WebPortage pour paiements:
|
||||||
@ -58,6 +56,10 @@ const initialise = async () =>
|
|||||||
if(isConnected)
|
if(isConnected)
|
||||||
{
|
{
|
||||||
divMain.style.display="block";
|
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")))
|
if(!isEmpty(getLocaly("message")))
|
||||||
{
|
{
|
||||||
addElement(divMessage, "p", getLocaly("message", true).message, "", [getLocaly("message", true).color], "", false);
|
addElement(divMessage, "p", getLocaly("message", true).message, "", [getLocaly("message", true).color], "", false);
|
||||||
@ -67,10 +69,10 @@ const initialise = async () =>
|
|||||||
updateAccountLink(user.status, configFrontEnd);
|
updateAccountLink(user.status, configFrontEnd);
|
||||||
// Initialise le formulaire permettant de mettre à jour les infos :
|
// Initialise le formulaire permettant de mettre à jour les infos :
|
||||||
setAttributesToInputs(config, formAccount);
|
setAttributesToInputs(config, formAccount);
|
||||||
// Certains navigateurs ont tendance à remplir tout seul les champs password
|
// Certains navigateurs remplissent les champs password :
|
||||||
newPassword.value="";
|
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 getInfos = () =>
|
||||||
{
|
{
|
||||||
const xhrGetInfos = new XMLHttpRequest();
|
const xhrGetInfos = new XMLHttpRequest();
|
||||||
@ -98,21 +100,22 @@ const initialise = async () =>
|
|||||||
// jours de réception
|
// jours de réception
|
||||||
for(let i in response.Subscription.receiptDays)
|
for(let i in response.Subscription.receiptDays)
|
||||||
formAccount.elements["d"+response.Subscription.receiptDays[i]].checked="checked";
|
formAccount.elements["d"+response.Subscription.receiptDays[i]].checked="checked";
|
||||||
|
// "codes" possibles à transmettre pour parrainer d'autres utilisateurs
|
||||||
showGFEmail.innerHTML=response.User.email;
|
showGFEmail.innerHTML=response.User.email;
|
||||||
showGFCode.innerHTML=config.beginCodeGodfather+response.User.id;
|
showGFCode.innerHTML=config.beginCodeGodfather+response.User.id;
|
||||||
}
|
}
|
||||||
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), "", ["information"]);
|
addElement(divSubscribeIntro, "p", txtSubscriptions.infosNbDays.replace("NB_DAYS", nbDaysOk), "", ["info"]);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
addElement(divSubscribeIntro, "p", txtSubscriptions.infosExpirated.replace("NB_DAYS", nbDaysOk), "", ["error"]);
|
addElement(divSubscribeIntro, "p", txtSubscriptions.infosExpirated.replace("NB_DAYS", nbDaysOk), "", ["error"]);
|
||||||
window.location.assign("#subscribe");
|
window.location.assign("#subscribe");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
xhrGetInfos.setRequestHeader("Authorization", "Bearer "+user.token);
|
xhrGetInfos.setRequestHeader("Authorization", "Bearer "+user.token);
|
||||||
xhrGetInfos.send();
|
xhrGetInfos.send();
|
||||||
}
|
}
|
||||||
// Remonte les infos déjà enregistrées :
|
// Remonte les infos déjà enregistrées :
|
||||||
@ -178,11 +181,11 @@ const initialise = async () =>
|
|||||||
});
|
});
|
||||||
|
|
||||||
// on passe à la caisse ?
|
// on passe à la caisse ?
|
||||||
const CGV=document.getElementById("CGVOk");
|
|
||||||
const abo9=document.getElementById("abo9");
|
const abo9=document.getElementById("abo9");
|
||||||
const abo18=document.getElementById("abo18");
|
const abo18=document.getElementById("abo18");
|
||||||
const abo36=document.getElementById("abo36");
|
const abo36=document.getElementById("abo36");
|
||||||
const abo54=document.getElementById("abo54");
|
const abo54=document.getElementById("abo54");
|
||||||
|
const CGV=document.getElementById("CGVOk");
|
||||||
const divWPBtns=document.getElementById("WPBtns");
|
const divWPBtns=document.getElementById("WPBtns");
|
||||||
divWPBtns.style.display="none";
|
divWPBtns.style.display="none";
|
||||||
abo9.addEventListener("change", function(e)
|
abo9.addEventListener("change", function(e)
|
||||||
@ -224,7 +227,7 @@ const initialise = async () =>
|
|||||||
divWPBtns.style.display="none";
|
divWPBtns.style.display="none";
|
||||||
});
|
});
|
||||||
|
|
||||||
// Liste des filleuils, si il y en a
|
// Liste des filleuls, si il y en a
|
||||||
const xhrGetGodchilds = new XMLHttpRequest();
|
const xhrGetGodchilds = new XMLHttpRequest();
|
||||||
xhrGetGodchilds.open("GET", apiUrl+config.userRoutes+config.getGodChilds);
|
xhrGetGodchilds.open("GET", apiUrl+config.userRoutes+config.getGodChilds);
|
||||||
xhrGetGodchilds.onreadystatechange = function()
|
xhrGetGodchilds.onreadystatechange = function()
|
||||||
@ -236,10 +239,10 @@ const initialise = async () =>
|
|||||||
{
|
{
|
||||||
const nbGodchilds=response.length;
|
const nbGodchilds=response.length;
|
||||||
if(nbGodchilds===0)
|
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
|
else
|
||||||
{
|
{
|
||||||
txtGodchilds=nbGodchilds+" utilisateur(s) inscrit(s) en vous désignant comme \"parrain\" :";
|
txtGodchilds=txtUsers.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+") ";
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,8 @@ module.exports =
|
|||||||
welcomeMessage: "Bienvenue #NAME !",
|
welcomeMessage: "Bienvenue #NAME !",
|
||||||
byebyeMessage: "Si vous voyez ce message, c'est que votre déconnexion s'est bien déroulée.<br>À bientôt !",
|
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>",
|
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 ",
|
infosAdminGodfather: "Cet utilisateur a été parrainé par ",
|
||||||
infosAdminNbGodChilds: "Ses #NB filleuils : "
|
infosAdminNbGodChilds: "Ses #NB filleuls : "
|
||||||
};
|
};
|
Loading…
x
Reference in New Issue
Block a user