Modifications back et front end pour rendre le site 100 % statique.

This commit is contained in:
Fabrice PENHOËT 2022-01-28 17:37:19 +01:00
parent 71b0051ed3
commit 5cb42c7e3b
49 changed files with 914 additions and 1907 deletions

View File

@ -4,7 +4,7 @@
Vous trouverez sur ce dépôt le code source du projet WikiLerni que vous pouvez visiter sur cette page : https://www.wikilerni.com
Le backend est développé avec Node.js v12/Express.
Le backend est développé avec Node.js v14/Express.
Le frontend en "Vanilla.js" + Babel.js pour gérer les anciens navigateurs.
Le code est fourni tel quel, sachant qu'il reste encore beaucoup de choses à faire et qu'il s'agit d'un développement spécifique pas forcément réutilisable en entier par ailleurs. Une partie du code peut être réutilisée pour un générateur de quizs de type QCM par exemple. À vous de voir.

2
app.js
View File

@ -50,7 +50,7 @@ app.use("/api/cron", cronRoutes);
// Évalue de la durée de la réponse (!= durée script, car fonctions asynchrones continuent). Mettre next() après réponse des contrôleurs... à contrôler !
// Capture aussi les url inconnues en retournant une erreur 404.
// Je peux aussi recevoir des messages à afficher dans les logs venant des "cron".
// Je peux aussi recevoir des messages à afficher dans les logs liés aux "cron".
app.use((req, res, next) =>
{
try

View File

@ -338,7 +338,7 @@ const creaGroupHTML = async (id, preview = false) =>
pageTitle: txtGroups.groupsName+" "+group.Group.title,
contentTitle: group.Group.title+"("+txtGroups.groupsName+")",
group: group,
linkCanonical: config.siteUrl+"/"+configQuestionnaires.dirWebGroups+"/"+group.Group.slug+".html"
linkCanonical: config.siteUrlProd+"/"+configQuestionnaires.dirWebGroups+"/"+group.Group.slug+".html"
}
const html=await compiledFunction(pageDatas);
if(preview === false)

View File

@ -83,6 +83,7 @@ exports.modify = async (req, res, next) =>
{
const db = require("../models/index");
const questionnaire=await searchQuestionnaireById(req.params.id);
if(!questionnaire)
{
const Err=new Error;
@ -406,9 +407,10 @@ exports.checkQuestionnairesNeedToBePublished = async (req, res, next) =>
const creaQuestionnaireJson = async (id) =>
{
const db=require("../models/index");
console.log("j'arrive ici avec "+id);
const Questionnaire=await db["Questionnaire"].findByPk(id);
if(Questionnaire)
{
{
let datas={ Questionnaire };
const Tags=await db["QuestionnaireClassification"].findAll({ where: { QuestionnaireId: Questionnaire.id }, attributes: ["TagId"] });
if(Tags)
@ -566,7 +568,7 @@ const creaQuestionnaireHTML = async (id, preview=false) =>
pageTitle: questionnaire.Questionnaire.title+" ("+txtQuestionnaire.questionnairesName+")",
contentTitle: questionnaire.Questionnaire.title,
questionnaire: questionnaire,
linkCanonical: config.siteUrl+"/"+config.dirWebQuestionnaires+"/"+questionnaire.Questionnaire.slug+".html"
linkCanonical: config.siteUrlProd+"/"+config.dirWebQuestionnaires+"/"+questionnaire.Questionnaire.slug+".html"
}
const html=await compiledFunction(pageDatas);
if(preview===false)
@ -620,7 +622,7 @@ const creaQuestionnaireInGroupHTML = async (questionnaire, preview=false) =>
questionnaire: questionnaire,
group: groupInfos,
nextQuestionnaire: nextQuestionnaire,
linkCanonical: config.siteUrl+"/"+config.dirWebQuestionnaires+"/"+questionnaire.Questionnaire.slug+".html"
linkCanonical: config.siteUrlProd+"/"+config.dirWebQuestionnaires+"/"+questionnaire.Questionnaire.slug+".html"
}
const html=await compiledFunction(pageDatas);
if(preview===false)
@ -815,7 +817,7 @@ const creaNewQuestionnairesHTML = async (Questionnaires) =>
pageTitle: txtGeneral.siteHTMLTitle,
contentTitle: config.siteName,
questionnaires: questionnaires,
linkCanonical: config.siteUrl
linkCanonical: config.siteUrlProd
}
let html=await compiledFunction(pageDatas);
await toolFile.createHTML(config.dirHTML, "index", html);
@ -823,9 +825,14 @@ const creaNewQuestionnairesHTML = async (Questionnaires) =>
compiledFunction=pug.compileFile("./views/"+config.theme+"/newQuestionnaires.pug");
pageDatas.metaDescription=configTpl.newQuestionnairesIntro;
pageDatas.pageTitle=configTpl.newQuestionnairesTitle;
pageDatas.linkCanonical=config.siteUrl+"/"+configQuestionnaires.dirWebNews;
pageDatas.linkCanonical=config.siteUrlProd+"/"+configQuestionnaires.dirWebNews;
html=await compiledFunction(pageDatas);
await toolFile.createHTML(configQuestionnaires.dirHTMLNews, "index", html);
// + le flux ATOM
compiledFunction=pug.compileFile("./views/"+config.theme+"/atom.pug");
//console.log(pageDatas.questionnaires);
const xml=await compiledFunction(pageDatas);
await toolFile.createXML(config.dirHTML, "atom", xml);
return true;
}

View File

@ -24,12 +24,15 @@ exports.checkTags = async (req, res, next) =>
{
if(req.body.QuestionnaireId==undefined)
throw { message: txtTag.neededParams };
const tagsCurrent=await getUsedTagsQuestionnaire(req.body.QuestionnaireId);
if(tagsCurrent===false)
if(tagsCurrent === false)
throw { message: txtTag.tagsForQuestionnaireNotFound };
const tagsReceived=req.body.classification.split(",");// ! peut être vide si pas/plus de classement souhaité
for(let i in tagsReceived)
tagsReceived[i]=tagsReceived[i].trim().toLowerCase();// ! gestion de la casse différente pour JS, pas pour Mysql
// les tags jusqu'ici associés sont-ils toujours utilisés ?
let deleteLink;
for (let i in tagsCurrent)
@ -37,6 +40,7 @@ exports.checkTags = async (req, res, next) =>
if(tagsReceived.indexOf(tagsCurrent[i].name.toLowerCase()) === -1)
deleteLink=await unlinkTagQuestionnaire(tagsCurrent[i].id, req.body.QuestionnaireId);
}
// parmis les tags envoyés, certains sont-ils nouveaux pour ce questionnaire ?
let findTag=false, creaLink;
for(i in tagsReceived)
@ -57,10 +61,13 @@ exports.checkTags = async (req, res, next) =>
}
findTag=false;
}
await ctrlQuestionnaire.creaQuestionnaireJson(req.body.QuestionnaireId);// attendre avant de répondre pour que cela soit pris en compte au réaffichage.
if(req.method=="PUT")
// normalement il faut attendre avant de répondre pour que cela soit pris en compte au réaffichage.
await ctrlQuestionnaire.creaQuestionnaireJson(req.body.QuestionnaireId);
if(req.method == "PUT")
res.status(200).json({ message: txtGeneral.updateOkMessage });
else if(req.method=="POST")
else if(req.method == "POST")
res.status(201).json({ message: txtGeneral.addOkMessage, id:req.body.QuestionnaireId });
next();
}
@ -174,7 +181,7 @@ const creaUsedTagsHTML = async (tags) =>
pageTitle: configTpl.tagListTitle,
contentTitle: config.siteName,
tags: tags,
linkCanonical: config.siteUrl+"/"+configQuestionnaire.dirWebTags
linkCanonical: config.siteUrlProd+"/"+configQuestionnaire.dirWebTags
}
html=await compiledFunction(pageDatas);
await toolFile.createHTML(configQuestionnaire.dirHTMLTags, "themes", html);
@ -265,7 +272,7 @@ const creaQuestionnairesTagHTML = async (id, Questionnaires) =>
pageTitle: config.siteName+" - "+tag.name,
contentTitle: config.siteName+" : "+txtTag.tagMetaDescription+tag.name,
tagInfos: tag,
linkCanonical: config.siteUrl+"/"+configQuestionnaire.dirWebTags+"/"+tag.slug+".html"
linkCanonical: config.siteUrlProd+"/"+configQuestionnaire.dirWebTags+"/"+tag.slug+".html"
}
const nbPages=Math.ceil(Questionnaires.length / configTpl.maxQuestionnairesByPage);
pageDatas.nbPages=nbPages;

View File

@ -47,4 +47,4 @@ deny from all
</files>
# erreur 404
ErrorDocument 404 /404.html
ErrorDocument 404 /404.html

View File

@ -6,11 +6,12 @@
<meta name="description" content="L'erreur est humaine !">
<meta name="robots" content="noindex">
<title>WikiLerni : page non trouvée</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/index.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<link rel="alternate" type="application/atom+xml" title="WikiLerni" href="/atom.xml">
</head>
<body class="cardboard">
@ -20,7 +21,7 @@
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<!--<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>-->
<li><a href="/a-propos.html">À propos</a></li>
</ul>
</header>

View File

@ -5,12 +5,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="La Foire Aux Questions de WikiLerni. Pour tout savoir sur le site !">
<title>Tout savoir sur WikiLerni</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/index.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<link rel="canonical" href="https://www.wililerni.com/a-propos.html">
<link rel="alternate" type="application/atom+xml" title="WikiLerni" href="/atom.xml">
</head>
<body class="cardboard">
@ -20,7 +21,7 @@
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<!--<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>-->
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
@ -100,7 +101,7 @@
Ensuite, si vous avez les moyens, vous pouvez <a href="/participer-financement.html">participer au financement du projet</a>, pour lui permettre de perdurer.<br><br>
Et WikiLerni nayant pas les moyens des grandes sociétés pour communiquer, vous pouvez aussi en parler autour de vous, en ligne ou dans la vie de tous les jours. <b>Vous le savez sans doute, rien ne vaut le bouche-à-oreille!</b></p>
<p class="btn"><a class="button cardboard" href="/inscription.html" title="Tester gratuitement WikiLerni">Tester gratuitement WikiLerni.</a></p>
<!--<p class="btn"><a class="button cardboard" href="/inscription.html" title="Tester gratuitement WikiLerni">Tester gratuitement WikiLerni.</a></p>-->
</div>
</div>

View File

