From d6c0f7db3a8445fa8ed7e5d27d1181c96654c293 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20PENHO=C3=8BT?= Date: Thu, 13 Aug 2020 12:12:29 +0200 Subject: [PATCH] =?UTF-8?q?Revue=20int=C3=A9gration=20Matomo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/matomo.js | 7 +++++++ front/src/connection.js | 2 ++ front/src/deleteValidation.js | 3 ++- front/src/index.js | 32 ++---------------------------- front/src/questionnaire.js | 3 +++ front/src/subscribe.js | 2 ++ front/src/subscribeValidation.js | 2 ++ front/src/tools/matomo.js | 34 ++++++++++++++++++++++++++++++++ 8 files changed, 54 insertions(+), 31 deletions(-) create mode 100644 config/matomo.js create mode 100644 front/src/tools/matomo.js diff --git a/config/matomo.js b/config/matomo.js new file mode 100644 index 0000000..f191859 --- /dev/null +++ b/config/matomo.js @@ -0,0 +1,7 @@ +// Si non utilisé, supprimer l'appel des JS front-end puis recompiler. +// Revoir comment réorganiser cela sous-forme de module indépendant. +module.exports = +{ + // Stats Matomo : + matomo: { url: "https://stats.le-fab-lab.com/", siteId: "5" }, +}; \ No newline at end of file diff --git a/front/src/connection.js b/front/src/connection.js index 65e2ff8..d43a4f6 100644 --- a/front/src/connection.js +++ b/front/src/connection.js @@ -18,6 +18,7 @@ import { addElement } from "./tools/dom.js"; import { helloDev } from "./tools/everywhere.js"; import { getDatasFromInputs } from "./tools/forms.js"; import { isEmpty } from "../../tools/main"; +import { loadMatomo } from "./tools/matomo.js"; import { checkAnswerDatas, checkSession, getTimeDifference, setSession } from "./tools/users.js"; // Dictionnaires : @@ -47,6 +48,7 @@ const initialise = async () => } else { + loadMatomo(); myForm.style.display="block"; if(!isEmpty(getLocaly("message"))) { diff --git a/front/src/deleteValidation.js b/front/src/deleteValidation.js index d19d93a..5d787f1 100644 --- a/front/src/deleteValidation.js +++ b/front/src/deleteValidation.js @@ -12,6 +12,7 @@ const configFrontEnd = require("../../views/"+theme+"/config/"+lang+".js"); import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; import { helloDev } from "./tools/everywhere.js"; +import { loadMatomo } from "./tools/matomo.js"; import { getUrlParams } from "./tools/url.js"; import { checkSession, getConfig, setSession } from "./tools/users.js"; @@ -32,7 +33,7 @@ const initialise = async () => if(!config) addElement(divResponse, "p", txt.serverError, "", ["error"]); else - { + { const datas=getUrlParams(); if(datas && datas.t!==undefined) { diff --git a/front/src/index.js b/front/src/index.js index 635b38f..c6d7373 100644 --- a/front/src/index.js +++ b/front/src/index.js @@ -8,6 +8,7 @@ const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); import { getLocaly } from "./tools/clientstorage.js"; import { helloDev, updateAccountLink } from "./tools/everywhere.js"; +import { loadMatomo } from "./tools/matomo.js"; import { checkSession } from "./tools/users.js"; helloDev(); @@ -25,36 +26,7 @@ const initialise = async () => updateAccountLink(user.status, configTemplate); } else - { - // chargement de matomo - var _paq = window._paq = window._paq || []; - //ajout cnil : - _paq.push([function() - { - var self = this; - function getOriginalVisitorCookieTimeout() - { - var now = new Date(), - nowTs = Math.round(now.getTime() / 1000), - visitorInfo = self.getVisitorInfo(); - var createTs = parseInt(visitorInfo[2]); - var cookieTimeout = 33696000; // 13 mois en secondes - var originalTimeout = createTs + cookieTimeout - nowTs; - return originalTimeout; - } - this.setVisitorCookieTimeout( getOriginalVisitorCookieTimeout() ); - }]); - //--fin ajout cnil - _paq.push(['trackPageView']); - _paq.push(['enableLinkTracking']); - (function() { - var u="https://stats.le-fab-lab.com/"; - _paq.push(['setTrackerUrl', u+'matomo.php']); - _paq.push(['setSiteId', '5']); - var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; - g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); - })(); - } + loadMatomo(); } catch(e) { diff --git a/front/src/questionnaire.js b/front/src/questionnaire.js index 09f1c6e..ed2c4b9 100644 --- a/front/src/questionnaire.js +++ b/front/src/questionnaire.js @@ -17,6 +17,7 @@ import { helloDev, updateAccountLink } from "./tools/everywhere.js"; import { getLocaly } from "./tools/clientstorage.js"; import { getDatasFromInputs } from "./tools/forms.js"; import { dateFormat, replaceAll } from "../../tools/main"; +import { loadMatomo } from "./tools/matomo.js"; import { checkSession, getTimeDifference } from "./tools/users.js"; // Dictionnaires : @@ -45,6 +46,8 @@ const initialise = async () => updateAccountLink(user.status, configTemplate);// lien vers le compte adapté pour les utilisateurs connectés checkPreviousResponses(user); } + else + loadMatomo(); } catch(e) { diff --git a/front/src/subscribe.js b/front/src/subscribe.js index 311a716..8b7ba3a 100644 --- a/front/src/subscribe.js +++ b/front/src/subscribe.js @@ -15,6 +15,7 @@ import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; import { helloDev } from "./tools/everywhere.js"; import { getDatasFromInputs, setAttributesToInputs } from "./tools/forms.js"; +import { loadMatomo } from "./tools/matomo.js"; import { checkAnswerDatas, checkSession, getPassword, getTimeDifference } from "./tools/users.js"; // Dictionnaires : @@ -49,6 +50,7 @@ const initialise = async () => } else { + loadMatomo(); setAttributesToInputs(configUsers, myForm); myForm.style.display="block"; } diff --git a/front/src/subscribeValidation.js b/front/src/subscribeValidation.js index d99bec9..0e07532 100644 --- a/front/src/subscribeValidation.js +++ b/front/src/subscribeValidation.js @@ -16,6 +16,7 @@ const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); import { getLocaly, saveLocaly } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; import { helloDev } from "./tools/everywhere.js"; +import { loadMatomo } from "./tools/matomo.js"; import { getUrlParams } from "./tools/url.js"; import { checkSession } from "./tools/users.js"; @@ -40,6 +41,7 @@ const initialise = async () => } else { + loadMatomo(); const datas=getUrlParams(); if(datas && datas.t!==undefined) { diff --git a/front/src/tools/matomo.js b/front/src/tools/matomo.js new file mode 100644 index 0000000..0c155bf --- /dev/null +++ b/front/src/tools/matomo.js @@ -0,0 +1,34 @@ +import { matomo } from "../../../config/matomo.js"; + +// Fonction chargeant le code matomo +export const loadMatomo = () => +{ + // chargement de matomo + var _paq = window._paq = window._paq || []; + //ajout cnil : + _paq.push([function() + { + var self = this; + function getOriginalVisitorCookieTimeout() + { + var now = new Date(), + nowTs = Math.round(now.getTime() / 1000), + visitorInfo = self.getVisitorInfo(); + var createTs = parseInt(visitorInfo[2]); + var cookieTimeout = 33696000; // 13 mois en secondes + var originalTimeout = createTs + cookieTimeout - nowTs; + return originalTimeout; + } + this.setVisitorCookieTimeout( getOriginalVisitorCookieTimeout() ); + }]); + //--fin ajout cnil + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u=matomo.url; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', matomo.siteId]); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); +} \ No newline at end of file