🐛 Fix an incompatibility with prototype.js < 1.7.3.0

This commit is contained in:
Yohann bianchi 2018-09-11 10:38:01 +02:00
parent 4671f04aba
commit 842cec6dc8
1 changed files with 10 additions and 9 deletions

View File

@ -385,7 +385,7 @@ var tarteaucitron = {
// create a wrapper container at the same level than tarteaucitron so we can add an aria-hidden when tarteaucitron is opened // create a wrapper container at the same level than tarteaucitron so we can add an aria-hidden when tarteaucitron is opened
var wrapper = document.createElement('div'); var wrapper = document.createElement('div');
wrapper.id = "contentWrapper"; wrapper.id = "contentWrapper";
while (document.body.firstChild) while (document.body.firstChild)
{ {
wrapper.appendChild(document.body.firstChild); wrapper.appendChild(document.body.firstChild);
@ -456,7 +456,7 @@ var tarteaucitron = {
// create wrapper container // create wrapper container
var wrapper = document.createElement('div'); var wrapper = document.createElement('div');
wrapper.id = "contentWrapper"; wrapper.id = "contentWrapper";
while (document.body.firstChild) while (document.body.firstChild)
{ {
wrapper.appendChild(document.body.firstChild); wrapper.appendChild(document.body.firstChild);
@ -761,7 +761,7 @@ var tarteaucitron = {
} }
document.getElementById('contentWrapper').setAttribute("aria-hidden", "false"); document.getElementById('contentWrapper').setAttribute("aria-hidden", "false");
document.getElementsByTagName('body')[0].classList.remove('modal-open'); document.getElementsByTagName('body')[0].classList.remove('modal-open');
}, },
"focusTrap": function() { "focusTrap": function() {
"use strict"; "use strict";
@ -779,23 +779,23 @@ var tarteaucitron = {
if (focusableEls[i].offsetHeight > 0) { if (focusableEls[i].offsetHeight > 0) {
filtered.push(focusableEls[i]); filtered.push(focusableEls[i]);
} }
} }
firstFocusableEl = filtered[0]; firstFocusableEl = filtered[0];
lastFocusableEl = filtered[filtered.length - 1]; lastFocusableEl = filtered[filtered.length - 1];
//loop focus inside tarteaucitron //loop focus inside tarteaucitron
document.getElementById('tarteaucitron').addEventListener("keydown", function (evt) { document.getElementById('tarteaucitron').addEventListener("keydown", function (evt) {
if ( evt.key === 'Tab' || evt.keyCode === 9 ) { if ( evt.key === 'Tab' || evt.keyCode === 9 ) {
if ( evt.shiftKey ) /* shift + tab */ { if ( evt.shiftKey ) /* shift + tab */ {
if (document.activeElement === firstFocusableEl) { if (document.activeElement === firstFocusableEl) {
lastFocusableEl.focus(); lastFocusableEl.focus();
evt.preventDefault(); evt.preventDefault();
} }
} else /* tab */ { } else /* tab */ {
if (document.activeElement === lastFocusableEl) { if (document.activeElement === lastFocusableEl) {
firstFocusableEl.focus(); firstFocusableEl.focus();
evt.preventDefault(); evt.preventDefault();
} }
@ -877,7 +877,8 @@ var tarteaucitron = {
allDivs = main.childNodes; allDivs = main.childNodes;
if (typeof Array.prototype.map === 'function') { if (typeof Array.prototype.map === 'function') {
Array.prototype.map.call(main.children, Object).sort(function (a, b) { var mainChildren = Array.from(main.children);
mainChildren.sort(function (a, b) {
if (tarteaucitron.services[a.id.replace(/Line/g, '')].name > tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return 1; } if (tarteaucitron.services[a.id.replace(/Line/g, '')].name > tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return 1; }
if (tarteaucitron.services[a.id.replace(/Line/g, '')].name < tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return -1; } if (tarteaucitron.services[a.id.replace(/Line/g, '')].name < tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return -1; }
return 0; return 0;