@ -1,71 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Page d'accueil de l'abonné.">
<meta name="robots" content="noindex">
<title>Mon WikiLerni</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/homeUser.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="crash"></div>
<section id="main-content" class="needJS">
<ul id="menu" class="cardboard">
<li><a href="/accueil.html">MON WIKILERNI</a></li>
<li><a href="/compte.html#infos" title="Email, mot de passe">Mon abonnement</a></li>
<li><a href="/sortie.html">Me déconnecter</a></li>
</ul>
<div id="home" class="cardboard">
<img id="logo" src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" />
<div id="message" class="cardboard"></div>
<h2>Votre jardin WikiLerni</h2>
<form id="search" method="POST">
<input id="searchQuestionnaires" type="text" name="searchQuestionnaires" placeholder="Votre recherche" class="cardboard" />
<input id="begin" type="hidden" name="begin" value="0">
<!--<div class="line"><label for="onlyAnswers" class="check"><input type="checkbox" id="onlyAnswers" name="onlyAnswers" /><div class="checkbox_override"></div> Parmi mes lectures.</li></div>-->
<input type="submit" value="Chercher" class="cardboard" /><br>
<button type="button" id="random" class="button cardboard">Au hasard !</button>
</form>
<h4 id="quizsIntro"></h4>
</div>
<div id="quizs">
<div id="quizsList"></div>
<nav id="pagination"><div id="previous"></div><div id="next"></div></nav>
</div>
</section>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -5,23 +5,22 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Gestion des groupes de quizs</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/manageGroups.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="../JS/polyfill.app.js" defer></script>
<script src="../JS/manageGroups.app.js" defer></script>
<link rel="shortcut icon" href="../img/favicon.ico">
<link rel="stylesheet" href="../themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<a href="../" title="Page d'accueil WikLerni"><img src="../themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les derniers quizs">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
<li><a href="../contact.html" rel="nofollow">Contact</a></li>
<li><a href="../quizs/" id="indexHeadLink" title="Les derniers quizs">Parcourir</a></li>
<li><a href="../a-propos.html">À propos</a></li>
<li><a href="../" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
@ -30,10 +29,10 @@
<section id="main-content" class="needJS">
<ul id="menu" class="cardboard">
<li><a href="/gestion.html">Gestion WikiLerni</a></li>
<li><a href="/gestion-quizs.html" title="Publication des quizs">Les quizs</a></li>
<li><a href="/gestion-utilisateurs.html" title="Les comptes utilisateurs">Les abonné(e)s</a></li>
<li><a href="/sortie.html">Me déconnecter</a></li>
<li><a href="./gestion.html">Gestion WikiLerni</a></li>
<li><a href="./gestion-quizs.html" title="Publication des quizs">Les quizs</a></li>
<li><a href="./gestion-utilisateurs.html" title="Les comptes utilisateurs">Les abonné(e)s</a></li>
<li><a href="./sortie.html">Me déconnecter</a></li>
</ul>
<div id="account" class="cardboard">
@ -72,10 +71,10 @@
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
<li><a href="../credits.html">Crédits</a></li>
<li><a href="../mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="../donnees.html">Données personnelles</a></li>
<li><a href="../CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>

View File

@ -5,23 +5,22 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Gestion des quizs</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/manageQuestionnaires.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="../JS/polyfill.app.js" defer></script>
<script src="../JS/manageQuestionnaires.app.js" defer></script>
<link rel="shortcut icon" href="../img/favicon.ico">
<link rel="stylesheet" href="../themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<a href="../" title="Page d'accueil WikLerni"><img src="../themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les derniers quizs">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
<li><a href="../contact.html" rel="nofollow">Contact</a></li>
<li><a href="../quizs/" id="indexHeadLink" title="Les derniers quizs">Parcourir</a></li>
<li><a href="../a-propos.html">À propos</a></li>
<li><a href="../" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
@ -30,10 +29,10 @@
<section id="main-content" class="needJS">
<ul id="menu" class="cardboard">
<li><a href="/gestion.html">Gestion WikiLerni</a></li>
<li><a href="/gestion-quizs.html" title="Publication des quizs">Les quizs</a></li>
<li><a href="/gestion-utilisateurs.html" title="Les comptes utilisateurs">Les abonné(e)s</a></li>
<li><a href="/sortie.html">Me déconnecter</a></li>
<li><a href="./gestion.html">Gestion WikiLerni</a></li>
<li><a href="./gestion-quizs.html" title="Publication des quizs">Les quizs</a></li>
<li><a href="./gestion-utilisateurs.html" title="Les comptes utilisateurs">Les abonné(e)s</a></li>
<li><a href="./sortie.html">Me déconnecter</a></li>
</ul>
<div id="manageQuestionnaires" class="cardboard">
@ -49,7 +48,7 @@
<form id="questionnaires" method="POST">
<h2>Informations du quiz</h2>
<div class="input_wrapper"><a class="button cardboard" href="/gestion-groups.html">Gérer les groupes de quizs.</a></div>
<div class="input_wrapper"><a class="button cardboard" href="../gestion-groups.html">Gérer les groupes de quizs.</a></div>
<fieldset><label for="title">Titre</label><input id="title" type="text" name="title" class="cardboard"></fieldset>
<fieldset><label for="slug">Slug</label><input id="slug" type="text" name="slug" class="cardboard"></fieldset>
<fieldset><label for="introduction">Introduction</label><textarea id="introduction" name="introduction" rows="10" class="cardboard"></textarea></fieldset>
@ -183,10 +182,10 @@
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
<li><a href="../credits.html">Crédits</a></li>
<li><a href="../mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="../donnees.html">Données personnelles</a></li>
<li><a href="../CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>

View File

@ -5,23 +5,22 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Gestion des abonnés</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/manageUsers.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="../JS/polyfill.app.js" defer></script>
<script src="../JS/manageUsers.app.js" defer></script>
<link rel="shortcut icon" href="../img/favicon.ico">
<link rel="stylesheet" href="../themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<a href="../" title="Page d'accueil WikLerni"><img src="../themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les derniers quizs">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
<li><a href="../contact.html" rel="nofollow">Contact</a></li>
<li><a href="../quizs/" id="indexHeadLink" title="Les derniers quizs">Parcourir</a></li>
<li><a href="../a-propos.html">À propos</a></li>
<li><a href="../" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
@ -30,10 +29,10 @@
<section id="main-content" class="needJS">
<ul id="menu" class="cardboard">
<li><a href="/gestion.html">Gestion WikiLerni</a></li>
<li><a href="/gestion-quizs.html" title="Publication des quizs">Les quizs</a></li>
<li><a href="/gestion-utilisateurs.html" title="Les comptes utilisateurs">Les abonné(e)s</a></li>
<li><a href="/sortie.html">Me déconnecter</a></li>
<li><a href="./gestion.html">Gestion WikiLerni</a></li>
<li><a href="./gestion-quizs.html" title="Publication des quizs">Les quizs</a></li>
<li><a href="./gestion-utilisateurs.html" title="Les comptes utilisateurs">Les abonné(e)s</a></li>
<li><a href="./sortie.html">Me déconnecter</a></li>
</ul>
<div id="account" class="cardboard">
@ -123,10 +122,10 @@
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
<li><a href="../credits.html">Crédits</a></li>
<li><a href="../mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="../donnees.html">Données personnelles</a></li>
<li><a href="../CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>

View File

@ -0,0 +1,58 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Page d'accueil pour les gestionnaires du site.">
<meta name="robots" content="noindex">
<title>Mon WikiLerni</title>
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="../JS/polyfill.app.js" defer></script>
<script src="../JS/homeManager.app.js" defer></script>
<link rel="shortcut icon" href="../img/favicon.ico">
<link rel="stylesheet" href="../themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="../" title="Page d'accueil WikLerni"><img src="../themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="../contact.html" rel="nofollow">Contact</a></li>
<li><a href="../quizs/" id="indexHeadLink" title="Les derniers quizs">Parcourir</a></li>
<li><a href="../a-propos.html">À propos</a></li>
<li><a href="../" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="crash"></div>
<section id="main-content" class="needJS">
<ul id="menu" class="cardboard">
<li><a href="./gestion.html">Gestion WikiLerni</a></li>
<li><a href="./gestion-quizs.html" title="Publication des quizs">Les quizs</a></li>
<li><a href="./gestion-utilisateurs.html" title="Les comptes utilisateurs">Les abonné(e)s</a></li>
<li><a href="./sortie.html">Me déconnecter</a></li>
</ul>
<div id="home" class="cardboard">
<img id="logo" src="../themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" />
<div id="message" class="cardboard"></div>
<p><a href="#" class="button cardboard" id="wantRegenerate">Régénérer le HTML.</a></p>
<div id="questionnaires"></div>
</div>
</section>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="../credits.html">Crédits</a></li>
<li><a href="../mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="../donnees.html">Données personnelles</a></li>
<li><a href="../CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -5,28 +5,27 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Formulaire de connexion à WikiLerni.">
<title>Se connecter à WikiLerni</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/connection.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="../JS/polyfill.app.js" defer></script>
<script src="../JS/connection.app.js" defer></script>
<link rel="shortcut icon" href="../img/favicon.ico">
<link rel="stylesheet" href="../themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<a href="../" title="Page d'accueil WikLerni"><img src="../themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
<li><a href="../contact.html" rel="nofollow">Contact</a></li>
<li><a href="../quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="../a-propos.html">À propos</a></li>
<li><a href="../" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="prompt" class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" title="W I K I L E R N I" /></a>
<a href="../" title="Page d'accueil WikLerni"><img src="../themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" title="W I K I L E R N I" /></a>
<p>Cultivons notre jardin !</p>
</div>
@ -59,12 +58,12 @@
</form>
<div id="response"></div>
<div class="info"><b>Pas encore de compte?</b> <a href="/inscription.html">Créez-le en cliquant ici.</a></div>
<div class="info"><b>Pas encore de compte?</b> <a href="../inscription.html">Créez-le en cliquant ici.</a></div>
<div id="explanations" class="framed engraved">
<h2>Besoin daide?</h2>
<p>Si vous avez <b>oublié votre mot de passe</b>, il vous suffit de cocher la case «Je souhaite recevoir un lien de connexion par e-mail». Un lien valide pendant une courte durée vous permettra de vous connecter au site.</p>
<p>Si vous ne vous souvenez pas non plus de ladresse e-mail utilisée sur ce site ou que vous ny avez plus accès, vous pouvez <a href="/contact.html">me contacter</a>, en fournissant des informations permettant de vous identifier.</p>
<p>Si vous ne vous souvenez pas non plus de ladresse e-mail utilisée sur ce site ou que vous ny avez plus accès, vous pouvez <a href="../contact.html">me contacter</a>, en fournissant des informations permettant de vous identifier.</p>
<p>La case <b>«Je souhaite ne pas avoir à me connecter à chaque fois. »</b> vous permettra de rester connecté jusquà 6 mois, pour peu que vous utilisiez le même navigateur internet sur le même ordinateur.</p>
</div>
@ -72,10 +71,10 @@
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
<li><a href="../credits.html">Crédits</a></li>
<li><a href="../mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="../donnees.html">Données personnelles</a></li>
<li><a href="../CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>

