Added dynamic engine selection
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { onMounted, ref } from 'vue';
|
||||||
|
|
||||||
|
|
||||||
const props = defineProps(
|
const props = defineProps(
|
||||||
@@ -10,7 +10,11 @@ const props = defineProps(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
const engine = ref('')
|
const engine = ref('');
|
||||||
|
|
||||||
|
const isSaxonHidden = ref(false);
|
||||||
|
const isXalanHidden = ref(false);
|
||||||
|
const isLibXMLHidden = ref(false);
|
||||||
|
|
||||||
const emit = defineEmits(['update:result'])
|
const emit = defineEmits(['update:result'])
|
||||||
|
|
||||||
@@ -21,6 +25,14 @@ function process() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function prepareRequest():Request {
|
||||||
|
var request = new Request(prepareURL(), {
|
||||||
|
body: prepareRequestBody(),
|
||||||
|
method: "POST"
|
||||||
|
});
|
||||||
|
return request
|
||||||
|
}
|
||||||
|
|
||||||
function prepareURL(): string {
|
function prepareURL(): string {
|
||||||
const engineEndpoint = engine.value == "libxml" ? "libxml" : "java";
|
const engineEndpoint = engine.value == "libxml" ? "libxml" : "java";
|
||||||
return document.location.protocol + "//" + document.location.hostname + "/" + engineEndpoint + "/" + props.tool;
|
return document.location.protocol + "//" + document.location.hostname + "/" + engineEndpoint + "/" + props.tool;
|
||||||
@@ -36,14 +48,6 @@ function prepareRequestBody():string {
|
|||||||
return requestBody;
|
return requestBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
function prepareRequest():Request {
|
|
||||||
var request = new Request(prepareURL(), {
|
|
||||||
body: prepareRequestBody(),
|
|
||||||
method: "POST"
|
|
||||||
});
|
|
||||||
return request
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchRequest(request: Request):Promise<JSON> {
|
async function fetchRequest(request: Request):Promise<JSON> {
|
||||||
var responseBody = await fetch(request)
|
var responseBody = await fetch(request)
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
@@ -51,10 +55,32 @@ async function fetchRequest(request: Request):Promise<JSON> {
|
|||||||
return responseBody;
|
return responseBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendProcessedData(data: any) {
|
function sendProcessedData(data: JSON) {
|
||||||
emit("update:result", data);
|
emit("update:result", data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
showOnlyAvailableEngines();
|
||||||
|
})
|
||||||
|
|
||||||
|
function showOnlyAvailableEngines() {
|
||||||
|
if (props.tool == "xsd") {
|
||||||
|
isSaxonHidden.value = true;
|
||||||
|
isXalanHidden.value = false;
|
||||||
|
isLibXMLHidden.value = false;
|
||||||
|
}
|
||||||
|
else if (props.tool == "xquery") {
|
||||||
|
isSaxonHidden.value = false;
|
||||||
|
isXalanHidden.value = true;
|
||||||
|
isLibXMLHidden.value = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
isSaxonHidden.value = false;
|
||||||
|
isXalanHidden.value = false;
|
||||||
|
isLibXMLHidden.value = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -62,9 +88,9 @@ function sendProcessedData(data: any) {
|
|||||||
<span class="dark:text-white">Result:</span>
|
<span class="dark:text-white">Result:</span>
|
||||||
<div class="flex space-x-2">
|
<div class="flex space-x-2">
|
||||||
<select v-model="engine" name="engine" class="px-3 rounded-full border border-slate-400 bg-white dark:text-slate-100 dark:bg-gray-600">
|
<select v-model="engine" name="engine" class="px-3 rounded-full border border-slate-400 bg-white dark:text-slate-100 dark:bg-gray-600">
|
||||||
<option value="saxon">Saxon</option>
|
<option value="saxon" :class="(isSaxonHidden) ? 'hidden' : ''">Saxon</option>
|
||||||
<option value="xalan">Xalan</option>
|
<option value="xalan" :class="(isXalanHidden) ? 'hidden' : ''">Xalan</option>
|
||||||
<option value="libxml">libXML</option>
|
<option value="libxml" :class="(isLibXMLHidden) ? 'hidden' : ''">libXML</option>
|
||||||
</select>
|
</select>
|
||||||
<button class="tool-button">Clear</button>
|
<button class="tool-button">Clear</button>
|
||||||
<button class="tool-button" @click="process">Process</button>
|
<button class="tool-button" @click="process">Process</button>
|
||||||
|
|||||||
@@ -13,6 +13,6 @@ const query = ref('');
|
|||||||
<div id="layout" class="flex flex-col lg:flex-row w-full h-full gap-4">
|
<div id="layout" class="flex flex-col lg:flex-row w-full h-full gap-4">
|
||||||
<xmlInputFieldComponent prettyName="XSLT" @update:xml="(data) => {xml = data}" @update:transform="(data) => {query = data}"></xmlInputFieldComponent>
|
<xmlInputFieldComponent prettyName="XSLT" @update:xml="(data) => {xml = data}" @update:transform="(data) => {query = data}"></xmlInputFieldComponent>
|
||||||
|
|
||||||
<xmlOutputFieldComponent tool="xslt" :xml="xml" :query="query"></xmlOutputFieldComponent>
|
<xmlOutputFieldComponent tool="xpath" :xml="xml" :query="query"></xmlOutputFieldComponent>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
Reference in New Issue
Block a user