First draft.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
(function () {
|
||||
var KEY = 'cookie_consent';
|
||||
var banner = document.getElementById('cookie-banner');
|
||||
if (!banner) return;
|
||||
updateStatus();
|
||||
|
||||
var consent = localStorage.getItem(KEY);
|
||||
if (!consent) banner.style.display = 'flex';
|
||||
|
||||
function dismiss() {
|
||||
banner.classList.add('fade-out');
|
||||
setTimeout(function () { banner.style.display = 'none'; }, 500);
|
||||
}
|
||||
|
||||
function updateStatus() {
|
||||
var el = document.getElementById('cookie-status');
|
||||
if (!el) return;
|
||||
var consent = localStorage.getItem(KEY);
|
||||
el.textContent = consent === 'accepted' ? el.dataset.accepted
|
||||
: consent === 'declined' ? el.dataset.declined
|
||||
: el.dataset.none;
|
||||
}
|
||||
|
||||
document.getElementById('cookie-accept').onclick = function () {
|
||||
localStorage.setItem(KEY, 'accepted');
|
||||
updateStatus();
|
||||
dismiss();
|
||||
window.dispatchEvent(new Event('cookieAccepted'));
|
||||
};
|
||||
|
||||
document.getElementById('cookie-decline').onclick = function () {
|
||||
localStorage.setItem(KEY, 'declined');
|
||||
updateStatus();
|
||||
dismiss();
|
||||
};
|
||||
|
||||
window.reopenCookieBanner = function () {
|
||||
localStorage.removeItem(KEY);
|
||||
updateStatus();
|
||||
banner.classList.remove('fade-out');
|
||||
banner.style.display = 'flex';
|
||||
};
|
||||
|
||||
window.addEventListener('cookieAccepted', function () {
|
||||
if (typeof window.trackVisit === 'function') window.trackVisit();
|
||||
});
|
||||
|
||||
if (localStorage.getItem(KEY) === 'accepted') {
|
||||
if (typeof window.trackVisit === 'function') window.trackVisit();
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,24 @@
|
||||
(function () {
|
||||
function trackVisit() {
|
||||
var banner = document.getElementById('cookie_banner');
|
||||
if (!banner) return;
|
||||
var matomoUrl = banner.dataset.matomoUrl;
|
||||
var siteId = banner.dataset.matomoSiteId;
|
||||
if (!matomoUrl || !siteId) return;
|
||||
|
||||
var _paq = window._paq = window._paq || [];
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
_paq.push(['setTrackerUrl', matomoUrl + 'matomo.php']);
|
||||
_paq.push(['setSiteId', siteId]);
|
||||
var d = document, g = d.createElement('script'),
|
||||
s = d.getElementsByTagName('script')[0];
|
||||
g.async = true; g.src = matomoUrl + 'matomo.js';
|
||||
s.parentNode.insertBefore(g, s);
|
||||
}
|
||||
|
||||
window.addEventListener('cookieAccepted', trackVisit);
|
||||
if (localStorage.getItem('cookie_consent') === 'accepted') {
|
||||
trackVisit();
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user