arcusiridis/isableFastRender/js/matomo.js
2019-07-25 12:46:57 +05:30

54 lines
1.9 KiB
JavaScript

{{- $host := $.Site.Params.matomo.host -}}
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="{{ $host }}/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '{{ $.Site.Params.matomo.site_id | default 1 }}']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
function ajax(url) {
return new Promise(function(resolve, reject){
var req = new XMLHttpRequest();
req.open("GET", url, true);
req.withCredentials = true;
req.onload = function() {
var status = req.status;
if (status === 200)
resolve(req.response);
else
reject(status);
};
req.send(null);
});
}
function isTracked(data) {
var dom = (new DOMParser()).parseFromString(data, "application/xml");
return dom.getElementsByTagName("result")[0].innerHTML === "1"
}
function updateAnalyticsText() {
ajax('{{ $host | safeJS }}/index.php?module=API&method=AjaxOptOut.isTracked')
.then(function(data){
console.log("Update: " + isTracked(data));
document.getElementById("toggle-tracking").innerText = isTracked(data) ? "{{ i18n "optOut" | title }}" : "{{ i18n "optIn" | title }}";
});
}
function toggleHandler(event) {
event.preventDefault();
event.stopPropagation();
ajax("{{ $host | safeJS }}/index.php?module=API&method=AjaxOptOut.isTracked")
.then(function(data) {
console.log("Toggle: " + isTracked(data));
ajax('{{ $host | safeJS }}/index.php?module=API&method=AjaxOptOut.do' + (isTracked(data) ? 'Ignore' : 'Track')).then(updateAnalyticsText);
});
}
document.getElementById("toggle-tracking").addEventListener("click", toggleHandler);
window.addEventListener("load", updateAnalyticsText);