Engine and version selection now works better
This commit is contained in:
@@ -12,40 +12,58 @@ const props = defineProps(
|
||||
|
||||
const result = ref('');
|
||||
|
||||
var engines = ["saxon", "xalan", "libxml"];
|
||||
var versions = ["1.0", "2.0", "3.0", "3.1"];
|
||||
var enginesForCurrentTool = ref(["saxon", "xalan", "libxml"]);
|
||||
|
||||
const allVersions = ["1.0", "2.0", "3.0", "3.1"];
|
||||
var versionsForCurrentEngine = ref([""]);
|
||||
|
||||
const engine = ref('');
|
||||
const version = ref('');
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
selectAvailableEngines();
|
||||
selectAvailableVersions();
|
||||
selectDefaults();
|
||||
changeAvailableEngines();
|
||||
changeAvailableVersions();
|
||||
})
|
||||
|
||||
function selectAvailableEngines() {
|
||||
function changeAvailableEngines() {
|
||||
if (props.tool == "xsd") {
|
||||
engines = ["xalan", "libxml"]
|
||||
enginesForCurrentTool.value = ["xalan", "libxml"]
|
||||
}
|
||||
else if (props.tool == "xquery") {
|
||||
engines = ["saxon"]
|
||||
enginesForCurrentTool.value = ["saxon"]
|
||||
}
|
||||
|
||||
selectDefaultEngine();
|
||||
}
|
||||
|
||||
function selectAvailableVersions() {
|
||||
function changeAvailableVersions() {
|
||||
if (props.tool == "xquery")
|
||||
versions = ["3.1"];
|
||||
versionsForCurrentEngine.value = ["3.1"];
|
||||
else if (props.tool == "xslt")
|
||||
versions = ["3.0"];
|
||||
versionsForCurrentEngine.value = ["3.0"];
|
||||
else if (props.tool == "xsd")
|
||||
versions = ["N/A"];
|
||||
versionsForCurrentEngine.value = ["N/A"];
|
||||
else if (props.tool == "xpath")
|
||||
changeAvailableVersionsOfXPath();
|
||||
|
||||
selectDefaultVersion();
|
||||
}
|
||||
|
||||
function selectDefaults() {
|
||||
version.value = versions[versions.length - 1];
|
||||
engine.value = engines[0];
|
||||
function changeAvailableVersionsOfXPath() {
|
||||
if(engine.value == "xalan" || engine.value == "libxml")
|
||||
versionsForCurrentEngine.value = ["1.0"];
|
||||
else if (engine.value == "saxon")
|
||||
versionsForCurrentEngine.value = allVersions;
|
||||
}
|
||||
|
||||
function selectDefaultEngine() {
|
||||
engine.value = enginesForCurrentTool.value[0];
|
||||
}
|
||||
|
||||
function selectDefaultVersion() {
|
||||
const lastVersion = versionsForCurrentEngine.value.length - 1
|
||||
version.value = versionsForCurrentEngine.value[lastVersion];
|
||||
}
|
||||
|
||||
function process() {
|
||||
@@ -96,11 +114,11 @@ function updateOutputField(data: any) {
|
||||
<div class="flex place-content-between w-full items-center m-2">
|
||||
<span class="dark:text-white">Result:</span>
|
||||
<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">
|
||||
<option v-for="engine in engines" :value="engine">{{ engine }}</option>
|
||||
<select v-model="engine" name="engine" @change="changeAvailableVersions()" class="px-3 rounded-full border border-slate-400 bg-white dark:text-slate-100 dark:bg-gray-600">
|
||||
<option v-for="engine in enginesForCurrentTool" :value="engine">{{ engine }}</option>
|
||||
</select>
|
||||
<select v-model="version" name="version" class="px-3 rounded-full border border-slate-400 bg-white dark:text-slate-100 dark:bg-gray-600">
|
||||
<option v-for="version in versions" :value="version">{{ version }}</option>
|
||||
<option v-for="version in versionsForCurrentEngine" :value="version">{{ version }}</option>
|
||||
</select>
|
||||
<button class="tool-button">Clear</button>
|
||||
<button class="tool-button" @click="process">Process</button>
|
||||
|
||||
Reference in New Issue
Block a user