From cf038ad3beb8698561ca3b5065047d0e0845625d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20X=2E=20F=C3=BCrst?= Date: Thu, 14 May 2026 20:47:44 +0200 Subject: [PATCH] fix: Temperatureingabe negativ, Monatsauswahl auf aktuellem Monat begrenzt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- .gitignore | 1 + components/LogbuchForm.tsx | 20 ++++++++++---------- components/LogbuchList.tsx | 3 ++- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 2f133f1..0296c91 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ yarn-error.log* *.tsbuildinfo next-env.d.ts backup.git/ +DB_BACKUP/ diff --git a/components/LogbuchForm.tsx b/components/LogbuchForm.tsx index 52c12f6..307a51b 100644 --- a/components/LogbuchForm.tsx +++ b/components/LogbuchForm.tsx @@ -39,6 +39,7 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved const [bemerkungen, setBemerkungen] = useState(''); const [sonderName, setSonderName] = useState(''); const [wetter, setWetter] = useState({ 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
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" />
diff --git a/components/LogbuchList.tsx b/components/LogbuchList.tsx index 2787c5c..79aebfb 100644 --- a/components/LogbuchList.tsx +++ b/components/LogbuchList.tsx @@ -117,7 +117,8 @@ export default function LogbuchList({ kuppel, refreshKey, onEdit, limit = 10, co setMonth(e.target.value)} + max={currentMonth()} + onChange={(e) => setMonth(e.target.value > currentMonth() ? currentMonth() : e.target.value)} className="border border-gray-300 rounded-lg px-2 py-1 text-sm" />