View File

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Déconnexion WikiLerni</title>
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="../JS/polyfill.app.js" defer></script>
<script src="../JS/deconnection.app.js" defer></script>
<link rel="shortcut icon" href="../img/favicon.ico">
<link rel="stylesheet" href="../themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="../" title="Page d'accueil WikLerni"><img src="../themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="../contact.html" rel="nofollow">Contact</a></li>
<li><a href="../quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="../a-propos.html">À propos</a></li>
<li><a href="../" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="prompt" class="cardboard">
<a href="../" title="Page d'accueil WikLerni"><img src="../themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" title="W I K I L E R N I" /></a>
<p>Cultivons notre jardin !</p>
<h1 class="cardboard">Au revoir!</h1>
<div id="response"><p class="error">Si vous voyez ce message, cest quun problème a été rencontré durant la déconnexion.<br>Nhésitez pas <a href="../contact.html">à nous prévenir</a> si le problème persiste.</p></div>
</div>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="../credits.html">Crédits</a></li>
<li><a href="../mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="../donnees.html">Données personnelles</a></li>
<li><a href="../CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -1,45 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Validation de la suppression de votre compte</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/deleteValidation.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="prompt" class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" title="W I K I L E R N I" /></a>
<p>Cultivons notre jardin !</p>
<h1 class="cardboard">Validation de la suppression de votre compte</h1>
<div id="response"><p class="error">Si vous voyez ce message, cest que votre lien de validation nest pas valide ou a expiré. Vous pouvez <a href="/compte.html">en demander un nouveau en cliquant ici</a>.</p></div>
</div>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -1,164 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Mon compte WikiLerni</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/accountUser.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="crash"></div>
<section id="main-content" class="needJS">
<ul id="menu" class="cardboard">
<li><a href="/accueil.html">MON WIKILERNI</a></li>
<li><a href="/compte.html#infos" title="Email, mot de passe">Mon abonnement</a></li>
<li><a href="/sortie.html">Me déconnecter</a></li>
</ul>
<div id="account" class="cardboard">
<h1 class="cardboard" id="infos">Votre compte WikiLerni</h1>
<div id="message"></div>
<form id="accountUpdate" method="POST">
<fieldset><label for="name">Nom ou pseudo</label><input id="name" type="text" name="name" class="cardboard"></fieldset>
<fieldset><label for="email">E-mail</label><input id="email" type="email" name="email" class="cardboard">
<div id="emailMessage"></div></fieldset>
<fieldset><label for="newPassword">Nouveau mot de passe</label><input id="newPassword" type="password" name="newPassword" class="cardboard">
<div id="newPasswordMessage"><span class="info">Laisser vide sauf si vous souhaitez le changer.</span></div></fieldset>
<div class="framed">
<p>Quels jours de la semaine souhaitez-vous recevoir des e-mails (nouveaux articles ou quizs)?</p>
<ul class="checkbox_li">
<li class="checkbox_li">
<label for="d2" class="check"><input type="checkbox" id="d2" name="d2" value="true" /><div class="checkbox_override"></div> Lundi.</label>
</li>
<li class="checkbox_li">
<label for="d3" class="check"><input type="checkbox" id="d3" name="d3" value="true" /><div class="checkbox_override"></div> Mardi.</label>
</li>
<li class="checkbox_li">
<label for="d4" class="check"><input type="checkbox" id="d4" name="d4" value="true" /><div class="checkbox_override"></div> Mercredi.</label>
</li>
<li class="checkbox_li">
<label for="d5" class="check"><input type="checkbox" id="d5" name="d5" value="true" /><div class="checkbox_override"></div> Jeudi.</label>
</li>
<li class="checkbox_li">
<label for="d6" class="check"><input type="checkbox" id="d6" name="d6" value="true" /><div class="checkbox_override"></div> Vendredi.</label>
</li>
<li class="checkbox_li">
<label for="d7" class="check"><input type="checkbox" id="d7" name="d7" value="true" /><div class="checkbox_override"></div> Samedi.</label>
</li>
<li class="checkbox_li">
<label for="d1" class="check"><input type="checkbox" id="d1" name="d1" value="true" /><div class="checkbox_override"></div> Dimanche.</label>
</li>
</ul>
</div>
<ul class="checkbox_li">
<li class="checkbox_li">
<label for="deleteOk" class="check"><input type="checkbox" id="deleteOk" name="deleteOk" value="true" /><div class="checkbox_override"></div> <span class="error">Je souhaite supprimer mon compte WikiLerni.</span></label>
</li>
</ul>
<div class="input_wrapper"><input type="submit" value="Valider." class="cardboard" id="submitDatas" /></div>
</form>
<div id="response"></div>
<div id="godfatherInfos" class="needJS">
<h1 class="cardboard" id="godfather">Les utilisateurs que vous avez parrainés</h1>
<div class="engraved framed">
<p>Vous pouvez parrainer dautres utilisateurs. Pour ce faire, demandez-leur de saisir lors de linscription votre adresse e-mail <strong id="godfatherEmail"></strong> ou encore le code suivant: <strong id="godfatherCode"></strong>.</p>
<p>À chaque fois quun utilisateur que vous avez parrainé <b>souscrit ou renouvelle un abonnement payant</b>, son abonnement comme le vôtre <b>se trouve prolongé gratuitement de 30 jours</b>. Cet avantage restera valable tant que cet utilisateur et vous-mêmes garderez votre compte WikiLerni.</p>
</div>
<p id="godchilds"><b class="info">Pour linstant, aucune personne ne sest inscrite, en vous désignant comme «parrain».</b></p>
</div>
<div id="subscribeInfos" class="needJS">
<h1 class="cardboard" id="subscribe">Votre abonnement</h1>
<div id="subscribeIntro"></div>
<form>
<ul class="checkbox_li">
<li class="checkbox_li">
<label for="abo9" class="check"><input type="checkbox" id="abo9" name="abo9" value="true" /><div class="checkbox_override"></div> J'accepte de payer <b>1.5 € TTC/mois</b>, soit 9 € TTC pour 180 jours.</label>
</li>
<li class="checkbox_li">
<label for="abo18" class="check"><input type="checkbox" id="abo18" name="abo18" value="true" /><div class="checkbox_override"></div> Jaccepte de payer <b>3 € TTC/mois</b>, soit 18 € TTC pour 180 jours + une dédicace sur 1 des articles WikiLerni.</label>
</li>
<li class="checkbox_li">
<label for="abo36" class="check"><input type="checkbox" id="abo36" name="abo36" value="true" /><div class="checkbox_override"></div> Jaccepte de payer <b>6 € TTC/mois</b>, soit 36 € TTC pour 180 jours + une dédicace sur 2 des articles WikiLerni.</label>
</li>
<li class="checkbox_li">
<label for="abo54" class="check"><input type="checkbox" id="abo54" name="abo54" value="true" /><div class="checkbox_override"></div> Jaccepte de payer <b>9 € TTC/mois</b>, soit 54 € TTC pour 180 jours + une dédicace sur 4 des articles WikiLerni.</label>
</li>
<li class="checkbox_li">
<label for="CGVOk" class="check" title="Vous devez d'abord choisir le montant de votre abonnement."><input type="checkbox" id="CGVOk" name="CGVOk" value="true" /><div class="checkbox_override"></div> <span class="info">Jai lu et accepte les <a href="/CGV-CGU.html" target="_blank" rel="noopener">Conditions Générales de Vente</a> (obligatoire).</span></label>
</li>
</ul>
</form>
<div id="WPBtns" class="needJS">
<script type="text/javascript">
const userWP=JSON.parse(localStorage.getItem("user"));
var paiement_ref = ""+userWP.id;// d'après test, doit être une chaîne pour que cela fonctionne.
</script>
<div id="WPBtn9" class="needJS">
<h4>Paiement de votre abonnement de soutien à 9 € TTC.</h4>
<script type="text/javascript" src="https://paiementsecurise.info/S-pan64po51vmnscc5-d5ZgzCCYcJbg5AeN.js"></script>
</div>
<div id="WPBtn18" class="needJS">
<h4>Paiement de votre abonnement de soutien à 18 € TTC.</h4>
<script type="text/javascript" src="https://paiementsecurise.info/S-pan64po51vmnscc5-LlXn7ylPbr96Cbwx.js"></script>
</div>
<div id="WPBtn36" class="needJS">
<h4>Paiement de votre abonnement de soutien à 36 € TTC.</h4>
<script type="text/javascript" src="https://paiementsecurise.info/S-pan64po51vmnscc5-FXDsJCExwAhYH3u3.js"></script>
</div>
<div id="WPBtn54" class="needJS">
<h4>Paiement de votre abonnement de soutien à 54 € TTC.</h4>
<script type="text/javascript" src="https://paiementsecurise.info/S-pan64po51vmnscc5-wMg4k4PYLvFT6Zg4.js"></script>
</div>
<p class="success">En cliquant sur le bouton de paiement, vous serez dirigé vers loutil de facturation et de paiement en ligne.<br>Lors de votre premier abonnement, <b>vous devrez y créer un compte client qui est distinct de votre compte utilisateur WikiLerni</b>. Vous pouvez y utiliser un mot de passe différent. <br>Les années suivantes, lors de vos renouvellements, vous pourrez vous reconnecter à ce compte client.</p>
</div>
<div class="info">
<h3>Prix libre?</h3>
<p>WikiLerni pratique le «prix libre», cest-à-dire que <b>vous pouvez choisir quel montant vous êtes prêt à payer pour continuer à utiliser WikiLerni</b>.</p>
<p><b>Il ne sagit pas vraiment dun don, mais dun financement participatif</b>. Sans cela, le site WikiLerni <b>cessera son activité</b> et vous ne pourrez donc plus lutiliser.</p>
<p>Vous pouvez donc choisir en conscience ce que vous pouvez et souhaitez payer ce semestre pour WikiLerni, sachant que <b>ce choix ne vous engagera pas pour les futurs renouvellements</b>.</p>
<p>Une fois sélectionné le montant qui vous convient, il vous faudra <b>cocher la case de validation des Conditions Générales de Vente</b>, pour voir apparaître un bouton de paiement qui vous mènera <b>sur loutil de facturation et paiement en ligne de la société WebPortage</b>.</p>
<h3>Dédicacez des articles WikiLerni</h3>
<p>Au-delà de la possibilité dutiliser WikiLerni pendant 6 mois supplémentaires, <b>à partir de labonnement à 3 € TTC/mois, pour vous remercier vous pourrez demander à apposer votre nom sur la page dun ou plusieurs des articles publiés sur WikiLerni</b>.</p>
<p>Il peut sagir de votre nom / pseudo ou de celui de la personne à qui vous le dédicacez. <b>Je vous contacterai pour vous demander et cest évidemment facultatif!</b></p><p>Si vous souhaitez apposer le nom, voire le lien internet d<b>une activité commerciale ou associative</b>, cest aussi possible dans certaines conditions, mais merci de commencer par <a href="/contact.html">me contacter pour avis</a>.</p>
<h3>WikiLerni sadapte à vous</h3>
<p>Vous aimez WikiLerni, mais ne pouvez vraiment pas payer? Vous préférez un autre montant ou un autre moyen de paiement (chèque, virement)? Ou encore vous avez besoin dexplications? Alors <a href="/contact.html">contactez-moi</a>. <b>Je me ferai un plaisir de vous répondre et dessayer de madapter à votre situation</b>.</p>
</div>
</div>
</div>
</section>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -5,11 +5,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>WikiLerni : page de contact</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/index.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<link rel="alternate" type="application/atom+xml" title="WikiLerni" href="/atom.xml">
</head>
<body class="cardboard">
@ -19,7 +20,7 @@
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<!--<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>-->
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>

