Let's hope everything works as before or better. Co-authored-by: Adam Bem <adam.bem@zoho.eu> Reviewed-on: #191 Reviewed-by: Mikolaj Widla <widlam@noreply.example.com>
100 lines
3.7 KiB
JavaScript
100 lines
3.7 KiB
JavaScript
/**
|
|
* The `processTooltip()` function is responsible for updating the display of the tooltip based on the selected version of the processor.
|
|
* It shows or hides different sections of the tooltip based on the selected version.
|
|
* It also handles the click event on the form and updates the tooltip accordingly.
|
|
*
|
|
* @function
|
|
* @name processTooltip
|
|
* @kind function
|
|
*/
|
|
function processTooltip() {
|
|
|
|
if (getProcessor() == "xalan" || getProcessor() == "libxml") {
|
|
document.getElementById("tooltipFunctionInfo").innerText = "XSLT 1.0 functions";
|
|
document.getElementById("processorTooltipInfo").innerText = "Supports XSLT 1.0";
|
|
hideList(document.getElementsByName("collapse30"));
|
|
} else {
|
|
document.getElementById("tooltipFunctionInfo").innerText = "XSLT 1.0, 2.0 & 3.0 functions";
|
|
document.getElementById("processorTooltipInfo").innerText = "Supports XSLT up to 3.0";
|
|
showList(document.getElementsByName("collapse30"));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* This function is executed after the page is loaded.
|
|
*
|
|
* @function
|
|
* @name init
|
|
* @kind function
|
|
*/
|
|
function init() {
|
|
// Make sure that only plain text is pasted
|
|
configurePastingInElement("xmlArea");
|
|
configurePastingInElement("transformArea");
|
|
|
|
//Handle clicks in whole form and set info in tooltip
|
|
setDefaultContent(document.getElementById("xmlArea"), 'Insert XML here');
|
|
setDefaultContent(document.getElementById("transformArea"), 'Insert XSLT here');
|
|
|
|
// refreshTooltip();
|
|
processTooltip();
|
|
tool.addEventListener('click', event => {
|
|
//Check if script was called from textarea or selector
|
|
var targetID = event.target.getAttribute('id');
|
|
if (targetID !== "processors" && targetID !== "xmlArea" && targetID !== "transformArea" && targetID !== "versions") {
|
|
return;
|
|
}
|
|
|
|
processTooltip();
|
|
})
|
|
|
|
tool.addEventListener('change', event => {
|
|
//Check if script was called from textarea or selector
|
|
var targetID = event.target.getAttribute('id');
|
|
if (targetID !== "processors") {
|
|
return;
|
|
}
|
|
|
|
processTooltip();
|
|
|
|
})
|
|
|
|
var triggerList = document.getElementsByClassName("collapseTrigger");
|
|
for (i = 0; i < triggerList.length; i++) {
|
|
|
|
triggerList[i].addEventListener("click", function () {
|
|
|
|
var collapsible = this.parentElement;
|
|
var collapsibleData = this.nextElementSibling;
|
|
if (collapsibleData.style.maxHeight > "0px") {
|
|
collapsibleData.style.maxHeight = "0px";
|
|
|
|
this.classList.toggle("active", false);
|
|
if (!this.classList.contains("collapsibleMini")) {
|
|
collapsible.classList.toggle("active", false);
|
|
}
|
|
|
|
var subLists1 = collapsibleData.getElementsByClassName("content");
|
|
var subLists2 = collapsibleData.getElementsByClassName("active");
|
|
for (j = 0; j < subLists1.length; j++) {
|
|
subLists1[j].style.maxHeight = "0px";
|
|
}
|
|
for (j = 0; j < subLists2.length; j++) {
|
|
subLists2[j].classList.toggle("active", false);
|
|
}
|
|
} else {
|
|
collapsibleData.style.maxHeight = (collapsibleData.scrollHeight) + "px";
|
|
|
|
this.classList.toggle("active", true);
|
|
if (!this.classList.contains("collapsibleMini")) {
|
|
collapsible.classList.toggle("active", true);
|
|
} else {
|
|
var parentContent = this.closest(".content");
|
|
parentContent.style.maxHeight = (parentContent.scrollHeight + collapsibleData.scrollHeight) + "px";
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
} |