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