From 3c79bddde32c15e46b66d56feaa0db6b7da5daf6 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Fri, 16 Jun 2023 14:38:53 +0200 Subject: [PATCH] Reimplemented XML Tools and added styling (#227) Co-authored-by: Adam Bem Reviewed-on: https://gitea.release11.com/R11/release11-tools/pulls/227 Reviewed-by: Mikolaj Widla --- Frontend/package-lock.json | 9 ++ Frontend/package.json | 1 + Frontend/src/App.vue | 11 +- Frontend/src/assets/sampleXMLForXSD.xml | 33 ++++++ Frontend/src/assets/sampleXQuery.xquery | 7 ++ Frontend/src/assets/sampleXml.xml | 33 ++++++ Frontend/src/assets/sampleXsd.xml | 42 +++++++ Frontend/src/assets/sampleXslt.xml | 14 +++ .../components/sidebar/SidebarComponent.vue | 48 ++++---- .../sidebar/SidebarMenuElementComponent.vue | 20 ++-- .../sidebar/SidebarToolLinkComponent.vue | 16 ++- .../components/xml/XmlInputFieldComponent.vue | 46 +++++-- .../xml/XmlInputFieldToolbarComponent.vue | 50 ++++++++ .../xml/XmlOutputFieldComponent.vue | 30 +++++ .../xml/XmlOutputFieldToolbarComponent.vue | 112 ++++++++++++++++++ Frontend/src/router/index.ts | 23 +++- Frontend/src/style.css | 4 + Frontend/src/views/XPathView.vue | 18 +++ Frontend/src/views/XQueryView.vue | 18 +++ Frontend/src/views/XSDView.vue | 18 +++ Frontend/src/views/XSLTView.vue | 17 +-- 21 files changed, 497 insertions(+), 73 deletions(-) create mode 100644 Frontend/src/assets/sampleXMLForXSD.xml create mode 100644 Frontend/src/assets/sampleXQuery.xquery create mode 100644 Frontend/src/assets/sampleXml.xml create mode 100644 Frontend/src/assets/sampleXsd.xml create mode 100644 Frontend/src/assets/sampleXslt.xml create mode 100644 Frontend/src/components/xml/XmlInputFieldToolbarComponent.vue create mode 100644 Frontend/src/components/xml/XmlOutputFieldComponent.vue create mode 100644 Frontend/src/components/xml/XmlOutputFieldToolbarComponent.vue create mode 100644 Frontend/src/views/XPathView.vue create mode 100644 Frontend/src/views/XQueryView.vue create mode 100644 Frontend/src/views/XSDView.vue diff --git a/Frontend/package-lock.json b/Frontend/package-lock.json index ecb6806..08406b2 100644 --- a/Frontend/package-lock.json +++ b/Frontend/package-lock.json @@ -8,6 +8,7 @@ "name": "new-frontend", "version": "0.0.0", "dependencies": { + "hljs": "^6.2.3", "vue": "^3.3.4", "vue-router": "^4.2.2" }, @@ -2356,6 +2357,14 @@ "he": "bin/he" } }, + "node_modules/hljs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/hljs/-/hljs-6.2.3.tgz", + "integrity": "sha512-2vtAOX8kI7WO4/19XPFl7WJauIGsOxZkD+6LLmDWx6IQsPvxjnqqFsJlfg+wkghrb5I59OS5oeqGU7Ihbp+oOw==", + "engines": { + "node": "*" + } + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", diff --git a/Frontend/package.json b/Frontend/package.json index 250b1e4..37b53fe 100644 --- a/Frontend/package.json +++ b/Frontend/package.json @@ -12,6 +12,7 @@ "format": "prettier --write src/" }, "dependencies": { + "hljs": "^6.2.3", "vue": "^3.3.4", "vue-router": "^4.2.2" }, diff --git a/Frontend/src/App.vue b/Frontend/src/App.vue index 1b1cdac..12adeaa 100644 --- a/Frontend/src/App.vue +++ b/Frontend/src/App.vue @@ -1,21 +1,14 @@ + + \ No newline at end of file diff --git a/Frontend/src/components/xml/XmlInputFieldComponent.vue b/Frontend/src/components/xml/XmlInputFieldComponent.vue index 80704f0..67df3a6 100644 --- a/Frontend/src/components/xml/XmlInputFieldComponent.vue +++ b/Frontend/src/components/xml/XmlInputFieldComponent.vue @@ -1,23 +1,47 @@ \ No newline at end of file diff --git a/Frontend/src/components/xml/XmlInputFieldToolbarComponent.vue b/Frontend/src/components/xml/XmlInputFieldToolbarComponent.vue new file mode 100644 index 0000000..bf40438 --- /dev/null +++ b/Frontend/src/components/xml/XmlInputFieldToolbarComponent.vue @@ -0,0 +1,50 @@ + + + \ No newline at end of file diff --git a/Frontend/src/components/xml/XmlOutputFieldComponent.vue b/Frontend/src/components/xml/XmlOutputFieldComponent.vue new file mode 100644 index 0000000..6fceeb2 --- /dev/null +++ b/Frontend/src/components/xml/XmlOutputFieldComponent.vue @@ -0,0 +1,30 @@ + + + \ No newline at end of file diff --git a/Frontend/src/components/xml/XmlOutputFieldToolbarComponent.vue b/Frontend/src/components/xml/XmlOutputFieldToolbarComponent.vue new file mode 100644 index 0000000..5db6734 --- /dev/null +++ b/Frontend/src/components/xml/XmlOutputFieldToolbarComponent.vue @@ -0,0 +1,112 @@ + + + \ No newline at end of file diff --git a/Frontend/src/router/index.ts b/Frontend/src/router/index.ts index 21f4c58..b935285 100644 --- a/Frontend/src/router/index.ts +++ b/Frontend/src/router/index.ts @@ -4,6 +4,9 @@ const landingPage = import("@views/LandingView.vue") const restMock = import("@views/RestMockView.vue") const xsltTool = import("@views/XSLTView.vue") +const xsdTool = import("@views/XSDView.vue") +const xpathTool = import("@views/XPathView.vue") +const xqueryTool = import("@views/XQueryView.vue") const routes = [ { @@ -11,16 +14,26 @@ const routes = [ name: 'landing', component: () => landingPage }, + { + path: '/xml/xpath', + name: 'xpath', + component: () => xpathTool + }, + { + path: '/xml/xquery', + name: 'xquery', + component: () => xqueryTool + }, + { + path: '/xml/xsd', + name: 'xsd', + component: () => xsdTool + }, { path: '/xml/xslt', name: 'xslt', component: () => xsltTool }, - { - path: '/xml/xpath', - name: 'xpath', - component: () => restMock - }, ] diff --git a/Frontend/src/style.css b/Frontend/src/style.css index b5c61c9..f884ed7 100644 --- a/Frontend/src/style.css +++ b/Frontend/src/style.css @@ -1,3 +1,7 @@ @tailwind base; @tailwind components; @tailwind utilities; + +.tool-button { + @apply py-1 px-4 rounded-full bg-gradient-to-r from-blue-300 to-sky-200 dark:text-white dark:from-sky-600 dark:to-sky-800 hover:bg-blue-400 +} \ No newline at end of file diff --git a/Frontend/src/views/XPathView.vue b/Frontend/src/views/XPathView.vue new file mode 100644 index 0000000..20acd1f --- /dev/null +++ b/Frontend/src/views/XPathView.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/Frontend/src/views/XQueryView.vue b/Frontend/src/views/XQueryView.vue new file mode 100644 index 0000000..fe23239 --- /dev/null +++ b/Frontend/src/views/XQueryView.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/Frontend/src/views/XSDView.vue b/Frontend/src/views/XSDView.vue new file mode 100644 index 0000000..94ba20d --- /dev/null +++ b/Frontend/src/views/XSDView.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/Frontend/src/views/XSLTView.vue b/Frontend/src/views/XSLTView.vue index fd6a98e..8c04245 100644 --- a/Frontend/src/views/XSLTView.vue +++ b/Frontend/src/views/XSLTView.vue @@ -1,15 +1,18 @@ - \ No newline at end of file