2021-07-05 12:12:51 +02:00
/******/ ( function ( ) { // webpackBootstrap
/******/ var _ _webpack _modules _ _ = ( {
2020-08-07 12:23:59 +02:00
/***/ "../config/instance.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / config / instance . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
2021-07-05 12:12:51 +02:00
/***/ ( function ( module , _ _unused _webpack _exports , _ _webpack _require _ _ ) {
2020-08-07 12:23:59 +02:00
2021-05-03 17:40:50 +02:00
const users = _ _webpack _require _ _ ( /*! ./users */ "../config/users.js" ) ;
2020-08-07 12:23:59 +02:00
2021-05-03 17:40:50 +02:00
const questionnaires = _ _webpack _require _ _ ( /*! ./questionnaires */ "../config/questionnaires.js" ) ;
2020-08-07 12:23:59 +02:00
2021-05-03 17:40:50 +02:00
module . exports = {
2020-08-07 12:23:59 +02:00
apiUrl : "http://localhost:3000/api" ,
siteUrl : "http://localhost:8080" ,
adminName : "Fabrice" ,
adminEmail : "dev@wikilerni.com" ,
2020-08-07 12:38:19 +02:00
senderName : "WikiLerni (local)" ,
2020-08-07 12:23:59 +02:00
senderEmail : "bonjour@wikilerni.com" ,
adminLang : "fr" ,
2020-08-07 12:38:19 +02:00
theme : "wikilerni" ,
2020-08-07 12:23:59 +02:00
// le thème utilisé (dans /views) pour générer les pages HTML. Contient ses propres fichiers de configuration.
availableLangs : [ "fr" ] ,
// Languages in which the site is available. The first one is the default one.
2020-08-07 12:38:19 +02:00
siteName : "WikiLerni (local)" ,
beginCodeGodfather : "WL" ,
2020-08-07 12:23:59 +02:00
// case-sensitive and can't contain "@" !
2020-10-06 11:38:07 +02:00
defaultReceiptDays : "147" ,
// Par défaut, quel(s) jour(s) de la semaine, l'utilisateur reçoit-il quelque chose ? (1=dimanche, 2=lundi... 7=samedi)
2020-08-07 12:23:59 +02:00
cronTimingAlertInSeconde : 120 ,
// for logs
responseTimingAlertInSeconde : 3 ,
// idem
tokenSignupValidationTimeInHours : "48h" ,
// https://github.com/zeit/ms
tokenLoginLinkTimeInHours : "1h" ,
tokenConnexionMinTimeInHours : "24h" ,
tokenConnexionMaxTimeInDays : "180 days" ,
tokenLoginChangingTimeInHours : "1h" ,
// for email & password changing
tokenDeleteUserTimeInHours : "1h" ,
tokenUnsubscribeLinkTimeInDays : "7 days" ,
// token send with subscription's emails
2021-01-25 16:54:16 +01:00
freeAccountTimingInDays : 0 ,
// if 0 = unlimited
2020-10-06 11:38:07 +02:00
freeAccountExpirationNotificationInDays : 3 ,
accountExpirationFirstNotificationInDays : 10 ,
accountExpirationSecondNotificationInDays : 3 ,
2020-08-07 12:23:59 +02:00
inactiveAccountTimeToDeleteInDays : 180 ,
// Questionnaires:
nbQuestionsMin : 1 ,
// minimum number of questions for the questionnaire to be publishable
2020-08-07 12:38:19 +02:00
nbQuestionsMax : 2 ,
2020-08-07 12:23:59 +02:00
// if 0 = not maximum
nbChoicesMax : 10 ,
2020-10-06 11:38:07 +02:00
nbNewQuestionnaires : 12 ,
2020-08-07 12:23:59 +02:00
// for RSS, etc.
2020-10-06 11:38:07 +02:00
hourGiveNewQuestionnaireBegin : 7 ,
2020-08-07 12:23:59 +02:00
// in user local time
2020-10-06 11:38:07 +02:00
hourGiveNewQuestionnaireEnd : 21 ,
2020-08-07 12:23:59 +02:00
// idem
2020-11-04 10:33:14 +01:00
maxQuestionnaireSendedAtSameTime : 50 ,
// for subscription's e-mailing
2020-08-07 12:23:59 +02:00
minSearchQuestionnaires : 3 ,
2020-10-06 11:38:07 +02:00
fieldNewQuestionnaires : "publishingAt" ,
// field to be used to create the list of the last questionnaires, can be "createdAt", "updatedAt" or "publishingAt"
2020-10-12 17:51:35 +02:00
// Groups :
2021-01-25 16:54:16 +01:00
nbQuestionnairesByGroupMin : 1 ,
2020-10-12 17:51:35 +02:00
nbQuestionnairesByGroupMax : 0 ,
2020-08-07 12:23:59 +02:00
// Illustrations:
2020-11-04 10:33:14 +01:00
nbIllustrationsMin : 1 ,
2020-08-07 12:23:59 +02:00
nbIllustrationsMax : 1 ,
maxIllustrationSizeinOctet : 1000000 ,
// pas contrôlé pour l'instant. À revoir.
mimeTypesForIllustration : [ "image/jpg" , "image/jpeg" , "image/png" , "image/gif" , "image/png" ] ,
// -- Upload and resize:
2020-10-06 11:38:07 +02:00
illustrationsWidthMaxInPx : 500 ,
2020-08-07 12:23:59 +02:00
illustrationsMiniaturesWidthMaxInPx : 200 ,
// Links:
nbLinksMin : 1 ,
2021-05-03 17:40:50 +02:00
nbLinksMax : 0 ,
// Questions & responses:
nbQuestionsMin : 1 ,
nbQuestionsMax : 0 ,
nbChoicesMax : 10 ,
// à supprimer quand tous les "require" à jour:
passwordMinLength : users . password . minlength ,
dirCacheUsers : users . dirCacheUsers ,
dirCacheUsersAnswers : users . dirCacheUsersAnswers ,
dirCacheQuestionnaires : questionnaires . dirCacheQuestionnaires ,
dirCacheQuestions : questionnaires . dirCacheQuestions ,
dirCacheUsersQuestionnaires : questionnaires . dirCacheUsersQuestionnaires ,
dirHTMLQuestionnaires : questionnaires . dirHTMLQuestionnaires ,
dirWebQuestionnaires : questionnaires . dirWebQuestionnaires
} ;
2020-08-07 12:23:59 +02:00
/***/ } ) ,
/***/ "../config/questionnaires.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / config / questionnaires . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
2021-07-05 12:12:51 +02:00
/***/ ( function ( module ) {
2020-08-07 12:23:59 +02:00
module . exports = {
// API'routes (after "apiUrl" defined in instance.js)
questionnaireRoutes : "/questionnaire" ,
2020-10-12 17:51:35 +02:00
// la base à laquelle s'ajoute les routes suivantes
getListNextQuestionnaires : "/getlistnextquestionnaires/" ,
2020-08-07 12:23:59 +02:00
getQuestionnaireRoutes : "/get" ,
2020-10-12 17:51:35 +02:00
getRandomQuestionnairesRoute : "/getrandom" ,
getStatsQuestionnaires : "/stats/" ,
2020-08-07 12:23:59 +02:00
previewQuestionnaireRoutes : "/preview" ,
publishedQuestionnaireRoutes : "/quiz/" ,
2020-10-12 17:51:35 +02:00
regenerateHTML : "/htmlregenerated" ,
2020-08-07 12:23:59 +02:00
searchAdminQuestionnairesRoute : "/searchadmin" ,
2020-10-12 17:51:35 +02:00
searchQuestionnairesRoute : "/search" ,
2020-11-04 10:33:14 +01:00
// -- groupes :
groupRoutes : "/group" ,
getGroupRoute : "/get/" ,
previewGroupRoutes : "/preview" ,
searchGroupsRoute : "/search" ,
2020-08-07 12:23:59 +02:00
// -- questions & choices :
questionsRoute : "/question/" ,
// -- tags :
tagsSearchRoute : "/tags/search/" ,
// -- answers :
2020-10-12 17:51:35 +02:00
getAdminStats : "/getadminstats/" ,
2020-08-07 12:23:59 +02:00
getPreviousAnswers : "/user/answers/" ,
getStatsAnswers : "/user/anwswers/stats/" ,
2020-11-04 10:33:14 +01:00
// fonctionne aussi pour les groupes
saveAnswersRoute : "/answer/" ,
// idem
2020-08-07 12:23:59 +02:00
// forms : à compléter avec valeurs par défaut, etc. cf modèle
Questionnaire : {
title : {
maxlength : 255 ,
required : true
} ,
slug : {
maxlength : 150
} ,
2020-10-12 17:51:35 +02:00
// champ requis mais calculé à partir du titre qd laissé vide dans le formulaire
2020-08-07 12:23:59 +02:00
introduction : {
required : true
}
} ,
searchQuestionnaires : {
minlength : 3 ,
required : true
} ,
2020-11-04 10:33:14 +01:00
Group : {
title : {
maxlength : 255 ,
required : true
} ,
slug : {
maxlength : 150
} // champ requis mais calculé à partir du titre qd laissé vide dans le formulaire
} ,
2020-08-07 12:23:59 +02:00
Question : {
text : {
maxlength : 255 ,
required : true
} ,
rank : {
required : true ,
min : 1 ,
defaultValue : 1
}
} ,
Choice : {
text : {
maxlength : 255 ,
required : true
}
} ,
2020-10-06 11:38:07 +02:00
search : {
minlength : 3 ,
required : true
} ,
2020-10-12 17:51:35 +02:00
searchGroups : {
minlength : 3 ,
required : true
} ,
// Emplacement des fichiers JSON générés :
dirCacheGroups : "datas/questionnaires/groups" ,
2020-08-07 12:23:59 +02:00
dirCacheQuestionnaires : "datas/questionnaires" ,
dirCacheQuestions : "datas/questionnaires/questions" ,
dirCacheTags : "datas/questionnaires/tags" ,
2020-10-12 17:51:35 +02:00
dirCacheUsersQuestionnaires : "datas/users/questionnaires" ,
// Emplacement des fichiers HTML générés :
2020-11-04 10:33:14 +01:00
dirHTMLGroups : "front/public/quiz/gp" ,
2020-10-12 17:51:35 +02:00
dirHTMLQuestionnaires : "front/public/quiz" ,
2020-11-04 10:33:14 +01:00
dirHTMLNews : "front/public/quizs" ,
2020-08-07 12:23:59 +02:00
dirHTMLTags : "front/public/quizs" ,
2020-10-12 17:51:35 +02:00
// Idem mais pour urls :
2020-11-04 10:33:14 +01:00
dirWebGroups : "quiz/gp" ,
2020-10-12 17:51:35 +02:00
dirWebQuestionnaires : "quiz" ,
2020-11-04 10:33:14 +01:00
dirWebNews : "quizs/" ,
2020-10-06 11:38:07 +02:00
dirWebTags : "quizs/" ,
2020-10-12 17:51:35 +02:00
// limite des résultat du moteur de recherche, quand demande de résultats au hasard :
nbRandomResults : 3 ,
/* Valeurs en fait définies dans instance.js donc à supprimer quand plus utilisées ailleurs : */
nbQuestionsMin : 1 ,
nbQuestionsMax : 0 ,
nbChoicesMax : 10 ,
nbTagsMin : 0 ,
nbTagsMax : 0 // 0 = not max
2020-08-07 12:23:59 +02:00
} ;
/***/ } ) ,
/***/ "../config/users.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / config / users . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * /
2021-07-05 12:12:51 +02:00
/***/ ( function ( module ) {
2020-08-07 12:23:59 +02:00
module . exports = {
// API'routes (after "apiUrl" defined in instance.js)
userRoutes : "/user" ,
2020-10-06 11:38:07 +02:00
checkDeleteLinkRoute : "/confirmdelete/" ,
2020-08-07 12:23:59 +02:00
checkIfIsEmailfreeRoute : "/isemailfree" ,
checkLoginRoute : "/checklogin/" ,
2020-10-06 11:38:07 +02:00
checkNewLoginLinkRoute : "/confirmnewlogin/" ,
checkSubscribeTokenRoute : "/validation/" ,
2020-08-07 12:23:59 +02:00
connectionRoute : "/login" ,
connectionWithLinkRoute : "/checkloginlink" ,
createUserRoute : "/create" ,
2020-10-06 11:38:07 +02:00
getAdminStats : "/getadminstats/" ,
2020-08-07 12:23:59 +02:00
getGodChilds : "/getgodchilds/" ,
2020-10-06 11:38:07 +02:00
getGodfatherRoute : "/getgodfatherid" ,
getLoginLinkRoute : "/getloginlink" ,
2020-08-07 12:23:59 +02:00
getPayments : "/payment/getforoneuser/" ,
2020-10-06 11:38:07 +02:00
getUserInfos : "/get/" ,
2020-11-04 10:33:14 +01:00
getUsersQuestionnairesRoute : "/getusersquestionnaires/" ,
// les questionnaires auxquels l'utilisateur a déjà eu accès via son abonnement
2020-10-06 11:38:07 +02:00
searchUserRoute : "/search/" ,
2020-11-04 10:33:14 +01:00
signupCompletionRoute : "/signupcompletion/" ,
2020-10-06 11:38:07 +02:00
subscribeRoute : "/signup" ,
2020-08-07 12:23:59 +02:00
unsubscribeRoute : "/subscription/stop/" ,
2020-10-06 11:38:07 +02:00
updateUserInfos : "/modify/" ,
validateUserRoute : "/validate/" ,
2020-08-07 12:23:59 +02:00
// forms : à compléter avec valeurs par défaut, etc. cf modèle
name : {
maxlength : 70 ,
required : true
} ,
email : {
maxlength : 255 ,
required : true
} ,
password : {
minlength : 8 ,
maxlength : 72 ,
required : true
} ,
// https://www.npmjs.com/package/bcrypt#security-issues-and-concerns
newPassword : {
minlength : 8 ,
maxlength : 72
} ,
codeGodfather : {
maxlength : 255
} ,
cguOk : {
value : "true" ,
required : true
} ,
2020-10-06 11:38:07 +02:00
search : {
minlength : 1 ,
required : true
} ,
2020-08-07 12:23:59 +02:00
timeDifferenceMin : - 720 ,
timeDifferenceMax : 840 ,
// JSON dir
dirCacheUsers : "datas/users" ,
2020-10-06 11:38:07 +02:00
dirCacheUsersAnswers : "datas/users/questionnaires/answers" ,
dirCacheUsersWithoutAnswers : "datas/users/questionnaires/without"
2020-08-07 12:23:59 +02:00
} ;
/***/ } ) ,
2021-07-05 12:12:51 +02:00
/***/ "./src/tools/clientstorage.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / src / tools / clientstorage . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( function ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2020-08-07 12:23:59 +02:00
2021-07-05 12:12:51 +02:00
"use strict" ;
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "saveLocaly" : function ( ) { return /* binding */ saveLocaly ; } ,
/* harmony export */ "getLocaly" : function ( ) { return /* binding */ getLocaly ; } ,
/* harmony export */ "removeLocaly" : function ( ) { return /* binding */ removeLocaly ; }
/* harmony export */ } ) ;
// FONCTIONS UTILES AU STOCKAGE LOCAL (SESSION, COOKIES, INDEXDB, ETC.)
// Revenir pour gérer le cas où local.storage n'est pas connu pour utiliser cookie
const saveLocaly = ( name , data ) => {
localStorage . setItem ( name , JSON . stringify ( data ) ) ;
2020-08-07 12:23:59 +02:00
} ;
2021-07-05 12:12:51 +02:00
const getLocaly = ( name , json = false ) => {
if ( json ) return JSON . parse ( localStorage . getItem ( name ) ) ; else return localStorage . getItem ( name ) ;
} ;
const removeLocaly = name => {
localStorage . removeItem ( name ) ;
2020-08-07 12:23:59 +02:00
} ;
/***/ } ) ,
2021-07-05 12:12:51 +02:00
/***/ "./src/tools/dom.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / src / tools / dom . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( function ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2020-08-07 12:23:59 +02:00
2021-07-05 12:12:51 +02:00
"use strict" ;
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "addElement" : function ( ) { return /* binding */ addElement ; }
/* harmony export */ } ) ;
/* harmony import */ var _tools _main _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../../../tools/main */ "../tools/main.js" ) ;
/* harmony import */ var _tools _main _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _tools _main _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
// Fonction associant les attributs fournis à un champ de formulaire
const addElement = ( eltParent , eltType , eltContent = "" , eltId = "" , eltClass = [ ] , eltAttributes = { } , replace = true ) => {
if ( ( 0 , _tools _main _ _WEBPACK _IMPORTED _MODULE _0 _ _ . isEmpty ) ( eltType ) || ( 0 , _tools _main _ _WEBPACK _IMPORTED _MODULE _0 _ _ . isEmpty ) ( eltParent ) ) return false ; else {
const newElement = document . createElement ( eltType ) ;
if ( ! ( 0 , _tools _main _ _WEBPACK _IMPORTED _MODULE _0 _ _ . isEmpty ) ( eltId ) ) // tester si l'id n'est pas déjà utilisé dans le DOM ?
newElement . id = eltId ;
if ( Array . isArray ( eltClass ) && eltClass . length != 0 ) {
for ( let i in eltClass ) newElement . classList . add ( eltClass [ i ] ) ;
}
if ( typeof eltAttributes === "object" ) // !! tous les objets ne sont pas ok
{
for ( let attributName in eltAttributes ) newElement . setAttribute ( attributName , eltAttributes [ attributName ] ) ;
}
if ( ! ( 0 , _tools _main _ _WEBPACK _IMPORTED _MODULE _0 _ _ . isEmpty ) ( eltContent ) ) newElement . innerHTML = eltContent . replace ( /\n/g , "<br>" ) ; // innerHTML permet d'ajouter du texte ayant lui-même des balises, etc.
if ( replace ) eltParent . innerHTML = "" ;
eltParent . appendChild ( newElement ) ;
}
2020-08-07 12:23:59 +02:00
} ;
2021-07-05 12:12:51 +02:00
/***/ } ) ,
2020-08-07 12:23:59 +02:00
2021-07-05 12:12:51 +02:00
/***/ "./src/tools/everywhere.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / src / tools / everywhere . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( function ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "helloDev" : function ( ) { return /* binding */ helloDev ; } ,
/* harmony export */ "updateAccountLink" : function ( ) { return /* binding */ updateAccountLink ; }
/* harmony export */ } ) ;
// Ce script fournit des fonctions utilisées sur toutes les pages du site
const helloDev = ( ) => {
console . log ( "**** Hello ami développeur :-)\n\nLe code de WikiLerni est libre et vous pouvez le trouver à cette adresse :\nhttps://forge.chapril.org/Fab_Blab/WikiLerni\n\nPour les suggestions d'amélioration ou questions : dev@wililerni.com ****" ) ;
return true ;
} ;
const updateAccountLink = ( status , configTemplate ) => {
const link = document . getElementById ( "accountHeadLink" ) ;
const homePage = status + "HomePage" ;
link . href = "/" + configTemplate [ homePage ] ;
2020-08-07 12:23:59 +02:00
} ;
/***/ } ) ,
/***/ "../lang/fr/general.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / lang / fr / general . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
2021-07-05 12:12:51 +02:00
/***/ ( function ( module ) {
2020-08-07 12:23:59 +02:00
module . exports = {
addBtnTxt : "Ajouter" ,
addOkMessage : "Les données ont bien été enregistrées." ,
2020-10-07 12:29:31 +02:00
alertNewWindow : "nouvelle fenêtre" ,
badUrl : "Tentative d'accès à une page n'existant pas :" ,
2020-11-04 10:33:14 +01:00
btnLinkToQuestionnaire : "Afficher !" ,
btnProposeConnection : "Je me connecte." ,
btnProposeSubscribe : "Je crée mon compte." ,
2021-01-25 16:54:16 +01:00
btnShowOnWebSite : "Lire la suite sur #SITE_NAME" ,
2020-10-07 12:29:31 +02:00
deleteBtnTxt : "Supprimer" ,
2020-11-04 10:33:14 +01:00
deleteFailMessage : "La suppression de l'enregistrement #ID a échoué." ,
2020-08-07 12:23:59 +02:00
deleteOkMessage : "La suppression a bien été enregistrée." ,
failAuth : "Erreur d'authentification." ,
2020-10-07 12:29:31 +02:00
failAuthCron : "Tentative de lancement d'un cron sans le bon token." ,
2020-08-07 12:23:59 +02:00
failAuthHeader : "Absence de header Authorization." ,
failAuthId : "Identifiant non valide : " ,
2020-10-07 12:29:31 +02:00
failAuthToken : "Token invalide ou utilisateur non trouvé." ,
neededParams : "Des paramètres nécessaires manquants sont manquants." ,
2020-08-07 12:23:59 +02:00
nextPage : "Page suivante" ,
2020-10-07 12:29:31 +02:00
notAllowed : "Vous n'avez pas les droits nécessaires pour cette action." ,
notRequired : "Facultatif." ,
notValidFormat : "Format non valide." ,
previousPage : "Page précédente" ,
serverError : "Désolé. Une erreur imprévue est survenue. Si cela persiste, n'hésitez à prévenir l'administrateur du site." ,
serverErrorAdmin : "Bug de l'application :" ,
2020-11-04 10:33:14 +01:00
siteHTMLTitle : "WikiLerni : la culture générale en liberté" ,
2021-01-25 16:54:16 +01:00
siteMetaDescription : "Avec WikiLerni, vous apprenez régulièrement de nouvelles choses. Vous recevez de courts articles lisibles en quelques minutes. Des quizs vous permettent ensuite de tester ce que vous avez retenu." ,
2020-10-07 12:29:31 +02:00
scriptTimingAlert : "*** Script lent : SCRIPT_TIMING millisecondes, route : SCRIPT_URL" ,
scriptTimingInfo : "Durée de la réponse : SCRIPT_TIMING millisecondes, route : SCRIPT_URL" ,
statsAdmin : "Durant les dernières 24h : NB_USERS_24H comptes ont été créés, NB_SUBSCRIPTIONS_24H validés et NB_USERS_DELETED_24H supprimés. NB_ANSWERS_24H réponses aux quizs ont été enregistrées.<br>En tout, il y a : NB_USERS_TOT comptes, dont NB_SUBSCRIPTIONS_TOT validés et NB_SUBSCRIPTIONS_PREMIUM comptes prémium. NB_ANSWERS_TOT réponses aux quizs ont été enregistrées.<br>Parmi les NB_USERS_DELETED_TOT comptes supprimés, NB_USERS_DELETED_VALIDED avaient validé leur compte et NB_USERS_DELETED_PREMIUM avaient souscrit un compte prémium." ,
2020-11-04 10:33:14 +01:00
subscriptionCall : "Inscrivez-vous !" ,
2020-10-07 12:29:31 +02:00
updateBtnTxt : "Modifier" ,
updateOkMessage : "La mise à jour à jour a bien été enregistrée."
2020-08-07 12:23:59 +02:00
} ;
/***/ } ) ,
/***/ "../lang/fr/user.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / lang / fr / user . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * /
2021-07-05 12:12:51 +02:00
/***/ ( function ( module ) {
2020-08-07 12:23:59 +02:00
module . exports = {
2020-10-07 12:29:31 +02:00
alreadyConnected : "Vous êtes déjà connecté au site !" ,
badLinkValidationMessage : "Votre lien de confirmation ne semble pas valide ou bien il a expiré. Vous pouvez en recevoir un nouveau <a href='#URL'>en cliquant ici</a>." ,
badPassword : "Aucun compte utilisateur ne correspond aux informations saisies." ,
byebyeMessage : "Si vous voyez ce message, c'est que votre déconnexion s'est bien déroulée.<br>À bientôt !" ,
connectionOk : "Connexion réussie." ,
creationOkMessage : "Le nouvel utilisateur a bien été enregistré." ,
cronDeleteUnvalidedUsersMessage : " comptes utilisateurs non validés ont été supprimés." ,
deleteFailMessage : "Tentative de suppression d'un utilisateur inexistant : " ,
deleteInactiveUsersMessage : " comptes utilisateurs inactifs ont été supprimés." ,
deleteOkMessage : "L'utilisateur a bien été supprimé." ,
emailNotFound : "Aucun compte utilisateur n'a été trouvé pour cette adresse e-mail." ,
2021-01-25 16:54:16 +01:00
failBotTest : "Un problème a été rencontré durant votre inscription. En cas de difficulté, n'hésitez pas contacter l'administrateur du site." ,
failBotTestLog : "Une inscription a été bloquée, parce que le champ email2 était renseigné avec : " ,
2020-10-12 17:51:35 +02:00
formsEmailLabel : "E-mail :" ,
formsEmailPlaceholder : "Votre adresse e-mail" ,
2021-01-25 16:54:16 +01:00
formsEmail2Placeholder : "Si vous voyez ce champ, laissez-le vide" ,
//champ qui ne devrait pas être visible par des humains
2020-10-12 17:51:35 +02:00
formsCGUOkLabel : "J'accepte <a href=#link target=\"_blank\" rel=\"noopener\" title=\"À lire :)\">les Conditions Générale d'Utilisation</a> du site (requis)." ,
formsSubmitTxt : "Je m'abonne !" ,
2020-11-04 10:33:14 +01:00
godfatherFound : "Votre \"parrain\" a bien été trouvé. Cette personne sera avertie que vous l'avez désignée." ,
godfatherNotFound : "Désolé mais aucun utilisateur n'a été trouvé pour ce code / e-mail de parrainage :(" ,
2020-10-07 12:29:31 +02:00
infosAdminGodfather : "Cet utilisateur a été parrainé par " ,
infosAdminNbGodChilds : "Ses #NB filleuls : " ,
infosUserForAdmin : "Cet utilisateur (id: ID_USER) a <b>créé son compte le DATE_CREA</b>, la dernière mise à jour datant du DATE_UPDATE.<br><b>Date de sa dernière connexion : DATE_CONNECTION.</b>" ,
infosUserNbGodChilds : "Voici les #NB utilisateur(s) inscrit(s) en vous désignant comme \"parrain\" : " ,
infosUserNoGodchilds : "Pour l'instant, aucune personne ne s'est inscrite, en vous désignant comme \"parrain\"." ,
mailDeleteBodyHTML : "<h3>Bonjour USER_NAME,</h3><p>Pour confirmer la suppression de votre compte, cliquez sur le lien ci-dessous sans tarder.</p>" ,
mailDeleteBodyTxt : "Bonjour USER_NAME,\n\nPour confirmer la suppression de votre compte, cliquez sur le lien suivant sans tarder :\nLINK_URL" ,
mailDeleteLinkAlreadyMessage : "Il semble que vous ayez déjà validé la suppression de votre compte." ,
mailDeleteLinkFailMessage : "Votre lien de suppression n'est pas valide ou alors il a expiré." ,
mailDeleteLinkMessage : "Votre demande de suppression a bien été enregistrée. Merci de cliquer sans tarder sur le lien qui vient de vous être envoyé par e-mail pour confirmer." ,
mailDeleteLinkOkMessage : "Votre compte a bien été supprimé. Merci d'avoir utilisé nos services." ,
mailDeleteLinkTxt : "Confirmer." ,
mailDeleteSubject : "Confirmer la suppression de votre compte." ,
mailLoginLinkBodyHTML : "<h3>Bonjour USER_NAME,</h3><p>Pour vous connecter à votre compte, cliquez sur le lien suivant sans tarder :</p>" ,
mailLoginLinkBodyTxt : "Bonjour USER_NAME,\n\nPour vous connecter à votre compte, cliquez sur le lien suivant sans tarder :\nLINK_URL" ,
mailLoginLinkMessage : "Un lien de connexion vient de vous être envoyé sur votre adresse e-mail. Ne tardez pas à l'utiliser, car il n'est valable que durant *TIMING* !" ,
mailLoginLinkSubject : "Votre lien de connexion." ,
mailLoginLinkTxt : "Me connecter." ,
mailThankGodfatherBodyHTML : "<h3>Bonjour USER_NAME,</h3><p>Grâce à vous, un nouvel utilisateur (EMAIL) vient de s'inscrire sur NOM_SITE.<br>Si dans l'avenir cette personne souscrit un abonnement prémium, votre propre abonnement sera prolongé de 30 jours.</p><p>Encore merci et à bientôt !</p>" ,
mailThankGodfatherBodyTxt : "Bonjour USER_NAME,\nGrâce à vous, un nouvel utilisateur (EMAIL) vient de s'inscrire sur NOM_SITE.\nSi dans l'avenir cette personne souscrit un abonnement prémium, votre propre abonnement sera prolongé de 30 jours.\nEncore merci et à bientôt !" ,
mailThankGodfatherLinkTxt : "Me connecter à mon compte." ,
mailThankGodfatherSubject : "Merci !" ,
mailUpdateLoginBodyHTML : "<h3>Bonjour USER_NAME,</h3><p>Pour valider vos nouveaux identifiants de connexion, cliquez sur le lien ci-dessous sans tarder.</p>" ,
mailUpdateLoginBodyTxt : "Bonjour USER_NAME,\n\nPour valider vos nouveaux identifiants de connexion, cliquez sur le lien suivant sans tarder :\nLINK_URL" ,
mailUpdateLoginLinkMessage : "Cependant, vous avez modifié au moins un de vos identifiants de connexion (e-mail et/ou mot de passe) et <b>vous devez cliquer sur le lien qui vient de vous êtres envoyé sur votre adresse (NEW_EMAIL) pour valider ce changement</b>.<br>En attendant, merci de continuer à utiliser vos anciens identifiants." ,
mailUpdateLoginLinkTxt : "Valider." ,
mailUpdateLoginOkMessage : "La mise à jour de vos identifiants a bien été enregistrée." ,
mailUpdateLoginSubject : "Merci de valider vos nouveaux identifiants." ,
2020-11-04 10:33:14 +01:00
mailValidationLinkSBodyHTML : "<h3>Bonjour USER_NAME,</h3><p>Pour valider et compléter votre inscription, merci de cliquer sur le lien ci-dessous dans les 24h.</p>" ,
mailValidationLinkSBodyTxt : "Bonjour USER_NAME,\n\nPour valider et compléter votre inscription, merci de cliquer sur le lien suivant dans les 24h :\nLINK_URL" ,
2020-10-07 12:29:31 +02:00
mailValidationLinkSubject : "Merci de valider votre inscription" ,
mailValidationLinkTxt : "Valider mon compte." ,
2021-01-25 16:54:16 +01:00
mailValidationMessage : "Votre inscription est bien enregistrée.\nPour la finaliser, merci de cliquer dans les 24 H sur le lien de confirmation qui vient d'être envoyé à votre adresse e-mail (#EMAIL)." ,
2020-11-04 10:33:14 +01:00
mailWelcomeBodyHTML : "<h3>Bonjour USER_NAME,</h3><p>Vous venez de valider votre inscription à NOM_SITE. Merci et bienvenue !<br><br>Si vous avez la moindre question ou suggestion concernant NOM_SITE, n'hésitez pas à me contacter en écrivant à <b>EMAIL</b>.<br><br>Je vous conseille d'ailleurs d'ajouter <b>EMAIL</b> à votre carnet d'adresses <b>pour éviter que les prochains envois de NOM_SITE n'arrivent en <i>spam</i></b>.<br><br>Par ailleurs, pour gérer votre abonnement, accéder à vos informations ou encore chercher plus facilement parmi le contenu du site, vous pouvez à tout moment vous connecter à votre compte utilisateur.<br><br>Pour ce faire, utilisez le lien ci-dessous.<br><br>À bientôt sur NOM_SITE." ,
mailWelcomeBodyTxt : "Bonjour USER_NAME,\n\nVous venez de valider votre inscription à NOM_SITE. Merci et bienvenue !\n\nSi vous avez la moindre question ou suggestion concernant NOM_SITE, n'hésitez pas à me contacter en écrivant à EMAIL.\n\nJe vous conseille d'ailleurs d'ajouter EMAIL à votre carnet d'adresses pour éviter que les prochains envois de NOM_SITE n'arrivent en \"spam\".\n\nPar ailleurs, pour gérer votre abonnement, accéder à vos informations ou encore chercher plus facilement parmi le contenu du site, vous pouvez à tout moment vous connecter à votre compte utilisateur.\n\nPour ce faire, utilisez le lien suivant : LINK_URL\n\nÀ bientôt sur NOM_SITE." ,
2020-10-07 12:29:31 +02:00
mailWelcomeLinkTxt : "Me connecter à mon compte." ,
mailWelcomeSubject : "Bienvenue !" ,
needBeConnected : "Vous devez être connecté pour accéder à cette page." ,
needChooseLoginWay : "Vous devez soit saisir votre mot de passe, soit cocher la case vous permettant de recevoir un lien de connexion par e-mail." ,
needEmail : "Merci de saisir votre adresse e-mail." ,
needKnowNewsletterOk : "Il faut savoir si l'utilisateur accepte ou refuse de recevoir la newsletter." ,
needLanguage : "Il manque le code langue." ,
needLongPassWord : "Merci de fournir un mot de passe d'au moins MIN_LENGTH caractères." ,
needMaxTimeDifference : "Il faut fournir un nombre de minutes à ajouter à l'heure GMT ne dépassant pas 840." ,
needMinTimeDifference : "Il faut fournir un nombre de minutes à enlever à l'heure GMT ne dépassant pas 720." ,
2020-08-07 12:23:59 +02:00
needName : "Merci de choisir un nom d'utilisateur." ,
needNotTooLongName : "Merci de choisir un nom d'utilisateur ne comptant pas plus de 70 caractères." ,
needNotTooLongEmail : "Merci de saisir une adresse e-mail ne comptant pas plus de 255 caractères." ,
needPassWord : "Merci de fournir un mot de passe." ,
needSMTP : "Il manque le serveur SMTP." ,
2020-08-14 17:15:06 +02:00
needSMTPNotFound : "Il manque un serveur SMTP valide." ,
2020-10-07 12:29:31 +02:00
needStatus : "Il manque le statut." ,
2020-08-07 12:23:59 +02:00
needTimeDifference : "Il faut connaître le nombre de minutes du décalage horaire." ,
2020-08-14 17:15:06 +02:00
needUGCOk : "Merci d'accepter les CGU pour créer votre compte." ,
2020-10-07 12:29:31 +02:00
needUniqueEmail : "L'adresse e-mail que vous avez saisie est déjà utilisée pour un compte utilisateur. Si vous avez déjà un compte, <a href='/#URL'>cliquez-ici pour vous connecter</a>." ,
2020-08-14 17:15:06 +02:00
needValidationToLogin : "Vous devez d'abord valider votre compte avant de pouvoir vous connecter. Pour ce faire, un nouveau lien vient de vous être envoyé par e-mail." ,
2020-10-07 12:29:31 +02:00
needValidLastConnectionDate : "La date de dernière connexion n'est pas valide." ,
passwordCopied : "Le mot de passe généré a été copié dans le presse-papier de votre ordinateur (ou mobile). Vous pouvez le \"coller\" où vous le souhaitez." ,
searchUsersWithoutResult : "L'utilisateur n'a pas été trouvé." ,
2020-08-14 17:15:06 +02:00
tooManyLoginFails : "Désolé mais il y a eu trop de tentatives de connexion infructueuses pour cette adresse e-mail. Vous devez attendre MINUTES minutes pour essayer de nouveau." ,
2020-10-07 12:29:31 +02:00
updatedFailedGodfatherNotFound : "L'identifiant fourni pour le parrain ne correspond à aucun utilisateur." ,
2020-08-14 17:15:06 +02:00
updatedNeedGoodEmail : "Mais la nouvelle adresse e-mail n'a pu être enregistrée, car elle n'a pas un format correct." ,
2020-10-07 12:29:31 +02:00
updatedNeedGoodGodfather : "Mais le nouveau code parrain n'a pu être retenu, car il ne correspond à aucun compte utilisateur ou à l'utilisateur lui-même." ,
2020-08-07 12:23:59 +02:00
updatedNeedUniqueEmail : "Mais la nouvelle adresse e-mail saisie (NEW_EMAIL) n'a pu être enregistrée, car elle est déjà utilisée pour un autre compte." ,
2020-08-14 17:15:06 +02:00
updatedNeedValidatedUser : "L'utilisateur que vous souhaitez modifier n'existe pas/plus ou n'a pas encore validé son compte." ,
2020-10-07 12:29:31 +02:00
updatedOkMessage : "Vos informations ont bien été mises à jour." ,
2020-11-04 10:33:14 +01:00
validationAlreadyMessage : "Il semble que vous ayez déjà validé votre compte. Vous pouvez vous y connecter <a href='#URL'>en cliquant ici</a>." ,
2020-10-07 12:29:31 +02:00
validationAlreadyMessageAdmin : "Ce compte a déjà été validé." ,
2020-11-04 10:33:14 +01:00
validationMessage : "Votre compte vient bien d'être validé. Merci et bienvenue !<br>Vous pouvez compléter les informations de votre abonnement ci-dessous." ,
2020-10-07 12:29:31 +02:00
validationMessageAdmin : "Le compte a bien été validé." ,
welcomeMessage : "Bienvenue #NAME !"
2020-08-07 12:23:59 +02:00
} ;
/***/ } ) ,
/***/ "../tools/main.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / tools / main . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * /
2021-07-05 12:12:51 +02:00
/***/ ( function ( module ) {
2020-08-07 12:23:59 +02:00
2021-05-03 17:40:50 +02:00
// Quelques fonctions utiles pour les chaînes
class Tool {
static isEmpty ( myVar ) {
if ( myVar === undefined || myVar === null ) return true ; else {
myVar += "" ; // si autre chose qu'une chaîne envoyé...
2020-08-07 12:23:59 +02:00
2021-05-03 17:40:50 +02:00
myVar = myVar . trim ( ) ;
if ( myVar === "" ) return true ; else return false ;
}
}
2020-08-07 12:23:59 +02:00
2021-05-03 17:40:50 +02:00
static trimIfNotNull ( myString ) {
if ( Tool . isEmpty ( myString ) ) myString = null ; else {
myString += "" ; // si autre chose qu'une chaîne envoyé...
2020-08-07 12:23:59 +02:00
2021-05-03 17:40:50 +02:00
myString = myString . trim ( ) ;
}
return myString ;
2020-08-07 12:23:59 +02:00
}
2021-05-03 17:40:50 +02:00
static shortenIfLongerThan ( myString , max ) {
myString += "" ; // au cas où cela ne serait pas une chaîne...
2020-08-07 12:23:59 +02:00
2021-05-03 17:40:50 +02:00
if ( myString . length > max ) myString = myString . substring ( 0 , max - 3 ) + "…" ;
return myString ;
} // source : https://stackoverflow.com/questions/15604140/replace-multiple-strings-with-multiple-other-strings
static replaceAll ( myString , mapObj ) {
const replaceElts = new RegExp ( Object . keys ( mapObj ) . join ( "|" ) , "gi" ) ;
return myString . replace ( replaceElts , matched => {
return mapObj [ matched ] ;
} ) ;
} // source : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/random
static getRandomInt ( min , max ) {
min = Math . ceil ( min ) ;
max = Math . floor ( max ) ;
return Math . floor ( Math . random ( ) * ( max - min ) ) + min ;
} // à compléter : https://en.wikipedia.org/wiki/Date_format_by_country
2020-08-07 12:23:59 +02:00
2020-11-04 10:33:14 +01:00
2021-05-03 17:40:50 +02:00
static dateFormat ( dateString , lang = "fr" ) {
if ( Tool . isEmpty ( dateString ) ) return "" ;
let myDate = new Date ( dateString ) ;
let myDay = myDate . getDate ( ) + "" ;
if ( myDay . length === 1 ) myDay = "0" + myDay ;
let myMounth = myDate . getMonth ( ) + 1 + "" ;
if ( myMounth . length === 1 ) myMounth = "0" + myMounth ;
let myYear = myDate . getFullYear ( ) ;
if ( lang === "fr" ) return myDay + "/" + myMounth + "/" + myYear ; else if ( lang === "form" ) // 2014-02-09
return myYear + "-" + myMounth + "-" + myDay ; else return myMounth + "/" + myDay + "/" + myYear ;
} // On enlève volontairement les 0/O pour éviter les confusions !
// Et mieux vaut aussi débuter et finir par une lettre simple.
static getPassword ( nbCarMin , nbCarMax ) {
const nbCar = nbCarMin + Math . floor ( Math . random ( ) * ( nbCarMax - nbCarMin ) ) ;
const letters = "ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnpqrstuvwxyz" ;
const others = "123456789!?.*-_%@&ÉÀÈÙ€$ÂÊÛÎ" ;
let password = letters [ Math . floor ( Math . random ( ) * letters . length ) ] ;
for ( let i = 1 ; i < nbCar - 1 ; i ++ ) {
if ( i % 2 === 1 ) password += others [ Math . floor ( Math . random ( ) * others . length ) ] ; else password += letters [ Math . floor ( Math . random ( ) * letters . length ) ] ;
2020-08-07 12:23:59 +02:00
}
2021-05-03 17:40:50 +02:00
password += letters [ Math . floor ( Math . random ( ) * letters . length ) ] ;
return password ;
}
}
2020-08-07 12:23:59 +02:00
module . exports = Tool ;
/***/ } ) ,
2021-07-05 12:12:51 +02:00
/***/ "../lang sync recursive ^\\.\\/.*\\/general$" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / lang / sync ^ \ . \ / . * \ / general$ * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( function ( module , _ _unused _webpack _exports , _ _webpack _require _ _ ) {
var map = {
"./fr/general" : "../lang/fr/general.js"
} ;
function webpackContext ( req ) {
var id = webpackContextResolve ( req ) ;
return _ _webpack _require _ _ ( id ) ;
}
function webpackContextResolve ( req ) {
if ( ! _ _webpack _require _ _ . o ( map , req ) ) {
var e = new Error ( "Cannot find module '" + req + "'" ) ;
e . code = 'MODULE_NOT_FOUND' ;
throw e ;
}
return map [ req ] ;
}
webpackContext . keys = function webpackContextKeys ( ) {
return Object . keys ( map ) ;
} ;
webpackContext . resolve = webpackContextResolve ;
module . exports = webpackContext ;
webpackContext . id = "../lang sync recursive ^\\.\\/.*\\/general$" ;
/***/ } ) ,
/***/ "../lang sync recursive ^\\.\\/.*\\/user$" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / lang / sync ^ \ . \ / . * \ / user$ * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( function ( module , _ _unused _webpack _exports , _ _webpack _require _ _ ) {
var map = {
"./fr/user" : "../lang/fr/user.js"
} ;
function webpackContext ( req ) {
var id = webpackContextResolve ( req ) ;
return _ _webpack _require _ _ ( id ) ;
}
function webpackContextResolve ( req ) {
if ( ! _ _webpack _require _ _ . o ( map , req ) ) {
var e = new Error ( "Cannot find module '" + req + "'" ) ;
e . code = 'MODULE_NOT_FOUND' ;
throw e ;
}
return map [ req ] ;
}
webpackContext . keys = function webpackContextKeys ( ) {
return Object . keys ( map ) ;
} ;
webpackContext . resolve = webpackContextResolve ;
module . exports = webpackContext ;
webpackContext . id = "../lang sync recursive ^\\.\\/.*\\/user$" ;
/***/ } )
/******/ } ) ;
/************************************************************************/
/******/ // The module cache
/******/ var _ _webpack _module _cache _ _ = { } ;
/******/
/******/ // The require function
/******/ function _ _webpack _require _ _ ( moduleId ) {
/******/ // Check if module is in cache
/******/ var cachedModule = _ _webpack _module _cache _ _ [ moduleId ] ;
/******/ if ( cachedModule !== undefined ) {
/******/ return cachedModule . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = _ _webpack _module _cache _ _ [ moduleId ] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ _ _webpack _modules _ _ [ moduleId ] ( module , module . exports , _ _webpack _require _ _ ) ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ ! function ( ) {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ _ _webpack _require _ _ . n = function ( module ) {
/******/ var getter = module && module . _ _esModule ?
/******/ function ( ) { return module [ 'default' ] ; } :
/******/ function ( ) { return module ; } ;
/******/ _ _webpack _require _ _ . d ( getter , { a : getter } ) ;
/******/ return getter ;
/******/ } ;
/******/ } ( ) ;
/******/
/******/ /* webpack/runtime/define property getters */
/******/ ! function ( ) {
/******/ // define getter functions for harmony exports
/******/ _ _webpack _require _ _ . d = function ( exports , definition ) {
/******/ for ( var key in definition ) {
/******/ if ( _ _webpack _require _ _ . o ( definition , key ) && ! _ _webpack _require _ _ . o ( exports , key ) ) {
/******/ Object . defineProperty ( exports , key , { enumerable : true , get : definition [ key ] } ) ;
/******/ }
/******/ }
/******/ } ;
/******/ } ( ) ;
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ ! function ( ) {
/******/ _ _webpack _require _ _ . o = function ( obj , prop ) { return Object . prototype . hasOwnProperty . call ( obj , prop ) ; }
/******/ } ( ) ;
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ ! function ( ) {
/******/ // define __esModule on exports
/******/ _ _webpack _require _ _ . r = function ( exports ) {
/******/ if ( typeof Symbol !== 'undefined' && Symbol . toStringTag ) {
/******/ Object . defineProperty ( exports , Symbol . toStringTag , { value : 'Module' } ) ;
/******/ }
/******/ Object . defineProperty ( exports , '__esModule' , { value : true } ) ;
/******/ } ;
/******/ } ( ) ;
/******/
/************************************************************************/
var _ _webpack _exports _ _ = { } ;
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
! function ( ) {
"use strict" ;
2020-08-07 12:23:59 +02:00
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / src / deconnection . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony import */ var _config _instance _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../../config/instance.js */ "../config/instance.js" ) ;
/* harmony import */ var _config _instance _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _config _instance _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/* harmony import */ var _tools _clientstorage _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./tools/clientstorage.js */ "./src/tools/clientstorage.js" ) ;
/* harmony import */ var _tools _dom _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ./tools/dom.js */ "./src/tools/dom.js" ) ;
/* harmony import */ var _tools _everywhere _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! ./tools/everywhere.js */ "./src/tools/everywhere.js" ) ;
// -- GESTION DE LA PAGE DE DÉCONNEXION
/// On se contente ici de supprimer la session stockée côté client
// Fichier de configuration côté client :
2021-07-05 12:12:51 +02:00
const lang = _config _instance _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . availableLangs [ 0 ] ; // Importation des fonctions utile au script :
2020-08-07 12:23:59 +02:00
// Dictionnaires :
2021-03-01 13:02:07 +01:00
const {
serverError
} = _ _webpack _require _ _ ( "../lang sync recursive ^\\.\\/.*\\/general$" ) ( "./" + lang + "/general" ) ;
2020-08-07 12:23:59 +02:00
2021-03-01 13:02:07 +01:00
const {
byebyeMessage
} = _ _webpack _require _ _ ( "../lang sync recursive ^\\.\\/.*\\/user$" ) ( "./" + lang + "/user" ) ;
2020-08-07 12:23:59 +02:00
2021-03-01 13:02:07 +01:00
const divResponse = document . getElementById ( "response" ) ;
2021-07-05 12:12:51 +02:00
( 0 , _tools _everywhere _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . helloDev ) ( ) ;
2020-08-07 12:23:59 +02:00
2021-03-01 13:02:07 +01:00
const initialise = async ( ) => {
try {
2021-07-05 12:12:51 +02:00
( 0 , _tools _clientstorage _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . removeLocaly ) ( "user" ) ;
( 0 , _tools _clientstorage _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . removeLocaly ) ( "url" ) ;
( 0 , _tools _clientstorage _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . removeLocaly ) ( "message" ) ;
( 0 , _tools _dom _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . addElement ) ( divResponse , "p" , byebyeMessage , "" , [ "success" ] ) ;
2021-03-01 13:02:07 +01:00
} catch ( e ) {
2021-07-05 12:12:51 +02:00
( 0 , _tools _dom _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . addElement ) ( divResponse , "p" , serverError , "" , [ "error" ] ) ;
2021-03-01 13:02:07 +01:00
}
} ;
2020-08-07 12:23:59 +02:00
initialise ( ) ;
2021-07-05 12:12:51 +02:00
} ( ) ;
/******/ } ) ( )
;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93aWtpbGVybmkvLi4vY29uZmlnL2luc3RhbmNlLmpzIiwid2VicGFjazovL3dpa2lsZXJuaS8uLi9jb25maWcvcXVlc3Rpb25uYWlyZXMuanMiLCJ3ZWJwYWNrOi8vd2lraWxlcm5pLy4uL2NvbmZpZy91c2Vycy5qcyIsIndlYnBhY2s6Ly93aWtpbGVybmkvLi9zcmMvdG9vbHMvY2xpZW50c3RvcmFnZS5qcyIsIndlYnBhY2s6Ly93aWtpbGVybmkvLi9zcmMvdG9vbHMvZG9tLmpzIiwid2VicGFjazovL3dpa2lsZXJuaS8uL3NyYy90b29scy9ldmVyeXdoZXJlLmpzIiwid2VicGFjazovL3dpa2lsZXJuaS8uLi9sYW5nL2ZyL2dlbmVyYWwuanMiLCJ3ZWJwYWNrOi8vd2lraWxlcm5pLy4uL2xhbmcvZnIvdXNlci5qcyIsIndlYnBhY2s6Ly93aWtpbGVybmkvLi4vdG9vbHMvbWFpbi5qcyIsIndlYnBhY2s6Ly93aWtpbGVybmkvL2hvbWUvZmFicmljZS9Eb2N1bWVudHMvQmlkb3VpbGxlcy93aWtpbGVybmkvbGFuZ3xzeW5jfC9eXFwuXFwvLipcXC9nZW5lcmFsJC8iLCJ3ZWJwYWNrOi8vd2lraWxlcm5pLy9ob21lL2ZhYnJpY2UvRG9jdW1lbnRzL0JpZG91aWxsZXMvd2lraWxlcm5pL2xhbmd8c3luY3wvXlxcLlxcLy4qXFwvdXNlciQvIiwid2VicGFjazovL3dpa2lsZXJuaS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly93aWtpbGVybmkvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vd2lraWxlcm5pL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly93aWtpbGVybmkvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly93aWtpbGVybmkvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly93aWtpbGVybmkvLi9zcmMvZGVjb25uZWN0aW9uLmpzIl0sIm5hbWVzIjpbInVzZXJzIiwicmVxdWlyZSIsInF1ZXN0aW9ubmFpcmVzIiwibW9kdWxlIiwiZXhwb3J0cyIsImFwaVVybCIsInNpdGVVcmwiLCJhZG1pbk5hbWUiLCJhZG1pbkVtYWlsIiwic2VuZGVyTmFtZSIsInNlbmRlckVtYWlsIiwiYWRtaW5MYW5nIiwidGhlbWUiLCJhdmFpbGFibGVMYW5ncyIsInNpdGVOYW1lIiwiYmVnaW5Db2RlR29kZmF0aGVyIiwiZGVmYXVsdFJlY2VpcHREYXlzIiwiY3JvblRpbWluZ0FsZXJ0SW5TZWNvbmRlIiwicmVzcG9uc2VUaW1pbmdBbGVydEluU2Vjb25kZSIsInRva2VuU2lnbnVwVmFsaWRhdGlvblRpbWVJbkhvdXJzIiwidG9rZW5Mb2dpbkxpbmtUaW1lSW5Ib3VycyIsInRva2VuQ29ubmV4aW9uTWluVGltZUluSG91cnMiLCJ0b2tlbkNvbm5leGlvbk1heFRpbWVJbkRheXMiLCJ0b2tlbkxvZ2luQ2hhbmdpbmdUaW1lSW5Ib3VycyIsInRva2VuRGVsZXRlVXNlclRpbWVJbkhvdXJzIiwidG9rZW5VbnN1YnNjcmliZUxpbmtUaW1lSW5EYXlzIiwiZnJlZUFjY291bnRUaW1pbmdJbkRheXMiLCJmcmVlQWNjb3VudEV4cGlyYXRpb25Ob3RpZmljYXRpb25JbkRheXMiLCJhY2NvdW50RXhwaXJhdGlvbkZpcnN0Tm90aWZpY2F0aW9uSW5EYXlzIiwiYWNjb3VudEV4cGlyYXRpb25TZWNvbmROb3RpZmljYXRpb25JbkRheXMiLCJpbmFjdGl2ZUFjY291bnRUaW1lVG9EZWxldGVJbkRheXMiLCJuYlF1ZXN0aW9uc01pbiIsIm5iUXVlc3Rpb25zTWF4IiwibmJDaG9pY2VzTWF4IiwibmJOZXdRdWVzdGlvbm5haXJlcyIsImhvdXJHaXZlTmV3UXVlc3Rpb25uYWlyZUJlZ2luIiwiaG91ckdpdmVOZXdRdWVzdGlvbm5haXJlRW5kIiwibWF4UXVlc3Rpb25uYWlyZVNlbmRlZEF0U2FtZVRpbWUiLCJtaW5TZWFyY2hRdWVzdGlvbm5haXJlcyIsImZpZWxkTmV3UXVlc3Rpb25uYWlyZXMiLCJuYlF1ZXN0aW9ubmFpcmVzQnlHcm91cE1pbiIsIm5iUXVlc3Rpb25uYWlyZXNCeUdyb3VwTWF4IiwibmJJbGx1c3RyYXRpb25zTWluIiwibmJJbGx1c3RyYXRpb25zTWF4IiwibWF4SWxsdXN0cmF0aW9uU2l6ZWluT2N0ZXQiLCJtaW1lVHlwZXNGb3JJbGx1c3RyYXRpb24iLCJpbGx1c3RyYXRpb25zV2lkdGhNYXhJblB4IiwiaWxsdXN0cmF0aW9uc01pbmlhdHVyZXNXaWR0aE1heEluUHgiLCJuYkxpbmtzTWluIiwibmJMaW5rc01heCIsInBhc3N3b3JkTWluTGVuZ3RoIiwicGFzc3dvcmQiLCJtaW5sZW5ndGgiLCJkaXJDYWNoZVVzZXJzIiwiZGlyQ2FjaGVVc2Vyc0Fuc3dlcnMiLCJkaXJDYWNoZVF1ZXN0aW9ubmFpcmVzIiwiZGlyQ2FjaGVRdWVzdGlvbnMiLCJkaXJDYWNoZVVzZXJzUXVlc3Rpb25uYWlyZXMiLCJkaXJIVE1MUXVlc3Rpb25uYWlyZXMiLCJkaXJXZWJRdWVzdGlvbm5haXJlcyIsInF1ZXN0aW9ubmFpcmVSb3V0ZXMiLCJnZXRMaXN0TmV4dFF1ZXN0aW9ubmFpcmVzIiwiZ2V0UXVlc3Rpb25uYWlyZVJvdXRlcyIsImdldFJhbmRvbVF1ZXN0aW9ubmFpcmVzUm91dGUiLCJnZXRTdGF0c1F1ZXN0aW9ubmFpcmVzIiwicHJldmlld1F1ZXN0aW9ubmFpcmVSb3V0ZXMiLCJwdWJsaXNoZWRRdWVzdGlvbm5haXJlUm91dGVzIiwicmVnZW5lcmF0ZUhUTUwiLCJzZWFyY2hBZG1pblF1ZXN0aW9ubmFpcmVzUm91dGUiLCJzZWFyY2hRdWVzdGlvbm5haXJlc1JvdXRlIiwiZ3JvdXBSb3V0ZXMiLCJnZXRHcm91cFJvdXRlIiwicHJldmlld0dyb3VwUm91dGVzIiwic2VhcmNoR3JvdXBzUm91dGUiLCJxdWVzdGlvbnNSb3V0ZSIsInRhZ3NTZWFyY2hSb3V0ZSIsImdldEFkbWluU3RhdHMiLCJnZXRQcmV2aW91c0Fuc3dlcnMiLCJnZXRTdGF0c0Fuc3dlcnMiLCJzYXZlQW5zd2Vyc1JvdXRlIiwiUXVlc3Rpb25uYWlyZSIsInRpdGxlIiwibWF4bGVuZ3RoIiwicmVxdWlyZWQiLCJzbHVnIiwiaW50cm9kdWN0aW9uIiwic2VhcmNoUXVlc3Rpb25uYWlyZXMiLCJHcm91cCIsIlF1ZXN0aW9uIiwidGV4dCIsInJhbmsiLCJtaW4iLCJkZWZhdWx0VmFsdWUiLCJDaG9pY2UiLCJzZWFyY2giLCJzZWFyY2hHcm91cHMiLCJkaXJDYWNoZUdyb3VwcyIsImRpckNhY2hlVGFncyIsImRpckhUTUxHcm91cHMiLCJkaXJIVE1MTmV3cyIsImRpckhUTUxUYWdzIiwiZGl