Slot-Close-Knoepfe groesser und in CLOSE-Farbe; grosser CLOSE-Knopf entfernt

User-Wunsch, drei Teile.

(1) GROESSER: font-size 0.72 -> 1rem, Polster 0.17/0.33 -> 0.39/0.61rem, fett.
(2) FARBE wie der bisherige CLOSE-Knopf: background #2d2000, color var(--accent),
    Rahmen #4a3600 - derselbe Bernstein-Ton, damit "schliessen" ueberall gleich
    aussieht.
(3) Grosser CLOSE-Knopf aus der Aktionsleiste ENTFERNT.

⚠⚠ DER HAKEN AN (3), geprueft bevor entfernt: der Knopf hatte ZWEI Aufgaben im
Render, nicht nur das Klicken - `disabled`, wenn keine Position offen ist, und
BLINKEN beim Close-Alarm (`closeBtn.classList.toggle("blink", closeAlert)`).
Haette ich ihn nur aus der HTML geloescht, waere der Alarm still geworden: nur
noch Ton, keine Sichtbarkeit. Beides ist mitgezogen:
  - `close-main` ist disabled, wenn Slot 1 leer ist; `close-brk`, wenn BRK leer
    ist (vorher gab es diese Unterscheidung gar nicht)
  - `.px-close.blink` nutzt dieselbe `blkClose`-Keyframe wie vorher, und weil
    die Farben identisch sind, sieht das Blinken exakt aus wie zuvor
⚠ Es blinkt NUR der Slot-1-Knopf: dort entstehen `sr_close_hint` und der
Flip-Alarm. Ein blinkender BRK-Knopf ohne Anlass waere ein Fehlsignal.

FUNKTIONAL GEPRUEFT (drei Zustaende gegen ein Minimal-DOM):
  hasPos=1 hasBrk=0 alarm=0 -> main aktiv,  brk gesperrt, kein Blinken
  hasPos=0 hasBrk=1 alarm=1 -> main gesperrt, brk aktiv,  Blinken
  hasPos=1 hasBrk=1 alarm=1 -> beide aktiv,               Blinken
0 verbliebene `data-side="close"`-Referenzen in JS und HTML.

⚠ `.btn.close` und `.btn.close.blink` bleiben in der CSS stehen - ungenutzt,
aber harmlos, und sie machen ein Zurueckholen des grossen Knopfs zu einer
Ein-Zeilen-Sache.

