evcc-io/assets/js/components/Config/TestResult.vue
2024-01-27 13:38:16 +01:00

56 lines
1.3 KiB
Vue

<template>
<div
class="alert my-4"
:class="{
'alert-secondary': unknown || running,
'alert-success': success,
'alert-danger': failed,
}"
role="alert"
>
<div class="d-flex justify-content-between align-items-center">
<div>
{{ $t("config.validation.label") }}:
<span v-if="unknown">{{ $t("config.validation.unknown") }}</span>
<span v-if="running">{{ $t("config.validation.running") }}</span>
<strong v-if="success">{{ $t("config.validation.success") }}</strong>
<strong v-if="failed">{{ $t("config.validation.failed") }}</strong>
</div>
<span
v-if="running"
class="spinner-border spinner-border-sm"
role="status"
aria-hidden="true"
></span>
<a v-else href="#" class="alert-link" @click.prevent="$emit('test')">
{{ $t("config.validation.validate") }}
</a>
</div>
<hr v-if="error" />
<div v-if="error">
{{ error }}
</div>
<hr v-if="result" />
<div v-if="result">
<DeviceTags :tags="result" />
</div>
</div>
</template>
<script>
import DeviceTags from "./DeviceTags.vue";
export default {
name: "TestResult",
props: {
success: Boolean,
failed: Boolean,
unknown: Boolean,
running: Boolean,
result: Object,
error: String,
},
emits: ["test"],
components: { DeviceTags },
};
</script>