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