v=200 (HTML, JS, style.css und der Cache-Waechter `data-html-v` alle
gleichgezogen und am ausgelieferten Stand verifiziert).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-20 12:04:07 +02:00
co-authored by Claude Opus 5
parent 54bcc9f81d
commit 3e275e7515
3 changed files with 32 additions and 12 deletions
+13 -4
View File
@@ -1350,10 +1350,16 @@ function render(d) {
const hasPos = !!p.ticket;
const longBtn = document.querySelector('.btn[data-side="long"]');
const shortBtn = document.querySelector('.btn[data-side="short"]');
const closeBtn = document.querySelector('.btn[data-side="close"]');
// ⚠ Der grosse CLOSE-Knopf ist am 2026-08-20 entfernt (User-Wunsch) — es gibt
// jetzt je Slot einen. Seine beiden Aufgaben wandern mit: `disabled`, wenn
// der Slot leer ist, und BLINKEN beim Close-Alarm. Ohne das haette der
// Alarm seine Sichtbarkeit verloren und nur noch gepiept.
const closeMain = $streng("close-main"), closeBrk = $streng("close-brk");
const hasBrk = !!((d.position_brk || {}).ticket);
longBtn.disabled = hasPos;
shortBtn.disabled = hasPos;
closeBtn.disabled = !hasPos;
if (closeMain) closeMain.disabled = !hasPos;
if (closeBrk) closeBrk.disabled = !hasBrk;
// BRK-Schalter ENTFERNT (User 2026-08-19), dafuer der Circuit-Breaker. Der
// Auto-Squeeze-ZUSTAND bleibt in der Breakout-Karte sichtbar -- nur sein
// Schalter ist weg (jetzt POST-Endpunkt bzw. ini).
@@ -1417,7 +1423,10 @@ function render(d) {
const srAuto = !!d.auto_sr_close;
const srClose = !!(srHint && srHint.close); // P(break) < Schwelle → schließen
const closeAlert = flipClose || (gainOK && srClose);
closeBtn.classList.toggle("blink", closeAlert);
// ⚠ Der Alarm gilt der Position in Slot 1 (dort entsteht `sr_close_hint` und
// der Flip). Deshalb blinkt nur dieser Knopf — ein blinkender BRK-Knopf
// ohne Anlass waere ein Fehlsignal.
if (closeMain) closeMain.classList.toggle("blink", closeAlert);
if (closeAlert) beepCloseAlert(); // Blinken + Ton (gedrosselt, alle 4 s)
const hintEl = $("pos-srhint");
if (hintEl) {
@@ -2358,7 +2367,7 @@ async function closeSlot(slot, label, pnl) {
// und der Browser zeigte Altes. Statt das jedes Mal von Hand zu diagnostizieren,
// sagt die Seite es jetzt selbst.
// ⚠ Bewusst SICHTBAR statt nur Konsole: die Konsole sieht am Handy niemand.
const _JS_V = "199";
const _JS_V = "200";
{
const htmlV = document.body && document.body.dataset
? document.body.dataset.htmlV : null;
+7 -4
View File
@@ -12,9 +12,9 @@
⚠ LOKAL eingebunden, kein CDN: die PWA laeuft ueber WireGuard
und muss offline funktionieren. -->
<link rel="stylesheet" href="pico.min.css?v=1">
<link rel="stylesheet" href="style.css?v=199">
<link rel="stylesheet" href="style.css?v=200">
</head>
<body data-html-v="199">
<body data-html-v="200">
<!-- Modul-Menü (ganz oben) -->
<nav id="tabs">
<button class="tab active" data-view="dash">Dashboard</button>
@@ -381,7 +381,10 @@
+ Neustart. -->
<button class="btn long" data-side="long">▲ LONG<span class="btn-raum" id="raum-long"></span></button>
<button class="btn short" data-side="short">▼ SHORT<span class="btn-raum" id="raum-short"></span></button>
<button class="btn close" data-side="close">✕ CLOSE</button>
<!-- ⚠ Grosser CLOSE-Knopf ENTFERNT (User 2026-08-20): es gibt jetzt je Slot
einen ✕ direkt an der G/V-Anzeige. Seine beiden Aufgaben sind mit
umgezogen — `disabled` bei leerem Slot und das BLINKEN beim
Close-Alarm (nur Slot 1, dort entsteht der Anlass). -->
<!-- BRK-Schalter ENTFERNT, dafuer der Circuit-Breaker (User 2026-08-19).
Der Auto-Squeeze-Zustand bleibt in der Breakout-Karte sichtbar. -->
<button class="btn tog" id="btn-cb" title="Circuit Breaker (Tagesverlust-Stopp) an/aus">🛑 CIRCUIT BREAKER</button>
@@ -418,6 +421,6 @@
</div>
<div id="toast" class="toast hidden"></div>
<script src="app.js?v=199"></script>
<script src="app.js?v=200"></script>
</body>
</html>
+12 -4
View File
@@ -695,10 +695,18 @@ main{padding-bottom:4.1111rem} /* Platz für die fixe Leiste */
EINE der beiden Positionen weg soll. */
.px-line{display:flex; align-items:center; gap:0.3333rem}
.px-half.rechts .px-line{flex-direction:row-reverse}
/* ⚠ Groesse und Farbe wie der frühere grosse CLOSE-Knopf (User 2026-08-20):
`background:#2d2000; color:var(--accent)` — derselbe Bernstein-Ton, damit
„schliessen" ueberall gleich aussieht. Der grosse Knopf ist entfernt, diese
beiden haben seine Aufgaben uebernommen (disabled + Blinken beim Alarm). */
.px-close{
background:transparent; border:1px solid var(--border); border-radius:var(--r-sm);
color:var(--dim); cursor:pointer; font-size:0.7222rem; line-height:1;
padding:0.1667rem 0.3333rem; font-family:inherit;
background:#2d2000; border:1px solid #4a3600; border-radius:var(--r-sm);
color:var(--accent); cursor:pointer; font-size:1rem; font-weight:600;
line-height:1; padding:0.3889rem 0.6111rem; font-family:inherit;
transition:filter .15s;
}
.px-close:hover{color:#f85149; border-color:#5c1a1a}
.px-close:hover{filter:brightness(1.35)}
.px-close[disabled]{opacity:.3; cursor:default}
/* ⚠ Blinken uebernommen vom entfernten CLOSE-Knopf — sonst haette der
Close-Alarm seine Sichtbarkeit verloren und nur noch gepiept. */
.px-close.blink{animation:blkClose .6s ease-in-out infinite}