From df7163bf186f8007d2dd42e807905ed7d0294fa1 Mon Sep 17 00:00:00 2001 From: Axel Hocks Date: Fri, 21 Aug 2026 10:54:54 +0200 Subject: [PATCH] M15 -> "AT" (Auto Trader), Trail -> "TR", beide als runde Knoepfe neben CB (v=212) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User-Vorgabe. Balance-Feld jetzt: Wert - CB - AT - TR. M15 heisst "AT" (Auto Trader), die ID wurde von `btn-m15` auf `btn-at` mitgezogen; Endpoint (/api/autom15) und Backend-Zustand (`auto_m15`) bleiben unveraendert - nur die Beschriftung und der Platz aendern sich. Der Trail-Knopf heisst "TR". ⚠ Fuer TR war KEIN Name vorgegeben ("bennene den Trail Button" - der Satz nennt kein Ziel). "TR" ist analog zu CB/AT gewaehlt, zwei Buchstaben, Mono-Schrift. Umbenennen ist ein Einzeiler, falls etwas anderes gemeint war. ⚠ Beide VERSCHOBEN, nicht kopiert - zwei Elemente mit derselben ID waeren ein stiller Fehler, weil getElementById nur das erste findet. ⚠⚠ ZWEI LESARTEN NEBENEINANDER, und das ist Absicht: CB gruen = AUS (inaktiv, nichts begrenzt) <- ausdrueckliche User-Vorgabe AT gruen = AN (laeuft) TR gruen = AN (laeuft) Drei Knoepfe nebeneinander mit zwei Farb-Bedeutungen sind eine Falle. Deshalb steht die Begruendung im Markup, in der CSS UND im JS, und jeder Tooltip sagt ausdruecklich, was SEIN Zustand bedeutet. Wer die CB-Logik spaeter "geradezieht", soll vorher lesen, dass sie so gewollt ist. Am ausgelieferten HTML geprueft: Reihenfolge balance -> btn-cb -> btn-at -> btn-trail, Beschriftungen CB/AT/TR, 0 doppelte IDs, `btn-m15` nicht mehr vorhanden. Pipeline A-G gruen, 97 Tests, 14 render*-Funktionen, deployt. Co-Authored-By: Claude Opus 5 --- web/app.js | 21 +++++++++++++++------ web/index.html | 15 +++++++++------ web/style.css | 8 ++++++++ 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/web/app.js b/web/app.js index 059afbe..e6a78d0 100644 --- a/web/app.js +++ b/web/app.js @@ -1511,9 +1511,15 @@ function render(d) { // Auto-Squeeze-ZUSTAND bleibt in der Breakout-Karte sichtbar -- nur sein // Schalter ist weg (jetzt POST-Endpunkt bzw. ini). const cb = d.circuit_breaker || {}; - const m15b = $streng("btn-m15"); + const m15b = $streng("btn-at"); if (m15b) { - m15b.classList.toggle("on", !!d.auto_m15); + // ⚠ AT und TR nutzen `an`/`aus` (runde Knoepfe im Balance-Feld). + // Farb-Logik hier die UEBLICHE: gruen = an. + // ⚠⚠ Der Nachbar CB ist bewusst INVERS (gruen = AUS) — ausdrueckliche + // Vorgabe des Nutzers, kein Versehen. Die Tooltips sagen jeweils, was + // der Zustand bedeutet. + m15b.classList.toggle("an", !!d.auto_m15); + m15b.classList.toggle("aus", !d.auto_m15); m15b.title = d.auto_m15 ? "Auto-Entry auf die gruene M15-Karte AN (" + (d.m15_entry_count || 0) + " Entries). ACHTUNG: gemessen negativ -- reiner Test." @@ -1536,7 +1542,10 @@ function render(d) { // Ausführungs-Achsen gemessen negativ — Markt in allen 8 Feldern, ruhende // Order mit Touch-Fill in allen 6 und dabei schlechter als Markt. Grund // strukturell: das Bestätigungs-Level `_pend` WANDERT. - $("btn-trail").classList.toggle("on", !!(d.trail || {}).enabled); + { + const trb = $streng("btn-trail"), trAn = !!(d.trail || {}).enabled; + if (trb) { trb.classList.toggle("an", trAn); trb.classList.toggle("aus", !trAn); } + } // Empfehlungs-Blinken: LONG/SHORT-Button blinkt, sobald die Welle eine // Richtung empfiehlt (= wie in der Welle-Kachel sichtbar) und keine Position @@ -2102,9 +2111,9 @@ _updateMuteBtn(); // Toggle-Buttons (AUTO/TRAIL/S-R-Close) — ohne Bestätigung $("btn-cb").onclick = () => toggle("api/circuit", "Circuit Breaker"); -$("btn-m15").onclick = () => toggle("api/autom15", "M15-Auto-Entry (gemessen negativ!)"); +$streng("btn-at").onclick = () => toggle("api/autom15", "Auto Trader (gemessen negativ!)"); // (🎯 SIG entfernt 2026-08-12 — s. renderOrderButtons oben) -$("btn-trail").onclick = () => toggle("api/trail", "Trailing"); +$streng("btn-trail").onclick = () => toggle("api/trail", "Trailing"); // ⚠ Der Mindestgewinn-Sender ist am 2026-08-21 mit dem S/R-Auto-Close // entfallen — die Schwelle gab es nur fuer ihn (Endpoint, Feld und @@ -2481,7 +2490,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 = "211"; +const _JS_V = "212"; { const htmlV = document.body && document.body.dataset ? document.body.dataset.htmlV : null; diff --git a/web/index.html b/web/index.html index 09bed57..4fe89a0 100644 --- a/web/index.html +++ b/web/index.html @@ -12,9 +12,9 @@ ⚠ LOKAL eingebunden, kein CDN: die PWA laeuft ueber WireGuard und muss offline funktionieren. --> - + - + @@ -485,6 +488,6 @@ - + diff --git a/web/style.css b/web/style.css index e173bdb..c8d1b9c 100644 --- a/web/style.css +++ b/web/style.css @@ -779,3 +779,11 @@ main{padding-bottom:4.1111rem} /* Platz für die fixe Leiste */ .px-cb .cb-dot{width:1.7222rem; height:1.7222rem; font-size:0.6111rem} .cb-dot.inaktiv{background:#0d2a16; border-color:#1a4731; color:#3fb950} .cb-dot.aktiv{background:#2d0d0d; border-color:#5c1a1a; color:#f85149} + +/* ⚠ AT (Auto Trader) und TR (Trailing) neben CB im Balance-Feld + (User 2026-08-21). Farb-Logik hier die UEBLICHE: gruen = AN, grau = aus. + ⚠⚠ Der Nachbar CB ist bewusst INVERS (gruen = AUS) — ausdrueckliche Vorgabe + des Nutzers. Drei Knoepfe nebeneinander mit zwei Lesarten sind eine Falle; + deshalb sagt jeder Tooltip, was sein Zustand bedeutet. */ +.cb-dot.an{background:#0d2a16; border-color:#1a4731; color:#3fb950} +.cb-dot.aus{background:var(--surface-2); border-color:var(--border); color:var(--dim)}