fix: Temperatureingabe negativ, Monatsauswahl auf aktuellem Monat begrenzt

- LogbuchForm: Temperatur als String-State (tempRaw) – Minus-Vorzeichen tippbar
- LogbuchList: input[type=month] mit max=currentMonth(), kein Zukunftsmonat wählbar
- .gitignore: DB_BACKUP/ ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-14 20:47:44 +02:00
parent 4593713042
commit cf038ad3be
3 changed files with 13 additions and 11 deletions
+10 -10
View File
@@ -39,6 +39,7 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved
const [bemerkungen, setBemerkungen] = useState('');
const [sonderName, setSonderName] = useState('');
const [wetter, setWetter] = useState<Wetter>({ temp: 0, feuchte: 0, druck: 0 });
const [tempRaw, setTempRaw] = useState('0');
const [saving, setSaving] = useState(false);
const [error, setError] = useState('');
const [success, setSuccess] = useState(false);
@@ -68,6 +69,7 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved
.then((w: Wetter) => {
if (!editEntryRef.current) {
setWetter({ temp: w.temp, feuchte: Math.round(w.feuchte), druck: Math.round(w.druck) });
setTempRaw(String(w.temp));
}
})
.catch(() => {});
@@ -82,11 +84,9 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved
setBemerkungen(editEntry.Bemerkungen ?? '');
setSonderName(editEntry.SonderName ?? '');
if (editEntry.WetterTemp !== null) {
setWetter({
temp: editEntry.WetterTemp ?? 0,
feuchte: Math.round(editEntry.WetterFeuchte ?? 0),
druck: Math.round(editEntry.WetterDruck ?? 0),
});
const t = editEntry.WetterTemp ?? 0;
setWetter({ temp: t, feuchte: Math.round(editEntry.WetterFeuchte ?? 0), druck: Math.round(editEntry.WetterDruck ?? 0) });
setTempRaw(String(t));
}
} else {
setArtFuehrung('RF');
@@ -161,7 +161,7 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved
beoIds: beos.map((b) => b.ID),
objekte: showObjekte ? objekte : [],
Bemerkungen: bemerkungen,
Wetter: wetter,
Wetter: { ...wetter, temp: parseFloat(tempRaw) || 0 },
};
const url = editEntry ? `/api/logbuch/${editEntry.ID}` : '/api/logbuch';
@@ -328,10 +328,10 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved
<div>
<label className="block text-xs text-gray-500 mb-0.5">Temperatur (°C)</label>
<input
type="number"
value={wetter.temp}
onChange={(e) => setWetter({ ...wetter, temp: parseFloat(e.target.value) || 0 })}
step="0.1"
type="text"
inputMode="decimal"
value={tempRaw}
onChange={(e) => setTempRaw(e.target.value)}
className="w-1/3 px-2 py-1 border-2 border-gray-400 rounded-lg bg-white text-sm text-gray-900 focus:border-blue-500 focus:outline-none"
/>
</div>