From 52ca53adb6d64b48ed62cd0e42f76a30741294b4 Mon Sep 17 00:00:00 2001 From: widlam Date: Wed, 22 Mar 2023 14:22:09 +0100 Subject: [PATCH] Refactor javascript move repeating javascript code to scripts.js file --- Frontend/assets/scripts/tools/scripts.js | 28 +++++ Frontend/assets/scripts/tools/xpath.js | 153 ----------------------- Frontend/assets/scripts/tools/xsd.js | 18 --- Frontend/tools/xpath.html | 143 ++++++++++++++++++++- Frontend/tools/xsd.html | 66 +++++++--- Frontend/tools/xslt.html | 50 ++------ 6 files changed, 231 insertions(+), 227 deletions(-) delete mode 100644 Frontend/assets/scripts/tools/xpath.js delete mode 100644 Frontend/assets/scripts/tools/xsd.js diff --git a/Frontend/assets/scripts/tools/scripts.js b/Frontend/assets/scripts/tools/scripts.js index 8b5fbaa..904fdbe 100644 --- a/Frontend/assets/scripts/tools/scripts.js +++ b/Frontend/assets/scripts/tools/scripts.js @@ -20,6 +20,34 @@ function clearDefaultContent(element, text) { } } +/** + * It returns the value of the element with id "processors". + * + * @function + * @name getProcessor + * @kind function + * @returns {any} + */ +function getProcessor() { + return document.getElementById("processors").value; +} + +/** + * It returns version of XSLT. + * + * @function + * @name getVersion + * @kind function + * @returns {"1.0" | "3.0"} + */ +function getVersion() { + if (getProcessor() == "xalan") { + return "1.0"; + } else { + return "3.0"; + } +} + /** * It clears all data fields. * diff --git a/Frontend/assets/scripts/tools/xpath.js b/Frontend/assets/scripts/tools/xpath.js deleted file mode 100644 index 4b8eaad..0000000 --- a/Frontend/assets/scripts/tools/xpath.js +++ /dev/null @@ -1,153 +0,0 @@ -import "../common/jquery-3.6.0.slim.min.js"; - -function processVersionSelector() { - var processor = getProcessor(); - var hideableOptions = document.getElementsByClassName("hideable"); - for (let i = 0; i < hideableOptions.length; i++) { - hideableOptions[i].style = "display: none;"; - } - if (processor == "xalan" || processor == "libxml") { - var xalanOptions = document.getElementsByClassName("xalan"); - for (let i = 0; i < xalanOptions.length; i++) { - xalanOptions[i].style = ""; - } - document.getElementById("versions").selectedIndex = 0; - } - else { - var saxonOptions = document.getElementsByClassName("saxon"); - for (let i = 0; i < saxonOptions.length; i++) { - saxonOptions[i].style = ""; - } - document.getElementById("versions").selectedIndex = 3; - - } - processTooltip(); - -} - -function processTooltip() { - var filter = "collapse" + getVersion(); - var collList; - console.log("filter: ", filter); - - - if (filter == "collapse3.0") { - document.getElementById("tooltipFunctionInfo").innerText = "XPath 1.0, 2.0 & 3.0 functions"; - showList(document.getElementsByName("collapse20")); - showList(document.getElementsByName("collapse30")); - hideList(document.getElementsByName("collapse31")); - console.log("collapsed 3.0"); - } else if (filter == "collapse3.1") { - document.getElementById("tooltipFunctionInfo").innerText = "XPath 1.0, 2.0, 3.0 & 3.1 functions"; - showList(document.getElementsByName("collapse20")); - showList(document.getElementsByName("collapse30")); - showList(document.getElementsByName("collapse31")); - console.log("collapsed 3.1"); - } else if (filter == "collapse2.0"){ - document.getElementById("tooltipFunctionInfo").innerText = "XPath 1.0 & 2.0 functions"; - showList(document.getElementsByName("collapse20")); - hideList(document.getElementsByName("collapse30")); - hideList(document.getElementsByName("collapse31")); - } else { - document.getElementById("tooltipFunctionInfo").innerText = "XPath 1.0 functions"; - hideList(document.getElementsByName("collapse20")); - hideList(document.getElementsByName("collapse30")); - hideList(document.getElementsByName("collapse31")); - - } -} - -function getVersion() { - return document.getElementById("versions").value; -} - -function getProcessor() { - return document.getElementById("processors").value; -} - -function getProcInfo() { - var processVariables = document.getElementById("processors").value + "&version=" + getVersion(); - return processVariables; -} - -var triggerList = document.getElementsByClassName("collapseTrigger"); - for (i = 0; i < triggerList.length; i++) { - console.log("trigger connected"); - triggerList[i].addEventListener("click", function () { - var collapsible = this.parentElement; - if (this.tagName == "A") { - var collapsibleData = this.nextElementSibling; - } else { - var collapsibleData = this.parentElement.nextElementSibling; - - } - - console.log(collapsibleData); - 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"; - } - } - }); - } - -function init() { - //Handle clicks in whole form and set info in tooltip - setDefaultContent(document.getElementById("xmlArea"), 'Insert XML here'); - setDefaultContent(document.getElementById("transformArea"), 'Insert XPath expression here'); - console.log("init"); - processVersionSelector(); - processTooltip(); - tool.addEventListener('change', event => { - //Check if script was called from textarea or selector - var targetID = event.target.getAttribute('id'); - if (targetID == "processors") { - processVersionSelector(); - processTooltip(); - } - else if (targetID == "versions") { - processTooltip(); - } - - - }) - tool.addEventListener('click', event => { - //Check if script was called from textarea or selector - var targetID = event.target.getAttribute('id'); - if (targetID !== "xmlArea" && targetID !== "transformArea") { - return; - } - processTooltip(); - - }) - tool.addEventListener('change', event => { - //Check if script was called from textarea or selector - var targetID = event.target.getAttribute('id'); - if (targetID !== "xmlArea" && targetID !== "transformArea") { - return; - } - processTooltip(); - }) -} diff --git a/Frontend/assets/scripts/tools/xsd.js b/Frontend/assets/scripts/tools/xsd.js deleted file mode 100644 index 2e9ee37..0000000 --- a/Frontend/assets/scripts/tools/xsd.js +++ /dev/null @@ -1,18 +0,0 @@ -function init() { - //Handle clicks in whole form and set info in tooltip - setDefaultContent(document.getElementById("xmlArea"), 'Insert XML here'); - setDefaultContent(document.getElementById("transformArea"), 'Insert XSD here'); - console.log("init"); - // 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(); - // console.log("clock"); - }) -} \ No newline at end of file diff --git a/Frontend/tools/xpath.html b/Frontend/tools/xpath.html index 876d3f5..90c2778 100644 --- a/Frontend/tools/xpath.html +++ b/Frontend/tools/xpath.html @@ -6,7 +6,6 @@ - @@ -3383,6 +3382,148 @@ + + diff --git a/Frontend/tools/xsd.html b/Frontend/tools/xsd.html index dc58317..42d32ae 100644 --- a/Frontend/tools/xsd.html +++ b/Frontend/tools/xsd.html @@ -5,7 +5,6 @@ - @@ -19,11 +18,11 @@
- - + +
+ + - + \ No newline at end of file diff --git a/Frontend/tools/xslt.html b/Frontend/tools/xslt.html index 90d0abe..c7c7fe9 100644 --- a/Frontend/tools/xslt.html +++ b/Frontend/tools/xslt.html @@ -18,12 +18,12 @@
- - + +
@@ -1135,17 +1136,10 @@ - - - - - -