1 line
40 KiB
JavaScript
1 line
40 KiB
JavaScript
!function(){var e={6028:function(e,n,t){const i=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:i.password.minlength,dirCacheUsers:i.dirCacheUsers,dirCacheUsersAnswers:i.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."}},4055:function(e){e.exports={allSubscriptionProcessed:"Tous les abonnés ont été traités pour le moment.",infosExpirated:"Votre abonnement a expiré, mais il vous reste encore quelques jours avant que votre compte et vos données ne soient complètement supprimées.<br>Pour ce faire, suivez sans tarder les indications ci-dessous :",infosExpiratedAdmin:"Cet abonnement a expiré.",infosNbDays:"Votre abonnement est encore valable <b>pendant NB_DAYS jours</b>.<br>Vous pouvez à tout moment prolonger votre abonnement en suivant les indications ci-dessous :",infosNbDaysAdmin:"Cet abonnement est encore valable <b>pendant NB_DAYS jours</b>.",infosPaymentsAdmin:"DATE_PAYMENT : paiement de AMOUNT € au nom de CLIENT_NAME.",isNotValided:"Cet utilisateur n'a pas encore validé son compte.<br>Vous pouvez le faire à sa place <a href='#validationOk'>en cochant la case indiquée</a> et enregistrant.",mailEndFreeTimeBodyHTML:"<h3>Bonjour USER_NAME,</h3><p>Votre abonnement gratuit à SITE_NAME va expirer d'ici quelques jours.<br><br>Pour continuer à utiliser le site, vous pouvez souscrire à un abonnement sans tarder en cliquant sur le lien ci-dessous.</p>",mailEndFreeTimeBodyTxt:"Bonjour USER_NAME,\n\nVotre abonnement gratuit à SITE_NAME va expirer d'ici quelques jours.\n\nPour continuer à utiliser le site, vous pouvez sans attendre souscrire à un abonnement :\nLINK_URL",mailEndFreeTimeLinkTxt:"M'abonner.",mailEndFreeTimeMessage:" relances envoyées.",mailEndFreeTimeSubject:"Votre abonnement gratuit va expirer",mailExpirationBodyHTML:"<h3>Bonjour USER_NAME,</h3><p>Votre abonnement à SITE_NAME va expirer d'ici quelques jours.<br><br>Pour continuer à utiliser SITE_NAME, vous pouvez le prolonger dès aujourd'hui en cliquant sur le lien ci-dessous.</p>",mailExpirationBodyTxt:"Bonjour USER_NAME,\n\nVotre abonnement à SITE_NAME va expirer d'ici quelques jours.\n\nPour continuer à utiliser SITE_NAME, vous pouvez le prolonger dès aujourd'hui :\nLINK_URL",mailExpirationLinkTxt:"Prolonger mon abonnement.",mailExpirationMessage:"FIRST premières et SECOND deuxièmes relances envoyées pour des abonnements expirant d'ici peu.",mailExpirationRelaunchTxt:"[Rappel] ",mailExpirationSubject:"Votre abonnement va bientôt expirer",mailNewElementForGroupTxt:"Bonjour USER_NAME,\n\nVoici le lien vers le nouvel article à lire :\n\nQUESTIONNAIRE_URL\n\nBonne lecture !\n\nStopper les envois ?\nUNSUBSCRIBE_URL",mailNewQuestionnaireBodyTxt:"Bonjour USER_NAME,\n\nVoici le lien vers le nouveau quiz :\n\nQUESTIONNAIRE_URL\n\nBonne lecture !\n\nStopper les envois ?\nUNSUBSCRIBE_URL",mailStopMailLinkTxt:"Stopper les envois.",needKnowIfNoticeOk:"Il manque l'information sur l'acceptation ou non de recevoir des notifications.",needIntegerNumberOfDays:"Le nombre de jours de l'abonnement doit être un nombre entier.",needMinNumberOfDays:"Le nombre de jours de l'abonnement ne peut être négatif !",needNotTooLongDaysList:"La liste de jours sélectionnés n'a pas le bon format (trop longue).",needNumberOfDays:"Il faut un nombre de jours pour l'abonnement.",needUniqueDaysList:"La liste de jours sélectionnés n'a pas le bon format. Doublon : ",needValidDaysList:"La liste de jours sélectionnés n'a pas le bon format. Caractère non valide : ",noNewQuestionnaireForUser:"Aucun nouveau questionnaire trouvé pour un abonné : ",unsubscriptionOk:"Votre demande a bien été prise en compte. Vous ne recevrez plus de messages venant du site, sauf pour vous signaler la fin de votre abonnement.<br>N'hésitez pas <a href='/#URL'>à accéder à votre compte</a> pour de nouveau autoriser certains envois.",unsubscriptionFail:"Si vous voyez ce message, c'est que votre lien de désabonnement ne fonctionne pas.<br>Vous pouvez <a href='/#URL'>accéder à votre compte</a> pour désactiver les envois manuellement."}},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 n{static isEmpty(e){return null==e||""===(e+="").trim()}static trimIfNotNull(e){return n.isEmpty(e)?null:(e+="").trim()}static shortenIfLongerThan(e,n){return(e+="").length>n&&(e=e.substring(0,n-3)+"…"),e}static replaceAll(e,n){const t=new RegExp(Object.keys(n).join("|"),"gi");return e.replace(t,(e=>n[e]))}static getRandomInt(e,n){return e=Math.ceil(e),n=Math.floor(n),Math.floor(Math.random()*(n-e))+e}static dateFormat(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"fr";if(n.isEmpty(e))return"";let i=new Date(e),s=i.getDate()+"";1===s.length&&(s="0"+s);let r=i.getMonth()+1+"";1===r.length&&(r="0"+r);let o=i.getFullYear();return"fr"===t?s+"/"+r+"/"+o:"form"===t?o+"-"+r+"-"+s:r+"/"+s+"/"+o}static getPassword(e,n){const t=e+Math.floor(Math.random()*(n-e)),i="ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnpqrstuvwxyz",s="123456789!?.*-_%@&ÉÀÈÙ€$ÂÊÛÎ";let r=i[Math.floor(Math.random()*i.length)];for(let e=1;e<t-1;e++)r+=e%2==1?s[Math.floor(Math.random()*s.length)]:i[Math.floor(Math.random()*i.length)];return r+=i[Math.floor(Math.random()*i.length)],r}}e.exports=n},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 : « L’homme 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 l’article 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. C’est toujours <b>le contenu de l’article Wikipédia qui fait foi</b> concernant les « bonnes » réponses. C’est une façon de tester à la fois votre capacité d’attention et votre mémoire. Les articles de Wikipédia peuvent évoluer, donc n’hésitez pas <a href='/contact.html'>à me signaler une erreur</a>.</p><p><b>WikiLerni vous propose d’autres 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 d’articles est <b>suivie d’un 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,n,t){var i={"./fr/general":223};function s(e){var n=r(e);return t(n)}function r(e){if(!t.o(i,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return i[e]}s.keys=function(){return Object.keys(i)},s.resolve=r,e.exports=s,s.id=2111},7325:function(e,n,t){var i={"./fr/subscription":4055};function s(e){var n=r(e);return t(n)}function r(e){if(!t.o(i,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return i[e]}s.keys=function(){return Object.keys(i)},s.resolve=r,e.exports=s,s.id=7325},176:function(e,n,t){var i={"./fr/user":1494};function s(e){var n=r(e);return t(n)}function r(e){if(!t.o(i,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return i[e]}s.keys=function(){return Object.keys(i)},s.resolve=r,e.exports=s,s.id=176},9729:function(e,n,t){var i={"./default/config/fr.js":2095,"./wikilerni/config/fr.js":4326};function s(e){var n=r(e);return t(n)}function r(e){if(!t.o(i,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return i[e]}s.keys=function(){return Object.keys(i)},s.resolve=r,e.exports=s,s.id=9729}},n={};function t(i){var s=n[i];if(void 0!==s)return s.exports;var r=n[i]={exports:{}};return e[i](r,r.exports,t),r.exports}t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},function(){"use strict";var e=t(6028);const n=(e,n)=>{localStorage.setItem(e,JSON.stringify(n))},i=function(e){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return n?JSON.parse(localStorage.getItem(e)):localStorage.getItem(e)},s=e=>{localStorage.removeItem(e)};var r=t(9864);const o=function(e,n){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=!(arguments.length>6&&void 0!==arguments[6])||arguments[6];if((0,r.isEmpty)(n)||(0,r.isEmpty)(e))return!1;{const u=document.createElement(n);if((0,r.isEmpty)(i)||(u.id=i),Array.isArray(s)&&0!=s.length)for(let e in s)u.classList.add(s[e]);if("object"==typeof o)for(let e in o)u.setAttribute(e,o[e]);(0,r.isEmpty)(t)||(u.innerHTML=t.replace(/\n/g,"<br>")),a&&(e.innerHTML=""),e.appendChild(u)}};var a=t(671);const u=e.availableLangs[0],l=t(9729)("./"+e.theme+"/config/"+u+".js"),c=(e,t,i)=>{(0,r.isEmpty)(t)||n("message",t),(0,r.isEmpty)(i)||n("url",i),(0,r.isEmpty)(e)||window.location.assign(e)},d={CGV:document.getElementById("CGVOk"),abo1:document.getElementById("abo1"),abo2:document.getElementById("abo2"),abo3:document.getElementById("abo3"),abo4:document.getElementById("abo4")},m=document.getElementById("WPBtns"),p=e=>{for(let n in d)n!==e&&(d[n].checked=!1),m.style.display="none"},v={btn1:document.getElementById("WPBtn1"),btn2:document.getElementById("WPBtn2"),btn3:document.getElementById("WPBtn3"),btn4:document.getElementById("WPBtn4")},g=e=>{for(let n in v)v[n].style.display=n!==e?"none":"block"},h=e.availableLangs[0],b=t(9729)("./"+e.theme+"/config/"+h+".js"),{beginCodeGodfather:f}=t(6028),L=t(671),{serverError:E}=t(2111)("./"+h+"/general"),{infosUserNbGodChilds:M,infosUserNoGodchilds:T,needBeConnected:k}=t(176)("./"+h+"/user"),{infosExpirated:y,infosNbDays:S}=t(7325)("./"+h+"/subscription"),q=document.getElementById("crash"),x=document.getElementById("main-content"),N=document.getElementById("message"),I=document.getElementById("response"),U=document.getElementById("godfatherInfos"),z=document.getElementById("godchilds"),R=document.getElementById("subscribeInfos"),A=document.getElementById("subscribeIntro"),B=document.getElementById("accountUpdate"),P=document.getElementById("newPassword"),D=document.getElementById("godfatherEmail"),w=document.getElementById("godfatherCode");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]:[],o=arguments.length>1?arguments[1]:void 0,u=arguments.length>2?arguments[2]:void 0,d=arguments.length>3?arguments[3]:void 0;return new Promise(((m,p)=>{const v=i("user");if((0,r.isEmpty)(v))c(o,u,d),m(!1);else{const i=JSON.parse(v);if((0,r.isEmpty)(i.id)||(0,r.isEmpty)(i.token)||(0,r.isEmpty)(i.duration)||i.duration<Date.now())s("user"),c(o,u,d),m(!1);else{const r=new XMLHttpRequest;r.open("GET",e.apiUrl+a.userRoutes+a.checkLoginRoute+i.token),r.onload=()=>{let a=JSON.parse(r.responseText);if(200===r.status&&a.isValid&&null!=a.id)if(a.id===i.id)if(i.name=a.name,i.language=a.language,i.timeDifference=a.timeDifference,i.status=a.status,n("user",i),"user"===a.status&&a.nbDaysOk<=0){const n=e.siteUrl+"/"+l.accountPage;-1===window.location.href.indexOf(n)&&window.location.assign("/"+l.accountPage+"#subscribe"),m(!0)}else 0!==t.length&&-1===t.indexOf(a.status)?(c(o,u,d),m(!1)):m(!0);else s("user"),c(o,u,d),m(!1);else s("user"),c(o,u,d),m(!1)},r.onerror=()=>p(r.statusText),r.send()}}}))}(["user"],"/"+b.connectionPage,{message:k,color:"error"},window.location);if(t){x.style.display="block",void 0!==window.location.hash&&window.location.assign(window.location.hash),(0,r.isEmpty)(i("message"))||(o(N,"p",i("message",!0).message,"",[i("message",!0).color],"",!1),s("message"));const n=i("user",!0);n.status,((e,n)=>{for(let t in n.elements)if(!(0,r.isEmpty)(n.elements[t].id)){let i=n.elements[t].id;if(void 0!==e[i]){let n=document.getElementById(i);for(let t in e[i])n.setAttribute(t,e[i][t])}}})(L,B),P.value="";const t=()=>{const t=new XMLHttpRequest;t.open("GET",e.apiUrl+L.userRoutes+L.getUserInfos+n.id),t.onreadystatechange=function(){if(this.readyState==XMLHttpRequest.DONE){let e=JSON.parse(this.responseText);if(200===this.status&&null!=e.User&&null!=e.Subscription){for(let n in e.User)void 0!==B.elements[n]&&(!0!==e.User[n]&&!1!==e.User[n]?B.elements[n].value=e.User[n]:1==e.User[n]&&(B.elements[""+n].checked="checked"));for(let n in e.Subscription.receiptDays)B.elements["d"+e.Subscription.receiptDays[n]].checked="checked";D.innerHTML=e.User.email,w.innerHTML=f+e.User.id}const n=new Date(e.Subscription.createdAt).getTime();if(0!==e.Subscription.numberOfDays){U.style.display="block",R.style.display="block";const t=e.Subscription.numberOfDays-Math.round((Date.now()-n)/1e3/3600/24);t>0?o(A,"p",S.replace("NB_DAYS",t),"",["info"]):(o(A,"p",y.replace("NB_DAYS",t),"",["error"]),window.location.assign("#subscribe"))}}},t.setRequestHeader("Authorization","Bearer "+n.token),t.send()};t(),B.addEventListener("submit",(function(i){i.preventDefault(),I.innerHTML="";let s=(e=>{const n={},t=new FormData(e);for(let e of t.entries())n[e[0]]=e[1];return n})(B);s.receiptDays="";for(let e=1;e<=7;e++)void 0!==s["d"+e]&&(s.receiptDays+=""+e);s.timeDifference=(()=>{const e=-1*(new Date).getTimezoneOffset();return e>a.timeDifferenceMax||e<a.timeDifferenceMin?0:e})();const r=new XMLHttpRequest;void 0!==s.deleteOk?r.open("DELETE",e.apiUrl+L.userRoutes+"/"+n.id):r.open("PUT",e.apiUrl+L.userRoutes+L.updateUserInfos+n.id),r.onreadystatechange=function(){if(this.readyState==XMLHttpRequest.DONE){let e=JSON.parse(this.responseText);200===this.status&&null!=e.message?(Array.isArray(e.message)?e.message=e.message.join("<br>"):e.message=e.message,o(I,"p",e.message,"",["success"])):e.errors?(Array.isArray(e.errors)?e.errors=e.errors.join("<br>"):e.errors=E,o(I,"p",e.errors,"",["error"])):o(I,"p",E,"",["error"]),t()}},r.setRequestHeader("Content-Type","application/json"),r.setRequestHeader("Authorization","Bearer "+n.token),s&&(s.output="html",r.send(JSON.stringify(s)))}));const u=document.getElementById("abo9"),l=document.getElementById("abo18"),c=document.getElementById("abo36"),d=document.getElementById("abo54"),m=document.getElementById("CGVOk"),v=document.getElementById("WPBtns");v.style.display="none",u.addEventListener("change",(function(e){p("abo9")})),l.addEventListener("change",(function(e){p("abo18")})),c.addEventListener("change",(function(e){p("abo36")})),d.addEventListener("change",(function(e){p("abo54")})),m.addEventListener("change",(function(e){!0===m.checked?(v.style.display="block",!0===u.checked?g("btn9"):!0===l.checked?g("btn18"):!0===c.checked?g("btn36"):!0===d.checked?g("btn54"):(v.style.display="none",m.checked=!1)):v.style.display="none"}));const h=new XMLHttpRequest;h.open("GET",e.apiUrl+L.userRoutes+L.getGodChilds),h.onreadystatechange=function(){if(this.readyState==XMLHttpRequest.DONE){let e=JSON.parse(this.responseText),n="";if(200===this.status){const t=e.length;if(0===t)n=T;else{n=M.replace("#NB",t);for(let t in e)n+=e[t].name+" ("+e[t].email+") "}}o(z,"p",n,"",["info"])}},h.setRequestHeader("Authorization","Bearer "+n.token),h.send()}}catch(e){o(q,"p",E,"",["error"]),console.error(e)}})()}()}(); |