update
This commit is contained in:
1
frontend/dist/assets/index-CzKrDvqu.css
vendored
1
frontend/dist/assets/index-CzKrDvqu.css
vendored
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/index-Dm2vsYsS.css
vendored
Normal file
1
frontend/dist/assets/index-Dm2vsYsS.css
vendored
Normal file
File diff suppressed because one or more lines are too long
64
frontend/dist/assets/index-PAbaEjVj.js
vendored
64
frontend/dist/assets/index-PAbaEjVj.js
vendored
File diff suppressed because one or more lines are too long
64
frontend/dist/assets/index-Yruju_eh.js
vendored
Normal file
64
frontend/dist/assets/index-Yruju_eh.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
frontend/dist/index.html
vendored
4
frontend/dist/index.html
vendored
@@ -13,8 +13,8 @@
|
||||
if (dark) document.documentElement.classList.add('dark')
|
||||
})()
|
||||
</script>
|
||||
<script type="module" crossorigin src="/assets/index-PAbaEjVj.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-CzKrDvqu.css">
|
||||
<script type="module" crossorigin src="/assets/index-Yruju_eh.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-Dm2vsYsS.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
@@ -57,8 +57,9 @@ function toggleDark() {
|
||||
⌂ Übersicht
|
||||
</a>
|
||||
<a v-for="p in projekte" :key="p.name" href="#"
|
||||
:class="{ aktiv: aktivesProjekt === p.name, gestoert: p.fehler || !p.hat_planer }"
|
||||
@click.prevent="p.hat_planer && oeffne(p.name)">
|
||||
:class="{ aktiv: aktivesProjekt === p.name,
|
||||
gestoert: p.fehler || (!p.hat_planer && !p.scan_laeuft) }"
|
||||
@click.prevent="(p.hat_planer || p.scan_laeuft) && oeffne(p.name)">
|
||||
{{ p.name }}
|
||||
<span v-if="p.scan_laeuft" class="punkt gelb" title="Scan läuft"></span>
|
||||
<span v-else-if="p.drift?.length" class="punkt gelb" title="Drift"></span>
|
||||
|
||||
@@ -38,19 +38,28 @@ async function statusTick() {
|
||||
}
|
||||
|
||||
const poll = usePolling(statusTick, () => scanLaeuft.value, 2000)
|
||||
onMounted(async () => {
|
||||
await laden()
|
||||
async function init() {
|
||||
projekt.value = null
|
||||
fehler.value = ''
|
||||
await statusTick()
|
||||
await laden()
|
||||
if (scanLaeuft.value) poll.start()
|
||||
})
|
||||
watch(() => props.name, async () => { projekt.value = null; await laden() })
|
||||
}
|
||||
onMounted(init)
|
||||
watch(() => props.name, init)
|
||||
|
||||
const kernHtml = computed(() =>
|
||||
projekt.value ? marked.parse(projekt.value.kern.text || '') : '')
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<p v-if="fehler" class="fehler">{{ fehler }}</p>
|
||||
<!-- Erst-Scan: noch kein .planer/, aber Lauf aktiv → nur Fortschritt zeigen -->
|
||||
<div v-if="!projekt && scanLaeuft" class="erstscan">
|
||||
<h2>{{ name }}</h2>
|
||||
<p class="laden">Erster Scan läuft — die Ansicht lädt automatisch, sobald er fertig ist.</p>
|
||||
<ScanSeitenleiste :name="name" />
|
||||
</div>
|
||||
<p v-else-if="fehler" class="fehler">{{ fehler }}</p>
|
||||
<div v-else-if="projekt" class="rahmen" :class="{ mitLeiste: scanLaeuft }">
|
||||
<div>
|
||||
<section class="kern karte">
|
||||
@@ -73,6 +82,9 @@ const kernHtml = computed(() =>
|
||||
|
||||
<style scoped>
|
||||
.rahmen.mitLeiste { display: grid; grid-template-columns: 1fr 300px; gap: 1.2rem; }
|
||||
.erstscan { max-width: 420px; }
|
||||
.erstscan h2 { margin: 0 0 0.4rem; font-size: 1.2rem; }
|
||||
.erstscan .laden { margin-bottom: 1rem; }
|
||||
.kern { margin-bottom: 1.2rem; }
|
||||
.kern h2 { margin: 0 0 0.4rem; font-size: 1.2rem; }
|
||||
.kern-text :deep(p) { margin: 0.3rem 0; color: var(--dezent); }
|
||||
|
||||
Reference in New Issue
Block a user