54 lines
1.9 KiB
JavaScript
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);
|
|
|