Loading plugins/apparat_critique/apparat_critique.js +119 −103 Original line number Diff line number Diff line import {Plugin} from '../../core/ui/js/Plugin.js'; const PLUGIN_NAME = 'apparat'; class ApparatPlugin extends Plugin { Loading @@ -17,23 +18,27 @@ class ApparatPlugin extends Plugin{ } showWitness(witnessClass) { document.querySelectorAll(".apparat").each((e) => e.style.display = 'none'); document.querySelectorAll("." + witnessClass).each((e) => e.style.display = 'inline'); document.querySelectorAll(".apparat").forEach((e) => e.style.display = 'none'); document.querySelectorAll("." + witnessClass).forEach((e) => e.style.display = 'inline'); this.hideLacunas(witnessClass); } witnessTooltiping() { $('[data-witnesses]').each(function(){ var wlist = $(this).attr("data-witnesses").replace(" ",", "); $(this).attr("title", wlist); $(this).tooltip( { html:true, // allows html content content: "<div><em>Témoins:</em> "+wlist+"</div>" } ); }); document.querySelectorAll('[data-witness]').forEach((e) => { let wlist = e.getAttribute("data-witnesses").replace(" ", ", "); e.setAttribute("title", wlist); }) // $('[data-witnesses]').each(function(){ // var wlist = $(this).attr("data-witnesses").replace(" ",", "); // $(this).attr("title", wlist); // $(this).tooltip( // { // html:true, // allows html content // content: "<div><em>Témoins:</em> "+wlist+"</div>" // } // ); // }); } Loading @@ -44,22 +49,26 @@ class ApparatPlugin extends Plugin{ - Si la lacunaEnd n'existe pas (elle se trouve dans un autre fragment), l'intégralité du texte suivant est masqué */ var self = this; $('.lacunaStart').each(function(){ if($(this).attr('data-lacuna-wit').indexOf('\#'+witId)>-1){ document.querySelectorAll('.lacunaStart').forEach((lstart) => { if (lstart.getAttribute('data-lacuna-wit').indexOf('\#' + witId) > -1) { //on echappe les . et # de l'id cible de la lacunaEnd correspondante var searchedId = "#" + $(this).attr('data-lacuna-synch').replace(/([#.])/g,'\\$1') var endElement = $(searchedId) console.log('traitement de la lacuna '+ $(this).attr('id')); endElement = endElement.length === 0 ? $('#bas_de_page') : endElement var eltsBetween = $(self.getElementsBetweenTree(($(this))[0], endElement[0])) console.log("Nombre d'éléments à masquer (lacune "+$(this).attr('id')+")"+eltsBetween.length); eltsBetween.each(function(){ $(this).wrap("<span class='generated_lacuna'></span>") let searchedId = lstart.getAttribute('data-lacuna-synch');//.replace(/([#.])/g,'\\$1'); console.log("searchedid ", searchedId); let endElement = document.getElementById(searchedId); console.log('traitement de la lacuna ' + lstart.getAttribute('id')); endElement = endElement.length === 0 ? document.getElementById('bas_de_page') : endElement let eltsBetween = this.getElementsBetweenTree(lstart, endElement);//$(self.getElementsBetweenTree(($(this))[0], endElement[0])) console.log("Nombre d'éléments à masquer (lacune " + lstart.getAttribute('id') + ")" + eltsBetween.length); eltsBetween.forEach((elt) => { let span = document.createElement("span"); span.classList.add('generated_lacuna'); span.append(elt.cloneNode(true)); elt.replaceWith(span); }) } }) /*Cas où un couple lacunaStart/lacunaEnd se trouve respectivement dans des fragments qui précédent et suivent le fragment courant: nécessite une requête sur la DB pour accedéer aux autres noeuds XML*/ Loading @@ -67,9 +76,9 @@ class ApparatPlugin extends Plugin{ } getElementsBetweenTree(start, end) { var ancestor= this.getCommonAncestor(start, end); let ancestor = this.commonAncestor(start, end); var before= []; let before = []; while (start.parentNode !== ancestor) { var el = start; while (el.nextSibling) Loading @@ -91,17 +100,24 @@ class ApparatPlugin extends Plugin{ return before.concat(after); } // Get the innermost element that is an ancestor of two nodes. // getCommonAncestor(a, b) { var parents= $(a).parents().addBack(); while (b) { var ix= parents.index(b); if (ix!==-1) return b; b= b.parentNode; ancestors(node) { let nodes = [] for (; node; node = node.parentNode) { nodes.unshift(node) } return nodes } commonAncestor(node1, node2) { let parents1 = this.ancestors(node1) let parents2 = this.ancestors(node2) if (parents1[0] !== parents2[0]) throw "No common ancestor!" for (var i = 0; i < parents1.length; i++) { if (parents1[i] !== parents2[i]) return parents1[i - 1] } return null; } Loading Loading
plugins/apparat_critique/apparat_critique.js +119 −103 Original line number Diff line number Diff line import {Plugin} from '../../core/ui/js/Plugin.js'; const PLUGIN_NAME = 'apparat'; class ApparatPlugin extends Plugin { Loading @@ -17,23 +18,27 @@ class ApparatPlugin extends Plugin{ } showWitness(witnessClass) { document.querySelectorAll(".apparat").each((e) => e.style.display = 'none'); document.querySelectorAll("." + witnessClass).each((e) => e.style.display = 'inline'); document.querySelectorAll(".apparat").forEach((e) => e.style.display = 'none'); document.querySelectorAll("." + witnessClass).forEach((e) => e.style.display = 'inline'); this.hideLacunas(witnessClass); } witnessTooltiping() { $('[data-witnesses]').each(function(){ var wlist = $(this).attr("data-witnesses").replace(" ",", "); $(this).attr("title", wlist); $(this).tooltip( { html:true, // allows html content content: "<div><em>Témoins:</em> "+wlist+"</div>" } ); }); document.querySelectorAll('[data-witness]').forEach((e) => { let wlist = e.getAttribute("data-witnesses").replace(" ", ", "); e.setAttribute("title", wlist); }) // $('[data-witnesses]').each(function(){ // var wlist = $(this).attr("data-witnesses").replace(" ",", "); // $(this).attr("title", wlist); // $(this).tooltip( // { // html:true, // allows html content // content: "<div><em>Témoins:</em> "+wlist+"</div>" // } // ); // }); } Loading @@ -44,22 +49,26 @@ class ApparatPlugin extends Plugin{ - Si la lacunaEnd n'existe pas (elle se trouve dans un autre fragment), l'intégralité du texte suivant est masqué */ var self = this; $('.lacunaStart').each(function(){ if($(this).attr('data-lacuna-wit').indexOf('\#'+witId)>-1){ document.querySelectorAll('.lacunaStart').forEach((lstart) => { if (lstart.getAttribute('data-lacuna-wit').indexOf('\#' + witId) > -1) { //on echappe les . et # de l'id cible de la lacunaEnd correspondante var searchedId = "#" + $(this).attr('data-lacuna-synch').replace(/([#.])/g,'\\$1') var endElement = $(searchedId) console.log('traitement de la lacuna '+ $(this).attr('id')); endElement = endElement.length === 0 ? $('#bas_de_page') : endElement var eltsBetween = $(self.getElementsBetweenTree(($(this))[0], endElement[0])) console.log("Nombre d'éléments à masquer (lacune "+$(this).attr('id')+")"+eltsBetween.length); eltsBetween.each(function(){ $(this).wrap("<span class='generated_lacuna'></span>") let searchedId = lstart.getAttribute('data-lacuna-synch');//.replace(/([#.])/g,'\\$1'); console.log("searchedid ", searchedId); let endElement = document.getElementById(searchedId); console.log('traitement de la lacuna ' + lstart.getAttribute('id')); endElement = endElement.length === 0 ? document.getElementById('bas_de_page') : endElement let eltsBetween = this.getElementsBetweenTree(lstart, endElement);//$(self.getElementsBetweenTree(($(this))[0], endElement[0])) console.log("Nombre d'éléments à masquer (lacune " + lstart.getAttribute('id') + ")" + eltsBetween.length); eltsBetween.forEach((elt) => { let span = document.createElement("span"); span.classList.add('generated_lacuna'); span.append(elt.cloneNode(true)); elt.replaceWith(span); }) } }) /*Cas où un couple lacunaStart/lacunaEnd se trouve respectivement dans des fragments qui précédent et suivent le fragment courant: nécessite une requête sur la DB pour accedéer aux autres noeuds XML*/ Loading @@ -67,9 +76,9 @@ class ApparatPlugin extends Plugin{ } getElementsBetweenTree(start, end) { var ancestor= this.getCommonAncestor(start, end); let ancestor = this.commonAncestor(start, end); var before= []; let before = []; while (start.parentNode !== ancestor) { var el = start; while (el.nextSibling) Loading @@ -91,17 +100,24 @@ class ApparatPlugin extends Plugin{ return before.concat(after); } // Get the innermost element that is an ancestor of two nodes. // getCommonAncestor(a, b) { var parents= $(a).parents().addBack(); while (b) { var ix= parents.index(b); if (ix!==-1) return b; b= b.parentNode; ancestors(node) { let nodes = [] for (; node; node = node.parentNode) { nodes.unshift(node) } return nodes } commonAncestor(node1, node2) { let parents1 = this.ancestors(node1) let parents2 = this.ancestors(node2) if (parents1[0] !== parents2[0]) throw "No common ancestor!" for (var i = 0; i < parents1.length; i++) { if (parents1[i] !== parents2[i]) return parents1[i - 1] } return null; } Loading