Messwerteingänge
Überschrift "Einstellungen Messwerteingang 1" Bezeichnung mit : Eingabefeld rechts daneben. Offset mit drei Nachkommastellen Faktor mit drei Nachkommastellen Anstatt Loggerintervall "Speicherintervall" schreiben mit Einheit Minuten im Eingabefeld wie bei Kü Buttons wie bei Meldeeingänge (Schließen und Speichern)
This commit is contained in:
@@ -13,8 +13,8 @@ export default function AnalogInputSettingsModal({
|
|||||||
onClose,
|
onClose,
|
||||||
}: Props) {
|
}: Props) {
|
||||||
const [name, setName] = useState("");
|
const [name, setName] = useState("");
|
||||||
const [offset, setOffset] = useState("0.000000");
|
const [offset, setOffset] = useState("0.000");
|
||||||
const [factor, setFactor] = useState("1.000000");
|
const [factor, setFactor] = useState("1.000");
|
||||||
const [loggerInterval, setLoggerInterval] = useState("10");
|
const [loggerInterval, setLoggerInterval] = useState("10");
|
||||||
const [unit, setUnit] = useState("V");
|
const [unit, setUnit] = useState("V");
|
||||||
const [isSaving, setIsSaving] = useState(false);
|
const [isSaving, setIsSaving] = useState(false);
|
||||||
@@ -24,13 +24,13 @@ export default function AnalogInputSettingsModal({
|
|||||||
setName(selectedInput.name || "");
|
setName(selectedInput.name || "");
|
||||||
setOffset(
|
setOffset(
|
||||||
typeof selectedInput.offset === "number"
|
typeof selectedInput.offset === "number"
|
||||||
? selectedInput.offset.toFixed(6)
|
? selectedInput.offset.toFixed(3)
|
||||||
: selectedInput.offset || "0.000000"
|
: selectedInput.offset || "0.000"
|
||||||
);
|
);
|
||||||
setFactor(
|
setFactor(
|
||||||
typeof selectedInput.factor === "number"
|
typeof selectedInput.factor === "number"
|
||||||
? selectedInput.factor.toFixed(6)
|
? selectedInput.factor.toFixed(3)
|
||||||
: selectedInput.factor || "1.000000"
|
: selectedInput.factor || "1.000"
|
||||||
);
|
);
|
||||||
setLoggerInterval(
|
setLoggerInterval(
|
||||||
selectedInput.loggerInterval !== undefined
|
selectedInput.loggerInterval !== undefined
|
||||||
@@ -101,39 +101,61 @@ export default function AnalogInputSettingsModal({
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50">
|
<div className="fixed top-0 left-0 w-full h-full bg-black bg-opacity-50 flex justify-center items-center z-50">
|
||||||
<div className="bg-white rounded shadow p-6 w-full max-w-md">
|
<div className="bg-white rounded-lg shadow-lg p-6 w-1/2 max-w-lg">
|
||||||
<h2 className="text-lg font-semibold mb-4">
|
<h2 className="text-base font-bold mb-4 border-b pb-2">
|
||||||
Eingang {selectedInput.id} – Einstellungen
|
Einstellungen Messwerteingang {selectedInput.id}
|
||||||
</h2>
|
</h2>
|
||||||
|
{/* Bezeichnung */}
|
||||||
<label className="block mb-2 text-sm font-medium">Bezeichnung</label>
|
<div className="grid grid-cols-2 gap-x-4 gap-y-3">
|
||||||
|
<div>
|
||||||
|
<span className="font-normal">Bezeichnung:</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
className="w-full border rounded px-3 py-1 mb-4"
|
className="w-full border rounded px-3 py-1 mb-4"
|
||||||
value={name}
|
value={name}
|
||||||
onChange={(e) => setName(e.target.value)}
|
onChange={(e) => setName(e.target.value)}
|
||||||
/>
|
/>
|
||||||
|
</div>
|
||||||
<label className="block mb-2 text-sm font-medium">Offset</label>
|
</div>
|
||||||
|
{/* Offset */}
|
||||||
|
<div className="grid grid-cols-2 gap-x-4 gap-y-3 mb-4">
|
||||||
|
<div>
|
||||||
|
<span className="font-normal">Offset:</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
step="0.000001"
|
step="0.001"
|
||||||
className="w-full border rounded px-3 py-1 mb-4"
|
className="border border-gray-300 rounded px-2 py-1 w-full text-right "
|
||||||
value={offset}
|
value={offset}
|
||||||
onChange={(e) => setOffset(e.target.value)}
|
onChange={(e) => setOffset(e.target.value)}
|
||||||
/>
|
/>
|
||||||
|
</div>
|
||||||
<label className="block mb-2 text-sm font-medium">Faktor</label>
|
</div>
|
||||||
|
{/* Faktor */}
|
||||||
|
<div className="grid grid-cols-2 gap-x-4 gap-y-3 mb-4">
|
||||||
|
<div>
|
||||||
|
<span className="font-normal">Faktor:</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
step="0.000001"
|
step="0.001"
|
||||||
className="w-full border rounded px-3 py-1 mb-4"
|
className="border border-gray-300 rounded px-2 py-1 w-full text-right"
|
||||||
value={factor}
|
value={factor}
|
||||||
onChange={(e) => setFactor(e.target.value)}
|
onChange={(e) => setFactor(e.target.value)}
|
||||||
/>
|
/>{" "}
|
||||||
|
</div>
|
||||||
<label className="block mb-2 text-sm font-medium">Einheit</label>
|
</div>
|
||||||
|
{/* Einheit */}
|
||||||
|
<div className="grid grid-cols-2 gap-x-4 gap-y-3">
|
||||||
|
<div>
|
||||||
|
<span className="font-normal">Einheit:</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
<select
|
<select
|
||||||
className="w-full border rounded px-3 py-1 mb-4"
|
className="w-full border rounded px-3 py-1 mb-4"
|
||||||
value={unit}
|
value={unit}
|
||||||
@@ -145,29 +167,36 @@ export default function AnalogInputSettingsModal({
|
|||||||
<option value="bar">bar</option>
|
<option value="bar">bar</option>
|
||||||
<option value="%">%</option>
|
<option value="%">%</option>
|
||||||
</select>
|
</select>
|
||||||
|
</div>
|
||||||
<label className="block mb-2 text-sm font-medium">
|
</div>
|
||||||
Loggerintervall (s)
|
{/* Loggerintervall/Speicherintervall */}
|
||||||
</label>
|
<div className="grid grid-cols-2 gap-x-4 gap-y-3 ">
|
||||||
|
<span className="font-normal">Speicherintervall:</span>
|
||||||
|
<div className="relative w-full">
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
className="w-full border rounded px-3 py-1 mb-4"
|
className="border rounded px-2 py-1 pr-20 w-full text-right"
|
||||||
value={loggerInterval}
|
value={loggerInterval}
|
||||||
onChange={(e) => setLoggerInterval(e.target.value)}
|
onChange={(e) => setLoggerInterval(e.target.value)}
|
||||||
/>
|
/>
|
||||||
|
<span className="absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-500 text-sm">
|
||||||
|
Minuten
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="flex justify-end gap-2">
|
<div className="flex justify-end gap-2 mt-6">
|
||||||
<button
|
<button
|
||||||
onClick={onClose}
|
onClick={onClose}
|
||||||
disabled={isSaving}
|
disabled={isSaving}
|
||||||
className="px-4 py-2 bg-gray-300 rounded hover:bg-gray-400"
|
className="bg-littwin-blue text-white px-4 py-2 rounded flex items-center"
|
||||||
>
|
>
|
||||||
Abbrechen
|
Schließen
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
onClick={handleSave}
|
onClick={handleSave}
|
||||||
disabled={isSaving}
|
disabled={isSaving}
|
||||||
className="px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700"
|
className="bg-littwin-blue text-white px-4 py-2 rounded flex items-center"
|
||||||
>
|
>
|
||||||
{isSaving ? "Speichern..." : "Speichern"}
|
{isSaving ? "Speichern..." : "Speichern"}
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -6,5 +6,5 @@
|
|||||||
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
||||||
|
|
||||||
*/
|
*/
|
||||||
const webVersion = "1.6.371";
|
const webVersion = "1.6.372";
|
||||||
export default webVersion;
|
export default webVersion;
|
||||||
|
|||||||
Reference in New Issue
Block a user