2020-08-07 12:23:59 +02:00
/******/ ( function ( modules ) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = { } ;
/******/
/******/ // The require function
/******/ function _ _webpack _require _ _ ( moduleId ) {
/******/
/******/ // Check if module is in cache
/******/ if ( installedModules [ moduleId ] ) {
/******/ return installedModules [ moduleId ] . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules [ moduleId ] = {
/******/ i : moduleId ,
/******/ l : false ,
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ modules [ moduleId ] . call ( module . exports , module , module . exports , _ _webpack _require _ _ ) ;
/******/
/******/ // Flag the module as loaded
/******/ module . l = true ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ _ _webpack _require _ _ . m = modules ;
/******/
/******/ // expose the module cache
/******/ _ _webpack _require _ _ . c = installedModules ;
/******/
/******/ // define getter function for harmony exports
/******/ _ _webpack _require _ _ . d = function ( exports , name , getter ) {
/******/ if ( ! _ _webpack _require _ _ . o ( exports , name ) ) {
/******/ Object . defineProperty ( exports , name , { enumerable : true , get : getter } ) ;
/******/ }
/******/ } ;
/******/
/******/ // 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 } ) ;
/******/ } ;
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ _ _webpack _require _ _ . t = function ( value , mode ) {
/******/ if ( mode & 1 ) value = _ _webpack _require _ _ ( value ) ;
/******/ if ( mode & 8 ) return value ;
/******/ if ( ( mode & 4 ) && typeof value === 'object' && value && value . _ _esModule ) return value ;
/******/ var ns = Object . create ( null ) ;
/******/ _ _webpack _require _ _ . r ( ns ) ;
/******/ Object . defineProperty ( ns , 'default' , { enumerable : true , value : value } ) ;
/******/ if ( mode & 2 && typeof value != 'string' ) for ( var key in value ) _ _webpack _require _ _ . d ( ns , key , function ( key ) { return value [ key ] ; } . bind ( null , key ) ) ;
/******/ return ns ;
/******/ } ;
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ _ _webpack _require _ _ . n = function ( module ) {
/******/ var getter = module && module . _ _esModule ?
/******/ function getDefault ( ) { return module [ 'default' ] ; } :
/******/ function getModuleExports ( ) { return module ; } ;
/******/ _ _webpack _require _ _ . d ( getter , 'a' , getter ) ;
/******/ return getter ;
/******/ } ;
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ _ _webpack _require _ _ . o = function ( object , property ) { return Object . prototype . hasOwnProperty . call ( object , property ) ; } ;
/******/
/******/ // __webpack_public_path__
/******/ _ _webpack _require _ _ . p = "" ;
/******/
/******/
/******/ // Load entry module and return exports
/******/ return _ _webpack _require _ _ ( _ _webpack _require _ _ . s = "./src/deconnection.js" ) ;
/******/ } )
/************************************************************************/
/******/ ( {
/***/ "../config/instance.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / config / instance . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! no static exports found */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
var _module$exports ;
function _defineProperty ( obj , key , value ) { if ( key in obj ) { Object . defineProperty ( obj , key , { value : value , enumerable : true , configurable : true , writable : true } ) ; } else { obj [ key ] = value ; } return obj ; }
var users = _ _webpack _require _ _ ( /*! ./users */ "../config/users.js" ) ;
var questionnaires = _ _webpack _require _ _ ( /*! ./questionnaires */ "../config/questionnaires.js" ) ;
module . exports = ( _module$exports = {
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-01-25 16:54:16 +01:00
nbLinksMax : 0
2020-10-12 17:51:35 +02:00
} , _defineProperty ( _module$exports , "nbQuestionsMin" , 1 ) , _defineProperty ( _module$exports , "nbQuestionsMax" , 0 ) , _defineProperty ( _module$exports , "nbChoicesMax" , 10 ) , _defineProperty ( _module$exports , "passwordMinLength" , users . password . minlength ) , _defineProperty ( _module$exports , "dirCacheUsers" , users . dirCacheUsers ) , _defineProperty ( _module$exports , "dirCacheUsersAnswers" , users . dirCacheUsersAnswers ) , _defineProperty ( _module$exports , "dirCacheQuestionnaires" , questionnaires . dirCacheQuestionnaires ) , _defineProperty ( _module$exports , "dirCacheQuestions" , questionnaires . dirCacheQuestions ) , _defineProperty ( _module$exports , "dirCacheUsersQuestionnaires" , questionnaires . dirCacheUsersQuestionnaires ) , _defineProperty ( _module$exports , "dirHTMLQuestionnaires" , questionnaires . dirHTMLQuestionnaires ) , _defineProperty ( _module$exports , "dirWebQuestionnaires" , questionnaires . dirWebQuestionnaires ) , _module$exports ) ;
2020-08-07 12:23:59 +02:00
/***/ } ) ,
/***/ "../config/questionnaires.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / config / questionnaires . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! no static exports found */
/***/ ( function ( module , exports ) {
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 * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! no static exports found */
/***/ ( function ( module , exports ) {
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
} ;
/***/ } ) ,
/***/ "../lang sync recursive ^\\.\\/.*\\/general$" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / lang sync ^ \ . \ / . * \ / general$ * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! no static exports found */
/***/ ( function ( module , 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$ * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! no static exports found */
/***/ ( function ( module , 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$" ;
/***/ } ) ,
/***/ "../lang/fr/general.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . . / lang / fr / general . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! no static exports found */
/***/ ( function ( module , exports ) {
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 * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! no static exports found */
/***/ ( function ( module , exports ) {
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 * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * /
/*! no static exports found */
/***/ ( function ( module , exports ) {
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
function _defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } }
function _createClass ( Constructor , protoProps , staticProps ) { if ( protoProps ) _defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) _defineProperties ( Constructor , staticProps ) ; return Constructor ; }
// Quelques fonctions utiles pour les chaînes
var Tool = /*#__PURE__*/ function ( ) {
function Tool ( ) {
_classCallCheck ( this , Tool ) ;
}
_createClass ( Tool , null , [ {
key : "isEmpty" ,
value : function isEmpty ( myVar ) {
if ( myVar === undefined || myVar === null ) return true ; else {
myVar += "" ; // si autre chose qu'une chaîne envoyé...
myVar = myVar . trim ( ) ;
if ( myVar === "" ) return true ; else return false ;
}
}
} , {
key : "trimIfNotNull" ,
value : function trimIfNotNull ( myString ) {
if ( Tool . isEmpty ( myString ) ) myString = null ; else {
myString += "" ; // si autre chose qu'une chaîne envoyé...
myString = myString . trim ( ) ;
}
return myString ;
}
} , {
key : "shortenIfLongerThan" ,
value : function shortenIfLongerThan ( myString , max ) {
myString += "" ; // au cas où cela ne serait pas une chaîne...
2021-01-25 16:54:16 +01:00
if ( myString . length > max ) myString = myString . substring ( 0 , max - 3 ) + "…" ;
2020-08-07 12:23:59 +02:00
return myString ;
} // source : https://stackoverflow.com/questions/15604140/replace-multiple-strings-with-multiple-other-strings
} , {
key : "replaceAll" ,
value : function replaceAll ( myString , mapObj ) {
var replaceElts = new RegExp ( Object . keys ( mapObj ) . join ( "|" ) , "gi" ) ;
return myString . replace ( replaceElts , function ( matched ) {
return mapObj [ matched ] ;
} ) ;
} // source : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/random
} , {
key : "getRandomInt" ,
value : function 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
} , {
key : "dateFormat" ,
value : function dateFormat ( dateString ) {
var lang = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : "fr" ;
if ( Tool . isEmpty ( dateString ) ) return "" ;
var myDate = new Date ( dateString ) ;
var myDay = myDate . getDate ( ) + "" ;
if ( myDay . length === 1 ) myDay = "0" + myDay ;
var myMounth = myDate . getMonth ( ) + 1 + "" ;
if ( myMounth . length === 1 ) myMounth = "0" + myMounth ;
var 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 ;
2020-11-04 10:33:14 +01:00
} // On enlève volontairement les 0/O pour éviter les confusions !
// Et mieux vaut aussi débuter et finir par une lettre simple.
} , {
key : "getPassword" ,
value : function getPassword ( nbCarMin , nbCarMax ) {
var nbCar = nbCarMin + Math . floor ( Math . random ( ) * ( nbCarMax - nbCarMin ) ) ;
var letters = "ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnpqrstuvwxyz" ;
var others = "123456789!?.*-_%@&ÉÀÈÙ€$ÂÊÛÎ" ;
var password = letters [ Math . floor ( Math . random ( ) * letters . length ) ] ;
for ( var 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 ) ] ;
}
password += letters [ Math . floor ( Math . random ( ) * letters . length ) ] ;
return password ;
2020-08-07 12:23:59 +02:00
}
} ] ) ;
return Tool ;
} ( ) ;
module . exports = Tool ;
/***/ } ) ,
/***/ "./src/deconnection.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / src / deconnection . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! no exports provided */
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
_ _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" ) ;
function asyncGeneratorStep ( gen , resolve , reject , _next , _throw , key , arg ) { try { var info = gen [ key ] ( arg ) ; var value = info . value ; } catch ( error ) { reject ( error ) ; return ; } if ( info . done ) { resolve ( value ) ; } else { Promise . resolve ( value ) . then ( _next , _throw ) ; } }
function _asyncToGenerator ( fn ) { return function ( ) { var self = this , args = arguments ; return new Promise ( function ( resolve , reject ) { var gen = fn . apply ( self , args ) ; function _next ( value ) { asyncGeneratorStep ( gen , resolve , reject , _next , _throw , "next" , value ) ; } function _throw ( err ) { asyncGeneratorStep ( gen , resolve , reject , _next , _throw , "throw" , err ) ; } _next ( undefined ) ; } ) ; } ; }
// -- 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 :
2020-10-07 12:29:31 +02:00
var 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 :
2020-10-07 12:29:31 +02:00
var _require = _ _webpack _require _ _ ( "../lang sync recursive ^\\.\\/.*\\/general$" ) ( "./" + lang + "/general" ) ,
serverError = _require . serverError ;
2020-08-07 12:23:59 +02:00
2020-10-07 12:29:31 +02:00
var _require2 = _ _webpack _require _ _ ( "../lang sync recursive ^\\.\\/.*\\/user$" ) ( "./" + lang + "/user" ) ,
byebyeMessage = _require2 . byebyeMessage ;
2020-08-07 12:23:59 +02:00
var divResponse = document . getElementById ( "response" ) ;
2020-10-07 12:29:31 +02:00
Object ( _tools _everywhere _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ [ "helloDev" ] ) ( ) ;
2020-08-07 12:23:59 +02:00
var initialise = /*#__PURE__*/ function ( ) {
var _ref = _asyncToGenerator ( /*#__PURE__*/ regeneratorRuntime . mark ( function _callee ( ) {
return regeneratorRuntime . wrap ( function _callee$ ( _context ) {
while ( 1 ) {
switch ( _context . prev = _context . next ) {
case 0 :
2020-10-07 12:29:31 +02:00
try {
2020-08-07 12:23:59 +02:00
Object ( _tools _clientstorage _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ [ "removeLocaly" ] ) ( "user" ) ;
Object ( _tools _clientstorage _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ [ "removeLocaly" ] ) ( "url" ) ;
Object ( _tools _clientstorage _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ [ "removeLocaly" ] ) ( "message" ) ;
2020-10-07 12:29:31 +02:00
Object ( _tools _dom _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ [ "addElement" ] ) ( divResponse , "p" , byebyeMessage , "" , [ "success" ] ) ;
} catch ( e ) {
Object ( _tools _dom _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ [ "addElement" ] ) ( divResponse , "p" , serverError , "" , [ "error" ] ) ;
2020-08-07 12:23:59 +02:00
}
2020-10-07 12:29:31 +02:00
case 1 :
2020-08-07 12:23:59 +02:00
case "end" :
return _context . stop ( ) ;
}
}
2020-10-07 12:29:31 +02:00
} , _callee ) ;
2020-08-07 12:23:59 +02:00
} ) ) ;
return function initialise ( ) {
return _ref . apply ( this , arguments ) ;
} ;
} ( ) ;
initialise ( ) ;
/***/ } ) ,
/***/ "./src/tools/clientstorage.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / src / tools / clientstorage . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! exports provided: saveLocaly, getLocaly, removeLocaly */
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "saveLocaly" , function ( ) { return saveLocaly ; } ) ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "getLocaly" , function ( ) { return getLocaly ; } ) ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "removeLocaly" , function ( ) { return removeLocaly ; } ) ;
// 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
var saveLocaly = function saveLocaly ( name , data ) {
localStorage . setItem ( name , JSON . stringify ( data ) ) ;
} ;
var getLocaly = function getLocaly ( name ) {
var json = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
if ( json ) return JSON . parse ( localStorage . getItem ( name ) ) ; else return localStorage . getItem ( name ) ;
} ;
var removeLocaly = function removeLocaly ( name ) {
localStorage . removeItem ( name ) ;
} ;
/***/ } ) ,
/***/ "./src/tools/dom.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / src / tools / dom . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! exports provided: addElement */
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "addElement" , function ( ) { return addElement ; } ) ;
/* 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 _ _ ) ;
function _typeof ( obj ) { "@babel/helpers - typeof" ; if ( typeof Symbol === "function" && typeof Symbol . iterator === "symbol" ) { _typeof = function _typeof ( obj ) { return typeof obj ; } ; } else { _typeof = function _typeof ( obj ) { return obj && typeof Symbol === "function" && obj . constructor === Symbol && obj !== Symbol . prototype ? "symbol" : typeof obj ; } ; } return _typeof ( obj ) ; }
// Fonction associant les attributs fournis à un champ de formulaire
var addElement = function addElement ( eltParent , eltType ) {
var eltContent = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : "" ;
var eltId = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : "" ;
var eltClass = arguments . length > 4 && arguments [ 4 ] !== undefined ? arguments [ 4 ] : [ ] ;
var eltAttributes = arguments . length > 5 && arguments [ 5 ] !== undefined ? arguments [ 5 ] : { } ;
var replace = arguments . length > 6 && arguments [ 6 ] !== undefined ? arguments [ 6 ] : true ;
if ( Object ( _tools _main _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ "isEmpty" ] ) ( eltType ) || Object ( _tools _main _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ "isEmpty" ] ) ( eltParent ) ) return false ; else {
var newElement = document . createElement ( eltType ) ;
if ( ! Object ( _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 ( var i in eltClass ) {
newElement . classList . add ( eltClass [ i ] ) ;
}
}
if ( _typeof ( eltAttributes ) === "object" ) // !! tous les objets ne sont pas ok
{
for ( var attributName in eltAttributes ) {
newElement . setAttribute ( attributName , eltAttributes [ attributName ] ) ;
}
}
if ( ! Object ( _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 ) ;
}
} ;
/***/ } ) ,
/***/ "./src/tools/everywhere.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / src / tools / everywhere . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*! exports provided: helloDev, updateAccountLink */
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "helloDev" , function ( ) { return helloDev ; } ) ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "updateAccountLink" , function ( ) { return updateAccountLink ; } ) ;
// Ce script fournit des fonctions utilisées sur toutes les pages du site
var helloDev = function helloDev ( ) {
2021-01-25 16:54:16 +01:00
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 ****" ) ;
2020-08-07 12:23:59 +02:00
return true ;
} ;
var updateAccountLink = function updateAccountLink ( status , configTemplate ) {
var link = document . getElementById ( "accountHeadLink" ) ;
var homePage = status + "HomePage" ;
link . href = "/" + configTemplate [ homePage ] ;
} ;
/***/ } )
/******/ } ) ;
2021-01-25 16:54:16 +01:00
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4uL2NvbmZpZy9pbnN0YW5jZS5qcyIsIndlYnBhY2s6Ly8vLi4vY29uZmlnL3F1ZXN0aW9ubmFpcmVzLmpzIiwid2VicGFjazovLy8uLi9jb25maWcvdXNlcnMuanMiLCJ3ZWJwYWNrOi8vLy4uL2xhbmcgc3luYyBeXFwuXFwvLipcXC9nZW5lcmFsJCIsIndlYnBhY2s6Ly8vLi4vbGFuZyBzeW5jIF5cXC5cXC8uKlxcL3VzZXIkIiwid2VicGFjazovLy8uLi9sYW5nL2ZyL2dlbmVyYWwuanMiLCJ3ZWJwYWNrOi8vLy4uL2xhbmcvZnIvdXNlci5qcyIsIndlYnBhY2s6Ly8vLi4vdG9vbHMvbWFpbi5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvZGVjb25uZWN0aW9uLmpzIiwid2VicGFjazovLy8uL3NyYy90b29scy9jbGllbnRzdG9yYWdlLmpzIiwid2VicGFjazovLy8uL3NyYy90b29scy9kb20uanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Rvb2xzL2V2ZXJ5d2hlcmUuanMiXSwibmFtZXMiOlsidXNlcnMiLCJyZXF1aXJlIiwicXVlc3Rpb25uYWlyZXMiLCJtb2R1bGUiLCJleHBvcnRzIiwiYXBpVXJsIiwic2l0ZVVybCIsImFkbWluTmFtZSIsImFkbWluRW1haWwiLCJzZW5kZXJOYW1lIiwic2VuZGVyRW1haWwiLCJhZG1pbkxhbmciLCJ0aGVtZSIsImF2YWlsYWJsZUxhbmdzIiwic2l0ZU5hbWUiLCJiZWdpbkNvZGVHb2RmYXRoZXIiLCJkZWZhdWx0UmVjZWlwdERheXMiLCJjcm9uVGltaW5nQWxlcnRJblNlY29uZGUiLCJyZXNwb25zZVRpbWluZ0FsZXJ0SW5TZWNvbmRlIiwidG9rZW5TaWdudXBWYWxpZGF0aW9uVGltZUluSG91cnMiLCJ0b2tlbkxvZ2luTGlua1RpbWVJbkhvdXJzIiwidG9rZW5Db25uZXhpb25NaW5UaW1lSW5Ib3VycyIsInRva2VuQ29ubmV4aW9uTWF4VGltZUluRGF5cyIsInRva2VuTG9naW5DaGFuZ2luZ1RpbWVJbkhvdXJzIiwidG9rZW5EZWxldGVVc2VyVGltZUluSG91cnMiLCJ0b2tlblVuc3Vic2NyaWJlTGlua1RpbWVJbkRheXMiLCJmcmVlQWNjb3VudFRpbWluZ0luRGF5cyIsImZyZWVBY2NvdW50RXhwaXJhdGlvbk5vdGlmaWNhdGlvbkluRGF5cyIsImFjY291bnRFeHBpcmF0aW9uRmlyc3ROb3RpZmljYXRpb25JbkRheXMiLCJhY2NvdW50RXhwaXJhdGlvblNlY29uZE5vdGlmaWNhdGlvbkluRGF5cyIsImluYWN0aXZlQWNjb3VudFRpbWVUb0RlbGV0ZUluRGF5cyIsIm5iUXVlc3Rpb25zTWluIiwibmJRdWVzdGlvbnNNYXgiLCJuYkNob2ljZXNNYXgiLCJuYk5ld1F1ZXN0aW9ubmFpcmVzIiwiaG91ckdpdmVOZXdRdWVzdGlvbm5haXJlQmVnaW4iLCJob3VyR2l2ZU5ld1F1ZXN0aW9ubmFpcmVFbmQiLCJtYXhRdWVzdGlvbm5haXJlU2VuZGVkQXRTYW1lVGltZSIsIm1pblNlYXJjaFF1ZXN0aW9ubmFpcmVzIiwiZmllbGROZXdRdWVzdGlvbm5haXJlcyIsIm5iUXVlc3Rpb25uYWlyZXNCeUdyb3VwTWluIiwibmJRdWVzdGlvbm5haXJlc0J5R3JvdXBNYXgiLCJuYklsbHVzdHJhdGlvbnNNaW4iLCJuYklsbHVzdHJhdGlvbnNNYXgiLCJtYXhJbGx1c3RyYXRpb25TaXplaW5PY3RldCIsIm1pbWVUeXBlc0ZvcklsbHVzdHJhdGlvbiIsImlsbHVzdHJhdGlvbnNXaWR0aE1heEluUHgiLCJpbGx1c3RyYXRpb25zTWluaWF0dXJlc1dpZHRoTWF4SW5QeCIsIm5iTGlua3NNaW4iLCJuYkxpbmtzTWF4IiwicGFzc3dvcmQiLCJtaW5sZW5ndGgiLCJkaXJDYWNoZVVzZXJzIiwiZGlyQ2FjaGVVc2Vyc0Fuc3dlcnMiLCJkaXJDYWNoZVF1ZXN0aW9ubmFpcmVzIiwiZGlyQ2FjaGVRdWVzdGlvbnMiLCJkaXJDYWNoZVVzZXJzUXVlc3Rpb25uYWlyZXMiLCJkaXJIVE1MUXVlc3Rpb25uYWlyZXMiLCJkaXJXZWJRdWVzdGlvbm5haXJlcyIsInF1ZXN0aW9ubmFpcmVSb3V0ZXMiLCJnZXRMaXN0TmV4dFF1ZXN0aW9ubmFpcmVzIiwiZ2V0UXVlc3Rpb25uYWlyZVJvdXRlcyIsImdldFJhbmRvbVF1ZXN0aW9ubmFpcmVzUm91dGUiLCJnZXRTdGF0c1F1ZXN0aW9ubmFpcmVzIiwicHJldmlld1F1ZXN0aW9ubmFpcmVSb3V0ZXMiLCJwdWJsaXNoZWRRdWVzdGlvbm5haXJlUm91dGVzIiwicmVnZW5lcmF0ZUhUTUwiLCJzZWFyY2hBZG1pblF1ZXN0aW9ubmFpcmVzUm91dGUiLCJzZWFyY2hRdWVzdGlvbm5haXJlc1JvdXRlIiwiZ3JvdXBSb3V0ZXMiLCJnZXRHcm91cFJvdXRlIiwicHJldmlld0dyb3VwUm91dGVzIiwic2VhcmNoR3JvdXBzUm91dGUiLCJxdWVzdGlvbnNSb3V0ZSIsInRhZ3NTZWFyY2hSb3V0ZSIsImdldEFkbWluU3RhdHMiLCJnZXRQcmV2aW91c0Fuc3dlcnMiLCJnZXRTdGF0c0Fuc3dlcnMiLCJzYXZlQW5zd2Vyc1JvdXRlIiwiUXVlc3Rpb25uYWlyZSIsInRpdGxlIiwibWF4bGVuZ3RoIiwicmVxdWlyZWQiLCJzbHVnIiwiaW50cm9kdWN0aW9uIiwic2VhcmNoUXVlc3Rpb25uYWlyZXMiLCJHcm91cCIsIlF1ZXN0aW9uIiwidGV4dCIsInJhbmsiLCJtaW4iLCJkZWZhdWx0VmFsdWUiLCJDaG9pY2UiLCJzZWFyY2giLCJzZWFyY2hHcm91cHMiLCJkaXJDYWNoZUdyb3VwcyIsImRpckNhY2hlVGFncyIsImRpckhUTUxHcm91cHMiLCJkaXJIVE1MTmV3cyIsImRpckhUTUxUYWdzIiwiZGlyV2ViR3JvdXBzIiwiZGlyV2ViTmV3cyIsImRpcldlYlRhZ3MiLCJuYlJhbmRvbVJlc3VsdHMiLCJuYlRhZ3NNaW4iLCJuYlRhZ3NNYXgiLCJ1c2VyUm91dGVzIiwiY2hlY2tEZWxldGVMaW5rUm91dGUiLCJjaGVja0lmSXNFbWFpbGZyZWVSb3V0ZSIsImNoZWNrTG9naW5Sb3V0ZSIsImNoZWNrTmV3TG9naW5MaW5rUm91dGUiLCJjaGVja1N1YnNjcmliZVRva2VuUm91dGUiLCJjb25uZWN0aW9uUm91dGUiLCJjb25uZWN0aW9uV2l0aExpbmtSb3V0ZSIsImNyZWF0ZVVzZXJSb3V0ZSIsImdldEdvZENoaWxkcyIsImdldEdvZGZhdGhlclJvdXRlIiwiZ2V0TG9naW5MaW5rUm91dGUiLCJnZXRQYXltZW50cyIsImdldFVzZXJJbmZvcyIsImdldFVzZXJzUXVlc3Rpb25uYWlyZXNSb3V0ZSIsInNlYXJjaFVzZXJSb3V0ZSIsInNpZ251cENvbXBsZXRpb25Sb3V0ZSIsInN1YnNjcmliZVJvdXRlIiwidW5zdWJzY3JpYmVSb3V0ZSIsInVwZGF0ZVV