Konfiguration auf yaml umgestellt
This commit is contained in:
1 parent
e74689c70f
commit
09c41821c8
7 files changed
+283
-123
No files matched your search
+75
-33
@@ -19,27 +19,56 @@ function addRow() {
|
||||
|
||||
const newRow = document.createElement('tr');
|
||||
newRow.setAttribute('data-row', rowCount);
|
||||
newRow.innerHTML = `
|
||||
<td><input type='text' class='text-input' data-field='bezeichnung' value='' /></td>
|
||||
<td><input type='text' class='text-input' data-field='adresse' value='' /></td>
|
||||
<td><input type='text' class='text-input' data-field='type' value='' /></td>
|
||||
<td><input type='text' class='text-input' data-field='faktor' value='1.0' /></td>
|
||||
<td>
|
||||
<label class='switch'>
|
||||
<input type='checkbox' class='bool-input' data-field='mqtt' />
|
||||
<span class='slider'></span>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<label class='switch'>
|
||||
<input type='checkbox' class='bool-input' data-field='influxdb' />
|
||||
<span class='slider'></span>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<button class="delete-btn" onclick="deleteRow(this)">🗑️</button>
|
||||
</td>
|
||||
`;
|
||||
if (typeof tableId !== 'undefined' && tableId === 'modbus_coils') {
|
||||
newRow.innerHTML = `
|
||||
<td><input type='text' class='text-input' data-field='bezeichnung' value='' /></td>
|
||||
<td><input type='number' class='text-input' data-field='adresse' value='' /></td>
|
||||
<td>
|
||||
<label class='switch'>
|
||||
<input type='checkbox' class='bool-input' data-field='write' />
|
||||
<span class='slider'></span>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<label class='switch'>
|
||||
<input type='checkbox' class='bool-input' data-field='mqtt' />
|
||||
<span class='slider'></span>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<label class='switch'>
|
||||
<input type='checkbox' class='bool-input' data-field='influxdb' />
|
||||
<span class='slider'></span>
|
||||
</label>
|
||||
</td>
|
||||
<td><input type='text' class='text-input' data-field='comment' value='' /></td>
|
||||
<td>
|
||||
<button class="delete-btn" onclick="deleteRow(this)">🗑️</button>
|
||||
</td>
|
||||
`;
|
||||
} else {
|
||||
newRow.innerHTML = `
|
||||
<td><input type='text' class='text-input' data-field='bezeichnung' value='' /></td>
|
||||
<td><input type='text' class='text-input' data-field='adresse' value='' /></td>
|
||||
<td><input type='text' class='text-input' data-field='type' value='' /></td>
|
||||
<td><input type='text' class='text-input' data-field='faktor' value='1.0' /></td>
|
||||
<td>
|
||||
<label class='switch'>
|
||||
<input type='checkbox' class='bool-input' data-field='mqtt' />
|
||||
<span class='slider'></span>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<label class='switch'>
|
||||
<input type='checkbox' class='bool-input' data-field='influxdb' />
|
||||
<span class='slider'></span>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<button class="delete-btn" onclick="deleteRow(this)">🗑️</button>
|
||||
</td>
|
||||
`;
|
||||
}
|
||||
|
||||
tableBody.appendChild(newRow);
|
||||
}
|
||||
@@ -63,22 +92,35 @@ async function saveTable() {
|
||||
const rows = [];
|
||||
const tableRows = document.querySelectorAll('#tableBody tr');
|
||||
tableRows.forEach((row) => {
|
||||
const key = row.querySelector("input[data-field='bezeichnung']").value.trim();
|
||||
const key = row.querySelector("input[data-field='bezeichnung']")?.value.trim() || row.querySelector("input[data-field='key']")?.value.trim();
|
||||
if (!key) return; // leere Zeilen überspringen
|
||||
const addr = parseInt(row.querySelector("input[data-field='addr']")?.value || row.querySelector("input[data-field='adresse']")?.value || '0', 10);
|
||||
const rtype = row.querySelector("input[data-field='type']")?.value || null;
|
||||
const factor = parseFloat(row.querySelector("input[data-field='factor']")?.value || row.querySelector("input[data-field='faktor']")?.value || '1.0');
|
||||
const mqtt = row.querySelector("input[data-field='mqtt']")?.checked || false;
|
||||
const influxdb = row.querySelector("input[data-field='influxdb']")?.checked || false;
|
||||
const comment = row.querySelector("input[data-field='comment']")?.value || null;
|
||||
const value = {
|
||||
addr: addr,
|
||||
rtype: rtype,
|
||||
factor: factor,
|
||||
mqtt: mqtt,
|
||||
influxdb: influxdb,
|
||||
comment: comment
|
||||
};
|
||||
let value = {};
|
||||
if (typeof tableId !== 'undefined' && tableId === 'modbus_coils') {
|
||||
const write = row.querySelector("input[data-field='write']")?.checked || false;
|
||||
const comment = row.querySelector("input[data-field='comment']")?.value || null;
|
||||
value = {
|
||||
addr: addr,
|
||||
write: write,
|
||||
mqtt: mqtt,
|
||||
influxdb: influxdb,
|
||||
comment: comment
|
||||
};
|
||||
} else {
|
||||
const rtype = row.querySelector("input[data-field='type']")?.value || null;
|
||||
const factor = parseFloat(row.querySelector("input[data-field='factor']")?.value || row.querySelector("input[data-field='faktor']")?.value || '1.0');
|
||||
const comment = row.querySelector("input[data-field='comment']")?.value || null;
|
||||
value = {
|
||||
addr: addr,
|
||||
rtype: rtype,
|
||||
factor: factor,
|
||||
mqtt: mqtt,
|
||||
influxdb: influxdb,
|
||||
comment: comment
|
||||
};
|
||||
}
|
||||
const obj = {};
|
||||
obj[key] = value;
|
||||
rows.push(obj);
|
||||
|
||||
Reference in new issue
Block a user