View File

@ -5,12 +5,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Qui est à l'origine de WikiLerni et de son contenu ? Quels sont vos droits d'utilisation ?">
<title>Qui sont les créateurs de WikiLerni et avec quelles licences ?</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/index.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<link rel="canonical" href="https://www.wililerni.com/credits.html">
<link rel="alternate" type="application/atom+xml" title="WikiLerni" href="/atom.xml">
</head>
<body class="cardboard">
@ -20,7 +21,7 @@
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<!--<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>-->
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>

View File

@ -5,12 +5,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Tout savoir sur ce que WikiLerni fait de vos données personnelles : abonnements, sauvegardes, paiement en ligne, etc.">
<title>WikiLerni et vos données personnelles</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/index.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<link rel="canonical" href="https://www.wililerni.com/donnees.html">
<link rel="alternate" type="application/atom+xml" title="WikiLerni" href="/atom.xml">
</head>
<body class="cardboard">
@ -20,7 +21,7 @@
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<!--<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>-->
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>

View File

@ -1,59 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Page d'accueil pour les gestionnaires du site.">
<meta name="robots" content="noindex">
<title>Mon WikiLerni</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/homeManager.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les derniers quizs">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="crash"></div>
<section id="main-content" class="needJS">
<ul id="menu" class="cardboard">
<li><a href="/gestion.html">Gestion WikiLerni</a></li>
<li><a href="/gestion-quizs.html" title="Publication des quizs">Les quizs</a></li>
<li><a href="/gestion-utilisateurs.html" title="Les comptes utilisateurs">Les abonné(e)s</a></li>
<li><a href="/sortie.html">Me déconnecter</a></li>
</ul>
<div id="home" class="cardboard">
<img id="logo" src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" />
<div id="message" class="cardboard"></div>
<p><a href="#" class="button cardboard" id="wantRegenerate">Régénérer le HTML.</a></p>
<div id="questionnaires"></div>
</div>
</section>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -1,75 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Formulaire d'inscription à WikiLerni.">
<title>Créer son compte WikiLerni</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/subscribe.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<link rel="canonical" href="https://www.wililerni.com/inscription.html">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="prompt" class="cardboard">
<img src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" title="W I K I L E R N I" />
<p>Cultivons notre jardin !</p>
</div>
<div id="signup" class="cardboard">
<h1 class="cardboard">Créer votre compte WIKILERNI</h1>
<noscript>Désolé, mais pour linstant, lutilisation de WikiLerni nécessite lactivation du JavaScript.</noscript>
<form class="needJS" id="subscription" method="POST">
<fieldset>
<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>
</fieldset>
<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"></div> J'accepte <a href="/CGV-CGU.html" target="_blank" rel="noopener" title="À lire :)">les Conditions Générales dUtilisation</a> du site.</label>
</li>
</ul>
<div class="input_wrapper">
<input id="submitDatas" type="submit" value="Valider" class="cardboard" />
</div>
</form>
<div id="response"></div>
<div id="explanations" class="framed engraved">
<h2>Besoin daide?</h2>
<p>Votre compte WikiLerni va vous permettre de <b>recevoir régulièrement par e-mail des suggestions darticles 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 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>Pour créer votre compte, saisissez juste votre adresse e-mail et acceptez les Conditions Générales dUtilisation. <b>Vous recevrez un lien de validation sur ladresse 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 (choix dun pseudo, mot de passe…).</p>
</div>
</div>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -1,44 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Tester votre lien de connexion</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/loginLink.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="prompt" class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" title="W I K I L E R N I" /></a>
<p class="cardboard">Cultivons notre jardin !</p>
<div id="response">Si vous voyez ce message, c'est que votre lien de connexion n'est pas valide ou a expiré. Vous pouvez <a href="/connexion.html">en demander un nouveau en cliquant ici</a>.</div>
</div>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -5,11 +5,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>WikiLerni : remerciement</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/index.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<link rel="alternate" type="application/atom+xml" title="WikiLerni" href="/atom.xml">
</head>
<body class="cardboard">
@ -19,7 +20,7 @@
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<!--<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>-->
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
@ -34,8 +35,8 @@
<div class="framed engraved">
<h2>Merci!</h2>
<p>Votre paiement vient dêtre enregistré. Merci à vous!</p>
<p>Normalement, vous avez reçu une facture par e-mail et votre abonnement vient dêtre prolongé.</p>
<p>Si jamais ce nest pas le cas et que vous avez une quelconque question, nhésitez pas <a href="/contact.html">à me prévenir</a>.</p>
<p>Normalement, vous avez aussi reçu une facture par e-mail.</p>
<p>Si jamais ce nest pas le cas ou que vous avez une quelconque question, nhésitez pas <a href="/contact.html">à me prévenir</a>.</p>
<p class="engraved">
<figure>
<img alt="Tirelire" src="/img/tirelire.jpg">

View File

@ -1,45 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Lien pour changer vos informations de connexion</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/newLoginValidation.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="prompt" class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" title="W I K I L E R N I" /></a>
<p>Cultivons notre jardin!</p>
<h1 class="cardboard">Validation de vos nouveaux identifiants</h1>
<div id="response"><p class="error">Si vous voyez ce message, cest que votre lien de validation nest pas valide ou a expiré. Vous pouvez <a href="/compte.html">en demander un nouveau en cliquant ici</a>.</p></div>
</div>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -5,12 +5,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Participez au financement de WikiLerni. Votre nom sur la page d'un des quizs.">
<title>Prix libre et financement participatif de WikiLerni</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<!-- Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/paymentPage.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
<link rel="canonical" href="https://www.wililerni.com/participer-financement.html">
<link rel="alternate" type="application/atom+xml" title="WikiLerni" href="/atom.xml">
</head>
<body class="cardboard">
@ -20,7 +21,7 @@
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<!--<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>-->
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>

View File

@ -1,2 +1,2 @@
User-agent: *
Disallow: /
Disallow:

View File

@ -1,45 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Déconnexion WikiLerni</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/deconnection.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="prompt" class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" title="W I K I L E R N I" /></a>
<p>Cultivons notre jardin !</p>
<h1 class="cardboard">Au revoir!</h1>
<div id="response"><p class="error">Si vous voyez ce message, cest quun problème a été rencontré durant la déconnexion.<br>Nhésitez pas <a href="/contact.html">à nous prévenir</a> si le problème persiste.</p></div>
</div>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -1,45 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Ne plus recevoir d'e-mail de WikiLerni</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/unsubscribe.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="prompt" class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" title="W I K I L E R N I" /></a>
<p>Cultivons notre jardin !</p>
<h1 class="cardboard">Stopper lenvoi des e-mails</h1>
<div id="response"><p class="error">Si vous voyez ce message, cest que votre lien de désabonnement na pas fonctionné correctement. Vous pouvez <a href="/compte.html">accéder à votre compte</a> pour désactiver les envois.</p></div>
</div>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -1,103 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex">
<title>Valider la création de votre compte WikiLerni</title>
<!-- Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src -->
<script src="/JS/polyfill.app.js" defer></script>
<script src="/JS/subscribeValidation.app.js" defer></script>
<link rel="shortcut icon" href="/img/favicon.ico">
<link rel="stylesheet" href="/themes/wikilerni/css/style.css">
</head>
<body class="cardboard">
<!-- En tête -->
<header class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt="WikiLerni (logo)" title="Accéder à la page d'accueil de WikiLerni" /></a>
<ul id="headLinks">
<li><a href="/contact.html" rel="nofollow">Contact</a></li>
<li><a href="/quizs/" id="indexHeadLink" title="Les dernières publications">Parcourir</a></li>
<li><a href="/connexion.html" id="accountHeadLink">Mon compte</a></li>
<li><a href="/a-propos.html">À propos</a></li>
<li><a href="/" title="Page d'accueil de WikiLerni">Accueil</a></li>
</ul>
</header>
<div id="prompt" class="cardboard">
<a href="/" title="Page d'accueil WikLerni"><img src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni" title="W I K I L E R N I" /></a>
<p>Cultivons notre jardin !</p>
<h1 class="cardboard">Valider la création de votre compte</h1>
<div id="message"></div>
<form class="needJS" id="subscription2" method="POST">
<h3>Personnalisez votre abonnement</h3>
<fieldset>
<label for="name">Choisissez votre nom ou pseudo: </label><input id="name" type="text" name="name" placeholder="Nom de votre choix" class="cardboard" >
</fieldset>
<fieldset>
<label for="newPassword">Choisissez votre mot de passe: </label><input id="newPassword" type="password" name="newPassword" placeholder="Mot de passe de votre choix" class="cardboard">
<div id="passwordMessage"><span class="info">Au moins 8 caractères. <a href="#password" id="getPassword">Générer un mot de passe</a>.</span></div>
</fieldset>
<!--<fieldset>
<label for="codeGodfather">Code ou e-mail de votre «parrain» ?</label><input id="codeGodfather" type="text" name="codeGodfather" placeholder="Code ou email de votre parrain." class="cardboard">
<div id="codeGodfatherMessage"><span class="info">Facultatif.</span></div>
</fieldset>-->
<div class="framed">
<p>Quels jours de la semaine souhaitez-vous recevoir des e-mails (nouveaux articles ou quizs)?</p>
<ul class="checkbox_li">
<li class="checkbox_li">
<label for="d2" class="check"><input type="checkbox" id="d2" name="d2" value="true" /><div class="checkbox_override"></div> Lundi.</label>
</li>
<li class="checkbox_li">
<label for="d3" class="check"><input type="checkbox" id="d3" name="d3" value="true" /><div class="checkbox_override"></div> Mardi.</label>
</li>
<li class="checkbox_li">
<label for="d4" class="check"><input type="checkbox" id="d4" name="d4" value="true" /><div class="checkbox_override"></div> Mercredi.</label>
</li>
<li class="checkbox_li">
<label for="d5" class="check"><input type="checkbox" id="d5" name="d5" value="true" /><div class="checkbox_override"></div> Jeudi.</label>
</li>
<li class="checkbox_li">
<label for="d6" class="check"><input type="checkbox" id="d6" name="d6" value="true" /><div class="checkbox_override"></div> Vendredi.</label>
</li>
<li class="checkbox_li">
<label for="d7" class="check"><input type="checkbox" id="d7" name="d7" value="true" /><div class="checkbox_override"></div> Samedi.</label>
</li>
<li class="checkbox_li">
<label for="d1" class="check"><input type="checkbox" id="d1" name="d1" value="true" /><div class="checkbox_override"></div> Dimanche.</label>
</li>
</ul>
</div>
<div class="input_wrapper">
<input id="submitDatas" type="submit" value="Valider vos choix." class="cardboard" />
</div>
</form>
<div id="response"></div>
<div id="explanations" class="framed engraved">
<h2>Besoin d'aide ?</h2>
<p><b>Votre pseudonyme</b> est complétement libre, mais servira à personnaliser certains affichages.</p>
<p><b>Votre mot de passe doit compter au moins 8 caractères.</b> Si vous manquez dinspiration, cliquez sur le lien «Générer un mot de passe» pour en obtenir un. <b>Si vous ne choisissez pas de mot de passe</b>, vous ne pourrez vous connecter à votre compte que via des liens de connexion envoyés sur votre adresse e-mail.</p>
<!--<p>Si vous connaissez une personne déjà inscrite à WikiLerni, <b>vous pouvez fournir son code parrain ou encore son adresse e-mail</b>. Dans le cas où vous optez ensuite pour un abonnement prémium, il sera alors allongé de 30 jours grâce à ce parrainage.</p>-->
<p>Vous pouvez sélectionner <b>les jours de la semaine où vous acceptez de recevoir des mails de WikiLerni</b>.<br>Chaque jour sélectionné, vous recevrez soit une «graine de savoir» WikiLerni, soit un quiz permettant de tester ce que vous avez retenu des envois des jours précédents. Sil ny a plus de nouveautés, vous recevrez un quiz au hasard parmi ceux déjà envoyés.</p>
<p><b>Toutes les informations ci-dessus pourront être modifiées par la suite</b>.</p>
</div>
</div>
<footer class="cardboard">
<ul id="footLinks">
<li><a href="https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2" title="Blog WikiLerni sur diaspora*">Blog</a></li>
<li><a href="/credits.html">Crédits</a></li>
<li><a href="/mentions-legales.html" rel="nofollow">Mentions légales</a></li>
<li><a href="/donnees.html">Données personnelles</a></li>
<li><a href="/CGV-CGU.html" rel="nofollow">CGV &amp; CGU</a></li>
</ul>
</footer>
</body>
</html>

