From 51d5bf3d73c5f461bfada4a2860f21273c8003ad Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 19 Jun 2023 09:39:38 +0200 Subject: [PATCH] Engine and version selection now works better --- .../xml/XmlOutputFieldComponent.vue | 54 ++++++++++++------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/Frontend/src/components/xml/XmlOutputFieldComponent.vue b/Frontend/src/components/xml/XmlOutputFieldComponent.vue index f5a90b7..ab28691 100644 --- a/Frontend/src/components/xml/XmlOutputFieldComponent.vue +++ b/Frontend/src/components/xml/XmlOutputFieldComponent.vue @@ -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) {
Result:
- +