Laitteiden Tyyppi ja Funktio kentät muutettu dropdown-valikoiksi

Vapaa tekstikenttä → select-dropdown valmiilla vaihtoehdoilla:
- Tyyppi: Reititin, Kytkin, Palomuuri, Tukiasema, Palvelin, OLT, ONT, Mediamuunnin, Muu
- Funktio: PE/EDGE/CPE Reititin, Core/Aggregaatio/Access-kytkin, WAN GW, WLAN Controller, Asiakaslaite, Muu
- Tyyppi-sarake siirretty ennen Funktio-saraketta
- setSelectValue helper: lisää puuttuvan option automaattisesti muokatessa vanhaa dataa

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 12:32:55 +02:00
parent 565259423d
commit a898da119e
2 changed files with 44 additions and 8 deletions

View File

@@ -218,8 +218,8 @@
<th>Hallintaosoite</th>
<th>Serial</th>
<th>Sijainti</th>
<th>Funktio</th>
<th>Tyyppi</th>
<th>Funktio</th>
<th>Malli</th>
<th>Ping</th>
<th>Toiminnot</th>
@@ -1065,12 +1065,35 @@
</select>
</div>
<div class="form-group">
<label for="device-form-funktio">Funktio</label>
<input type="text" id="device-form-funktio" placeholder="esim. Reititin, Kytkin, AP">
<label for="device-form-tyyppi">Tyyppi</label>
<select id="device-form-tyyppi">
<option value="">— Valitse tyyppi —</option>
<option value="Reititin">Reititin</option>
<option value="Kytkin">Kytkin</option>
<option value="Palomuuri">Palomuuri</option>
<option value="Tukiasema">Tukiasema</option>
<option value="Palvelin">Palvelin</option>
<option value="OLT">OLT</option>
<option value="ONT">ONT</option>
<option value="Mediamuunnin">Mediamuunnin</option>
<option value="Muu">Muu</option>
</select>
</div>
<div class="form-group">
<label for="device-form-tyyppi">Tyyppi</label>
<input type="text" id="device-form-tyyppi" placeholder="esim. L3-kytkin">
<label for="device-form-funktio">Funktio</label>
<select id="device-form-funktio">
<option value="">— Valitse funktio —</option>
<option value="PE Reititin">PE Reititin</option>
<option value="EDGE Reititin">EDGE Reititin</option>
<option value="CPE Reititin">CPE Reititin</option>
<option value="Core-kytkin">Core-kytkin</option>
<option value="Aggregaatiokytkin">Aggregaatiokytkin</option>
<option value="Accesskytkin">Accesskytkin</option>
<option value="WAN Gateway">WAN Gateway</option>
<option value="WLAN Controller">WLAN Controller</option>
<option value="Asiakaslaite">Asiakaslaite</option>
<option value="Muu">Muu</option>
</select>
</div>
<div class="form-group">
<label for="device-form-malli">Malli</label>

View File

@@ -2714,8 +2714,8 @@ function renderDevices() {
<td><code style="font-size:0.82rem;">${esc(d.hallintaosoite || '-')}</code></td>
<td style="font-size:0.85rem;">${esc(d.serial || '-')}</td>
<td>${d.site_name ? esc(d.site_name) : '<span style="color:#ccc;">-</span>'}</td>
<td>${esc(d.funktio || '-')}</td>
<td>${esc(d.tyyppi || '-')}</td>
<td>${esc(d.funktio || '-')}</td>
<td>${esc(d.malli || '-')}</td>
<td style="text-align:center;">${pingIcon}</td>
<td class="actions-cell">
@@ -2728,6 +2728,19 @@ function renderDevices() {
document.getElementById('device-count').textContent = filtered.length + ' laitetta' + (query ? ` (${devicesData.length} yhteensä)` : '');
}
function setSelectValue(selectId, val) {
const sel = document.getElementById(selectId);
if (!val) { sel.value = ''; return; }
const exists = Array.from(sel.options).some(o => o.value === val);
if (!exists) {
const opt = document.createElement('option');
opt.value = val;
opt.textContent = val;
sel.appendChild(opt);
}
sel.value = val;
}
async function editDevice(id) {
const d = devicesData.find(x => x.id === id);
if (!d) return;
@@ -2735,8 +2748,8 @@ async function editDevice(id) {
document.getElementById('device-form-nimi').value = d.nimi || '';
document.getElementById('device-form-hallintaosoite').value = d.hallintaosoite || '';
document.getElementById('device-form-serial').value = d.serial || '';
document.getElementById('device-form-funktio').value = d.funktio || '';
document.getElementById('device-form-tyyppi').value = d.tyyppi || '';
setSelectValue('device-form-tyyppi', d.tyyppi || '');
setSelectValue('device-form-funktio', d.funktio || '');
document.getElementById('device-form-malli').value = d.malli || '';
document.getElementById('device-form-ping-check').checked = d.ping_check || false;
document.getElementById('device-form-lisatiedot').value = d.lisatiedot || '';