From 24c9c2fe5accebef529747b545b56500ff90dc03 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Tue, 28 Feb 2023 11:46:54 +0100 Subject: [PATCH] dev (#81) Co-authored-by: mikolaj widla Co-authored-by: Adam Bem Reviewed-on: https://gitea.release11.com/R11/release11-tools-web/pulls/81 --- Backend-libXML/Parser.py | 19 ++++- .../src/main/resources/static/html/mock.html | 14 +++- .../main/resources/static/js/uianimation.js | 12 ++- Frontend/Dockerfile | 12 ++- Frontend/assets/css/tools/r11form.css | 4 + Frontend/assets/scripts/tools/scripts.js | 77 +++++++++++-------- Frontend/index.html | 10 +-- Frontend/insert_version.sh | 5 ++ Frontend/tools/formatter.html | 13 +--- Frontend/tools/xpath.html | 14 +++- Frontend/tools/xsd.html | 13 +++- Frontend/tools/xslt.html | 12 ++- 12 files changed, 141 insertions(+), 64 deletions(-) create mode 100644 Frontend/insert_version.sh diff --git a/Backend-libXML/Parser.py b/Backend-libXML/Parser.py index 295b924..827b356 100644 --- a/Backend-libXML/Parser.py +++ b/Backend-libXML/Parser.py @@ -2,10 +2,27 @@ from lxml import etree def prettify(source: str) -> str: + """Method used to pretty format given XML + + :param source: XML + :return: prettified XML + """ + prolog = "" + prolog_start = source.find("") + 2 + prolog = source[prolog_start:prolog_end] + "\n" + source = source[prolog_end: ] xml = etree.XML(source) - return etree.tostring(xml, pretty_print=True).decode() + return prolog + etree.tostring(xml, pretty_print=True).decode() def minimize(source: str) -> str: + """Method used to minimize XML by deleting not needed whitespaces. + + :param source: XML + :return: minimized XML + """ result = source to_remove = [" ", " ", "\t", "\n"] diff --git a/Backend/mocked-services/src/main/resources/static/html/mock.html b/Backend/mocked-services/src/main/resources/static/html/mock.html index a908ea5..6f0abf8 100644 --- a/Backend/mocked-services/src/main/resources/static/html/mock.html +++ b/Backend/mocked-services/src/main/resources/static/html/mock.html @@ -167,7 +167,7 @@ --> -
+
@@ -190,6 +190,18 @@

To save message, the message must be changed!

+
+
+

Add new message

+

This button adds new message.

+
+
+
+
+

Message

+

This is saved messages, with unique id.

+
+

Http Status

diff --git a/Backend/mocked-services/src/main/resources/static/js/uianimation.js b/Backend/mocked-services/src/main/resources/static/js/uianimation.js index e375856..d80f6db 100644 --- a/Backend/mocked-services/src/main/resources/static/js/uianimation.js +++ b/Backend/mocked-services/src/main/resources/static/js/uianimation.js @@ -118,4 +118,14 @@ $('#headerValueInput').focusout(function(){focusOutTip('newHeaderTip')}); $('#btnSave').mouseover(function(){showTip('btnSaveTip');}); $('#btnSave').focusin(function(){focusInTip('btnSaveTip')}); $('#btnSave').mouseleave(function(){hidTip('btnSaveTip')}); -$('#btnSave').focusout(function(){focusOutTip('btnSaveTip')}); \ No newline at end of file +$('#btnSave').focusout(function(){focusOutTip('btnSaveTip')}); + +$('#new-tile').mouseover(function(){showTip('btn-newTileTip');}); +$('#new-tile').focusin(function(){focusInTip('btn-newTileTip')}); +$('#new-tile').mouseleave(function(){hidTip('btn-newTileTip')}); +$('#new-tile').focusout(function(){focusOutTip('btn-newTileTip')}); + +$('#listItems').mouseover(function(){showTip('messagesTip');}); +$('#listItems').focusin(function(){focusInTip('messagesTip')}); +$('#listItems').mouseleave(function(){hidTip('messagesTip')}); +$('#listItems').focusout(function(){focusOutTip('messagesTip')}); \ No newline at end of file diff --git a/Frontend/Dockerfile b/Frontend/Dockerfile index aed3064..febd991 100644 --- a/Frontend/Dockerfile +++ b/Frontend/Dockerfile @@ -3,9 +3,13 @@ FROM nginx:stable-alpine COPY ./tools/ /usr/share/nginx/html/tools/ COPY ./assets/ /usr/share/nginx/html/assets/ COPY ./index.html /usr/share/nginx/html -#COPY ./logo.png /usr/share/nginx/html -#COPY ./styles.css /usr/share/nginx/html -#COPY ./common.css /usr/share/nginx/html -#COPY ./favicon.ico /usr/share/nginx/html + +RUN mkdir -p /scripts +COPY insert_version.sh /scripts/ +WORKDIR /scripts + +RUN chmod +x insert_version.sh +RUN ./insert_version.sh + EXPOSE 80 diff --git a/Frontend/assets/css/tools/r11form.css b/Frontend/assets/css/tools/r11form.css index 6eb8ab9..e54e151 100644 --- a/Frontend/assets/css/tools/r11form.css +++ b/Frontend/assets/css/tools/r11form.css @@ -330,6 +330,10 @@ height: 300px; } +.textarea-800 { + height: 800px; +} + .centered-content { display: flex; justify-content: center; diff --git a/Frontend/assets/scripts/tools/scripts.js b/Frontend/assets/scripts/tools/scripts.js index 6becf43..d464330 100644 --- a/Frontend/assets/scripts/tools/scripts.js +++ b/Frontend/assets/scripts/tools/scripts.js @@ -11,6 +11,11 @@ function clearDefaultContent(element, text) { } } +function clearDataField(){ + document.getElementById("xmlArea").value = ""; + document.getElementById("transformArea").value = ""; +} + function fillDefaultXML(element) { if(element.classList.contains("active")){ const serverAddress = window.location.protocol + "//" + window.location.hostname + ":8086"; @@ -91,22 +96,38 @@ function refreshTooltip() { document.getElementById("xsltelementsheader").innerText = XSLTheader; } + + function performRequest(endpoint, checkXML, checkTransform){ - var xmlData = document.getElementById("xmlArea").value.trim(); - var transformData = document.getElementById("transformArea").value.trim(); + var xmlData = document.getElementById(sourceId).value.trim(); + var transformData = document.getElementById(targetId).value.trim(); + var port = 8081 + if (getProcessor() == "libxml") { + port = 8082 + } + var empty = false; if (defaultStrings.includes(xmlData) && checkXML) { - document.getElementById("xmlArea").style.backgroundColor = color_red; + document.getElementById(sourceId).style.backgroundColor = color_red; xmlData = ""; empty = true; } if (defaultStrings.includes(transformData) && checkTransform) { - document.getElementById("transformArea").style.backgroundColor = color_red; + document.getElementById(targetId).style.backgroundColor = color_red; empty = true; } if (!empty) { - restRequest(endpoint, xmlData, transformData); + restRequest(port, endpoint, xmlData, transformData).then(function(result) { + document.getElementById("resultArea").value = result.result; + document.getElementById("procinfo").innerText = ' Computed using '.concat(" ", result.processor); + if (result.status = "OK") { + document.getElementById("procinfo").innerText = document.getElementById("procinfo").innerText.concat(" in ", result.time, "ms"); + procinfo.style.color = "#30aa58"; + } else { + procinfo.style.color = "#aa3030"; + } + }); }else{ document.getElementById("resultArea").value = "No data provided!"; return false; @@ -114,33 +135,35 @@ function performRequest(endpoint, checkXML, checkTransform){ } -function performFormatRequest(endpoint, checkXML){ - var xmlData = document.getElementById("xmlArea").value.trim(); +function performFormatRequest(endpoint, checkXML, sourceId, targetId){ + const port = 8082; + var xmlData = document.getElementById(sourceId).value.trim(); var empty = false; if (defaultStrings.includes(xmlData) && checkXML) { - document.getElementById("xmlArea").style.backgroundColor = color_red; + document.getElementById(sourceId).style.backgroundColor = color_red; xmlData = ""; empty = true; } + if (!empty) { - restRequest(endpoint, xmlData, null); + restRequest(port, endpoint, xmlData, "").then(function(result) { + document.getElementById(targetId).value = result.result; + + }); }else{ - document.getElementById("resultArea").value = "No data provided!"; + document.getElementById(targetId).value = "No data provided!"; return false; } } -//Form REST request, send, receive and display in resultArea -async function restRequest(endpoint, xmlData, transformData) { +//Form REST request, send and return received data +async function restRequest(port, endpoint, xmlData, transformData) { const escapeChar = "specialEscapeChar"; - var port = ":8081/" - if (getProcessor() == "libxml") { - port = ":8082/" - } - const addr = window.location.protocol + "//" + window.location.hostname + port + endpoint; + + const addr = window.location.protocol + "//" + window.location.hostname + ":" + port + "/" + endpoint; if(defaultStrings.includes(xmlData)){ xmlData = ""; @@ -167,21 +190,11 @@ async function restRequest(endpoint, xmlData, transformData) { var request = new Request(addr, init); - - await fetch(request).then(response => { - console.log(response.status); - response.text().then(function (text) { - console.log(text); - var result = JSON.parse(text); - document.getElementById("resultArea").value = result.result; - document.getElementById("procinfo").innerText = ' Computed using '.concat(" ", result.processor); - if (response.ok) { - document.getElementById("procinfo").innerText = document.getElementById("procinfo").innerText.concat(" in ", result.time, "ms"); - procinfo.style.color = "#30aa58"; - } else { - procinfo.style.color = "#aa3030"; - } + var result = await fetch(request).then(response => { + return response.text().then(function(text) { + return JSON.parse(text); }); - + }); + return result; } diff --git a/Frontend/index.html b/Frontend/index.html index d9d0cd2..bcee87d 100644 --- a/Frontend/index.html +++ b/Frontend/index.html @@ -27,15 +27,15 @@
  • XSD
  • Formatter
  • - +
    - - diff --git a/Frontend/insert_version.sh b/Frontend/insert_version.sh new file mode 100644 index 0000000..9962202 --- /dev/null +++ b/Frontend/insert_version.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +input="$(date +'%Y-%m-%d %H:%M')" + +sed -i "s/\[\:VERSION\:\]/$input/g" /usr/share/nginx/html/index.html \ No newline at end of file diff --git a/Frontend/tools/formatter.html b/Frontend/tools/formatter.html index c5d88f6..9803e0f 100644 --- a/Frontend/tools/formatter.html +++ b/Frontend/tools/formatter.html @@ -24,20 +24,15 @@

    + onclick="performFormatRequest('prettifypost', true, 'xmlArea', 'xmlArea')">Prettify XML -

    - - - - + onclick="performFormatRequest('minimizepost', true, 'xmlArea', 'xmlArea')">Minimize XML +
    diff --git a/Frontend/tools/xpath.html b/Frontend/tools/xpath.html index 14deda7..ad29e18 100644 --- a/Frontend/tools/xpath.html +++ b/Frontend/tools/xpath.html @@ -17,7 +17,7 @@
    -

    Online XPath tester v0.4

    +

    Online XPath tester

    @@ -36,8 +36,14 @@
    - +
    + + + +
    @@ -57,7 +63,7 @@ expression

    -
    diff --git a/Frontend/tools/xsd.html b/Frontend/tools/xsd.html index 47e6505..749021e 100644 --- a/Frontend/tools/xsd.html +++ b/Frontend/tools/xsd.html @@ -14,8 +14,7 @@
    -

    Online XSD tester v0.4 BETA -

    +

    Online XSD tester

    @@ -25,8 +24,14 @@
    - + + +
    @@ -49,7 +54,7 @@

    -
    diff --git a/Frontend/tools/xslt.html b/Frontend/tools/xslt.html index 61319fe..83721d5 100644 --- a/Frontend/tools/xslt.html +++ b/Frontend/tools/xslt.html @@ -14,7 +14,7 @@
    -

    Online XSLT tester v0.4

    +

    Online XSLT tester

    @@ -25,8 +25,14 @@
    - + + +
    procInfo
    @@ -50,7 +56,7 @@

    -