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";
 | 
						|
                }
 | 
						|
            }
 | 
						|
        });
 | 
						|
    }
 | 
						|
 | 
						|
} |