NetAdmin: liittymän muokkausmodal + nopeusvalikko dropdowniksi
Liittymärivin klikkaus avaa modal-ikkunan jossa voi muokata kaikkia kenttiä (osoite, nopeus, VLAN, laite, portti, IP). Yhteysnopeus muutettu dropdown-valikoksi sekä NetAdmin-modalissa että asiakkaan liittymälomakkeessa. Vakionopeudet: 10/10 - 10000/10000. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
66
script.js
66
script.js
@@ -650,7 +650,12 @@ function createLiittymaRow(data = {}, index = 0) {
|
||||
<div class="form-group"><label>Osoite</label><input type="text" class="l-asennusosoite" value="${esc(data.asennusosoite || '')}" placeholder="esim. Esimerkkikatu 1"></div>
|
||||
<div class="form-group"><label>Postinumero</label><input type="text" class="l-postinumero" value="${esc(data.postinumero || '')}" placeholder="00100"></div>
|
||||
<div class="form-group"><label>Kaupunki</label><input type="text" class="l-kaupunki" value="${esc(data.kaupunki || '')}" placeholder="Helsinki"></div>
|
||||
<div class="form-group"><label>Nopeus</label><input type="text" class="l-liittymanopeus" value="${esc(data.liittymanopeus || '')}" placeholder="esim. 100/100"></div>
|
||||
<div class="form-group"><label>Nopeus</label><select class="l-liittymanopeus">
|
||||
<option value="">- Valitse -</option>
|
||||
${['10/10','50/10','50/50','100/10','100/100','200/200','300/300','500/500','1000/1000','2000/2000','10000/10000'].map(s =>
|
||||
`<option value="${s}" ${data.liittymanopeus === s ? 'selected' : ''}>${s}</option>`
|
||||
).join('')}
|
||||
</select></div>
|
||||
<div class="form-group"><label>Hinta €/kk</label><input type="number" class="l-hinta" step="0.01" min="0" value="${data.hinta || ''}"></div>
|
||||
<div class="form-group"><label>Sopimuskausi</label><select class="l-sopimuskausi">
|
||||
<option value="">- Valitse -</option>
|
||||
@@ -4476,7 +4481,7 @@ function renderNetadminTable() {
|
||||
deviceInfo?.ping_status === 'down' ? 'netadmin-status-down' : '';
|
||||
const deviceDisplay = c.laite ? `<span class="${pingClass}">${esc(c.laite)}</span>` : '-';
|
||||
|
||||
return `<tr onclick="editCustomer('${c.customer_id}')" style="cursor:pointer;" title="Avaa asiakas">
|
||||
return `<tr onclick="openNetadminDetail(${c.id})" style="cursor:pointer;" title="Avaa liittymän tiedot">
|
||||
<td><strong>${esc(c.customer_name || '-')}</strong></td>
|
||||
<td>${esc(addr)}</td>
|
||||
<td>${esc(c.kaupunki || '-')}</td>
|
||||
@@ -4494,6 +4499,63 @@ document.getElementById('netadmin-filter-city')?.addEventListener('change', rend
|
||||
document.getElementById('netadmin-filter-speed')?.addEventListener('change', renderNetadminTable);
|
||||
document.getElementById('netadmin-filter-device')?.addEventListener('change', renderNetadminTable);
|
||||
|
||||
async function openNetadminDetail(connId) {
|
||||
try {
|
||||
const conn = await apiCall(`netadmin_connection&id=${connId}`);
|
||||
document.getElementById('na-edit-id').value = conn.id;
|
||||
document.getElementById('netadmin-detail-title').textContent = conn.asennusosoite || 'Liittymän tiedot';
|
||||
document.getElementById('netadmin-detail-customer').textContent = '👤 ' + (conn.customer_name || '-');
|
||||
document.getElementById('na-edit-osoite').value = conn.asennusosoite || '';
|
||||
document.getElementById('na-edit-postinumero').value = conn.postinumero || '';
|
||||
document.getElementById('na-edit-kaupunki').value = conn.kaupunki || '';
|
||||
// Nopeus: aseta dropdown-arvo, tai lisää custom-optio jos ei löydy
|
||||
const speedSel = document.getElementById('na-edit-nopeus');
|
||||
const speed = conn.liittymanopeus || '';
|
||||
if (speed && !Array.from(speedSel.options).some(o => o.value === speed)) {
|
||||
const opt = document.createElement('option');
|
||||
opt.value = speed;
|
||||
opt.textContent = speed;
|
||||
speedSel.insertBefore(opt, speedSel.lastElementChild);
|
||||
}
|
||||
speedSel.value = speed;
|
||||
document.getElementById('na-edit-vlan').value = conn.vlan || '';
|
||||
document.getElementById('na-edit-laite').value = conn.laite || '';
|
||||
document.getElementById('na-edit-portti').value = conn.portti || '';
|
||||
document.getElementById('na-edit-ip').value = conn.ip || '';
|
||||
document.getElementById('netadmin-detail-modal').style.display = '';
|
||||
} catch (e) { alert('Liittymän avaus epäonnistui: ' + e.message); }
|
||||
}
|
||||
|
||||
function closeNetadminDetail() {
|
||||
document.getElementById('netadmin-detail-modal').style.display = 'none';
|
||||
}
|
||||
|
||||
// Sulje modal klikkaamalla taustaa
|
||||
document.getElementById('netadmin-detail-modal')?.addEventListener('click', (e) => {
|
||||
if (e.target.id === 'netadmin-detail-modal') closeNetadminDetail();
|
||||
});
|
||||
|
||||
// Tallenna liittymän muutokset
|
||||
document.getElementById('netadmin-detail-form')?.addEventListener('submit', async (e) => {
|
||||
e.preventDefault();
|
||||
const connId = document.getElementById('na-edit-id').value;
|
||||
try {
|
||||
await apiCall('netadmin_connection_update', 'POST', {
|
||||
id: parseInt(connId),
|
||||
asennusosoite: document.getElementById('na-edit-osoite').value,
|
||||
postinumero: document.getElementById('na-edit-postinumero').value,
|
||||
kaupunki: document.getElementById('na-edit-kaupunki').value,
|
||||
liittymanopeus: document.getElementById('na-edit-nopeus').value,
|
||||
vlan: document.getElementById('na-edit-vlan').value,
|
||||
laite: document.getElementById('na-edit-laite').value,
|
||||
portti: document.getElementById('na-edit-portti').value,
|
||||
ip: document.getElementById('na-edit-ip').value
|
||||
});
|
||||
closeNetadminDetail();
|
||||
loadNetadmin();
|
||||
} catch (e) { alert('Tallennus epäonnistui: ' + e.message); }
|
||||
});
|
||||
|
||||
// ==================== DOKUMENTIT ====================
|
||||
|
||||
let allDocuments = [];
|
||||
|
||||
Reference in New Issue
Block a user