54 lines
3 KiB
Vue
54 lines
3 KiB
Vue
<script setup>
|
|
import { diagnostics, run_diagnostics } from '~/assets/diagnostics';
|
|
onMounted(() => {
|
|
run_diagnostics();
|
|
});
|
|
</script>
|
|
|
|
<template>
|
|
<div class="vga-font">
|
|
<h1>Diagnostics</h1>
|
|
<ul>
|
|
<li v-for="diagnostic in diagnostics">
|
|
<div v-if="diagnostic.status !== undefined">
|
|
<!-- If diagnostic is warn or err, show text-->
|
|
<!-- Style like SystemD, e.g. [ OK ]: msg -->
|
|
<!-- Colorize the status, as well -->
|
|
<p v-if="diagnostic.status.severity === 'OK'">
|
|
[ <span class="text-green-500"> OK </span> ]: {{ diagnostic.title }} - {{ diagnostic.status.message }}
|
|
</p>
|
|
<p v-else-if="diagnostic.status.severity === 'WARN'">
|
|
[ <span class="text-yellow">WARN</span> ]: {{ diagnostic.title }} - {{ diagnostic.status.message }}
|
|
</p>
|
|
<p v-else-if="diagnostic.status.severity === 'ERR'">
|
|
[ <span class="text-red">FAIL</span> ]: {{ diagnostic.title }} - {{ diagnostic.status.message }}
|
|
</p>
|
|
<p v-else-if="diagnostic.status.severity === 'SKIP'">
|
|
[ <span class="text-mauve">SKIP</span> ]: {{ diagnostic.title }} - {{ diagnostic.status.message }}
|
|
</p>
|
|
<div v-if="diagnostic.steps && diagnostic.steps.length > 0" class="">
|
|
<ul>
|
|
<li v-for="(step, stepIndex) in diagnostic.steps" :key="step.name">
|
|
<div v-if="step.status !== undefined">
|
|
<!-- Determine if it's the last step in the list -->
|
|
<p v-if="step.status.severity === 'OK'">
|
|
{{ stepIndex === diagnostic.steps.length - 1 ? '└─' : '├─' }}[ <span class="text-green-500">OK</span> ]: {{ step.name }} - {{ step.status.message }}
|
|
</p>
|
|
<p v-else-if="step.status.severity === 'WARN'">
|
|
{{ stepIndex === diagnostic.steps.length - 1 ? '└─' : '├─' }}[<span class="text-yellow">WARN</span>]: {{ step.name }} - {{ step.status.message }}
|
|
</p>
|
|
<p v-else-if="step.status.severity === 'ERR'">
|
|
{{ stepIndex === diagnostic.steps.length - 1 ? '└─' : '├─' }}[<span class="text-red">FAIL</span>]: {{ step.name }} - {{ step.status.message }}
|
|
</p>
|
|
<p v-else-if="step.status.severity === 'SKIP'">
|
|
{{ stepIndex === diagnostic.steps.length - 1 ? '└─' : '├─' }}[<span class="text-mauve">SKIP</span>]: {{ step.name }} - {{ step.status.message }}
|
|
</p>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</template>
|