Compare commits
	
		
			3 Commits
		
	
	
		
			e834229cae
			...
			9f64b83844
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9f64b83844 | |||
| 0d469db020 | |||
| 38b3942bde | 
| @@ -50,7 +50,10 @@ public class XmlController implements RestController { | ||||
|     public void acceptRequestXslt(Request request, Response response) { | ||||
|         acceptRequest(request, response, XmlJobType.XSLT); | ||||
|     } | ||||
|  | ||||
|     @ScopedControllerManifest(method = HandlerType.POST, path = "/xslt/addParam") | ||||
|     public void acceptRequestXsltAddParam(Request request, Response response) { | ||||
|         acceptRequest(request, response, XmlJobType.XSLT_PARAM); | ||||
|     } | ||||
|     private void acceptRequest(Request request, Response response, XmlJobType xmlJobType) { | ||||
|         XMLRequestBody requestBody; | ||||
|         try { | ||||
| @@ -129,6 +132,8 @@ public class XmlController implements RestController { | ||||
|  | ||||
|         String result = null; | ||||
|         switch (xmlJob.getXmlJobType()) { | ||||
|             case XSLT_PARAM: | ||||
|                 result = engine.addParam(requestBody.getData(), requestBody.getProcessorData()); | ||||
|             case XSLT: | ||||
|                 result = engine.processXSLT(requestBody.getData(), requestBody.getProcessorData()); | ||||
|                 break; | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| package com.r11.tools.controller.internal; | ||||
|  | ||||
| public enum XmlJobType { | ||||
|     XPath("XPath"), XSD("XSD"), XQuery("XQuery"), XSLT("XSLT"); | ||||
|     XPath("XPath"), XSD("XSD"), XQuery("XQuery"), XSLT("XSLT"), XSLT_PARAM("PARAM"); | ||||
|  | ||||
|     XmlJobType(String type) { | ||||
|     } | ||||
|   | ||||
| @@ -164,4 +164,9 @@ public class Saxon implements XmlEngine{ | ||||
|     public String getVersion() { | ||||
|         return "Saxon " + new Processor(false).getSaxonProductVersion(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String addParam(String data, String processorData) throws Exception { | ||||
|         return null; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -124,6 +124,11 @@ public class Xalan implements XmlEngine{ | ||||
|         return org.apache.xalan.Version.getVersion(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String addParam(String data, String processorData) throws Exception { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validates string representation of the xml document against xsd schema | ||||
|      * @param data xml document | ||||
|   | ||||
| @@ -9,9 +9,7 @@ public interface XmlEngine { | ||||
|     XPathQueryResult processXPath(String data, String query, String version) throws Exception; | ||||
|     String processXSLT(String data, String transform) throws Exception; | ||||
|     String validate(String data, String xsd) throws Exception; | ||||
|  | ||||
|     String executeXQuery(String data, String xquery, String version) throws Exception; | ||||
|  | ||||
|     public String getVersion(); | ||||
|  | ||||
|     String addParam(String data, String processorData) throws Exception; | ||||
| } | ||||
|   | ||||
							
								
								
									
										33
									
								
								Frontend/src/components/XsltParamComponent.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								Frontend/src/components/XsltParamComponent.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| <script setup lang="ts"> | ||||
| import {defineComponent, ref} from 'vue' | ||||
| const selected = ref('A') | ||||
|  | ||||
| let options = ref([ | ||||
|   { text: 'One', value: 'A' }, | ||||
|   { text: 'Two', value: 'B' }, | ||||
|   { text: 'Three', value: 'C' } | ||||
| ]) | ||||
| </script> | ||||
|  | ||||
| <template> | ||||
|   <select v-model="selected" class="px-3 rounded-full border border-slate-400 bg-white dark:text-slate-100 dark:bg-gray-600 w-2/3" > | ||||
|     <option v-for="option in options" :value="option.value"> | ||||
|       {{ option.text }} | ||||
|     </option> | ||||
|   </select> | ||||
|  | ||||
|   <input | ||||
|       id="textInput1" | ||||
|       class="text-input px-3 rounded-full border border-slate-400 bg-white dark:text-slate-100 dark:bg-gray-600 w-1/3" | ||||
|       type="text" | ||||
|       placeholder="Name" | ||||
|   /> | ||||
|   <input | ||||
|       id="textInput2" | ||||
|       class="text-input px-3 rounded-full border border-slate-400 bg-white dark:text-slate-100 dark:bg-gray-600 w-1/3" | ||||
|       type="text" | ||||
|       placeholder="Value" | ||||
|   /> | ||||
|   <button class="tool-button" @click="clear">Add Variable</button> | ||||
| </template> | ||||
|  | ||||
| @@ -2,9 +2,9 @@ | ||||
| import InsertTemplateComponent from '@components/common/InsertTemplateComponent.vue' | ||||
| import XMLButtonFormatterComponent from '@components/formatter/XMLButtonFormatterComponent.vue' | ||||
| import CodeEditor from '@/components/common/CodeEditorComponent.vue' | ||||
| import XsltParamComponent from '@/components/XsltParamComponent.vue' | ||||
|  | ||||
| import {ref} from 'vue' | ||||
| import TabComponent from "@components/xml/TabComponent.vue"; | ||||
|  | ||||
| const props = defineProps( | ||||
|     { | ||||
| @@ -21,6 +21,7 @@ function sendValue() { | ||||
|   emit('update:modelValue', data.value) | ||||
| } | ||||
|  | ||||
|  | ||||
| function updateData(newData: string, clearFileSelector: boolean = true) { | ||||
|   data.value = newData | ||||
|   if (clearFileSelector) | ||||
| @@ -48,13 +49,14 @@ function readFile(file: any) { | ||||
|   reader.onloadend = () => { | ||||
|     let result = reader.result?.toString() | ||||
|     if (typeof result == "string") | ||||
|       updateData(result, false); | ||||
|       updateData(result, false) | ||||
|  | ||||
|   } | ||||
|   reader.readAsText(file.target.files[0]) | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| </script> | ||||
|  | ||||
| <template> | ||||
| @@ -62,10 +64,13 @@ function readFile(file: any) { | ||||
|     <div class="flex justify-between mb-2"></div> | ||||
|  | ||||
|     <div class="flex place-content-between w-full items-center"> | ||||
|  | ||||
|       <span class="dark:text-white mr-2">{{ stylizedName }}</span> | ||||
|  | ||||
|       <div class="flex items-stretch w-64"> | ||||
|         <input id="fileLoader" ref="inputFile" class="file-selector" type="file" accept=".xml,.xql,.xquery,.xslt,text/xml,text/plain" @change="readFile" /> | ||||
|         <input id="fileLoader" ref="inputFile" class="file-selector" type="file" accept=".xml,.xql,.xquery,.xslt,text/xml,text/plain" @change="readFile"/> | ||||
|       </div> | ||||
|  | ||||
|       <div class="flex space-x-2 pb-2 overflow-x-auto"> | ||||
|         <InsertTemplateComponent :stylized-name="props.stylizedName" @update:default-data="updateData"></InsertTemplateComponent> | ||||
|         <XMLButtonFormatterComponent v-if="canBeFormatted()" :xml="data" @update:result="(data:any) => updateData(data.result)"></XMLButtonFormatterComponent> | ||||
| @@ -75,31 +80,10 @@ function readFile(file: any) { | ||||
|  | ||||
|     <div class="flex place-content-between w-full items-center"> | ||||
|       <div v-if="addParameters()" class="flex justify-end space-x-2 pb-2 overflow-x-auto ml-auto"> | ||||
|         <select id = "myList" onchange = "favTutorial()" class = "w-full rounded-3xl" > | ||||
|           <option> ---Choose tutorial--- </option> | ||||
|           <option> w3schools </option> | ||||
|           <option> Javatpoint </option> | ||||
|           <option> tutorialspoint </option> | ||||
|           <option> geeksforgeeks </option> | ||||
|         </select> | ||||
|         <input | ||||
|             id="textInput1" | ||||
|             class="text-input px-2 py-1 border rounded-3xl w-1/3" | ||||
|             type="text" | ||||
|             placeholder="Input 1" | ||||
|         /> | ||||
|         <input | ||||
|             id="textInput2" | ||||
|             class="text-input px-2 py-1 border rounded-3xl w-1/3" | ||||
|             type="text" | ||||
|             placeholder="Input 2" | ||||
|         /> | ||||
|         <button class="tool-button" @click="clear">Add Variable</button> | ||||
|         <XsltParamComponent :stylizedName="stylizedName"/> | ||||
|       </div> | ||||
|     </div> | ||||
|  | ||||
|     <CodeEditor @update:updated-code="updateData" v-model="data" :code="data" | ||||
|                 :config="{disabled:false, language:stylizedName}"></CodeEditor> | ||||
|     <CodeEditor @update:updated-code="updateData" v-model="data" :code="data" :config="{disabled:false, language:stylizedName}"></CodeEditor> | ||||
|   </div> | ||||
|  | ||||
| </template> | ||||
		Reference in New Issue
	
	Block a user