View File

@ -46,6 +46,7 @@ const initialise = async () =>
{
// Si JS activé, on affiche le bouton de soumission du formulaire :
beginAnswer();
/*
isConnected=await checkSession(["user"]);// "user" car seuls les utilisateurs de base peuvent enregistrer leurs réponses aux quizs
// Si l'utilisateur est connecté et a déjà répondu à ce quiz, on affiche ses précédentes réponses à la place du texte servant à expliquer le topo aux nouveaux
if(isConnected)
@ -54,7 +55,7 @@ const initialise = async () =>
updateAccountLink(user.status, configTemplate);// lien vers le compte adapté pour les utilisateurs connectés
checkPreviousResponses(user);
}
else
else */
loadMatomo();
}
catch(e)
@ -117,7 +118,7 @@ myForm.addEventListener("submit", function(e)
// Affichage du résultat, suivant si l'utilisateur est connecté ou pas et son score :
let getOuput=checkAnswerOuput(answer);
if(isConnected)
/*if(isConnected)
{
// Si l'utilisateur est connecté, on passe son résultat au serveur pour le sauvegarder.
const xhrSaveAnswer = new XMLHttpRequest();
@ -147,19 +148,19 @@ myForm.addEventListener("submit", function(e)
}
else
{ // Si internaute non 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+="</p><p>"+wantToSaveResponses+"</p>";
addElement(divResponse, "p", getOuput, "", ["success"]);
document.querySelector(".subscribeBtns").style.display="block";
}
else // Mais inutile de proposer de créer un compte si le stockage local ne fonctionne pas
else // Mais inutile de proposer de créer un compte si le stockage local ne fonctionne pas */
addElement(divResponse, "p", getOuput, "", ["success"]);
// Puis on le redirige vers son résultat :
window.location.hash="";
const here=window.location;// window.location à ajouter pour ne pas quitter la page en mode "preview"...
window.location.hash="response";
}
//}
// + Affichage des textes d'explications pour chaque question
const explanations=document.querySelectorAll(".help");
for(let i in explanations)
@ -173,6 +174,7 @@ myForm.addEventListener("submit", function(e)
}
})
/*
// Fonction vérifiant les précédentes réponses de l'utilisateur.
// Utile si connecté lors du premier chargement de la page, puis après une nouvelle réponse.
const checkPreviousResponses = (user) =>
@ -223,4 +225,4 @@ const checkPreviousResponses = (user) =>
}
xhrPreviousRes.setRequestHeader("Authorization", "Bearer "+user.token);
xhrPreviousRes.send();
}
} */

View File

