This commit is contained in:
team3
2026-07-24 10:45:42 +02:00
parent 09f9ea74a6
commit 084b07ff50
7 changed files with 87 additions and 74 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

64
frontend/dist/assets/index-Yruju_eh.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -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>

View File

@@ -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>

View File

@@ -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); }