136 lines
6.5 KiB
HTML
136 lines
6.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Einstellungen</title>
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
</head>
|
|
<body>
|
|
<header class="header">
|
|
<div class="header-content">
|
|
<div class="logo">
|
|
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<rect width="40" height="40" rx="8" fill="#667eea"/>
|
|
<path d="M12 20L18 26L28 14" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
<span class="logo-text">Sensor Manager</span>
|
|
</div>
|
|
<nav class="nav">
|
|
<a href="/table/modbus_input_register" class="nav-link {% if active_page == 'modbus_input_register' %}active{% endif %}">Input Register</a>
|
|
<a href="/table/modbus_holding_register" class="nav-link {% if active_page == 'modbus_holding_register' %}active{% endif %}">Holding Register</a>
|
|
<a href="/table/modbus_coils" class="nav-link {% if active_page == 'modbus_coils' %}active{% endif %}">Coils</a>
|
|
<a href="/settings" class="nav-link {% if active_page == 'settings' %}active{% endif %}">⚙️ Einstellungen</a>
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="container">
|
|
|
|
|
|
<h1>⚙️ Einstellungen</h1>
|
|
<div id="message" class="message"></div>
|
|
|
|
<div class="settings-section">
|
|
<h2>Allgemein</h2>
|
|
<div class="form-group">
|
|
<label for="loglevel">Loglevel:</label>
|
|
<select id="loglevel" class="text-input">
|
|
<option value="DEBUG">DEBUG</option>
|
|
<option value="INFO">INFO</option>
|
|
<option value="WARN">WARN</option>
|
|
<option value="ERROR">ERROR</option>
|
|
</select>
|
|
</div>
|
|
<div class="form-group" style="display: flex; align-items: center; gap: 12px;">
|
|
<label for="darkmode_switch">Darkmode:</label>
|
|
<label class="switch">
|
|
<input type="checkbox" id="darkmode_switch">
|
|
<span class="slider"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="settings-section">
|
|
<h2>Modbus Konfiguration</h2>
|
|
<div class="form-group">
|
|
<label for="modbus_host">Host:</label>
|
|
<input type="text" id="modbus_host" class="text-input" value="{{ modbus.host }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modbus_port">Port:</label>
|
|
<input type="text" id="modbus_port" class="text-input" value="{{ modbus.port }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modbus_max_coils_addr">Max Coils Addr:</label>
|
|
<input type="text" id="modbus_max_coils_addr" class="text-input" value="{{ modbus.max_coils_addr | default(value="") }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modbus_max_input_addr">Max Input Addr:</label>
|
|
<input type="text" id="modbus_max_input_addr" class="text-input" value="{{ modbus.max_input_addr | default(value="") }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modbus_max_holding_addr">Max Holding Addr:</label>
|
|
<input type="text" id="modbus_max_holding_addr" class="text-input" value="{{ modbus.max_holding_addr | default(value="") }}" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="settings-section">
|
|
<h2>MQTT Konfiguration</h2>
|
|
<div class="form-group">
|
|
<label for="mqtt_broker">MQTT Broker:</label>
|
|
<input type="text" id="mqtt_broker" class="text-input" value="{{ mqtt.broker }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mqtt_port">MQTT Port:</label>
|
|
<input type="text" id="mqtt_port" class="text-input" value="{{ mqtt.port }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mqtt_user">MQTT User:</label>
|
|
<input type="text" id="mqtt_user" class="text-input" value="{{ mqtt.user | default(value="") }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mqtt_password">MQTT Passwort:</label>
|
|
<input type="password" id="mqtt_password" class="text-input" value="{{ mqtt.password | default(value="") }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mqtt_button_circulation">Button Circulation:</label>
|
|
<input type="text" id="mqtt_button_circulation" class="text-input" value="{{ mqtt.button_circulation | default(value="") }}" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="settings-section">
|
|
<h2>InfluxDB Konfiguration</h2>
|
|
<div class="form-group">
|
|
<label for="influxdb_url">InfluxDB URL:</label>
|
|
<input type="text" id="influxdb_url" class="text-input" value="{{ influxdb.url }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="influxdb_token">InfluxDB Token:</label>
|
|
<input type="password" id="influxdb_token" class="text-input" value="{{ influxdb.token }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="influxdb_bucket">Bucket:</label>
|
|
<input type="text" id="influxdb_bucket" class="text-input" value="{{ influxdb.bucket }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="influxdb_org">Org:</label>
|
|
<input type="text" id="influxdb_org" class="text-input" value="{{ influxdb.org }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="influxdb_location">Location:</label>
|
|
<input type="text" id="influxdb_location" class="text-input" value="{{ influxdb.location | default(value="") }}" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="influxdb_measurement">Measurement:</label>
|
|
<input type="text" id="influxdb_measurement" class="text-input" value="{{ influxdb.measurement | default(value="") }}" />
|
|
</div>
|
|
</div>
|
|
|
|
<button class="save-btn" onclick="saveSettings()">💾 Einstellungen speichern</button>
|
|
</div>
|
|
|
|
<script src="/static/settings.js"></script>
|
|
</body>
|
|
</html>
|