basic-business-template/assets/js/components/cookies-consent.js

77 lines
3.0 KiB
JavaScript
Raw Normal View History

2024-01-11 18:15:48 +00:00
document.addEventListener('DOMContentLoaded', function () {
const modalCookieSettingsElement = document.querySelector('#modal-cookie-settings');
let cookieSettings = document.getElementById("cookie-settings");
2024-01-11 18:15:48 +00:00
if (document.cookie.indexOf('cookies-consent') === -1) {
cookieSettings.style.bottom = '0%';
2024-01-11 16:35:40 +00:00
setTimeout(() => { cookieSettings.style.bottom = '0%'; }, 0);
2024-01-11 18:15:48 +00:00
}
document.querySelectorAll('.btn-cookies-consent').forEach(button => {
button.addEventListener('click', function (event) {
event.preventDefault();
let cookiesLevel = this.getAttribute('data-cookies');
if (cookiesLevel !== null) {
document.cookie = `cookies-consent=${cookiesLevel};max-age=${365 * 24 * 60 * 60}`;
} else {
cookiesLevel = "";
const checkFunctionalCookies = document.getElementById('functional-cookies');
const checkAnalyticsCookies = document.getElementById('analytics-cookies');
const checkProfileCookies = document.getElementById('profile-cookies');
if (checkFunctionalCookies.checked) cookiesLevel += "1";
else cookiesLevel += "0";
if (checkAnalyticsCookies.checked) cookiesLevel += "1";
else cookiesLevel += "0";
if (checkProfileCookies.checked) cookiesLevel += "1";
else cookiesLevel += "0";
document.cookie = `cookies-consent=${cookiesLevel};max-age=${365 * 24 * 60 * 60}`;
}
2024-01-11 18:15:48 +00:00
const modal = bootstrap.Modal.getInstance(modalCookieSettingsElement);
if (modal) modal.hide();
2024-01-11 18:15:48 +00:00
if (cookieSettings) setTimeout(() => {
cookieSettings.style.transition = "bottom 1s";
cookieSettings.style.bottom = '-100%';
2024-01-11 18:15:48 +00:00
}, 1000);
});
2024-01-11 18:15:48 +00:00
});
modalCookieSettingsElement.addEventListener('shown.bs.modal', event => {
const checkFunctionalCookies = document.getElementById('functional-cookies');
const checkAnalyticsCookies = document.getElementById('analytics-cookies');
const checkProfileCookies = document.getElementById('profile-cookies');
let cookiesConsent = getCookie('cookies-consent');
if (cookiesConsent[0] == 1) checkFunctionalCookies.checked = true;
else checkFunctionalCookies.checked = false;
if (cookiesConsent[1] == 1) checkAnalyticsCookies.checked = true;
else checkAnalyticsCookies.checked = false;
if (cookiesConsent[2] == 1) checkProfileCookies.checked = true;
else checkProfileCookies.checked = false;
});
});
function getCookie(cookieName) {
const cookies = document.cookie;
const cookiesArray = cookies.split('; ');
for (let i = 0; i < cookiesArray.length; i++) {
const cookie = cookiesArray[i];
const [cookieKey, cookieValue] = cookie.split('=');
if (cookieKey.trim() === cookieName) return decodeURIComponent(cookieValue);
}
2024-01-11 18:15:48 +00:00
return null;
}