feat: UI-Komponente responsiver gestaltet und angepasst OPCUA-Komponente

- Containergröße reduziert (`max-w-lg` statt `max-w-3xl`), um besser auf die Seite zu passen.
- Padding (`p-4` → `p-2`) und Schriftgrößen (`text-lg` → `text-base`, `text-sm` für Labels) optimiert.
- Buttons kompakter gemacht (`px-3 py-1` statt `px-4 py-2`), um Platz zu sparen.
- Flex-Layout verbessert (`flex-wrap`, `gap-2`), um die Darstellung auf kleineren Bildschirmen zu optimieren.
This commit is contained in:
ISA
2025-02-24 07:16:55 +01:00
parent 65cfb033a5
commit 69b825bd30
2 changed files with 29 additions and 36 deletions

View File

@@ -34,15 +34,17 @@ export default function OPCUAInterfaceSettings() {
}; };
return ( return (
<div className="max-w-3xl mx-auto p-4 bg-gray-100 shadow-md rounded-lg"> <div className="max-w-lg mx-auto p-2 bg-gray-100 shadow-md rounded-lg">
<h2 className="text-lg font-semibold mb-4">OPCUA Server Einstellungen</h2> <h2 className="text-base font-semibold mb-3">
OPCUA Server Einstellungen
</h2>
{/* ✅ Server Aktivierung */} {/* ✅ Server Aktivierung */}
<div className="mb-4 flex items-center"> <div className="mb-3 flex flex-wrap items-center">
<label className="mr-4 font-medium">Server Status:</label> <label className="mr-3 font-medium text-sm">Server Status:</label>
<button <button
onClick={() => dispatch(toggleOpcUaServer())} onClick={() => dispatch(toggleOpcUaServer())}
className={`px-4 py-2 rounded ${ className={`px-3 py-1 rounded text-sm ${
opcuaSettings.isEnabled ? "bg-green-500" : "bg-gray-300" opcuaSettings.isEnabled ? "bg-green-500" : "bg-gray-300"
} text-white`} } text-white`}
> >
@@ -51,12 +53,14 @@ export default function OPCUAInterfaceSettings() {
</div> </div>
{/* ✅ Verschlüsselung */} {/* ✅ Verschlüsselung */}
<div className="mb-4"> <div className="mb-3">
<label className="block font-medium mb-1">Verschlüsselung</label> <label className="block font-medium text-sm mb-1">
Verschlüsselung
</label>
<select <select
value={opcuaSettings.encryption} value={opcuaSettings.encryption}
onChange={(e) => dispatch(setOpcUaEncryption(e.target.value))} onChange={(e) => dispatch(setOpcUaEncryption(e.target.value))}
className="w-full p-2 border border-gray-300 rounded-md" className="w-full p-1 border border-gray-300 rounded-md text-sm"
> >
<option value="None">Keine</option> <option value="None">Keine</option>
<option value="Basic256">Basic256</option> <option value="Basic256">Basic256</option>
@@ -64,35 +68,27 @@ export default function OPCUAInterfaceSettings() {
</select> </select>
</div> </div>
{/* ✅ OPCUA Zustand (nur Anzeige) */} {/* ✅ OPCUA Zustand */}
<div className="mb-4"> <div className="mb-3">
<label className="block font-medium mb-1">OPCUA Zustand</label> <label className="block font-medium text-sm mb-1">OPCUA Zustand</label>
<div className="p-2 border border-gray-300 rounded-md bg-white"> <div className="p-1 border border-gray-300 rounded-md bg-white text-sm">
{opcuaSettings.opcUaZustand} {opcuaSettings.opcUaZustand}
</div> </div>
</div> </div>
{/* ✅ Aktive Clients (nur Anzeige) */}
<div className="mb-4">
<label className="block font-medium mb-1">Aktive Clients</label>
<div className="p-2 border border-gray-300 rounded-md bg-white">
{opcuaSettings.opcUaActiveClientCount}
</div>
</div>
{/* ✅ Nodeset Name */} {/* ✅ Nodeset Name */}
<div className="mb-4"> <div className="mb-3">
<label className="block font-medium mb-1">Nodeset Name</label> <label className="block font-medium text-sm mb-1">Nodeset Name</label>
<div className="flex"> <div className="flex">
<input <input
type="text" type="text"
className="flex-grow p-2 border border-gray-300 rounded-l-md" className="flex-grow p-1 border border-gray-300 rounded-l-md text-sm"
value={nodesetName} value={nodesetName}
onChange={(e) => setNodesetName(e.target.value)} onChange={(e) => setNodesetName(e.target.value)}
/> />
<button <button
onClick={handleNodesetUpdate} onClick={handleNodesetUpdate}
className="px-4 py-2 bg-blue-500 text-white rounded-r-md" className="px-3 py-1 bg-blue-500 text-white rounded-r-md text-sm"
> >
Übernehmen Übernehmen
</button> </button>
@@ -100,18 +96,15 @@ export default function OPCUAInterfaceSettings() {
</div> </div>
{/* ✅ Benutzerverwaltung */} {/* ✅ Benutzerverwaltung */}
<div className="mb-4"> <div className="mb-3">
<h3 className="text-lg font-semibold mb-2">Benutzer</h3> <h3 className="text-base font-semibold mb-2">Benutzer</h3>
<ul className="space-y-2"> <ul className="space-y-1">
{opcuaSettings.users.map((user) => ( {opcuaSettings.users.map((user) => (
<li <li
key={user.id} key={user.id}
className="p-2 bg-white shadow-sm rounded-md flex justify-between items-center" className="p-1 bg-white shadow-sm rounded-md flex justify-between items-center text-sm"
> >
<span className="font-medium">{user.username}</span> <span className="font-medium">{user.username}</span>
<span className="text-gray-600 ml-2">
(Passwort: {user.password})
</span>
<button <button
onClick={() => dispatch(removeOpcUaUser(user.id))} onClick={() => dispatch(removeOpcUaUser(user.id))}
className="text-red-500" className="text-red-500"
@@ -123,24 +116,24 @@ export default function OPCUAInterfaceSettings() {
</ul> </ul>
{/* ✅ Neuen Benutzer hinzufügen */} {/* ✅ Neuen Benutzer hinzufügen */}
<div className="mt-4 flex space-x-2"> <div className="mt-2 flex flex-wrap gap-2">
<input <input
type="text" type="text"
placeholder="Benutzername" placeholder="Benutzername"
value={newUsername} value={newUsername}
onChange={(e) => setNewUsername(e.target.value)} onChange={(e) => setNewUsername(e.target.value)}
className="p-2 border rounded w-1/3" className="p-1 border rounded flex-grow text-sm"
/> />
<input <input
type="password" type="password"
placeholder="Passwort" placeholder="Passwort"
value={newPassword} value={newPassword}
onChange={(e) => setNewPassword(e.target.value)} onChange={(e) => setNewPassword(e.target.value)}
className="p-2 border rounded w-1/3" className="p-1 border rounded flex-grow text-sm"
/> />
<button <button
onClick={handleAddUser} onClick={handleAddUser}
className="bg-blue-500 text-white p-2 rounded w-1/3" className="bg-blue-500 text-white p-1 rounded text-sm"
> >
Hinzufügen Hinzufügen
</button> </button>

View File

@@ -6,5 +6,5 @@
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen). 2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
*/ */
const webVersion = "1.6.95"; const webVersion = "1.6.96";
export default webVersion; export default webVersion;