Ajout champ email doublon pour bot dans formulaire inscription + formulaire inscription sur la page d'accueil
This commit is contained in:
parent
a6b80cb2fc
commit
391f5240d4
@ -796,6 +796,7 @@ const creaNewQuestionnairesHTML = async (Questionnaires) =>
|
|||||||
// On regénère la page d'accueil avec le(s) dernier(s) questionnaire(s) mis en avant :
|
// On regénère la page d'accueil avec le(s) dernier(s) questionnaire(s) mis en avant :
|
||||||
let compiledFunction = pug.compileFile("./views/"+config.theme+"/home.pug");
|
let compiledFunction = pug.compileFile("./views/"+config.theme+"/home.pug");
|
||||||
const configTpl = require("../views/"+config.theme+"/config/"+config.availableLangs[0]+".js");
|
const configTpl = require("../views/"+config.theme+"/config/"+config.availableLangs[0]+".js");
|
||||||
|
const txtUser = require("../lang/"+config.adminLang+"/user");
|
||||||
let questionnaires=[];
|
let questionnaires=[];
|
||||||
for(let i in Questionnaires)
|
for(let i in Questionnaires)
|
||||||
questionnaires.push(await searchQuestionnaireById(Questionnaires[i].id));
|
questionnaires.push(await searchQuestionnaireById(Questionnaires[i].id));
|
||||||
@ -808,6 +809,7 @@ const creaNewQuestionnairesHTML = async (Questionnaires) =>
|
|||||||
txtGeneral : txtGeneral,
|
txtGeneral : txtGeneral,
|
||||||
txtQuestionnaire: txtQuestionnaire,
|
txtQuestionnaire: txtQuestionnaire,
|
||||||
txtIllustration: txtIllustration,
|
txtIllustration: txtIllustration,
|
||||||
|
txtUser: txtUser,
|
||||||
pageLang: config.adminLang,
|
pageLang: config.adminLang,
|
||||||
metaDescription: txtGeneral.siteMetaDescription,
|
metaDescription: txtGeneral.siteMetaDescription,
|
||||||
pageTitle: txtGeneral.siteHTMLTitle,
|
pageTitle: txtGeneral.siteHTMLTitle,
|
||||||
|
@ -63,6 +63,7 @@ exports.getGodfatherId = async (req, res, next) =>
|
|||||||
|
|
||||||
// Contrôleur traitant les données envoyées pour une inscription
|
// Contrôleur traitant les données envoyées pour une inscription
|
||||||
// Les CGU doivent être acceptées et une adresse e-mail envoyée.
|
// Les CGU doivent être acceptées et une adresse e-mail envoyée.
|
||||||
|
// Un champ email2 invisible ne devrait être envoyé que par des bots
|
||||||
// Le reste peut être adapté sur la page de validation de l'inscription.
|
// Le reste peut être adapté sur la page de validation de l'inscription.
|
||||||
exports.signup = async (req, res, next) =>
|
exports.signup = async (req, res, next) =>
|
||||||
{
|
{
|
||||||
@ -73,6 +74,11 @@ exports.signup = async (req, res, next) =>
|
|||||||
res.status(400).json({ errors: [txt.needUGCOk] });
|
res.status(400).json({ errors: [txt.needUGCOk] });
|
||||||
else if(tool.isEmpty(req.body.email))
|
else if(tool.isEmpty(req.body.email))
|
||||||
res.status(400).json({ errors: [txt.needEmail] });
|
res.status(400).json({ errors: [txt.needEmail] });
|
||||||
|
else if(!tool.isEmpty(req.body.email2))
|
||||||
|
{
|
||||||
|
res.status(400).json({ errors: [txt.failBotTest] });
|
||||||
|
console.log(txt.failBotTestLog+req.body.email2);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Un mot de passe temporaire et non communiqué est généré :
|
// Un mot de passe temporaire et non communiqué est généré :
|
||||||
@ -91,7 +97,7 @@ exports.signup = async (req, res, next) =>
|
|||||||
else if(req.body.GroupId)
|
else if(req.body.GroupId)
|
||||||
await answerCtrl.saveAnswerToGroup(req.body);
|
await answerCtrl.saveAnswerToGroup(req.body);
|
||||||
await sendValidationLink(user);
|
await sendValidationLink(user);
|
||||||
res.status(201).json({ message: txt.mailValidationMessage });
|
res.status(201).json({ message: txt.mailValidationMessage.replace("#EMAIL", req.body.email) });
|
||||||
next();
|
next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
<form class="needJS" id="subscription" method="POST">
|
<form class="needJS" id="subscription" method="POST">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<label for="email">E-mail : </label><input id="email" type="email" name="email" placeholder="Adresse e-mail" class="cardboard">
|
<label for="email">E-mail : </label><input id="email" type="email" name="email" placeholder="Adresse e-mail" class="cardboard">
|
||||||
|
<input id="email2" type="email" name="email2" placeholder="Si vous voyez ce champ, laissez-le vide" class="needJS">
|
||||||
<div id="emailMessage"></div>
|
<div id="emailMessage"></div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<ul class="checkbox_li">
|
<ul class="checkbox_li">
|
||||||
@ -54,11 +55,10 @@
|
|||||||
|
|
||||||
<div id="explanations" class="framed engraved">
|
<div id="explanations" class="framed engraved">
|
||||||
<h2>Besoin d’aide ?</h2>
|
<h2>Besoin d’aide ?</h2>
|
||||||
<p>Votre compte vous permettra de <b>recevoir régulièrement de nouvelles « graines de culture » directement sur votre adresse e-mail</b>. Vous pourrez aussi sauvegarder vos résultats aux quizs.</p>
|
<p>Votre compte WikiLerni va vous permettre de <b>recevoir régulièrement par e-mail des suggestions d’articles lisibles en quelques minutes sur des thèmes variés : arts, cinéma, littérature, musique, mythologie, sciences, etc.</b> Ces lectures sont suivies de <b>quizs vous permettant de tester ce que vous en avez retenu</b>.</p>
|
||||||
<p>La saisie d’une adresse e-mail <b>est obligatoire</b> et <b>vous devez accepter les Conditions Générales d’Utilisation</b>.</p>
|
<p>La création de votre compte est <b>gratuite et sans engagement</b> et vous pouvez ensuite <b>stopper les envois en un clic</b>. Elle vous permet de tester WikiLerni durant une période de 15 jours. Libre à vous ensuite de vous abonner ou pas.</p>
|
||||||
<p><b>Vous recevrez un lien sur l’adresse e-mail saisie</b> sur lequel vous devrez cliquer pour valider la création de votre compte.</p>
|
<p>Pour créer votre compte, saisissez juste votre adresse e-mail et acceptez les Conditions Générales d’Utilisation. <b>Vous recevrez un lien de validation sur l’adresse e-mail saisie, qui doit donc être valide</b>.</p>
|
||||||
<p>Une fois cliqué sur ce lien, <b>vous serez invité à compléter vos informations (pseudo, mot de passe…) ou encore à désigner votre « parrain »</b> (si c’est le cas).</p>
|
<p>Une fois cliqué sur ce lien, <b>vous serez invité à compléter vos informations (choix d’un pseudo, mot de passe…) ou encore à désigner votre « parrain »</b> (facultatif).</p>
|
||||||
<p>La création de votre compte est <b>gratuite et sans engagement</b>. Elle vous permet de tester WikiLerni durant une période de 15 jours. Libre à vous ensuite de vous abonner ou pas.</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -878,6 +878,7 @@ margin-top: -1em;
|
|||||||
padding-top:1.5em;
|
padding-top:1.5em;
|
||||||
border-bottom: 1px solid rgba(0,0,0,0.8);
|
border-bottom: 1px solid rgba(0,0,0,0.8);
|
||||||
box-shadow: 0px 0px 5px rgba(0,0,0,0.75);
|
box-shadow: 0px 0px 5px rgba(0,0,0,0.75);
|
||||||
|
|
||||||
}
|
}
|
||||||
#home img
|
#home img
|
||||||
{
|
{
|
||||||
@ -914,6 +915,7 @@ line-height: 1.5em;
|
|||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
padding: 0.2em;
|
padding: 0.2em;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
#home input[type="text"]
|
#home input[type="text"]
|
||||||
{
|
{
|
||||||
width:90%;
|
width:90%;
|
||||||
@ -923,7 +925,7 @@ margin-bottom:1em;
|
|||||||
{
|
{
|
||||||
margin-top:1em;
|
margin-top:1em;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
}
|
}*/
|
||||||
/*
|
/*
|
||||||
#home a.button
|
#home a.button
|
||||||
{
|
{
|
||||||
@ -949,10 +951,11 @@ font-family: inherit;
|
|||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
padding: 0 0.3em;
|
padding: 0 0.3em;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
#home input[type="text"]
|
#home input[type="text"]
|
||||||
{
|
{
|
||||||
width:75%;
|
width:75%;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
/*-----------------Propriétés spécifiques à la page d'accueil sur grands écrans --------------*/
|
/*-----------------Propriétés spécifiques à la page d'accueil sur grands écrans --------------*/
|
||||||
@media screen and (min-width: 800px)
|
@media screen and (min-width: 800px)
|
||||||
|
@ -11,8 +11,11 @@ module.exports =
|
|||||||
deleteInactiveUsersMessage: " comptes utilisateurs inactifs ont été supprimés.",
|
deleteInactiveUsersMessage: " comptes utilisateurs inactifs ont été supprimés.",
|
||||||
deleteOkMessage: "L'utilisateur a bien été supprimé.",
|
deleteOkMessage: "L'utilisateur a bien été supprimé.",
|
||||||
emailNotFound: "Aucun compte utilisateur n'a été trouvé pour cette adresse e-mail.",
|
emailNotFound: "Aucun compte utilisateur n'a été trouvé pour cette adresse e-mail.",
|
||||||
|
failBotTest: "Un problème a été rencontré durant votre inscription. En cas de difficulté, n'hésitez pas contacter l'administrateur du site.",
|
||||||
|
failBotTestLog: "Une inscription a été bloquée, parce que le champ email2 était renseigné avec : ",
|
||||||
formsEmailLabel: "E-mail :",
|
formsEmailLabel: "E-mail :",
|
||||||
formsEmailPlaceholder: "Votre adresse e-mail",
|
formsEmailPlaceholder: "Votre adresse e-mail",
|
||||||
|
formsEmail2Placeholder: "Si vous voyez ce champ, laissez-le vide",//champ qui ne devrait pas être visible par des humains
|
||||||
formsCGUOkLabel: "J'accepte <a href=#link target=\"_blank\" rel=\"noopener\" title=\"À lire :)\">les Conditions Générale d'Utilisation</a> du site (requis).",
|
formsCGUOkLabel: "J'accepte <a href=#link target=\"_blank\" rel=\"noopener\" title=\"À lire :)\">les Conditions Générale d'Utilisation</a> du site (requis).",
|
||||||
formsSubmitTxt: "Je m'abonne !",
|
formsSubmitTxt: "Je m'abonne !",
|
||||||
godfatherFound: "Votre \"parrain\" a bien été trouvé. Cette personne sera avertie que vous l'avez désignée.",
|
godfatherFound: "Votre \"parrain\" a bien été trouvé. Cette personne sera avertie que vous l'avez désignée.",
|
||||||
@ -49,7 +52,7 @@ module.exports =
|
|||||||
mailValidationLinkSBodyTxt : "Bonjour USER_NAME,\n\nPour valider et compléter votre inscription, merci de cliquer sur le lien suivant dans les 24h :\nLINK_URL",
|
mailValidationLinkSBodyTxt : "Bonjour USER_NAME,\n\nPour valider et compléter votre inscription, merci de cliquer sur le lien suivant dans les 24h :\nLINK_URL",
|
||||||
mailValidationLinkSubject : "Merci de valider votre inscription",
|
mailValidationLinkSubject : "Merci de valider votre inscription",
|
||||||
mailValidationLinkTxt : "Valider mon compte.",
|
mailValidationLinkTxt : "Valider mon compte.",
|
||||||
mailValidationMessage: "Votre inscription est bien enregistrée.\nPour la finaliser, merci de cliquer dans les 24 H sur le lien de confirmation qui vient de vous être envoyé par e-mail.",
|
mailValidationMessage: "Votre inscription est bien enregistrée.\nPour la finaliser, merci de cliquer dans les 24 H sur le lien de confirmation qui vient d'être envoyé à votre adresse e-mail (#EMAIL).",
|
||||||
mailWelcomeBodyHTML : "<h3>Bonjour USER_NAME,</h3><p>Vous venez de valider votre inscription à NOM_SITE. Merci et bienvenue !<br><br>Si vous avez la moindre question ou suggestion concernant NOM_SITE, n'hésitez pas à me contacter en écrivant à <b>EMAIL</b>.<br><br>Je vous conseille d'ailleurs d'ajouter <b>EMAIL</b> à votre carnet d'adresses <b>pour éviter que les prochains envois de NOM_SITE n'arrivent en <i>spam</i></b>.<br><br>Par ailleurs, pour gérer votre abonnement, accéder à vos informations ou encore chercher plus facilement parmi le contenu du site, vous pouvez à tout moment vous connecter à votre compte utilisateur.<br><br>Pour ce faire, utilisez le lien ci-dessous.<br><br>À bientôt sur NOM_SITE.",
|
mailWelcomeBodyHTML : "<h3>Bonjour USER_NAME,</h3><p>Vous venez de valider votre inscription à NOM_SITE. Merci et bienvenue !<br><br>Si vous avez la moindre question ou suggestion concernant NOM_SITE, n'hésitez pas à me contacter en écrivant à <b>EMAIL</b>.<br><br>Je vous conseille d'ailleurs d'ajouter <b>EMAIL</b> à votre carnet d'adresses <b>pour éviter que les prochains envois de NOM_SITE n'arrivent en <i>spam</i></b>.<br><br>Par ailleurs, pour gérer votre abonnement, accéder à vos informations ou encore chercher plus facilement parmi le contenu du site, vous pouvez à tout moment vous connecter à votre compte utilisateur.<br><br>Pour ce faire, utilisez le lien ci-dessous.<br><br>À bientôt sur NOM_SITE.",
|
||||||
mailWelcomeBodyTxt : "Bonjour USER_NAME,\n\nVous venez de valider votre inscription à NOM_SITE. Merci et bienvenue !\n\nSi vous avez la moindre question ou suggestion concernant NOM_SITE, n'hésitez pas à me contacter en écrivant à EMAIL.\n\nJe vous conseille d'ailleurs d'ajouter EMAIL à votre carnet d'adresses pour éviter que les prochains envois de NOM_SITE n'arrivent en \"spam\".\n\nPar ailleurs, pour gérer votre abonnement, accéder à vos informations ou encore chercher plus facilement parmi le contenu du site, vous pouvez à tout moment vous connecter à votre compte utilisateur.\n\nPour ce faire, utilisez le lien suivant : LINK_URL\n\nÀ bientôt sur NOM_SITE.",
|
mailWelcomeBodyTxt : "Bonjour USER_NAME,\n\nVous venez de valider votre inscription à NOM_SITE. Merci et bienvenue !\n\nSi vous avez la moindre question ou suggestion concernant NOM_SITE, n'hésitez pas à me contacter en écrivant à EMAIL.\n\nJe vous conseille d'ailleurs d'ajouter EMAIL à votre carnet d'adresses pour éviter que les prochains envois de NOM_SITE n'arrivent en \"spam\".\n\nPar ailleurs, pour gérer votre abonnement, accéder à vos informations ou encore chercher plus facilement parmi le contenu du site, vous pouvez à tout moment vous connecter à votre compte utilisateur.\n\nPour ce faire, utilisez le lien suivant : LINK_URL\n\nÀ bientôt sur NOM_SITE.",
|
||||||
mailWelcomeLinkTxt : "Me connecter à mon compte.",
|
mailWelcomeLinkTxt : "Me connecter à mon compte.",
|
||||||
|
@ -42,11 +42,11 @@ module.exports =
|
|||||||
/* Page d'accueil */
|
/* Page d'accueil */
|
||||||
homePageTxt: "Page d'accueil",
|
homePageTxt: "Page d'accueil",
|
||||||
homeTitle1: "De nature curieuse ?",
|
homeTitle1: "De nature curieuse ?",
|
||||||
homeP1: "<b>Avec WikiLerni, vous allez apprendre chaque jour de nouvelles choses</b>.<br>Vous recevrez de courts articles, lisibles en quelques minutes.<br>Des quizs vous permettront ensuite de tester ce que vous aurez retenu.<br>De jour en jour <b>de nouvelles graines de culture sont ainsi semées dans votre jardin</b>.",
|
homeP1: "<b>Avec WikiLerni, vous apprenez chaque jour de nouvelles choses</b>.<br>Vous recevez de courts articles, lisibles en quelques minutes.<br>Des quizs vous permettent ensuite de tester ce que vous avez retenu.<br>De jour en jour <b>de nouvelles graines de culture sont ainsi semées dans votre jardin</b>.",
|
||||||
homeTitle2: "La culture générale en liberté",
|
homeTitle2: "La culture générale en liberté",
|
||||||
homeP2: "Sur WikiLerni <b>pas de faits alternatifs</b>, tous les contenus sont <b>sourcés par des articles Wikipédia</b>.<br>Et tout comme sur Wikipédia, le logiciel et le contenu publié sur WikiLerni <a href=\"/credits.html\" title=\"En savoir plus sur ce sujet\">sont partagés sous licences libres</a>.<br>Le tout sans publicité, ni commercialisation de vos données.<br><b>Sur WikiLerni vous cultivez votre jardin en toute tranquillité.</b>",
|
homeP2: "<b>Pas de faits alternatifs</b>, tous les contenus sont <b>sourcés par des articles Wikipédia</b>.<br>Et tout comme sur Wikipédia, le logiciel et le contenu publié sur WikiLerni <a href=\"/credits.html\" title=\"En savoir plus sur ce sujet\">sont partagés sous licences libres</a>.<br>Le tout sans publicité, ni commercialisation de vos données.<br><b>Sur WikiLerni, vous cultivez votre jardin en toute tranquillité.</b>",
|
||||||
homeBtnAboutTxt: "En savoir plus sur WikiLerni ?",
|
homeBtnAboutTxt: "En savoir plus sur WikiLerni ?",
|
||||||
homeBtnSubscribeTxt: "Tester WikiLerni gratuitement.",
|
homeSubcriptionFormTitle: "Tester WikiLerni gratuitement",
|
||||||
/* Page dernières publications... */
|
/* Page dernières publications... */
|
||||||
newQuestionnairesTitle: "Culture générale - apprenez de nouvelles choses avec WikiLerni",
|
newQuestionnairesTitle: "Culture générale - apprenez de nouvelles choses avec WikiLerni",
|
||||||
newQuestionnairesIntro: "WikiLerni : testez vos connaissances et apprenez de nouvelles choses avec WikiLerni.",
|
newQuestionnairesIntro: "WikiLerni : testez vos connaissances et apprenez de nouvelles choses avec WikiLerni.",
|
||||||
|
@ -2,7 +2,7 @@ extends layout.pug
|
|||||||
|
|
||||||
block append scripts
|
block append scripts
|
||||||
script(src="/JS/polyfill.app.js" defer)
|
script(src="/JS/polyfill.app.js" defer)
|
||||||
script(src="/JS/index.app.js" defer)
|
script(src="/JS/subscribe.app.js" defer)
|
||||||
|
|
||||||
block content
|
block content
|
||||||
|
|
||||||
@ -16,10 +16,31 @@ block content
|
|||||||
p !{configTpl.homeP1}
|
p !{configTpl.homeP1}
|
||||||
h3 #{configTpl.homeTitle2}
|
h3 #{configTpl.homeTitle2}
|
||||||
p !{configTpl.homeP2}
|
p !{configTpl.homeP2}
|
||||||
p
|
//p
|
||||||
a(href="/"+configTpl.subscribePage class="button cardboard" title=configTpl.homeBtnSubscribeTxt) #{configTpl.homeBtnSubscribeTxt}
|
// a(href="/"+configTpl.aboutPage class="button cardboard" title=configTpl.homeBtnAboutTxt) #{configTpl.homeBtnAboutTxt}
|
||||||
p
|
|
||||||
a(href="/"+configTpl.aboutPage class="button cardboard" title=configTpl.homeBtnAboutTxt) #{configTpl.homeBtnAboutTxt}
|
div(class="engraved framed")
|
||||||
|
// Formulaire d'inscription :
|
||||||
|
noscript
|
||||||
|
div
|
||||||
|
strong #{configTpl.noJSNotification}
|
||||||
|
- const cguOkLabel = txtUser.formsCGUOkLabel.replace("#link", "/"+configTpl.cguPage);
|
||||||
|
form(id="subscription" method="POST" class="needJS")
|
||||||
|
h3 #{configTpl.homeSubcriptionFormTitle}
|
||||||
|
fieldset
|
||||||
|
label(for="email") #{txtUser.formsEmailLabel}
|
||||||
|
input(id="email" type="email" name="email" placeholder=txtUser.formsEmailPlaceholder class="cardboard")
|
||||||
|
input(id="email2" type="email" name="email2" placeholder=txtUser.formsEmail2Placeholder class="needJS")
|
||||||
|
div#emailMessage
|
||||||
|
ul(class="checkbox_li")
|
||||||
|
li(class="checkbox_li")
|
||||||
|
label(for="cguOk" class="check")
|
||||||
|
input(type="checkbox" id="cguOk" name="cguOk" value="true")
|
||||||
|
div(class="checkbox_override")
|
||||||
|
span !{cguOkLabel}
|
||||||
|
div(class="input_wrapper")
|
||||||
|
input(id="submitDatas" type="submit" value=txtUser.formsSubmitTxt class="cardboard")
|
||||||
|
div(id="response")
|
||||||
|
|
||||||
- nbQuestionnairesList=configTpl.maxQuestionnairesSiteHomePage;
|
- nbQuestionnairesList=configTpl.maxQuestionnairesSiteHomePage;
|
||||||
include includes/listing-questionnaires.pug
|
include includes/listing-questionnaires.pug
|
@ -93,6 +93,7 @@ block content
|
|||||||
fieldset
|
fieldset
|
||||||
label(for="email") #{txtUser.formsEmailLabel}
|
label(for="email") #{txtUser.formsEmailLabel}
|
||||||
input(id="email" type="email" name="email" placeholder=txtUser.formsEmailPlaceholder class="cardboard")
|
input(id="email" type="email" name="email" placeholder=txtUser.formsEmailPlaceholder class="cardboard")
|
||||||
|
input(id="email2" type="email" name="email2" placeholder=txtUser.formsEmail2Placeholder class="needJS")
|
||||||
div#emailMessage
|
div#emailMessage
|
||||||
ul(class="checkbox_li")
|
ul(class="checkbox_li")
|
||||||
li(class="checkbox_li")
|
li(class="checkbox_li")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user