Integration of matomo with env vars

This commit is contained in:
guillaume 2018-07-27 18:08:09 +02:00
parent aa080a7506
commit ec59af3777
5 changed files with 92 additions and 1 deletions

View file

@ -144,6 +144,51 @@ Utils = {
}
});
},
setMatomo(data){
window._paq = window._paq || [];
window._paq.push(['setDoNotTrack', data.doNotTrack]);
if (data.withUserName){
window._paq.push(['setUserId', Meteor.user().username]);
}
window._paq.push(['trackPageView']);
window._paq.push(['enableLinkTracking']);
(function() {
window._paq.push(['setTrackerUrl', `${data.address}piwik.php`]);
window._paq.push(['setSiteId', data.siteId]);
const script = document.createElement('script');
Object.assign(script, {
id: 'scriptMatomo',
type: 'text/javascript',
async: 'true',
defer: 'true',
src: `${data.address}piwik.js`,
});
const s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(script, s);
})();
Session.set('matomo', true);
},
manageMatomo() {
const matomo = Session.get('matomo');
if (matomo === undefined){
Meteor.call('getMatomoConf', (err, data) => {
if (err && err.error[0] === 'var-not-exist'){
Session.set('matomo', false); // siteId || address server not defined
}
if (!err){
Utils.setMatomo(data);
}
});
} else if (matomo) {
window._paq.push(['trackPageView']);
}
},
};
// A simple tracker dependency that we invalidate every time the window is