Merge branch 'master' of gitea.release11.com:R11/release11-tools into widlam/refactor/issue#162

This commit is contained in:
2023-05-11 11:21:09 +02:00
7 changed files with 130 additions and 39 deletions

View File

@@ -188,6 +188,7 @@ public class MockController {
MockedMessageDto mockedMessageDto = klausService.getMockedResponse(clientUUID, mockedResponseId);
HttpHeaders httpHeaders = new HttpHeaders();
if (mockedMessageDto.getHttpHeaders() != null) mockedMessageDto.getHttpHeaders().forEach(httpHeaders::set);
httpHeaders.add("Content-Type", mockedMessageDto.getMediaType());
return new ResponseEntity<>(mockedMessageDto.getMessageBody(), httpHeaders,
Objects.requireNonNull(HttpStatus.valueOf(mockedMessageDto.getHttpStatus())));
}

View File

@@ -15,7 +15,7 @@
<div class="tool extended">
<div class="tool-context">
<div>
<h1>MockedServices <span class="version-span">v1.0.0</span></h1>
<h1>MockedServices</h1>
</div>
<div>
<label for="uuid-input" class="block-display">UUID</label>

View File

@@ -41,7 +41,7 @@ div#header {
grid-column: 1;
}
iframe#frame {
iframe#iframe {
flex-grow: 1;
background-color: #FFFFFF;
}

View File

@@ -1,6 +0,0 @@
$(document).ready( function() {
document.getElementById("rest-mock").href =
window.location.protocol + "//" + window.location.hostname + ":8097";
});

View File

@@ -1,6 +1,51 @@
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() {
changeActiveTools('xmlTool', 'XML');
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", getMockHost());
changeActiveTools('XML');
loadLastPage();
}
/**
@@ -12,26 +57,65 @@ function init() {
* @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(activeClass, activeCategoryButton) {
let tools = document.getElementById("toolList").children
function changeActiveTools(activeCategoryButton) {
let toolList = document.getElementById("toolList").children;
let categoryToClass = new Map([["XML", "xmlTool"],
["JSON", "jsonTool"],
["REST", "restTool"]]);
for (i = 0; i < tools.length; i++) {
if (tools[i].classList.contains(activeClass)) {
tools[i].style.display = "block";
}
else {
tools[i].style.display = "none";
}
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 categories = document.getElementById("menu").children
let categoryList = document.getElementById("menu").children;
for (i = 0; i < categories.length; i++) {
if (categories[i].innerText == activeCategoryButton) {
categories[i].classList.add("active")
}
else {
categories[i].classList.remove("active")
}
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() {
const lastPage = localStorage.getItem("lastPage");
switch (lastPage) { // XML category is default.
case "jsonform":
changeActiveTools('JSON');
break;
case "mock":
changeActiveTools('REST');
break;
}
document.getElementById("iframe").src = tools.get(lastPage);
}

View File

@@ -4,7 +4,6 @@
<head>
<link rel="stylesheet" href="assets/css/frame.css">
<script src="assets/scripts/common/jquery-3.6.0.slim.min.js"></script>
<script src="assets/scripts/dyn_host.js"></script>
<script src="assets/scripts/frame.js"></script>
<!-- <link rel="stylesheet" href="common.css"> -->
<link rel="shortcut icon" href="assets/images/favicon.ico" type="image/x-icon">
@@ -22,9 +21,9 @@
<div id="leftElements">
<div id="logo"><a href="http://release11.com/"><img src="assets/images/logo_czarne.svg" alt="Release11"></a></div>
<div id="menu">
<a href="#" onclick="changeActiveTools('xmlTool', 'XML')" class="active">XML</a>
<a href="#" onclick="changeActiveTools('jsonTool', 'JSON')">JSON</a>
<a href="#" onclick="changeActiveTools('restTool', 'REST')">REST</a>
<a href="#" onclick="changeActiveTools('XML')" class="active">XML</a>
<a href="#" onclick="changeActiveTools('JSON')">JSON</a>
<a href="#" onclick="changeActiveTools('REST')">REST</a>
</div>
</div>
@@ -34,14 +33,12 @@
<div id="content">
<div id="leftBar">
<ul id="toolList">
<li class="dynamic restTool toolListRow" style="display: none;">
<a id="rest-mock" href="http://tools.zipper.release11.com:8097/" target="iframe">REST Mock</a>
</li>
<li class="toolListRow xmlTool"><a href="./tools/xpath.html" target="iframe">XPath</a></li>
<li class="toolListRow xmlTool"><a href="./tools/xslt.html" target="iframe">XSLT</a></li>
<li class="toolListRow xmlTool"><a href="./tools/xsd.html" target="iframe">XSD</a></li>
<li class="toolListRow xmlTool"><a href="tools/xmlFormatter.html" target="iframe">XML Formatter</a></li>
<li class="toolListRow jsonTool" style="display: none;"><a href="tools/jsonFormatter.html" target="iframe">JSON Formatter</a></li>
<li class="toolListRow restTool"><a href="#" onclick="changeTool('mock');">REST Mock</a></li>
<li class="toolListRow xmlTool"><a href="#" onclick="changeTool('xpath');">XPath</a></li>
<li class="toolListRow xmlTool"><a href="#" onclick="changeTool('xslt');">XSLT</a></li>
<li class="toolListRow xmlTool"><a href="#" onclick="changeTool('xsd');">XSD</a></li>
<li class="toolListRow xmlTool"><a href="#" onclick="changeTool('xmlform');">XML Formatter</a></li>
<li class="toolListRow jsonTool"><a href="#" onclick="changeTool('jsonform');">JSON Formatter</a></li>
</ul>
<div id="copyright">
Build: [:VERSION:]<br>
@@ -53,7 +50,7 @@
<a href="mailto:bugs@release11.com">Found a bug?</a>
</div>
</div>
<iframe id="frame" name="iframe" src="./tools/xpath.html" frameborder="0"></iframe>
<iframe id="iframe" name="iframe" frameborder="0"></iframe>
</div>
</body>

View File

@@ -4,6 +4,9 @@ services:
redis:
image: 'redis'
restart: "no"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
xmltools-frontend:
build: ./Frontend
@@ -11,6 +14,9 @@ services:
image: xmltools-frontend
ports:
- 8086:80
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
xmltools-backend:
build: ./Backend/tools-services
@@ -25,6 +31,9 @@ services:
image: xmltools-libxml-backend
ports:
- 8082:80
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
xmltools-mocked-services:
build:
@@ -38,6 +47,9 @@ services:
- redis
environment:
SPRING_PROFILES_ACTIVE: DEV
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
swagger:
image: "swaggerapi/swagger-ui:latest"
@@ -63,6 +75,9 @@ services:
command:
- "-e"
- "--strict.perms=false"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
default: