ui: resolver: Better handling of errors
This commit is contained in:
parent
ed427191f2
commit
2669d5e7ff
@ -8,7 +8,7 @@
|
|||||||
Table,
|
Table,
|
||||||
} from 'sveltestrap';
|
} from 'sveltestrap';
|
||||||
|
|
||||||
import { resolve } from '$lib/api/resolver';
|
import { resolve as APIResolve } from '$lib/api/resolver';
|
||||||
import ResolverForm from '$lib/components/resolver/Form.svelte';
|
import ResolverForm from '$lib/components/resolver/Form.svelte';
|
||||||
import { nsttl, nsrrtype } from '$lib/dns';
|
import { nsttl, nsrrtype } from '$lib/dns';
|
||||||
import { recordsFields } from '$lib/resolver';
|
import { recordsFields } from '$lib/resolver';
|
||||||
@ -19,17 +19,16 @@
|
|||||||
export let data: {form?: ResolverFormT; domain: string; showDNSSEC: boolean;};
|
export let data: {form?: ResolverFormT; domain: string; showDNSSEC: boolean;};
|
||||||
let question: ResolverFormT | null = null;
|
let question: ResolverFormT | null = null;
|
||||||
let responses: Array<any> | 'no-answer' | null = null;
|
let responses: Array<any> | 'no-answer' | null = null;
|
||||||
|
let error_response: string | null = null;
|
||||||
let request_pending = false;
|
let request_pending = false;
|
||||||
|
|
||||||
$: {
|
function resolve(form: ResolverFormT) {
|
||||||
if (!data.form) {
|
if (!form.domain) return;
|
||||||
data.form = {domain: "", type: "ANY", resolver: "local"};
|
|
||||||
}
|
|
||||||
data.form.domain = data.domain;
|
|
||||||
|
|
||||||
resolve(data.form)
|
APIResolve(form)
|
||||||
.then(
|
.then(
|
||||||
(response) => {
|
(response) => {
|
||||||
|
error_response = null;
|
||||||
question = Object.assign({ }, data.form)
|
question = Object.assign({ }, data.form)
|
||||||
if (response.Answer) {
|
if (response.Answer) {
|
||||||
responses = response.Answer;
|
responses = response.Answer;
|
||||||
@ -39,13 +38,24 @@
|
|||||||
request_pending = false;
|
request_pending = false;
|
||||||
},
|
},
|
||||||
(error) => {
|
(error) => {
|
||||||
|
responses = null;
|
||||||
|
error_response = error;
|
||||||
toasts.addErrorToast({
|
toasts.addErrorToast({
|
||||||
title: $t('errors.resolve'),
|
title: $t('errors.resolve'),
|
||||||
message: error,
|
message: error,
|
||||||
timeout: 5000,
|
timeout: 5000,
|
||||||
});
|
});
|
||||||
request_pending = false;
|
request_pending = false;
|
||||||
})
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$: {
|
||||||
|
if (!data.form) {
|
||||||
|
data.form = {domain: "", type: "ANY", resolver: "local"};
|
||||||
|
}
|
||||||
|
data.form.domain = data.domain;
|
||||||
|
|
||||||
|
resolve(data.form);
|
||||||
}
|
}
|
||||||
|
|
||||||
function filteredResponses(responses: Array<any>, showDNSSEC: boolean): Array<any> {
|
function filteredResponses(responses: Array<any>, showDNSSEC: boolean): Array<any> {
|
||||||
@ -99,7 +109,11 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</Col>
|
</Col>
|
||||||
{#if responses === 'no-answer'}
|
{#if error_response !== null}
|
||||||
|
<Col md="8" class="pt-3">
|
||||||
|
<h3 class="text-center text-danger">{error_response}</h3>
|
||||||
|
</Col>
|
||||||
|
{:else if responses === 'no-answer'}
|
||||||
<Col md="8" class="pt-2">
|
<Col md="8" class="pt-2">
|
||||||
<h3>{$t('common.records', { n: 0, type: question?question.type:"-" })}</h3>
|
<h3>{$t('common.records', { n: 0, type: question?question.type:"-" })}</h3>
|
||||||
</Col>
|
</Col>
|
||||||
|
Loading…
Reference in New Issue
Block a user