125 lines
3.1 KiB
JavaScript
125 lines
3.1 KiB
JavaScript
const tools = new Map();
|
|
|
|
/**
|
|
* This functions imports other js file. I hate this solution, but other didn't work.
|
|
*
|
|
* @function
|
|
* @name importScript
|
|
* @kind function
|
|
* @param {any} url
|
|
* @returns {void}
|
|
*/
|
|
function importScript(url) {
|
|
var script = document.createElement("script");
|
|
script.src = url;
|
|
document.head.appendChild(script);
|
|
}
|
|
|
|
/**
|
|
* Get address of Mock Services
|
|
*
|
|
* @function
|
|
* @name getMockHost
|
|
* @kind function
|
|
* @returns {string}
|
|
*/
|
|
function getMockHost() {
|
|
return window.location.protocol + "//" + window.location.hostname + ":8097";
|
|
}
|
|
|
|
/**
|
|
* Function called after page is loaded
|
|
*
|
|
* @function
|
|
* @name init
|
|
* @kind function
|
|
* @returns {void}
|
|
*/
|
|
function init() {
|
|
|
|
tools.set("xpath", "tools/xpath.html");
|
|
tools.set("xsd", "tools/xsd.html");
|
|
tools.set("xslt", "tools/xslt.html");
|
|
tools.set("xmlform", "tools/xmlFormatter.html");
|
|
tools.set("jsonform", "tools/jsonFormatter.html");
|
|
tools.set("mock", "tools/mock.html");
|
|
|
|
changeActiveTools('XML');
|
|
loadLastPage();
|
|
}
|
|
|
|
/**
|
|
* Function that updates list of tools depending on chosen category
|
|
*
|
|
* @function
|
|
* @name changeActiveTools
|
|
* @kind function
|
|
* @param {any} activeClass class of elements that have to be shown
|
|
* @param {any} activeCategoryButton class of category button that has to be active
|
|
*/
|
|
function changeActiveTools(activeCategoryButton) {
|
|
let toolList = document.getElementById("toolList").children;
|
|
let categoryToClass = new Map([["XML", "xmlTool"],
|
|
["JSON", "jsonTool"],
|
|
["REST", "restTool"]]);
|
|
|
|
let activeClass = categoryToClass.get(activeCategoryButton.toUpperCase());
|
|
if(activeClass == null) return;
|
|
|
|
for (i = 0; i < toolList.length; i++) {
|
|
if (toolList[i].classList.contains(activeClass))
|
|
toolList[i].style.display = "block";
|
|
else
|
|
toolList[i].style.display = "none";
|
|
}
|
|
|
|
let categoryList = document.getElementById("menu").children;
|
|
|
|
for (i = 0; i < categoryList.length; i++) {
|
|
if (categoryList[i].innerText == activeCategoryButton)
|
|
categoryList[i].classList.add("active");
|
|
else
|
|
categoryList[i].classList.remove("active");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function that changes active tool
|
|
*
|
|
* @function
|
|
* @name changeTool
|
|
* @kind function
|
|
* @param {any} tool
|
|
* @returns {void}
|
|
*/
|
|
function changeTool(tool) {
|
|
const url = tools.get(tool);
|
|
localStorage.setItem("lastPage", tool);
|
|
document.getElementById("iframe").src = url;
|
|
}
|
|
|
|
/**
|
|
* Function that loads last used tool and sets active category accordingly
|
|
*
|
|
* @function
|
|
* @name loadLastPage
|
|
* @kind function
|
|
* @returns {void}
|
|
*/
|
|
function loadLastPage() {
|
|
var lastPage = localStorage.getItem("lastPage");
|
|
if (lastPage == null) {
|
|
lastPage = "xpath";
|
|
}
|
|
|
|
switch (lastPage) { // XML category is default.
|
|
case "jsonform":
|
|
changeActiveTools('JSON');
|
|
break;
|
|
case "mock":
|
|
changeActiveTools('REST');
|
|
break;
|
|
|
|
}
|
|
document.getElementById("iframe").src = tools.get(lastPage);
|
|
} |