@ -24,14 +24,15 @@ const { needUniqueEmail } = require("../../lang/"+lang+"/user");
// Principaux éléments du DOM manipulés :
const btnSubmit=document.getElementById("submitDatas");
const divResponse=document.getElementById("response");
const emailInput=document.getElementById("email");
const myForm=document.getElementById("subscription");
// const emailInput=document.getElementById("email");
// const myForm=document.getElementById("subscription");
// Test de connexion de l'utilisateur + affichage formulaire d'inscription :
const initialise = async () =>
{
try
{
/*
let isConnected=await checkSession(), user;
if(isConnected)
{
@ -39,11 +40,11 @@ const initialise = async () =>
updateAccountLink(user.status, configTemplate);// lien vers le compte adapté pour les utilisateurs connectés
}
else
{
{ */
loadMatomo();
setAttributesToInputs(configUsers, myForm);
myForm.style.display="block";
}
//setAttributesToInputs(configUsers, myForm);
//myForm.style.display="block";
//}
}
catch(e)
{
@ -54,6 +55,7 @@ const initialise = async () =>
initialise();
helloDev();
/*
// Test si l'e-mail saisi est déjà utilisé par un autre compte.
// Si c'est le cas, la validation du formulaire est bloquée.
emailInput.addEventListener("focus", function(e)
@ -85,7 +87,7 @@ emailInput.addEventListener("blur", function(e)
const datas={ emailTest:emailValue };
xhr.send(JSON.stringify(datas));
}
});
})
// Traitement de l'envoi des données d'inscription :
myForm.addEventListener("submit", function(e)
@ -133,4 +135,4 @@ myForm.addEventListener("submit", function(e)
addElement(divResponse, "p", serverError, "", ["error"]);
console.error(e);
}
});
});;*/

View File

@ -18,14 +18,14 @@ const initialise = async () =>
{
try
{
const isConnected=await checkSession();
if(isConnected)
/* const isConnected=await checkSession();
if(isConnected)
{
// on change le lien d'accès au compte
const user=getLocaly("user", true);
updateAccountLink(user.status, configTemplate);
}
else
else*/
loadMatomo();
}
catch(e)

View File

@ -153,7 +153,7 @@ const sendLinkForm = (token) =>
addElement(divLinks, "p", response.message, "", ["success"], "", false);
hideAllForms();
window.location.assign("#linksList");
showNextQuestionnaires(token);// peut avoir évolué suivant ce qui s'est passé
//showNextQuestionnaires(token);// peut avoir évolué suivant ce qui s'est passé
}
else if (response.errors)
{
@ -180,7 +180,7 @@ const showFormIllustrationInfos = (Illustration) =>
// Puis on affiche celui concerné
formIllustration.style.display="block";
// + Les contraintes de champ & valeurs par défaut
setAttributesToInputs(configIllustrations.Illustration, formIllustration);
setAttributesToInputs(configIllustrations.Illustration, formIllustration);
// Mais le champ file n'est plus requis, quand un fichier existe déjà
formIllustration.elements["image"].removeAttribute("required");
for(let data in Illustration)
@ -261,7 +261,7 @@ const sendIllustrationForm = (token) =>
addElement(divIllustrations, "p", response.message, "", ["success"], "", false);
hideAllForms();
window.location.assign("#illustrationsList");
showNextQuestionnaires(token);// peut avoir évolué suivant ce qui s'est passé
//showNextQuestionnaires(token);// peut avoir évolué suivant ce qui s'est passé
}
else if (response.errors)
{
@ -376,7 +376,7 @@ const sendQuestionForm = (token) =>
addElement(divQuestions, "p", response.message, "", ["success"], "", false);
hideAllForms();
window.location.assign("#questionsList");
showNextQuestionnaires(token);// car peut avoir évolué suivant ce qui s'est passé
//showNextQuestionnaires(token);// car peut avoir évolué suivant ce qui s'est passé
}
else if (response.errors)
{
@ -457,6 +457,7 @@ const showFormQuestionnaireInfos = (id, token) =>
xhrGetInfos.send();
}
/*
// Affiche les questionnaires bientôt publiés.
const showNextQuestionnaires = (token) =>
{
@ -496,7 +497,7 @@ const showNextQuestionnaires = (token) =>
}
xhrNextQuestionnaires.setRequestHeader("Authorization", "Bearer "+token);
xhrNextQuestionnaires.send();
}
}*/
const initialise = async () =>
{
@ -512,8 +513,8 @@ const initialise = async () =>
removeLocaly("message");
}
const user=getLocaly("user", true);
// Mise à jour du lien "compte" du header :
updateAccountLink(user.status, configTemplate);
/// Mise à jour du lien "compte" du header (plus utile)
/// updateAccountLink(user.status, configTemplate);
// Initialisation des formulaires :
setAttributesToInputs(configQuestionnaires, formSearch);
setAttributesToInputs(configQuestionnaires.Questionnaire, formQuestionnaire);
@ -526,7 +527,7 @@ const initialise = async () =>
if(urlDatas && urlDatas.id!==undefined)
showFormQuestionnaireInfos(urlDatas.id, user.token);
// les prochaines publications :
showNextQuestionnaires(user.token);
//showNextQuestionnaires(user.token);
// Lancement d'une recherche :
formSearch.addEventListener("submit", function(e)
{
@ -654,14 +655,14 @@ const initialise = async () =>
{
e.preventDefault();
divResponse.innerHTML="";
let datas=getDatasFromInputs(formQuestionnaire);
const datas=getDatasFromInputs(formQuestionnaire);
if(!isEmpty(datas.rankInGroup) && isEmpty(datas.GroupId))
addElement(divResponse, "p", needGroupIfRank, "", ["error"]);
else
{
if(isEmpty(datas.rankInGroup) && !isEmpty(datas.GroupId))
datas.rankInGroup=1;
const xhrQuestionnaireDatas = new XMLHttpRequest();
const xhrQuestionnaireDatas=new XMLHttpRequest();
if(!isEmpty(datas.id) && (datas.deleteOk!==undefined))
xhrQuestionnaireDatas.open("DELETE", apiUrl+configQuestionnaires.questionnaireRoutes+"/"+datas.id);
else if(!isEmpty(datas.id))
@ -672,42 +673,50 @@ const initialise = async () =>
{
if (this.readyState == XMLHttpRequest.DONE)
{
let response=JSON.parse(this.responseText);
if (this.status === 201 && response.id != undefined)
{
addElement(divResponse, "p", addOkMessage, "", ["success"]);
datas.id=response.id;
showNextQuestionnaires(user.token);// peut avoir évolué suivant ce qui s'est passé
}
else if (this.status === 200 && response.message != undefined)
{
if(Array.isArray(response.message))
response.message = response.message.join("<br>");
//if(this.responseText !== "")
//{
const response=JSON.parse(this.responseText);
if (this.status === 201 && response.id != undefined)
{
addElement(divResponse, "p", addOkMessage, "", ["success"]);
datas.id=response.id;
//showNextQuestionnaires(user.token);// peut avoir évolué suivant ce qui s'est passé
}
else if (this.status === 200 && response.message != undefined)
{
if(Array.isArray(response.message))
response.message = response.message.join("<br>");
else
response.message = response.message;
addElement(divResponse, "p", response.message, "", ["success"]);
//showNextQuestionnaires(user.token);// peut avoir évolué suivant ce qui s'est passé
}
else if (response.errors)
{
if(Array.isArray(response.errors))
response.errors = response.errors.join("<br>");
else
response.errors = serverError;
addElement(divResponse, "p", response.errors, "", ["error"]);
}
else
response.message = response.message;
addElement(divResponse, "p", response.message, "", ["success"]);
showNextQuestionnaires(user.token);// peut avoir évolué suivant ce qui s'est passé
}
else if (response.errors)
{
if(Array.isArray(response.errors))
response.errors = response.errors.join("<br>");
else
response.errors = serverError;
addElement(divResponse, "p", response.errors, "", ["error"]);
}
else
addElement(divResponse, "p", serverError, "", ["error"]);
if(datas.deleteOk === undefined && response.errors === undefined)
showFormQuestionnaireInfos(datas.id, user.token);// on actualise les données
else if (response.errors === undefined)
{
formQuestionnaire.reset();
divLinks.innerHTML="";
divIllustrations.innerHTML="";
divQuestions.innerHTML="";
}
addElement(divResponse, "p", serverError, "", ["error"]);
if(datas.deleteOk === undefined && response.errors === undefined)
showFormQuestionnaireInfos(datas.id, user.token);// on actualise les données
else if (response.errors === undefined)
{
formQuestionnaire.reset();
divLinks.innerHTML="";
divIllustrations.innerHTML="";
divQuestions.innerHTML="";
}
//}
//else
//console.error("je n'ai rien reçu du serveur");
}
//else if (this.readyState == XMLHttpRequest.DONE && this.responseText === "")
// console.error("je n'ai rien reçu du serveur 2");
}
xhrQuestionnaireDatas.setRequestHeader("Content-Type", "application/json");
xhrQuestionnaireDatas.setRequestHeader("Authorization", "Bearer "+user.token);

View File

@ -38,6 +38,7 @@ const initialise = async () =>
try
{
btnShow.style.display="inline";// bouton caché si JS inactif, car JS nécessaire pour vérifier les réponses
/*
isConnected=await checkSession(["user"]);// "user" car seuls les utilisateurs de base peuvent enregistrer leurs réponses aux quizs
// Si l'utilisateur est connecté et a déjà répondu à ce quiz, on affiche ses précédentes réponses à la place du texte servant à expliquer le topo aux nouveaux
if(isConnected)
@ -46,7 +47,7 @@ const initialise = async () =>
updateAccountLink(user.status, configTemplate);// lien vers le compte adapté pour les utilisateurs connectés
checkPreviousResponses(user);
}
else
else */
loadMatomo();
}
catch(e)
@ -144,6 +145,7 @@ myForm.addEventListener("submit", function(e)
// Affichage du résultat, suivant si l'utilisateur est connecté ou pas et son score :
let getOuput=checkAnswerOuput(answer);
/*
if(isConnected)
{
// Si l'utilisateur est connecté, on enregistre son résultat sur le serveur.
@ -180,13 +182,13 @@ myForm.addEventListener("submit", function(e)
addElement(divResponse, "p", getOuput, "", ["info"]);
document.querySelector(".subscribeBtns").style.display="block";
}
else // inutile de proposer de créer un compte si le stockage local ne fonctionne pas
else // inutile de proposer de créer un compte si le stockage local ne fonctionne pas*/
addElement(divResponse, "p", getOuput, "", ["info"]);
// on redirige vers le résultat
window.location.hash="";
const here=window.location;// window.location à ajouter pour ne pas quitter la page en mode "preview"...
window.location.assign(here+"response");
}
//}
// + affichage des textes d'explications pour chaque question
const explanations=document.querySelectorAll(".help");
for(let i in explanations)
@ -202,6 +204,7 @@ myForm.addEventListener("submit", function(e)
}
})
/*
// Fonction vérifiant les précédentes réponses de l'utilisateur
// Utile si connecté lors du premier chargement de la page, puis après une nouvelle réponse
const checkPreviousResponses = (user) =>
@ -253,4 +256,4 @@ const checkPreviousResponses = (user) =>
}
xhrPreviousRes.setRequestHeader("Authorization", "Bearer "+user.token);
xhrPreviousRes.send();
}
}*/

View File

@ -8,7 +8,8 @@ export const helloDev = () =>
export const updateAccountLink = (status, configTemplate) =>
{
const link=document.getElementById("accountHeadLink");
const homePage=status+"HomePage";
link.href="/"+configTemplate[homePage];
//const link=document.getElementById("accountHeadLink");
//const homePage=status+"HomePage";
//link.href="/"+configTemplate[homePage];
//console.log("je suis connecté");
}

View File

@ -49,5 +49,5 @@ module.exports =
devServer:
{
static: path.resolve(__dirname, "./public")
}
},
};

1441
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -38,8 +38,26 @@ class ToolFile
return false;
}
}
// Reçoit du code XML et l'enregistre dans un fichier (à mutualiser avec précédente)
static async createXML(dir, file, xml)
{
try
{
let myFile=""+file;// "file" peut être un nombre = bug avec endsWith
myFile=(myFile.endsWith(".xml")) ? myFile : myFile+".xml";
const path=dir+"/"+myFile;
await fs.outputFile(path, xml);// créé récursivement les répertoires si besoin
return true;
}
catch (err)
{
console.error(err);
return false;
}
}
// Vérifie si un fichier existe dans une répertoir
// Vérifie si un fichier existe dans un répertoire
static async checkIfFileExist(dir, file)
{
try

View File

@ -5,7 +5,6 @@ module.exports =
[
{ anchor: "Contact", attributes: { href:"/contact.html", rel: "nofollow" } },
{ anchor: "Parcourir", attributes: { href:"/quizs/", id:"indexHeadLink", title:"Les dernières publications" } },
{ anchor: "Mon compte", attributes: { href:"/connexion.html", id: "accountHeadLink", title:"Accéder ou créez votre compte WikiLerni" } },
{ anchor: "À propos", attributes: { href:"/a-propos.html", title:"En savoir + sur WikiLerni" } },
{ anchor: "Accueil", attributes: { href:"/", title:"Page d'accueil" } }
],
@ -42,7 +41,7 @@ module.exports =
/* Page d'accueil */
homePageTxt: "Page d'accueil",
homeTitle1: "De nature curieuse ?",
homeP1: "<b>Avec WikiLerni, vous apprenez régulièrement 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>.",
homeP1: "<b>Avec WikiLerni, vous apprenez régulièrement de nouvelles choses</b>.<br>Vous découvrez 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é",
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 ?",
@ -51,7 +50,7 @@ module.exports =
/* Page dernières publications... */
newQuestionnairesTitle: "Culture générale - apprenez de nouvelles choses avec WikiLerni",
newQuestionnairesIntro: "WikiLerni : testez vos connaissances et apprenez de nouvelles choses avec WikiLerni.",
newsListTitle: "<p><b>Avec WikiLerni, vous apprenez chaque jour quelque chose de nouveau</b><br>Si dessous les dernières publications. Vous pouvez aussi <a href='/quizs/themes.html'>parcourir le site par thèmes ou mots-clés</a>.</p>",
newsListTitle: "<p><b>Avec WikiLerni, vous pouvez toujours apprendre quelque chose de nouveau</b><br>Si dessous les dernières publications. Vous pouvez aussi <a href='/quizs/themes.html'>parcourir le site par thèmes ou mots-clés</a>.</p>",
/* Plan du site, liste des tags */
tagListTitle: "Culture générale - des articles et quizs sur de nombreux thèmes !",
tagListMetaDesc: "WikiLerni : découvrir les différents thèmes abordés par WikiLerni. Inxex du site.",
@ -62,11 +61,12 @@ module.exports =
quizElementSubcriptionFormTitle: "Recevez les prochains articles WikiLerni",
explanationTitle: "Vous découvrez WikiLerni?",
explanationTxt: "<p>Le principe est simple: <b>vous commencez par lire larticle Wikipédia dont le lien vous est proposé</b>. Puis vous <b>afficher le quiz pour vérifier ce que vous avez retenu de votre lecture</b>. Suivant les questions, <b>une ou plusieurs réponses peuvent être correctes</b> et doivent donc être cochées. Cest toujours <b>le contenu de larticle Wikipédia qui fait foi</b> concernant les «bonnes» réponses. Cest une façon de tester à la fois votre capacité dattention et votre mémoire. Les articles de Wikipédia peuvent évoluer, donc nhésitez pas <a href='/contact.html'>à me signaler une erreur</a>.</p><p><b>WikiLerni vous propose dautres solutions pour améliorer votre culture générale</b>. Pour en savoir plus, cliquez sur le bouton ci-dessous.</p>",
explanationElementTxt: "<p>WikiLerni vous propose de <b>recevoir par e-mail à la fréquence choisie, de courts articles lisibles en quelques minutes</b> et portant sur des sujets très variés de <b>culture générale</b> (arts, histoire, littérature, sciences, etc.).</p><p>Ces articles sont basés sur <b>une ou plusieurs pages de Wikipédia</b> (fournies en lien), dont <b>ils extraient certaines informations</b>.</p><p>Chaque série darticles est <b>suivie dun quiz</b> permettant de tester ce que vous en avez retenu.</p><p><b>Vous apprenez ainsi régulièrement de nouvelles choses</b> très simplement.</p>",
explanationElementTxt: "<p>WikiLerni vous propose de <b>découvrir de courts articles lisibles en quelques minutes</b> et portant sur des sujets très variés de <b>culture générale</b> (arts, histoire, littérature, sciences, etc.).</p><p>Ces articles sont basés sur <b>une ou plusieurs pages de Wikipédia</b> (fournies en lien), dont <b>ils extraient certaines informations</b>.</p><p>Chaque série darticles est <b>suivie dun quiz</b> permettant de tester ce que vous en avez retenu.</p><p><b>Vous apprenez ainsi régulièrement de nouvelles choses</b> très simplement.</p>",
/* Autres */
illustrationDir : "/img/quizs/",
twitterAccount: "WikiLerni",
maxQuestionnairesByPage: 12,
maxQuestionnairesFeed: 5,
maxQuestionnairesSiteHomePage: 3,
nbQuestionnairesUserHomePage : 3,
};

