Fahrgestellnummer: expliziter "automatisch"-Schalter statt Nur-wenn-leer-Heuristik
- Neues Profilfeld fahrzeug.fin_automatisch (Standard: an). - identitaet.py: bei "aus" läuft die Ableitung (samt Mehrfach-Sensor-Abgleich) gar nicht erst; bei "an" überschreibt der abgeleitete Wert auch einen vorher von Hand eingetragenen - der Schalter selbst entscheidet jetzt, statt aus einem leeren Feld zu raten. - dienste.py: profil_schreiben löst die Ableitung jetzt auch aus, damit das Umschalten des Schalters selbst sofort wirkt. - Panel: Schalter "automatisch" zwischen Label und Textfeld in der Fahrgestellnummer-Zeile, Feld wird bei "an" deaktiviert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -134,6 +134,10 @@ function profilZuCar(p, status) {
|
||||
const reifenSatz = (k) => p.reifen.saetze[k] || {};
|
||||
return {
|
||||
fin: p.fahrzeug.fin,
|
||||
// Default true (auch für Profile von vor dieser Funktion, die das Feld
|
||||
// noch nicht kennen) - deckt sich mit identitaet.py's eigenem
|
||||
// fahrzeug.get("fin_automatisch", True).
|
||||
finAutomatisch: p.fahrzeug.fin_automatisch !== false,
|
||||
details: p.fahrzeug.details,
|
||||
erstzulassung: p.fahrzeug.erstzulassung,
|
||||
hu: p.fahrzeug.hauptuntersuchung_faellig,
|
||||
@@ -198,6 +202,7 @@ function configCarZuProfil(vorherigesProfil) {
|
||||
p.fahrzeug.kennzeichen = CONFIG.kennzeichen;
|
||||
p.fahrzeug.hauptuntersuchung_faellig = CAR.hu;
|
||||
p.fahrzeug.fin = CAR.fin;
|
||||
p.fahrzeug.fin_automatisch = CAR.finAutomatisch;
|
||||
p.fahrzeug.erstzulassung = CAR.erstzulassung;
|
||||
p.fahrzeug.ausfuehrung = CONFIG.ausfuehrung;
|
||||
p.einstellungen.uebersichtsbild = CONFIG.startbild;
|
||||
@@ -2520,7 +2525,14 @@ function vEinst() {
|
||||
<div class="tile"><span class="label">Fahrzeug einrichten</span>
|
||||
${einrichtenOffen ? `
|
||||
<div class="feld" style="margin-top:16px"><label for="einFin">Fahrgestellnummer (FIN)</label>
|
||||
<input id="einFin" value="${esc(CAR.fin || "")}" data-einrichten="fin"></div>
|
||||
<span style="display:flex;align-items:center;gap:10px;min-width:0">
|
||||
<span style="display:flex;align-items:center;gap:6px;flex:0 0 auto">
|
||||
<span class="label" style="margin:0;text-transform:none;letter-spacing:0;font-size:12.5px;color:var(--fg2)">automatisch</span>
|
||||
<label class="switch"><input type="checkbox" data-fin-automatisch ${CAR.finAutomatisch ? "checked" : ""}><span class="track"></span></label>
|
||||
</span>
|
||||
<input id="einFin" value="${esc(CAR.fin || "")}" data-einrichten="fin" ${CAR.finAutomatisch ? "disabled" : ""}
|
||||
title="${CAR.finAutomatisch ? "Wird automatisch aus den im Setup zugeordneten Sensoren ermittelt - \"automatisch\" ausschalten, um von Hand einzutragen." : ""}">
|
||||
</span></div>
|
||||
<div class="feld"><label for="einModell">Modell</label>
|
||||
<select id="einModell" data-einrichten="modell">
|
||||
${(FAHRZEUG_MODELLE.includes(CONFIG.fahrzeugtitel) ? FAHRZEUG_MODELLE : [CONFIG.fahrzeugtitel, ...FAHRZEUG_MODELLE])
|
||||
@@ -5372,6 +5384,7 @@ function ereignisseVerdrahten() {
|
||||
if (e.target.dataset.steuerzeit !== undefined) { CAR.steuer.zeitraum = e.target.value; profilSpeichern(); render(); return; }
|
||||
if (e.target.dataset.steuerfaellig !== undefined) { CAR.steuer.faellig = e.target.value; profilSpeichern(); render(); return; }
|
||||
if (e.target.dataset.steuerlast !== undefined) { CAR.steuer.lastschrift = e.target.checked; profilSpeichern(); render(); return; }
|
||||
if (e.target.dataset.finAutomatisch !== undefined) { CAR.finAutomatisch = e.target.checked; profilSpeichern(); render(); return; }
|
||||
const vteil = e.target.dataset.vteil;
|
||||
if (vteil) {
|
||||
const [i, feld] = vteil.split("|");
|
||||
|
||||
@@ -702,6 +702,10 @@ button.leaf:active { background: var(--tile-2); }
|
||||
appearance: none;
|
||||
}
|
||||
.feld input:focus, .feld select:focus, .notiz:focus { outline: none; border-color: var(--red); }
|
||||
/* z. B. Fahrgestellnummer bei aktivem "automatisch"-Schalter: der Wert kommt
|
||||
aus den zugeordneten Sensoren, Handeingabe ist erst nach dem Ausschalten
|
||||
wieder möglich - das Feld soll das auf den ersten Blick zeigen. */
|
||||
.feld input:disabled { opacity: .5; cursor: not-allowed; }
|
||||
/* Label und Eingabe untereinander statt nebeneinander, die Eingabe über die
|
||||
volle Zeilenbreite - für Felder, deren Wert typischerweise länger ist als
|
||||
ein Kurztext (Kommentar bei Sommer-/Winterrädern, live wie archiviert).
|
||||
|
||||
Reference in New Issue
Block a user