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;