Implemented error signal in XML formatter

This commit is contained in:
2023-11-09 12:45:27 +01:00
parent aecbcefc31
commit 5799d60db1
3 changed files with 32 additions and 12 deletions

View File

@@ -16,8 +16,13 @@ const props = defineProps(
} }
) )
const emit = defineEmits([
'update:result',
'update:error'
])
function chooseType(formatType: String){ function chooseType(formatType: String){
if (formatType == "XML Converter"){ if (formatType == "HTML -> XML"){
return "convert"; return "convert";
} }
return formatType.toLowerCase(); return formatType.toLowerCase();
@@ -42,11 +47,6 @@ function createBody(){
const fetchLink = document.location.protocol + "//" + document.location.hostname + "/libxml/html/" + chooseType(props.formatType); const fetchLink = document.location.protocol + "//" + document.location.hostname + "/libxml/html/" + chooseType(props.formatType);
const emit = defineEmits([
'update:result',
'update:error'
])
function processResponse(formattedCode : any){ function processResponse(formattedCode : any){
var result = formattedCode.result; var result = formattedCode.result;
emit("update:error", formattedCode.status == "ERR") emit("update:error", formattedCode.status == "ERR")

View File

@@ -5,7 +5,10 @@ const props = defineProps({
isMinimizer: {type: Boolean} isMinimizer: {type: Boolean}
}) })
const emit = defineEmits(["update:result"]) const emit = defineEmits([
'update:result',
'update:error'
])
function process() { function process() {
var request:Request = prepareRequest() var request:Request = prepareRequest()
@@ -42,7 +45,10 @@ function prepareRequestBody():string {
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())
.then((body) => body) .then((body) => {
emit("update:error", body.status == "ERR")
return body
})
return responseBody return responseBody
} }

View File

@@ -6,6 +6,9 @@ import { ref } from 'vue';
const xml = ref(''); const xml = ref('');
const inputFile = ref()
const errorOccurred = ref(false);
function setTextFieldValue(data: string) { function setTextFieldValue(data: string) {
xml.value = data xml.value = data
@@ -15,8 +18,19 @@ function format(formattedXml: any) {
xml.value = formattedXml.result; xml.value = formattedXml.result;
} }
function setErrorOccurred(occurred: boolean) {
errorOccurred.value = occurred
}
function setExample(data: string) {
inputFile.value.value = ''
setTextFieldValue(data)
}
function clear() { function clear() {
xml.value = ''; xml.value = '';
errorOccurred.value = false
inputFile.value.value = ''
} }
function readFile(file : any) { function readFile(file : any) {
@@ -41,12 +55,12 @@ function readFile(file : any) {
<div class="flex items-stretch w-64"> <div class="flex items-stretch w-64">
<input id="fileLoader" ref="inputFile" class="file-selector" type="file" accept=".xml,.xql,.xquery,.xslt,text/xml,text/plain" @change="readFile" /> <input id="fileLoader" ref="inputFile" class="file-selector" type="file" accept=".xml,.xql,.xquery,.xslt,text/xml,text/plain" @change="readFile" />
</div> </div>
<InsertTemplateComponent stylized-name="XML" @update:defaultData="(data: string) => setTextFieldValue(data)"></InsertTemplateComponent> <InsertTemplateComponent stylized-name="XML" @update:defaultData="(data: string) => setExample(data)"></InsertTemplateComponent>
<button class="tool-button" @click="clear()">Clear</button> <button class="tool-button" @click="clear()">Clear</button>
<XMLButtonFormatterComponent is-minimizer :xml="xml" @update:result="(data: any) => format(data)"></XMLButtonFormatterComponent> <XMLButtonFormatterComponent @update:error="setErrorOccurred" is-minimizer :xml="xml" @update:result="(data: any) => format(data)"></XMLButtonFormatterComponent>
<XMLButtonFormatterComponent :xml="xml" @update:result="(data: any) => format(data)"></XMLButtonFormatterComponent> <XMLButtonFormatterComponent @update:error="setErrorOccurred" :xml="xml" @update:result="(data: any) => format(data)"></XMLButtonFormatterComponent>
</div> </div>
</div> </div>
<CodeEditorComponent @update:updated-code="setTextFieldValue" :code="xml" :config="{disabled:false,language:'xml'}" /> <CodeEditorComponent :class="{'text-field-error' : errorOccurred}" @update:updated-code="setTextFieldValue" :code="xml" :config="{disabled:false,language:'xml'}" />
</div> </div>
</template> </template>