WikiLerni/front/public/JS/homeManager.app.js

1 line
36 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(){var e={6028:function(e,i,t){const n=t(671),s=t(4988);e.exports={apiUrl:"http://localhost:3000/api",siteUrl:"http://localhost:8080",siteUrlProd:"https://www.wikilerni.com",adminName:"Fab",adminEmail:"dev@wikilerni.com",senderName:"WikiLerni",senderEmail:"bonjour@wikilerni.com",adminLang:"fr",theme:"wikilerni",availableLangs:["fr"],siteName:"WikiLerni",beginCodeGodfather:"WL",defaultReceiptDays:"147",cronTimingAlertInSeconde:120,responseTimingAlertInSeconde:3,tokenSignupValidationTimeInHours:"48h",tokenLoginLinkTimeInHours:"1h",tokenConnexionMinTimeInHours:"24h",tokenConnexionMaxTimeInDays:"180 days",tokenLoginChangingTimeInHours:"1h",tokenDeleteUserTimeInHours:"1h",tokenUnsubscribeLinkTimeInDays:"7 days",freeAccountTimingInDays:0,freeAccountExpirationNotificationInDays:3,accountExpirationFirstNotificationInDays:10,accountExpirationSecondNotificationInDays:3,inactiveAccountTimeToDeleteInDays:180,nbQuestionsMin:1,nbQuestionsMax:0,nbChoicesMax:10,nbNewQuestionnaires:12,hourGiveNewQuestionnaireBegin:3,hourGiveNewQuestionnaireEnd:8,maxQuestionnaireSendedAtSameTime:50,minSearchQuestionnaires:3,fieldNewQuestionnaires:"publishingAt",nbQuestionnairesByGroupMin:1,nbQuestionnairesByGroupMax:0,nbIllustrationsMin:1,nbIllustrationsMax:1,maxIllustrationSizeinOctet:1e6,mimeTypesForIllustration:["image/jpg","image/jpeg","image/png","image/gif","image/png"],illustrationsWidthMaxInPx:500,illustrationsMiniaturesWidthMaxInPx:200,nbLinksMin:1,nbLinksMax:0,nbQuestionsMin:1,nbQuestionsMax:0,nbChoicesMax:10,passwordMinLength:n.password.minlength,dirCacheUsers:n.dirCacheUsers,dirCacheUsersAnswers:n.dirCacheUsersAnswers,dirCacheQuestionnaires:s.dirCacheQuestionnaires,dirCacheQuestions:s.dirCacheQuestions,dirCacheUsersQuestionnaires:s.dirCacheUsersQuestionnaires,dirHTMLQuestionnaires:s.dirHTMLQuestionnaires,dirWebQuestionnaires:s.dirWebQuestionnaires}},4988:function(e){e.exports={questionnaireRoutes:"/questionnaire",getListNextQuestionnaires:"/getlistnextquestionnaires/",getQuestionnaireRoutes:"/get",getRandomQuestionnairesRoute:"/getrandom",getStatsQuestionnaires:"/stats/",previewQuestionnaireRoutes:"/preview",publishedQuestionnaireRoutes:"/quiz/",regenerateHTML:"/htmlregenerated",searchAdminQuestionnairesRoute:"/searchadmin",searchQuestionnairesRoute:"/search",groupRoutes:"/group",getGroupRoute:"/get/",previewGroupRoutes:"/preview",searchGroupsRoute:"/search",questionsRoute:"/question/",tagsSearchRoute:"/tags/search/",getAdminStats:"/getadminstats/",getPreviousAnswers:"/user/answers/",getStatsAnswers:"/user/anwswers/stats/",saveAnswersRoute:"/answer/",Questionnaire:{title:{maxlength:255,required:!0},slug:{maxlength:150},introduction:{required:!0}},searchQuestionnaires:{minlength:3,required:!0},Group:{title:{maxlength:255,required:!0},slug:{maxlength:150}},Question:{text:{maxlength:255,required:!0},rank:{required:!0,min:1,defaultValue:1}},Choice:{text:{maxlength:255,required:!0}},search:{minlength:3,required:!0},searchGroups:{minlength:3,required:!0},dirCacheGroups:"datas/questionnaires/groups",dirCacheQuestionnaires:"datas/questionnaires",dirCacheQuestions:"datas/questionnaires/questions",dirCacheTags:"datas/questionnaires/tags",dirCacheUsersQuestionnaires:"datas/users/questionnaires",dirHTMLGroups:"front/public/quiz/gp",dirHTMLQuestionnaires:"front/public/quiz",dirHTMLNews:"front/public/quizs",dirHTMLTags:"front/public/quizs",dirWebGroups:"quiz/gp",dirWebQuestionnaires:"quiz",dirWebNews:"quizs/",dirWebTags:"quizs/",nbRandomResults:3,nbQuestionsMin:1,nbQuestionsMax:0,nbChoicesMax:10,nbTagsMin:0,nbTagsMax:0}},671:function(e){e.exports={userRoutes:"/user",checkDeleteLinkRoute:"/confirmdelete/",checkIfIsEmailfreeRoute:"/isemailfree",checkLoginRoute:"/checklogin/",checkNewLoginLinkRoute:"/confirmnewlogin/",checkSubscribeTokenRoute:"/validation/",connectionRoute:"/login",connectionWithLinkRoute:"/checkloginlink",createUserRoute:"/create",getAdminStats:"/getadminstats/",getGodChilds:"/getgodchilds/",getGodfatherRoute:"/getgodfatherid",getLoginLinkRoute:"/getloginlink",getPayments:"/payment/getforoneuser/",getUserInfos:"/get/",getUsersQuestionnairesRoute:"/getusersquestionnaires/",searchUserRoute:"/search/",signupCompletionRoute:"/signupcompletion/",subscribeRoute:"/signup",unsubscribeRoute:"/subscription/stop/",updateUserInfos:"/modify/",validateUserRoute:"/validate/",name:{maxlength:70,required:!0},email:{maxlength:255,required:!0},password:{minlength:8,maxlength:72,required:!0},newPassword:{minlength:8,maxlength:72},codeGodfather:{maxlength:255},cguOk:{value:"true",required:!0},search:{minlength:1,required:!0},timeDifferenceMin:-720,timeDifferenceMax:840,dirCacheUsers:"datas/users",dirCacheUsersAnswers:"datas/users/questionnaires/answers",dirCacheUsersWithoutAnswers:"datas/users/questionnaires/without"}},223:function(e){e.exports={addBtnTxt:"Ajouter",addOkMessage:"Les données ont bien été enregistrées.",alertNewWindow:"nouvelle fenêtre",badUrl:"Tentative d'accès à une page n'existant pas :",btnLinkToQuestionnaire:"Afficher !",btnProposeConnection:"Je me connecte.",btnProposeSubscribe:"Je crée mon compte.",btnShowOnWebSite:"Lire la suite sur #SITE_NAME",deleteBtnTxt:"Supprimer",deleteFailMessage:"La suppression de l'enregistrement #ID a échoué.",deleteOkMessage:"La suppression a bien été enregistrée.",failAuth:"Erreur d'authentification.",failAuthCron:"Tentative de lancement d'un cron sans le bon token.",failAuthHeader:"Absence de header Authorization.",failAuthId:"Identifiant non valide : ",failAuthToken:"Token invalide ou utilisateur non trouvé.",neededParams:"Des paramètres nécessaires manquants sont manquants.",nextPage:"Page suivante",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 :",siteHTMLTitle:"WikiLerni : la culture générale en liberté",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.",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.",subscriptionCall:"Inscrivez-vous !",updateBtnTxt:"Modifier",updateOkMessage:"La mise à jour à jour a bien été enregistrée."}},3215:function(e){e.exports={btnProposeConnection:"Je me connecte.",btnProposeSubscribe:"Je crée mon compte.",btnSendResponse:"Testez vos réponses.",btnShareQuizTxt:"Partager via ",btnShareQuizMailBody:"Bonjour,%0A%0AVoici%20un%20lien%20internet%20qui%20devrait%20t'intéresser :%0A",btnShowQuestionnaire:"Répondre au quiz !",correctAnswerTxt:"Bonne réponse",estimatedTime:"Durée de lecture estimée : ",estimatedTimeOption:{short:"courte",medium:"moyenne",long:"longue"},explanationBeforeTxt:"Extrait :",haveBeenPublished:":NB nouveaux questionnaires ont été publiés.",haveBeenRegenerated:"Les pages HTML de #NB1 questionnaires ou éléments de groupes, #NB2 quizs groupés et #NB3 thèmes ont été regénérés.",lastUpdated:"Dernière mise à jour, le ",linkGoToNextElement:"Article suivant",linkGoToQuiz:"Accéder au quiz",needCorrectPublishingDate:"La date de publication fournie n'a pas un format valide.",needEstimatedTime:"Merci de sélectionner une estimation de la durée de ce quiz.",needGroupIfRank:"Vous avez saisi un rang de classement, sans sélectionner le groupe du quiz.",needIntroduction:"Merci de fournir un texte d'introduction à votre quiz.",needKnowIfIsPublished:"Il faut savoir si ce quiz est publié.",needLanguage:"Vous devez sélectionner la langue de ce quiz.",needNotTooLongTitle:"Le titre du quiz ne doit pas compter plus de 255 caractères.",needNumberForRank:"Vous devez saisir un nombre entier pour le rang de ce questionnaire dans son groupe.",needTitle:"Merci de fournir un titre à votre quiz.",needUniqueUrl:"L'url du quiz doit être unique.",needUrl:"Merci de fournir l'url à votre quiz.",nextDateWithoutQuestionnaire:"Prochaine date sans quiz programmé : ",nextQuestionnairesList:"Les #NB prochains quizs devant être publiés",questionnairesName:"quiz",questionnaireNeedBeCompleted:"Quiz incomplet",publishedAt:", le",publishedBy:"Quiz publié par",searchQuestionnaireResultTitle:"Résultat pour votre recherche",searchQuestionnaireWithNoResult:"Aucun quiz n'a été trouvé pour votre recherche.",searchQuestionnaireWithResult:"Il y a #NB article#S correspondant à votre recherche :",wrongAnswerTxt:"Mauvaise réponse"}},1494:function(e){e.exports={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.",failBotTest:"Un problème a été rencontré durant votre inscription. En cas de difficulté, n'hésitez pas contacter l'administrateur du site.",failBotTestLog:"Une inscription a été bloquée, parce que le champ email2 était renseigné avec : ",formsEmailLabel:"E-mail :",formsEmailPlaceholder:"Votre adresse e-mail",formsEmail2Placeholder:"Si vous voyez ce champ, laissez-le vide",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 !",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 :(",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.",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",mailValidationLinkSubject:"Merci de valider votre inscription",mailValidationLinkTxt:"Valider mon compte.",mailValidationMessage:"Votre inscription est bien enregistrée.\nPour la finaliser, merci de cliquer dans les 24 H sur le lien de confirmation qui vient d'être envoyé à votre adresse e-mail (#EMAIL).",mailWelcomeBodyHTML:"<h3>Bonjour USER_NAME,</h3><p>Vous venez de valider votre inscription à NOM_SITE. Merci et bienvenue !<br><br>Si vous avez la moindre question ou suggestion concernant NOM_SITE, n'hésitez pas à me contacter en écrivant à <b>EMAIL</b>.<br><br>Je vous conseille d'ailleurs d'ajouter <b>EMAIL</b> à votre carnet d'adresses <b>pour éviter que les prochains envois de NOM_SITE n'arrivent en <i>spam</i></b>.<br><br>Par ailleurs, pour gérer votre abonnement, accéder à vos informations ou encore chercher plus facilement parmi le contenu du site, vous pouvez à tout moment vous connecter à votre compte utilisateur.<br><br>Pour ce faire, utilisez le lien ci-dessous.<br><br>À bientôt sur NOM_SITE.",mailWelcomeBodyTxt:"Bonjour USER_NAME,\n\nVous venez de valider votre inscription à NOM_SITE. Merci et bienvenue !\n\nSi vous avez la moindre question ou suggestion concernant NOM_SITE, n'hésitez pas à me contacter en écrivant à EMAIL.\n\nJe vous conseille d'ailleurs d'ajouter EMAIL à votre carnet d'adresses pour éviter que les prochains envois de NOM_SITE n'arrivent en \"spam\".\n\nPar ailleurs, pour gérer votre abonnement, accéder à vos informations ou encore chercher plus facilement parmi le contenu du site, vous pouvez à tout moment vous connecter à votre compte utilisateur.\n\nPour ce faire, utilisez le lien suivant : LINK_URL\n\nÀ bientôt sur NOM_SITE.",mailWelcomeLinkTxt:"Me connecter à mon compte.",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.",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.",needSMTPNotFound:"Il manque un serveur SMTP valide.",needStatus:"Il manque le statut.",needTimeDifference:"Il faut connaître le nombre de minutes du décalage horaire.",needUGCOk:"Merci d'accepter les CGU pour créer votre compte.",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>.",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.",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é.",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.",updatedFailedGodfatherNotFound:"L'identifiant fourni pour le parrain ne correspond à aucun utilisateur.",updatedNeedGoodEmail:"Mais la nouvelle adresse e-mail n'a pu être enregistrée, car elle n'a pas un format correct.",updatedNeedGoodGodfather:"Mais le nouveau code parrain n'a pu être retenu, car il ne correspond à aucun compte utilisateur ou à l'utilisateur lui-même.",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.",updatedNeedValidatedUser:"L'utilisateur que vous souhaitez modifier n'existe pas/plus ou n'a pas encore validé son compte.",updatedOkMessage:"Vos informations ont bien été mises à jour.",validationAlreadyMessage:"Il semble que vous ayez déjà validé votre compte. Vous pouvez vous y connecter <a href='#URL'>en cliquant ici</a>.",validationAlreadyMessageAdmin:"Ce compte a déjà été validé.",validationMessage:"Votre compte vient bien d'être validé. Merci et bienvenue !<br>Vous pouvez compléter les informations de votre abonnement ci-dessous.",validationMessageAdmin:"Le compte a bien été validé.",welcomeMessage:"Bienvenue #NAME !"}},9864:function(e){class i{static isEmpty(e){return null==e||""===(e+="").trim()}static trimIfNotNull(e){return i.isEmpty(e)?null:(e+="").trim()}static shortenIfLongerThan(e,i){return(e+="").length>i&&(e=e.substring(0,i-3)+"…"),e}static replaceAll(e,i){const t=new RegExp(Object.keys(i).join("|"),"gi");return e.replace(t,(e=>i[e]))}static getRandomInt(e,i){return e=Math.ceil(e),i=Math.floor(i),Math.floor(Math.random()*(i-e))+e}static dateFormat(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"fr";if(i.isEmpty(e))return"";let n=new Date(e),s=n.getDate()+"";1===s.length&&(s="0"+s);let r=n.getMonth()+1+"";1===r.length&&(r="0"+r);let o=n.getFullYear();return"fr"===t?s+"/"+r+"/"+o:"form"===t?o+"-"+r+"-"+s:r+"/"+s+"/"+o}static getPassword(e,i){const t=e+Math.floor(Math.random()*(i-e)),n="ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnpqrstuvwxyz",s="123456789!?.*-_%@&ÉÀÈÙ€$ÂÊÛÎ";let r=n[Math.floor(Math.random()*n.length)];for(let e=1;e<t-1;e++)r+=e%2==1?s[Math.floor(Math.random()*s.length)]:n[Math.floor(Math.random()*n.length)];return r+=n[Math.floor(Math.random()*n.length)],r}}e.exports=i},2095:function(e){e.exports={headLinks:[{anchor:"Accueil",attributes:{href:"/"}},{anchor:"Mon compte",attributes:{href:"/connexion.html",id:"accountHeadLink"}},{anchor:"À propos",attributes:{href:"/a-propos.html"}},{anchor:"Contact",attributes:{href:"/contact.html"}}],footLinks:[{anchor:"Crédits",attributes:{href:"/credits.html"}},{anchor:"Mentions légales",attributes:{href:"/mentions-legales.html",rel:"nofollow"}},{anchor:"Données personnelles",attributes:{href:"/donnees.html"}},{anchor:"C.G.U.",attributes:{href:"/cgu.html",rel:"nofollow"}},{anchor:"C.G.V.",attributes:{href:"/cgv.html",rel:"nofollow"}}],maxQuestionnairesByPage:10,userHomePage:"accueil.html",adminHomePage:"admin.html",managerHomePage:"gestion.html",subscribePage:"inscription.html",connectionPage:"connexion.html",accountPage:"compte.html",questionnairesManagementPage:"gestion-quizs.html",usersManagementPage:"gestion-utilisateurs.html",nbQuestionnairesUserHomePage:10,illustrationDir:"/img/quizs/",siteSlogan:"Cultivons notre jardin !",homeTitle1:"De nature curieuse ?",homeP1:'Avec WikiLerni vous apprenez chaque jour de nouvelles choses.<br>Des articles de Wikipédia sont sélectionnés pour vous et sont suivis d\'un quiz vous permettant de tester ce que vous en avez retenu.<br>De jour en jour de nouvelles graines de savoir sont ainsi semées dans votre "jardin".',homeTitle2:"La culture en liberté",homeP2:'Tout comme sur Wikipédia (*), le logiciel et le contenu partagé sur WikiLerni sont libres.<br>Vous pouvez les utiliser, les modifier et les diffuser selon votre souhait.<br>Sur WikiLerni, pas de publicité, ni de commercialisation de vos données personnelles.<br>Vous pouvez venir y "cultiver votre jardin" en toute tranquillité.<br><br><small><em>(*) Bien que partageant ses valeurs, WikiLerni est un projet indépendant de la fondation Wikipédia.</em></small>',newQuestionnairesTitle:"Les derniers quizs publiés sur WikiLerni",newQuestionnairesIntro:"Liste des derniers quizs publiés sur WikiLerni.",explanationTitle:"Vous découvrez WikiLerni ?",explanationTxt:"Le principe est simple : vous commencez par lire l'article Wikipédia dont le lien vous est proposé.<br>Puis vous afficher le quiz pour vérifier ce que vous en avez retenu de votre lecture. Vous obtenez alors votre résultat immédiatement.<br><br>Toutes les réponses se trouvent dans l'article proposé à la lecture. <b>Vous êtes ici pour apprendre de nouvelles choses</b>, mais libre à vous d'essayer d'y répondre immédiatement.<br><br>Quand le sujet s'y prête, ne vous étonnez pas si certaines des réponses proposées peuvent être un peu décalées, absurdes... On peut apprendre avec le sourire, non ? :-)<br><br>Une fois votre résultat obtenu, il vous sera proposé de créer un compte pour le sauvegarder.<br>Ce compte vous permettra de tester de nouveau ce quiz pour vérifier ce que vous en avez retenu plusieurs jours, semaines, mois... Et de recevoir régulièrement de nouvelles suggestions de lectures.<br><br>Mais <b>la création de ce compte est facultative</b> et <a href='/quizs/' title='Les derniers quizs publiés'>vous pouvez parcourir WikiLerni librement</a>.",noJSNotification:"Désolé, mais pour l'instant, l'utilisation de WikiLerni nécessite l'activation du JavaScript.",tagsListTxt:"Parcourir les rubriques :"}},4326:function(e){e.exports={headLinks:[{anchor:"Contact",attributes:{href:"/contact.html",rel:"nofollow"}},{anchor:"Parcourir",attributes:{href:"/quizs/",id:"indexHeadLink",title:"Les dernières publications"}},{anchor:"À propos",attributes:{href:"/a-propos.html",title:"En savoir + sur WikiLerni"}},{anchor:"Accueil",attributes:{href:"/",title:"Page d'accueil"}}],footLinks:[{anchor:"Blog",attributes:{href:"https://diaspora-fr.org/people/815767c0c09e0139ec6f32a01d0dfba2",title:"Le blog WikiLerni sur diaspora*"}},{anchor:"Crédits",attributes:{href:"/credits.html",title:"Qui a créé WikiLerni ? Quels sont vos droits ?"}},{anchor:"Mentions légales",attributes:{href:"/mentions-legales.html",rel:"nofollow"}},{anchor:"Données personnelles",attributes:{href:"/donnees.html",title:"Vos données personnelles sur WikiLerni"}},{anchor:"CGV & CGU",attributes:{href:"/CGV-CGU.html",rel:"nofollow"}}],accountPage:"compte.html",aboutPage:"a-propos.html",adminHomePage:"admin.html",cguPage:"CGV-CGU.html",connectionPage:"connexion.html",deleteLinkPage:"aurevoir.html?t=",loginLinkPage:"login.html?t=",managerHomePage:"gestion.html",newLoginLinkPage:"newlogin.html?t=",questionnairesManagementPage:"gestion-quizs.html",stopMailPage:"stop-mail.html?t=",subscribePage:"inscription.html",updateAccountPage:"compte.html",userHomePage:"accueil.html",userHomePageTxt:"Ma page d'accueil.",usersManagementPage:"gestion-utilisateurs.html",validationLinkPage:"validation.html?t=",siteSlogan:"Cultivons notre jardin !",noJSNotification:"Désolé, mais pour l'instant, l'utilisation de WikiLerni nécessite l'activation du JavaScript.",mailRecipientTxt:"Message envoyé à :",licenceTxt:'@copyleft Le contenu de WikiLerni <a href="/credits.html" title="En savoir plus ?">est libre</a> et vous est offert sans publicité. Vous pouvez <a href="/participer-financement.html" title="Financement participatif avec contre-parties">participer à son financement en cliquant ici</a>.',homePageTxt:"Page d'accueil",homeTitle1:"De nature curieuse ?",homeP1:"<b>Avec WikiLerni, vous apprenez régulièrement de nouvelles choses</b>.<br>Vous découvrez de courts articles, lisibles en quelques minutes.<br>Des quizs vous permettent ensuite de tester ce que vous avez retenu.<br>De jour en jour <b>de nouvelles graines de culture sont ainsi semées dans votre jardin</b>.",homeTitle2:"La culture générale en liberté",homeP2:'<b>Pas de faits alternatifs</b>, tous les contenus sont <b>sourcés par des articles Wikipédia</b>.<br>Et tout comme sur Wikipédia, le logiciel et le contenu publié sur WikiLerni <a href="/credits.html" title="En savoir plus sur ce sujet">sont partagés sous licences libres</a>.<br>Le tout sans publicité, ni commercialisation de vos données.<br><b>Sur WikiLerni, vous cultivez votre jardin en toute tranquillité.</b>',homeBtnAboutTxt:"En savoir plus sur WikiLerni ?",homeBtnSubscribeTxt:"Testez WikiLerni",homeSubcriptionFormTitle:"Recevez les prochains articles WikiLerni",newQuestionnairesTitle:"Culture générale - apprenez de nouvelles choses avec WikiLerni",newQuestionnairesIntro:"WikiLerni : testez vos connaissances et apprenez de nouvelles choses avec WikiLerni.",newsListTitle:"<p><b>Avec WikiLerni, vous pouvez toujours apprendre quelque chose de nouveau</b><br>Si dessous les dernières publications. Vous pouvez aussi <a href='/quizs/themes.html'>parcourir le site par thèmes ou mots-clés</a>.</p>",tagListTitle:"Culture générale - des articles et quizs sur de nombreux thèmes !",tagListMetaDesc:"WikiLerni : découvrir les différents thèmes abordés par WikiLerni. Inxex du site.",tagListIntro:"<h3>Avec WikiLerni, devenez fort en thèmes... Oui mais quels thèmes ? :)</h3><blockquote>Aristote: «Lhomme a naturellement la passion de connaître…»</blockquote>",answersExplanationsLinkText:"Relire",quizElementLinksIntro:"En savoir plus",quizElementSubcriptionFormTitle:"Recevez les prochains articles WikiLerni",explanationTitle:"Vous découvrez WikiLerni?",explanationTxt:"<p>Le principe est simple: <b>vous commencez par lire larticle Wikipédia dont le lien vous est proposé</b>. Puis vous <b>afficher le quiz pour vérifier ce que vous avez retenu de votre lecture</b>. Suivant les questions, <b>une ou plusieurs réponses peuvent être correctes</b> et doivent donc être cochées. Cest toujours <b>le contenu de larticle Wikipédia qui fait foi</b> concernant les «bonnes» réponses. Cest une façon de tester à la fois votre capacité dattention et votre mémoire. Les articles de Wikipédia peuvent évoluer, donc nhésitez pas <a href='/contact.html'>à me signaler une erreur</a>.</p><p><b>WikiLerni vous propose dautres solutions pour améliorer votre culture générale</b>. Pour en savoir plus, cliquez sur le bouton ci-dessous.</p>",explanationElementTxt:"<p>WikiLerni vous propose de <b>découvrir de courts articles lisibles en quelques minutes</b> et portant sur des sujets très variés de <b>culture générale</b> (arts, histoire, littérature, sciences, etc.).</p><p>Ces articles sont basés sur <b>une ou plusieurs pages de Wikipédia</b> (fournies en lien), dont <b>ils extraient certaines informations</b>.</p><p>Chaque série darticles est <b>suivie dun quiz</b> permettant de tester ce que vous en avez retenu.</p><p><b>Vous apprenez ainsi régulièrement de nouvelles choses</b> très simplement.</p>",illustrationDir:"/img/quizs/",twitterAccount:"WikiLerni",maxQuestionnairesByPage:12,maxQuestionnairesFeed:5,maxQuestionnairesSiteHomePage:3,nbQuestionnairesUserHomePage:3}},2111:function(e,i,t){var n={"./fr/general":223};function s(e){var i=r(e);return t(i)}function r(e){if(!t.o(n,e)){var i=new Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=r,e.exports=s,s.id=2111},3260:function(e,i,t){var n={"./fr/questionnaire":3215};function s(e){var i=r(e);return t(i)}function r(e){if(!t.o(n,e)){var i=new Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=r,e.exports=s,s.id=3260},176:function(e,i,t){var n={"./fr/user":1494};function s(e){var i=r(e);return t(i)}function r(e){if(!t.o(n,e)){var i=new Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=r,e.exports=s,s.id=176},9729:function(e,i,t){var n={"./default/config/fr.js":2095,"./wikilerni/config/fr.js":4326};function s(e){var i=r(e);return t(i)}function r(e){if(!t.o(n,e)){var i=new Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=r,e.exports=s,s.id=9729}},i={};function t(n){var s=i[n];if(void 0!==s)return s.exports;var r=i[n]={exports:{}};return e[n](r,r.exports,t),r.exports}t.o=function(e,i){return Object.prototype.hasOwnProperty.call(e,i)},function(){"use strict";var e=t(6028),i=t(671),n=t(4988);const s=(e,i)=>{localStorage.setItem(e,JSON.stringify(i))},r=function(e){let i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i?JSON.parse(localStorage.getItem(e)):localStorage.getItem(e)},o=e=>{localStorage.removeItem(e)};var a=t(9864);const u=function(e,i){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6];if((0,a.isEmpty)(i)||(0,a.isEmpty)(e))return!1;{const u=document.createElement(i);if((0,a.isEmpty)(n)||(u.id=n),Array.isArray(s)&&0!=s.length)for(let e in s)u.classList.add(s[e]);if("object"==typeof r)for(let e in r)u.setAttribute(e,r[e]);(0,a.isEmpty)(t)||(u.innerHTML=t.replace(/\n/g,"<br>")),o&&(e.innerHTML=""),e.appendChild(u)}},l=e.availableLangs[0],c=t(9729)("./"+e.theme+"/config/"+l+".js"),d=(e,i,t)=>{(0,a.isEmpty)(i)||s("message",i),(0,a.isEmpty)(t)||s("url",t),(0,a.isEmpty)(e)||window.location.assign(e)},p=e.availableLangs[0],m=t(9729)("./"+e.theme+"/config/"+p+".js"),{notAllowed:v,serverError:h,statsAdmin:g}=t(2111)("./"+p+"/general"),{nextDateWithoutQuestionnaire:b,nextQuestionnairesList:f,questionnaireNeedBeCompleted:L}=t(3260)("./"+p+"/questionnaire"),{welcomeMessage:T}=t(176)("./"+p+"/user"),M=document.getElementById("main-content"),q=document.getElementById("crash"),E=document.getElementById("message"),S=document.getElementById("questionnaires"),k=document.getElementById("wantRegenerate");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 ****"),(async()=>{try{const t=await async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,u=arguments.length>2?arguments[2]:void 0,l=arguments.length>3?arguments[3]:void 0;return new Promise(((p,m)=>{const v=r("user");if((0,a.isEmpty)(v))d(n,u,l),p(!1);else{const r=JSON.parse(v);if((0,a.isEmpty)(r.id)||(0,a.isEmpty)(r.token)||(0,a.isEmpty)(r.duration)||r.duration<Date.now())o("user"),d(n,u,l),p(!1);else{const a=new XMLHttpRequest;a.open("GET",e.apiUrl+i.userRoutes+i.checkLoginRoute+r.token),a.onload=()=>{let i=JSON.parse(a.responseText);if(200===a.status&&i.isValid&&null!=i.id)if(i.id===r.id)if(r.name=i.name,r.language=i.language,r.timeDifference=i.timeDifference,r.status=i.status,s("user",r),"user"===i.status&&i.nbDaysOk<=0){const i=e.siteUrl+"/"+c.accountPage;-1===window.location.href.indexOf(i)&&window.location.assign("/"+c.accountPage+"#subscribe"),p(!0)}else 0!==t.length&&-1===t.indexOf(i.status)?(d(n,u,l),p(!1)):p(!0);else o("user"),d(n,u,l),p(!1);else o("user"),d(n,u,l),p(!1)},a.onerror=()=>m(a.statusText),a.send()}}}))}(["manager","admin"],"/"+m.connectionPage,{message:v,color:"error"});if(t){const t=r("user",!0);t.status,u(E,"h2",T.replace("#NAME",t.name)),M.style.display="block",(0,a.isEmpty)(r("message"))||(u(E,"p",r("message",!0).message,"",[r("message",!0).color],"",!1),o("message"));const s=new XMLHttpRequest;s.open("GET",e.apiUrl+i.userRoutes+i.getAdminStats),s.onreadystatechange=function(){if(this.readyState==XMLHttpRequest.DONE){let e=JSON.parse(this.responseText);if(200===this.status){const i={NB_USERS_24H:e.nbNewUsers24H,NB_SUBSCRIPTIONS_24H:e.Subscriptions.nbSubscriptions24H,NB_USERS_DELETED_24H:e.nbDeletedUsers24H,NB_ANSWERS_24H:e.Answers.nbAnswers24H,NB_USERS_TOT:e.nbNewUsersTot,NB_SUBSCRIPTIONS_TOT:e.Subscriptions.nbSubscriptionsTot,NB_SUBSCRIPTIONS_PREMIUM:e.Subscriptions.nbSubscriptionsPremium,NB_ANSWERS_TOT:e.Answers.nbAnswersTot,NB_USERS_DELETED_TOT:e.nbDeletedUsersTot,NB_USERS_DELETED_VALIDED:e.nbDeletedUsersWasValided,NB_USERS_DELETED_PREMIUM:e.nbDeletedUsersTotWasPremium};u(E,"p",(0,a.replaceAll)(g,i),"","","",!1)}}},s.setRequestHeader("Authorization","Bearer "+t.token),s.send();const l=new XMLHttpRequest;l.open("GET",e.apiUrl+n.questionnaireRoutes+n.getListNextQuestionnaires),l.onreadystatechange=function(){if(this.readyState==XMLHttpRequest.DONE){let i=JSON.parse(this.responseText);if(200===this.status&&Array.isArray(i.questionnaires)){let t,n="",s={weekday:"long"};for(let r in i.questionnaires)t=new Intl.DateTimeFormat(p,s).format(new Date(i.questionnaires[r].datePublishing)),n+="<li>"+t+" "+(0,a.dateFormat)(i.questionnaires[r].datePublishing,e.availableLangs[0])+": <a href='"+m.questionnairesManagementPage+"?id="+i.questionnaires[r].id+"'>"+i.questionnaires[r].title+"</a>",!1===i.questionnaires[r].isPublishable&&(n+=" <span class='error'>("+L+")</li>"),n+="</li>";0!==i.questionnaires.length&&u(S,"h2",f.replace("#NB",i.questionnaires.length)),u(S,"h4",b+(0,a.dateFormat)(i.dateNeeded,e.availableLangs[0]),"",["info"],"",!1),u(S,"ul",n,"","","",!1)}}},l.setRequestHeader("Authorization","Bearer "+t.token),l.send(),k.addEventListener("click",(function(i){i.preventDefault();const s=new XMLHttpRequest;s.open("GET",e.apiUrl+n.questionnaireRoutes+n.regenerateHTML),s.onreadystatechange=function(){if(this.readyState==XMLHttpRequest.DONE){let e=JSON.parse(this.responseText);200===this.status&&null!=e.message?u(E,"p",e.message,"",["success"],"",!1):u(E,"p",h,"",["error"],"",!1)}},s.setRequestHeader("Content-Type","application/json"),s.setRequestHeader("Authorization","Bearer "+t.token),s.send()}))}}catch(e){u(q,"p",h,"",["error"]),console.error(e)}})()}()}();