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:
@@ -40,3 +40,4 @@ yarn-error.log*
|
|||||||
*.tsbuildinfo
|
*.tsbuildinfo
|
||||||
next-env.d.ts
|
next-env.d.ts
|
||||||
backup.git/
|
backup.git/
|
||||||
|
DB_BACKUP/
|
||||||
|
|||||||
+10
-10
@@ -39,6 +39,7 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved
|
|||||||
const [bemerkungen, setBemerkungen] = useState('');
|
const [bemerkungen, setBemerkungen] = useState('');
|
||||||
const [sonderName, setSonderName] = useState('');
|
const [sonderName, setSonderName] = useState('');
|
||||||
const [wetter, setWetter] = useState<Wetter>({ temp: 0, feuchte: 0, druck: 0 });
|
const [wetter, setWetter] = useState<Wetter>({ temp: 0, feuchte: 0, druck: 0 });
|
||||||
|
const [tempRaw, setTempRaw] = useState('0');
|
||||||
const [saving, setSaving] = useState(false);
|
const [saving, setSaving] = useState(false);
|
||||||
const [error, setError] = useState('');
|
const [error, setError] = useState('');
|
||||||
const [success, setSuccess] = useState(false);
|
const [success, setSuccess] = useState(false);
|
||||||
@@ -68,6 +69,7 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved
|
|||||||
.then((w: Wetter) => {
|
.then((w: Wetter) => {
|
||||||
if (!editEntryRef.current) {
|
if (!editEntryRef.current) {
|
||||||
setWetter({ temp: w.temp, feuchte: Math.round(w.feuchte), druck: Math.round(w.druck) });
|
setWetter({ temp: w.temp, feuchte: Math.round(w.feuchte), druck: Math.round(w.druck) });
|
||||||
|
setTempRaw(String(w.temp));
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
@@ -82,11 +84,9 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved
|
|||||||
setBemerkungen(editEntry.Bemerkungen ?? '');
|
setBemerkungen(editEntry.Bemerkungen ?? '');
|
||||||
setSonderName(editEntry.SonderName ?? '');
|
setSonderName(editEntry.SonderName ?? '');
|
||||||
if (editEntry.WetterTemp !== null) {
|
if (editEntry.WetterTemp !== null) {
|
||||||
setWetter({
|
const t = editEntry.WetterTemp ?? 0;
|
||||||
temp: editEntry.WetterTemp ?? 0,
|
setWetter({ temp: t, feuchte: Math.round(editEntry.WetterFeuchte ?? 0), druck: Math.round(editEntry.WetterDruck ?? 0) });
|
||||||
feuchte: Math.round(editEntry.WetterFeuchte ?? 0),
|
setTempRaw(String(t));
|
||||||
druck: Math.round(editEntry.WetterDruck ?? 0),
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
setArtFuehrung('RF');
|
setArtFuehrung('RF');
|
||||||
@@ -161,7 +161,7 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved
|
|||||||
beoIds: beos.map((b) => b.ID),
|
beoIds: beos.map((b) => b.ID),
|
||||||
objekte: showObjekte ? objekte : [],
|
objekte: showObjekte ? objekte : [],
|
||||||
Bemerkungen: bemerkungen,
|
Bemerkungen: bemerkungen,
|
||||||
Wetter: wetter,
|
Wetter: { ...wetter, temp: parseFloat(tempRaw) || 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
const url = editEntry ? `/api/logbuch/${editEntry.ID}` : '/api/logbuch';
|
const url = editEntry ? `/api/logbuch/${editEntry.ID}` : '/api/logbuch';
|
||||||
@@ -328,10 +328,10 @@ export default function LogbuchForm({ kuppel, currentUserBeo, editEntry, onSaved
|
|||||||
<div>
|
<div>
|
||||||
<label className="block text-xs text-gray-500 mb-0.5">Temperatur (°C)</label>
|
<label className="block text-xs text-gray-500 mb-0.5">Temperatur (°C)</label>
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="text"
|
||||||
value={wetter.temp}
|
inputMode="decimal"
|
||||||
onChange={(e) => setWetter({ ...wetter, temp: parseFloat(e.target.value) || 0 })}
|
value={tempRaw}
|
||||||
step="0.1"
|
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"
|
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>
|
</div>
|
||||||
|
|||||||
@@ -117,7 +117,8 @@ export default function LogbuchList({ kuppel, refreshKey, onEdit, limit = 10, co
|
|||||||
<input
|
<input
|
||||||
type="month"
|
type="month"
|
||||||
value={month}
|
value={month}
|
||||||
onChange={(e) => 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"
|
className="border border-gray-300 rounded-lg px-2 py-1 text-sm"
|
||||||
/>
|
/>
|
||||||
<button
|
<button
|
||||||
|
|||||||
Reference in New Issue
Block a user