NetAdmin-moduuli: liittymien listaus ja haku

Kokoaa kaikki asiakkaiden liittymät yhteen näkymään haulla ja suodattimilla.
Sarakkeet: asiakas, osoite, kaupunki, nopeus, VLAN, laite, portti, IP, hinta.
Suodattimet: kaupunki, nopeus, laite. Laitetietojen ping-status näkyvissä.
Klikkaus avaa asiakkaan muokkaukseen.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 16:39:24 +02:00
parent e6fa65165e
commit f05313530f
5 changed files with 237 additions and 2 deletions

31
api.php
View File

@@ -4235,6 +4235,37 @@ switch ($action) {
}
break;
// ==================== NETADMIN ====================
case 'netadmin_connections':
requireAuth();
$companyId = requireCompany();
try {
$connections = dbLoadAllConnections($companyId);
// Hae myös laitteet ja IPAM-tiedot aggregointia varten
$devices = _dbFetchAll("SELECT id, nimi, hallintaosoite, site_id, malli, ping_status FROM devices WHERE company_id = ?", [$companyId]);
$deviceMap = [];
foreach ($devices as $d) { $deviceMap[$d['nimi']] = $d; }
// Rikasta liittymädata laitetiedoilla
foreach ($connections as &$conn) {
$deviceName = $conn['laite'] ?? '';
if ($deviceName && isset($deviceMap[$deviceName])) {
$conn['device_info'] = $deviceMap[$deviceName];
}
}
echo json_encode([
'connections' => $connections,
'total' => count($connections),
'devices' => $devices
]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['error' => 'Liittymien haku epäonnistui: ' . $e->getMessage()]);
}
break;
// ==================== LAITETILAT ====================
case 'laitetilat':