Replace the sample-data scaffold with real SQL, un-scoped across all presses and scoped to one plant (PLANT_NAME env, default Cadolzburg). - api/routes.py: press list from press_settings.presses; per-press good/chips from active_orders + rejects; run/stop/idle by cycle recency (cycles_new); stop note from downtimes + downtime_reasons; on-way / in-oven / finished carts + nicht-verladen from temper_tracking (live position derived IN SQL from planned times vs NOW(); reprint rows excluded so carts never double-count). Thin _fetch_* helpers (degrade to empty, never 500) + a pure _build_payload. - Oven temperature omitted (no sensor feed): ovenTempC optional in the type, °C chip hidden in OvenBand.vue, coerced in ProductionLine.vue. - Rebuilt dist/. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
19 lines
758 B
HTML
19 lines
758 B
HTML
<!doctype html>
|
|
<!--
|
|
Dark-first board (class="dark" → @sp-ui-kit token dark values + PrimeVue dark
|
|
mode, whose darkModeSelector is ".dark"). data-density="comfortable": this is a
|
|
view-only wall board, not a finger-touch panel (the reject STATION uses "touch").
|
|
-->
|
|
<html lang="de" class="dark" data-density="comfortable">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Temper-Linie · Live-Übersicht</title>
|
|
<script type="module" crossorigin src="/module/temper_overview/assets/index-C3BK_Qev.js"></script>
|
|
<link rel="stylesheet" crossorigin href="/module/temper_overview/assets/index-BxZ3b12T.css">
|
|
</head>
|
|
<body>
|
|
<div id="app"></div>
|
|
</body>
|
|
</html>
|