Yhdistä Sijainnit ja Laitetilat samaksi konseptiksi
Sijainnit (sites) ja Laitetilat olivat käytännössä sama asia. Nyt kaikki hallitaan Laitetilat-välilehdeltä: - DB-migraatio kopioi vanhat sites → laitetilat (sama ID säilyy) - Laitteiden site_id päivitetty automaattisesti laitetila_id:ksi - IPAM JOINaa nyt laitetilat-taulua sites:n sijaan - Sijainnit sub-tab poistettu Tekniikasta - Laiteformissa yksi "Sijainti / Laitetila" dropdown - Sites API-endpointit poistettu (sites palauttaa laitetilat) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
47
api.php
47
api.php
@@ -1882,47 +1882,12 @@ switch ($action) {
|
||||
echo json_encode(['success' => true]);
|
||||
break;
|
||||
|
||||
// ---------- SIJAINNIT (SITES) ----------
|
||||
// ---------- SIJAINNIT (SITES) — YHDISTETTY LAITETILOIHIN ----------
|
||||
// sites-endpoint palauttaa nyt laitetilat (taaksepäin yhteensopivuus)
|
||||
case 'sites':
|
||||
requireAuth();
|
||||
$companyId = requireCompany();
|
||||
echo json_encode(dbLoadSites($companyId));
|
||||
break;
|
||||
|
||||
case 'site_save':
|
||||
requireAdmin();
|
||||
$companyId = requireCompany();
|
||||
if ($method !== 'POST') break;
|
||||
$input = json_decode(file_get_contents('php://input'), true);
|
||||
$site = [
|
||||
'id' => $input['id'] ?? generateId(),
|
||||
'nimi' => trim($input['nimi'] ?? ''),
|
||||
'osoite' => trim($input['osoite'] ?? ''),
|
||||
'kaupunki' => trim($input['kaupunki'] ?? ''),
|
||||
];
|
||||
if (empty($site['nimi'])) {
|
||||
http_response_code(400);
|
||||
echo json_encode(['error' => 'Sijainnin nimi vaaditaan']);
|
||||
break;
|
||||
}
|
||||
dbSaveSite($companyId, $site);
|
||||
dbAddLog($companyId, currentUser(), 'site_save', $site['id'], $site['nimi'], (isset($input['id']) ? 'Muokkasi' : 'Lisäsi') . ' sijainnin');
|
||||
echo json_encode($site);
|
||||
break;
|
||||
|
||||
case 'site_delete':
|
||||
requireAdmin();
|
||||
$companyId = requireCompany();
|
||||
if ($method !== 'POST') break;
|
||||
$input = json_decode(file_get_contents('php://input'), true);
|
||||
$id = $input['id'] ?? '';
|
||||
// Hae nimi logitusta varten
|
||||
$sites = dbLoadSites($companyId);
|
||||
$siteName = '';
|
||||
foreach ($sites as $s) { if ($s['id'] === $id) { $siteName = $s['nimi']; break; } }
|
||||
dbDeleteSite($id);
|
||||
dbAddLog($companyId, currentUser(), 'site_delete', $id, $siteName, 'Poisti sijainnin');
|
||||
echo json_encode(['success' => true]);
|
||||
echo json_encode(dbLoadLaitetilat($companyId));
|
||||
break;
|
||||
|
||||
// ---------- LAITTEET (DEVICES) ----------
|
||||
@@ -1943,7 +1908,7 @@ switch ($action) {
|
||||
'nimi' => trim($input['nimi'] ?? ''),
|
||||
'hallintaosoite' => trim($input['hallintaosoite'] ?? ''),
|
||||
'serial' => trim($input['serial'] ?? ''),
|
||||
'site_id' => $input['site_id'] ?? null,
|
||||
'site_id' => null,
|
||||
'laitetila_id' => $input['laitetila_id'] ?? null,
|
||||
'funktio' => trim($input['funktio'] ?? ''),
|
||||
'tyyppi' => trim($input['tyyppi'] ?? ''),
|
||||
@@ -1979,7 +1944,7 @@ switch ($action) {
|
||||
// Päivitä olemassa oleva: merkitse varatuksi laitteelle
|
||||
$existing['tila'] = 'varattu';
|
||||
$existing['nimi'] = $device['nimi'];
|
||||
$existing['site_id'] = $device['site_id'];
|
||||
$existing['site_id'] = $device['laitetila_id'];
|
||||
$existing['muokattu'] = date('Y-m-d H:i:s');
|
||||
$existing['muokkaaja'] = currentUser();
|
||||
dbSaveIpam($companyId, $existing);
|
||||
@@ -1991,7 +1956,7 @@ switch ($action) {
|
||||
'nimi' => $device['nimi'],
|
||||
'verkko' => $cleanIp,
|
||||
'vlan_id' => null,
|
||||
'site_id' => $device['site_id'],
|
||||
'site_id' => $device['laitetila_id'],
|
||||
'tila' => 'varattu',
|
||||
'asiakas' => '',
|
||||
'lisatiedot' => 'Automaattinen varaus laitteelta: ' . $device['nimi'],
|
||||
|
||||
Reference in New Issue
Block a user