Merge pull request #436 from Manoz/fix/duplicate-code

[Enhancement] Duplicate code
This commit is contained in:
Amauri CHAMPEAUX 2020-04-18 15:34:26 +02:00 committed by GitHub
commit de701ba421
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 96 additions and 104 deletions

View File

@ -42,128 +42,37 @@ var tarteaucitron = {
alreadyLaunch = 1;
if (window.addEventListener) {
window.addEventListener("load", function () {
tarteaucitron.load();
tarteaucitron.fallback(['tarteaucitronOpenPanel'], function (elem) {
elem.addEventListener("click", function (event) {
tarteaucitron.userInterface.openPanel();
event.preventDefault();
}, false);
}, true);
tarteaucitron.initEvents.loadEvent(false);
}, false);
window.addEventListener("scroll", function () {
var scrollPos = window.pageYOffset || document.documentElement.scrollTop,
heightPosition;
if (document.getElementById('tarteaucitronAlertBig') !== null && !tarteaucitron.highPrivacy) {
if (document.getElementById('tarteaucitronAlertBig').style.display === 'block') {
heightPosition = document.getElementById('tarteaucitronAlertBig').offsetHeight + 'px';
if (scrollPos > (screen.height * 2)) {
tarteaucitron.userInterface.respondAll(true);
} else if (scrollPos > (screen.height / 2)) {
document.getElementById('tarteaucitronDisclaimerAlert').innerHTML = '<strong>' + tarteaucitron.lang.alertBigScroll + '</strong> ' + tarteaucitron.lang.alertBig;
}
if (tarteaucitron.orientation === 'top') {
document.getElementById('tarteaucitronPercentage').style.top = heightPosition;
} else {
document.getElementById('tarteaucitronPercentage').style.bottom = heightPosition;
}
document.getElementById('tarteaucitronPercentage').style.width = ((100 / (screen.height * 2)) * scrollPos) + '%';
}
}
tarteaucitron.initEvents.scrollEvent();
}, false);
window.addEventListener("keydown", function (evt) {
if (evt.keyCode === 27) {
tarteaucitron.userInterface.closePanel();
}
tarteaucitron.initEvents.keydownEvent(false, evt);
}, false);
window.addEventListener("hashchange", function () {
if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') {
tarteaucitron.userInterface.openPanel();
}
tarteaucitron.initEvents.hashchangeEvent();
}, false);
window.addEventListener("resize", function () {
if (document.getElementById('tarteaucitron') !== null) {
if (document.getElementById('tarteaucitron').style.display === 'block') {
tarteaucitron.userInterface.jsSizing('main');
}
}
if (document.getElementById('tarteaucitronCookiesListContainer') !== null) {
if (document.getElementById('tarteaucitronCookiesListContainer').style.display === 'block') {
tarteaucitron.userInterface.jsSizing('cookie');
}
}
tarteaucitron.initEvents.resizeEvent();
}, false);
} else {
window.attachEvent("onload", function () {
tarteaucitron.load();
tarteaucitron.fallback(['tarteaucitronOpenPanel'], function (elem) {
elem.attachEvent("onclick", function (event) {
tarteaucitron.userInterface.openPanel();
event.preventDefault();
});
}, true);
tarteaucitron.initEvents.loadEvent(true);
});
window.attachEvent("onscroll", function () {
var scrollPos = window.pageYOffset || document.documentElement.scrollTop,
heightPosition;
if (document.getElementById('tarteaucitronAlertBig') !== null && !tarteaucitron.highPrivacy) {
if (document.getElementById('tarteaucitronAlertBig').style.display === 'block') {
heightPosition = document.getElementById('tarteaucitronAlertBig').offsetHeight + 'px';
if (scrollPos > (screen.height * 2)) {
tarteaucitron.userInterface.respondAll(true);
} else if (scrollPos > (screen.height / 2)) {
document.getElementById('tarteaucitronDisclaimerAlert').innerHTML = '<strong>' + tarteaucitron.lang.alertBigScroll + '</strong> ' + tarteaucitron.lang.alertBig;
}
if (tarteaucitron.orientation === 'top') {
document.getElementById('tarteaucitronPercentage').style.top = heightPosition;
} else {
document.getElementById('tarteaucitronPercentage').style.bottom = heightPosition;
}
document.getElementById('tarteaucitronPercentage').style.width = ((100 / (screen.height * 2)) * scrollPos) + '%';
}
}
tarteaucitron.initEvents.scrollEvent();
});
window.attachEvent("onkeydown", function (evt) {
if (evt.keyCode === 27) {
tarteaucitron.userInterface.closePanel();
}
if ( evt.keyCode === 9 && focusableEls.indexOf(evt.target) >= 0) {
if ( evt.shiftKey ) /* shift + tab */ {
if (document.activeElement === firstFocusableEl) {
lastFocusableEl.focus();
evt.preventDefault();
}
} else /* tab */ {
if (document.activeElement === lastFocusableEl) {
firstFocusableEl.focus();
evt.preventDefault();
}
}
}
tarteaucitron.initEvents.keydownEvent(true, evt);
});
window.attachEvent("onhashchange", function () {
if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') {
tarteaucitron.userInterface.openPanel();
}
tarteaucitron.initEvents.hashchangeEvent();
});
window.attachEvent("onresize", function () {
if (document.getElementById('tarteaucitron') !== null) {
if (document.getElementById('tarteaucitron').style.display === 'block') {
tarteaucitron.userInterface.jsSizing('main');
}
}
if (document.getElementById('tarteaucitronCookiesListContainer') !== null) {
if (document.getElementById('tarteaucitronCookiesListContainer').style.display === 'block') {
tarteaucitron.userInterface.jsSizing('cookie');
}
}
tarteaucitron.initEvents.resizeEvent();
});
}
@ -200,6 +109,89 @@ var tarteaucitron = {
tarteaucitron.events.init();
}
},
"initEvents": {
"loadEvent": function (isOldBrowser) {
tarteaucitron.load();
tarteaucitron.fallback(['tarteaucitronOpenPanel'], function (elem) {
if (isOldBrowser) {
elem.attachEvent("onclick", function (event) {
tarteaucitron.userInterface.openPanel();
event.preventDefault();
});
} else {
elem.addEventListener("click", function (event) {
tarteaucitron.userInterface.openPanel();
event.preventDefault();
}, false);
}
}, true);
},
"keydownEvent": function (isOldBrowser, evt) {
if (evt.keyCode === 27) {
tarteaucitron.userInterface.closePanel();
}
if (isOldBrowser) {
if ( evt.keyCode === 9 && focusableEls.indexOf(evt.target) >= 0) {
if ( evt.shiftKey ) /* shift + tab */ {
if (document.activeElement === firstFocusableEl) {
lastFocusableEl.focus();
evt.preventDefault();
}
} else /* tab */ {
if (document.activeElement === lastFocusableEl) {
firstFocusableEl.focus();
evt.preventDefault();
}
}
}
}
},
"hashchangeEvent": function () {
if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') {
tarteaucitron.userInterface.openPanel();
}
},
"resizeEvent": function () {
var tacElem = document.getElementById('tarteaucitron');
var tacCookieContainer = document.getElementById('tarteaucitronCookiesListContainer');
if (tacElem && tacElem.style.display === 'block') {
tarteaucitron.userInterface.jsSizing('main');
}
if (tacCookieContainer && tacCookieContainer.style.display === 'block') {
tarteaucitron.userInterface.jsSizing('cookie');
}
},
"scrollEvent": function () {
var scrollPos = window.pageYOffset || document.documentElement.scrollTop;
var heightPosition;
var tacPercentage = document.getElementById('tarteaucitronPercentage');
var tacAlertBig = document.getElementById('tarteaucitronAlertBig');
if (tacAlertBig && !tarteaucitron.highPrivacy) {
if (tacAlertBig.style.display === 'block') {
heightPosition = tacAlertBig.offsetHeight + 'px';
if (scrollPos > (screen.height * 2)) {
tarteaucitron.userInterface.respondAll(true);
} else if (scrollPos > (screen.height / 2)) {
document.getElementById('tarteaucitronDisclaimerAlert').innerHTML = '<strong>' + tarteaucitron.lang.alertBigScroll + '</strong> ' + tarteaucitron.lang.alertBig;
}
if (tacPercentage) {
if (tarteaucitron.orientation === 'top') {
tacPercentage.style.top = heightPosition;
} else {
tacPercentage.style.bottom = heightPosition;
}
tacPercentage.style.width = ((100 / (screen.height * 2)) * scrollPos) + '%';
}
}
}
},
},
"load": function () {
"use strict";
var cdn = tarteaucitron.cdn,
@ -225,7 +217,7 @@ var tarteaucitron = {
"useExternalJs": false
},
params = tarteaucitron.parameters;
// Don't show the middle bar if we are on the privacy policy page
if (window.location.href == tarteaucitron.parameters.privacyUrl && tarteaucitron.parameters.orientation == "middle") {
tarteaucitron.parameters.orientation = "bottom";
@ -457,7 +449,7 @@ var tarteaucitron = {
document.body.appendChild(wrapper);*/
div.id = 'tarteaucitronRoot';
if (tarteaucitron.parameters.bodyPosition === 'top') {
if (tarteaucitron.parameters.bodyPosition === 'top') {
// Prepend tarteaucitron: #tarteaucitronRoot first-child of the body for better accessibility
var bodyFirstChild = body.firstChild;
body.insertBefore(div, bodyFirstChild);
@ -536,7 +528,7 @@ var tarteaucitron = {
html += '<div id="tarteaucitronPremium"></div>';
div.id = 'tarteaucitronRoot';
if (tarteaucitron.parameters.bodyPosition === 'top') {
if (tarteaucitron.parameters.bodyPosition === 'top') {
// Prepend tarteaucitron: #tarteaucitronRoot first-child of the body for better accessibility
var bodyFirstChild = body.firstChild;
body.insertBefore(div, bodyFirstChild);