View File

@ -2,45 +2,15 @@ extends layout.pug
block append scripts
script(src="/JS/polyfill.app.js" defer)
script(src="/JS/subscribe.app.js" defer)
block content
div(id="home" class="cardboard")
p
img(id="logo" src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni")
h2(class="cardboard") #{config.siteName+" - "+configTpl.siteSlogan}
div(class="engraved framed")
h3 #{configTpl.homeTitle1}
p !{configTpl.homeP1}
h3 #{configTpl.homeTitle2}
p !{configTpl.homeP2}
//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;
include includes/listing-questionnaires.pug

View File

@ -1,4 +1,3 @@
//- boucles listant des questionnaires, utilisées pour différentes pages
div(id="triple-column")
-
// je commence par répartir les éléments entre les 3 colonnes
@ -8,7 +7,6 @@ div(id="triple-column")
nbMaxQuestionnairesCol=questionnaires.length;
else
nbMaxQuestionnairesCol=nbQuestionnairesList;
for(let i in questionnaires)
{
if(tot < nbQuestionnairesList)
@ -36,11 +34,10 @@ div(id="triple-column")
if(tool.isEmpty(questionnaire.Illustrations[0].title)===false)
imgAttributes.title=questionnaire.Illustrations[0].title;
let introduction=tool.shortenIfLongerThan(striptags(questionnaire.Questionnaire.introduction.replace("<br>", " ").replace("</p>", " ")), 200);
div(class="quiz cardboard" style="transform: rotate("+rotation+"deg);")
h3
a(href="/quiz/"+questionnaire.Questionnaire.slug+".html") #{questionnaire.Questionnaire.title}
a(href="/quiz/"+questionnaire.Questionnaire.slug+".html") #{questionnaire.Questionnaire.title}
div(class="quiz-image-wrapper" style="background-image: url('/img/quizs/"+questionnaire.Illustrations[0].url+"')")
a(href="/quiz/"+questionnaire.Questionnaire.slug+".html")
img(src="/img/quizs/"+questionnaire.Illustrations[0].url)&attributes(imgAttributes)

View File

@ -13,8 +13,7 @@ html(lang=(pageLang) ? pageLang : config.adminLang)
title #{pageTitle}
else
title #{config.siteName}
base(href=config.siteUrl)
// Version lisible des scripts : https://gitlab.com/lefablab/wikilerni/-/tree/master/front/src
// Version lisible des scripts : https://forge.chapril.org/Fab_Blab/WikiLerni/src/branch/master/front/src
block scripts
link(rel="stylesheet" href="/themes/wikilerni/css/style.css")
block css
@ -22,12 +21,10 @@ html(lang=(pageLang) ? pageLang : config.adminLang)
link(rel="apple-touch-icon" sizes="57x57" href="/img/apple-icon-57x57.png")
link(rel="icon" type="image/png" sizes="192x192" href="/img/android-icon-192x192.png")
link(rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png")
link(rel="alternate" type="application/atom+xml" title=config.siteName href="/atom.xml")
if(linkCanonical)
link(rel="canonical" href=linkCanonical)
body(class="cardboard")
header(class="cardboard")
a(href="/" title=configTpl.homePageTxt)
img(src="/themes/wikilerni/img/wikilerni-purple-2-128.png" alt=config.siteName+" (logo)")
@ -36,9 +33,7 @@ html(lang=(pageLang) ? pageLang : config.adminLang)
for item in configTpl.headLinks
li
a(href="/"+item.url)&attributes(item.attributes) #{item.anchor}
block content
- const nbItemFoot = configTpl.footLinks.length;
footer(class="cardboard")
ul(id="footLinks")

View File

@ -1,18 +1,14 @@
extends layout.pug
block append scripts
script(src="/JS/polyfill.app.js" defer)
script(src="/JS/index.app.js" defer)
script(src="/JS/index.app.js" defer)
block content
div(id="prompt" class="cardboard")
p
img(id="logo" src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni")
h2(class="cardboard") #{config.siteName+" - "+configTpl.siteSlogan}
div#listsIntro !{configTpl.newsListTitle}
p
a(href="/"+configTpl.subscribePage class="button cardboard" title=configTpl.homeBtnSubscribeTxt) #{configTpl.homeBtnSubscribeTxt}
// p
// a(href="/"+configTpl.subscribePage class="button cardboard" title=configTpl.homeBtnSubscribeTxt) #{configTpl.homeBtnSubscribeTxt}
- nbQuestionnairesList=configTpl.maxQuestionnairesByPage;
include includes/listing-questionnaires.pug

View File

@ -1,11 +1,8 @@
extends layout.pug
block append scripts
script(src="/JS/polyfill.app.js" defer)
script(src="/JS/groupElement.app.js" defer)
script(src="/JS/groupElement.app.js" defer)
block content
div(id="tags" class="cardboard")
ul
li
@ -13,7 +10,6 @@ block content
for tag in questionnaire.Tags
li
a(href="/quizs/"+tag.slug+".html") #{tag.name}
-
const imgAttributes = { alt: txtIllustration.defaultAlt, style: "opacity: 0.0;" };
if(questionnaire.Illustrations!=undefined && questionnaire.Illustrations.length!==0)
@ -25,15 +21,12 @@ block content
}
const publishedAtTxt=tool.dateFormat(questionnaire.Questionnaire.publishingAt, questionnaire.Questionnaire.language);
const updatedAtTxt=tool.dateFormat(questionnaire.Questionnaire.updatedAt, questionnaire.Questionnaire.language);
if(questionnaire.Illustrations != undefined && questionnaire.Illustrations.length !== 0)
div(id="content-picture" class="cardboard")
div(style="background-image: url('/img/quizs/"+questionnaire.Illustrations[0].url+"');")
img(src="/img/quizs/"+questionnaire.Illustrations[0].url)&attributes(imgAttributes)
//- Important : ici, on garde volontairement le html saisi car lien possible vers auteur de l'illustration :
if(questionnaire.Illustrations[0].caption)
p !{questionnaire.Illustrations[0].caption}
div(id="content-side")
div(id="content-title")
h1(class="cardboard")
@ -43,15 +36,10 @@ block content
a(href="/img/quizs/"+questionnaire.Illustrations[0].url target="_blank" rel="noopener")
img(src="/img/quizs/min/"+questionnaire.Illustrations[0].url class="thumb")&attributes(imgAttributes)
div(id="content-title-corner")
div(id="content" class="cardboard")
p(id="author-date") #{txtQuestionnaire.publishedBy} #{author}#{txtQuestionnaire.publishedAt} #{publishedAtTxt}. #{txtQuestionnaire.lastUpdated}#{updatedAtTxt}.
//- Important : ici, on garde volontairement le html !
if(questionnaire.Questionnaire.introduction)
div#introduction !{questionnaire.Questionnaire.introduction}
//- Les sources de l'article
if(questionnaire.Links != undefined && questionnaire.Links.length !== 0)
div#quizElementLinks
h4 #{configTpl.quizElementLinksIntro}
@ -59,8 +47,6 @@ block content
for link in questionnaire.Links
li
a(href=link.url target="_blank" rel="noopener" title=link.anchor+" ("+txtGeneral.alertNewWindow+")") #{link.anchor}
// Lien vers l'élément suivant ou le quiz du groupe, si je suis arrivé à la fin :
-
let nextLink={};
if(nextQuestionnaire != null && nextQuestionnaire.Questionnaire.isPublished)
@ -81,33 +67,8 @@ block content
a(href=nextLink.href title=nextLink.title) #{nextLink.title}
div#nextLink
a(href=nextLink.href class="button cardboard" title=nextLink.title) !{"&#10132; "+nextLink.anchor}
// Formulaire d'inscription :
noscript
div
strong #{configTpl.noJSNotification}
- const cguOkLabel = txtUser.formsCGUOkLabel.replace("#link", "/"+configTpl.cguPage);
div#quizElementSignupForm
form(id="subscription" method="POST" class="needJS")
h3 #{configTpl.quizElementSubcriptionFormTitle}
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")
div#licence
p !{configTpl.licenceTxt}
p !{configTpl.licenceTxt}
div#zerozozio
a(href="mailto:?to=&amp;subject="+questionnaire.Questionnaire.title+"&amp;body="+txtQuestionnaire.btnShareQuizMailBody+linkCanonical rel="nofollow noopener" title=txtQuestionnaire.btnShareQuizTxt+"e-mail* ("+txtGeneral.alertNewWindow+")" target="_blank")
img(src="/themes/wikilerni/img/email.png" alt=txtQuestionnaire.btnShareQuizTxt+"mail")
@ -118,8 +79,7 @@ block content
a(href="https://www.linkedin.com/shareArticle?mini=true&amp;url="+linkCanonical+";title="+questionnaire.Questionnaire.title rel="nofollow noopener" title=txtQuestionnaire.btnShareQuizTxt+"LinkedIn ("+txtGeneral.alertNewWindow+")" target="_blank")
img(src="/themes/wikilerni/img/linkedin.png" alt=txtQuestionnaire.btnShareQuizTxt+"LinkedIn")
a(href="https://twitter.com/intent/tweet?url="+linkCanonical+"&text="+questionnaire.Questionnaire.title+" via @"+configTpl.twitterAccount rel="nofollow noopener" title=txtQuestionnaire.btnShareQuizTxt+"twitter ("+txtGeneral.alertNewWindow+")" target="_blank")
img(src="/themes/wikilerni/img/twitter.png" alt=txtQuestionnaire.btnShareQuizTxt+"twitter")
img(src="/themes/wikilerni/img/twitter.png" alt=txtQuestionnaire.btnShareQuizTxt+"twitter")
div#explanations(class="engraved framed")
h3#explanationsTitle #{configTpl.explanationTitle}
div#explanationsContent

View File

@ -1,12 +1,8 @@
extends layout.pug
block append scripts
script(src="/JS/polyfill.app.js" defer)
script(src="/JS/group.app.js" defer)
script(src="/JS/group.app.js" defer)
block content
// Il n'y a pas d'illustration spécifique au groupe, donc on reprend celle du premier élément du groupe de quizs
-
if(group.Questionnaires.length !==0)
{
@ -26,10 +22,8 @@ block content
div(id="content-picture" class="cardboard")
div(style="background-image: url('/img/quizs/"+group.Questionnaires[0].Illustrations[0].url+"');")
img(src="/img/quizs/"+group.Questionnaires[0].Illustrations[0].url)&attributes(imgAttributes)
//- Important : ici, on garde volontairement le html saisi car lien possible vers auteur de l'illustration :
if(group.Questionnaires[0].Illustrations[0].caption)
p !{group.Questionnaires[0].Illustrations[0].caption}
div(id="content-side")
div(id="content-title")
h1(class="cardboard")
@ -39,27 +33,22 @@ block content
a(href="/img/quizs/"+group.Questionnaires[0].Illustrations[0].url target="_blank" rel="noopener")
img(src="/img/quizs/min/"+group.Questionnaires[0].Illustrations[0].url class="thumb")&attributes(imgAttributes)
div(id="content-title-corner")
div(id="content" class="cardboard")
p(id="author-date") #{txtGroups.publishedBy} #{author} #{txtGroups.publishedAt} #{publishedAtTxt}. #{txtGroups.lastUpdated} #{updatedAtTxt}.
//- Important : ici, on garde volontairement le html, car cela est accepté pour l'introduction.
div#introduction
if(group.Group.introduction)
div !{group.Group.introduction}
// Formulaire du quiz
noscript
div
strong #{configTpl.noJSNotification}
form(id="group" method="POST")
h2 #{group.Group.title}
div#response
div(class="subscribeBtns")
p
a(class="button cardboard" href=configTpl.subscribePage) #{txtGeneral.btnProposeSubscribe}
p
a(class="button cardboard" href=configTpl.connectionPage) #{txtGeneral.btnProposeConnection}
// div(class="subscribeBtns")
// p
// a(class="button cardboard" href=configTpl.subscribePage) #{txtGeneral.btnProposeSubscribe}
// p
// a(class="button cardboard" href=configTpl.connectionPage) #{txtGeneral.btnProposeConnection}
for questionnaire in group.Questionnaires
for question in questionnaire.Questions
p(id="question_"+question.Question.id) #{question.Question.text}
@ -81,14 +70,11 @@ block content
input(type="hidden" name="isCorrect_response_"+response.id id="isCorrect_response_"+response.id value=""+response.isCorrect)
input(type="hidden" name="question_id_response_"+response.id id="question_id_response_"+response.id value=question.Question.id)
input(name="groupId" id="groupId" value=group.Group.id type="hidden")
// Bouton submit caché si pas de JS, car nécessaire au traitement de la réponse
p
span(class="input_wrapper")
input(id="checkResponses" type="submit" value=txtGroups.btnSendResponse class="cardboard needJS" title=txtGroups.btnSendResponse)
div#licence
p !{configTpl.licenceTxt}
div#zerozozio
a(href="mailto:?to=&amp;subject="+group.Group.title+"&amp;body="+txtQuestionnaire.btnShareQuizMailBody+linkCanonical rel="nofollow noopener" title=txtQuestionnaire.btnShareQuizTxt+"e-mail* ("+txtGeneral.alertNewWindow+")" target="_blank")
img(src="/themes/wikilerni/img/email.png" alt=txtQuestionnaire.btnShareQuizTxt+"mail")
@ -100,13 +86,10 @@ block content
img(src="/themes/wikilerni/img/linkedin.png" alt=txtQuestionnaire.btnShareQuizTxt+"LinkedIn")
a(href="https://twitter.com/intent/tweet?url="+linkCanonical+"&text="+group.Group.title+" via @"+configTpl.twitterAccount rel="nofollow noopener" title=txtQuestionnaire.btnShareQuizTxt+"twitter ("+txtGeneral.alertNewWindow+")" target="_blank")
img(src="/themes/wikilerni/img/twitter.png" alt=txtQuestionnaire.btnShareQuizTxt+"twitter")
div#explanations(class="engraved framed")
h3#explanationsTitle #{configTpl.explanationTitle}
p.info !{txtGroups.commonIntroTxt}
// - lien vers premier élément du groupe (html autorisé pour permettre les symboles unicodes)
div#explanationsContent
if(group.Questionnaires.length !==0)
div#links
a(href="/"+configQuestionnaires.dirWebQuestionnaires+"/"+group.Questionnaires[0].Questionnaire.slug+".html" class="button cardboard" title=group.Questionnaires[0].Questionnaire.title) !{"&#8592; "+txtGroups.linkFirstElementGroup}

View File

@ -1,11 +1,8 @@
extends layout.pug
block append scripts
script(src="/JS/polyfill.app.js" defer)
script(src="/JS/questionnaire.app.js" defer)
block content
div(id="tags" class="cardboard")
ul
li
@ -13,7 +10,6 @@ block content
for tag in questionnaire.Tags
li
a(href="/quizs/"+tag.slug+".html") #{tag.name}
-
const imgAttributes = { alt: txtIllustration.defaultAlt, style: "opacity: 0.0;" };
if(questionnaire.Illustrations!=undefined && questionnaire.Illustrations.length!==0)
@ -25,15 +21,13 @@ block content
}
const publishedAtTxt=tool.dateFormat(questionnaire.Questionnaire.publishingAt, questionnaire.Questionnaire.language);
const updatedAtTxt=tool.dateFormat(questionnaire.Questionnaire.updatedAt, questionnaire.Questionnaire.language);
if(questionnaire.Illustrations!=undefined && questionnaire.Illustrations.length!==0)
div(id="content-picture" class="cardboard")
div(style="background-image: url('/img/quizs/"+questionnaire.Illustrations[0].url+"');")
img(src="/img/quizs/"+questionnaire.Illustrations[0].url)&attributes(imgAttributes)
//- Important : ici, on garde volontairement le html saisi car lien possible vers auteur de l'illustration :
if(questionnaire.Illustrations[0].caption)
p !{questionnaire.Illustrations[0].caption}
div(id="content-side")
div(id="content-top-decoration" class="cardboard") #{txtQuestionnaire.estimatedTime} #{txtQuestionnaire.estimatedTimeOption[questionnaire.Questionnaire.estimatedTime]}.
div(id="content-title")
@ -46,10 +40,8 @@ block content
div(id="content-title-corner")
div(id="content" class="cardboard")
p(id="author-date") #{txtQuestionnaire.publishedBy} #{author}#{txtQuestionnaire.publishedAt} #{publishedAtTxt}. #{txtQuestionnaire.lastUpdated}#{updatedAtTxt}.
//- Important : ici, on garde volontairement le html, car cela est accepté pour l'introduction
if(questionnaire.Questionnaire.introduction)
div#introduction !{questionnaire.Questionnaire.introduction}
div#links
for link in questionnaire.Links
p
@ -57,19 +49,12 @@ block content
div#show
p
a(class="button cardboard" href="#questionnaire" id="showQuestionnaire" title=txtQuestionnaire.btnShowQuestionnaire) #{txtQuestionnaire.btnShowQuestionnaire}
noscript
div
strong #{configTpl.noJSNotification}
form(id="questionnaire" method="POST" class="needJS")
h2 #{questionnaire.Questionnaire.title}
div#response
div(class="subscribeBtns")
p
a(class="button cardboard" href=configTpl.subscribePage) #{txtQuestionnaire.btnProposeSubscribe}
p
a(class="button cardboard" href=configTpl.connectionPage) #{txtQuestionnaire.btnProposeConnection}
for question in questionnaire.Questions
p(id="question_"+question.Question.id) #{question.Question.text}
if(question.Question.explanation)
@ -91,10 +76,8 @@ block content
p
span(class="input_wrapper")
input(id="checkResponses" type="submit" value=txtQuestionnaire.btnSendResponse class="cardboard" title=txtQuestionnaire.btnSendResponse)
div#licence
p !{configTpl.licenceTxt}
div#zerozozio
a(href="mailto:?to=&amp;subject="+questionnaire.Questionnaire.title+"&amp;body="+txtQuestionnaire.btnShareQuizMailBody+linkCanonical rel="nofollow noopener" title=txtQuestionnaire.btnShareQuizTxt+"e-mail* ("+txtGeneral.alertNewWindow+")" target="_blank")
img(src="/themes/wikilerni/img/email.png" alt=txtQuestionnaire.btnShareQuizTxt+"mail")
@ -105,8 +88,7 @@ block content
a(href="https://www.linkedin.com/shareArticle?mini=true&amp;url="+linkCanonical+";title="+questionnaire.Questionnaire.title rel="nofollow noopener" title=txtQuestionnaire.btnShareQuizTxt+"LinkedIn ("+txtGeneral.alertNewWindow+")" target="_blank")
img(src="/themes/wikilerni/img/linkedin.png" alt=txtQuestionnaire.btnShareQuizTxt+"LinkedIn")
a(href="https://twitter.com/intent/tweet?url="+linkCanonical+"&text="+questionnaire.Questionnaire.title+" via @"+configTpl.twitterAccount rel="nofollow noopener" title=txtQuestionnaire.btnShareQuizTxt+"twitter ("+txtGeneral.alertNewWindow+")" target="_blank")
img(src="/themes/wikilerni/img/twitter.png" alt=txtQuestionnaire.btnShareQuizTxt+"twitter")
img(src="/themes/wikilerni/img/twitter.png" alt=txtQuestionnaire.btnShareQuizTxt+"twitter")
div#explanations(class="engraved framed")
h3#explanationsTitle #{configTpl.explanationTitle}
div#explanationsContent

View File

@ -1,20 +1,15 @@
extends layout.pug
block append scripts
script(src="/JS/polyfill.app.js" defer)
script(src="/JS/index.app.js" defer)
block content
div(id="prompt" class="cardboard")
p
img(id="logo" src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni")
h2(class="cardboard") #{config.siteName+" - "+configTpl.siteSlogan}
p #{txtTag.tagMetaDescription+tagInfos.name}
- nbQuestionnairesList=configTpl.maxQuestionnairesByPage;
include includes/listing-questionnaires.pug
nav#pagination
div
if(page!==1 && page!==2)

View File

@ -1,17 +1,13 @@
extends layout.pug
block append scripts
script(src="/JS/polyfill.app.js" defer)
script(src="/JS/index.app.js" defer)
script(src="/JS/index.app.js" defer)
block content
div(id="prompt" class="cardboard")
p
img(id="logo" src="/themes/wikilerni/img/wikilerni-purple-2-512.png" alt="Logo WikiLerni")
h2(class="cardboard") #{config.siteName+" - "+configTpl.siteSlogan}
div#listsIntro !{configTpl.tagListIntro}
nav(id="tagsList")
for tag in tags
div