get( "SELECT l.*, COUNT(b.id) AS building_count FROM locations l LEFT JOIN buildings b ON b.location_id = l.id $where GROUP BY l.id ORDER BY l.name", $types, $params ); $buildings = $sql->get( "SELECT b.id, b.location_id, b.name, b.comment FROM buildings b ORDER BY b.location_id, b.name", '', [] ); $floors = $sql->get( "SELECT f.id, f.building_id, f.name, f.level, f.svg_path, COUNT(r.id) AS room_count FROM floors f LEFT JOIN rooms r ON r.floor_id = f.id GROUP BY f.id ORDER BY f.building_id, f.level, f.name", '', [] ); foreach ($floors as &$floor) { $rawPath = trim((string)($floor['svg_path'] ?? '')); $floor['svg_url'] = $rawPath !== '' ? '/' . ltrim($rawPath, '/\\') : ''; } unset($floor); $rooms = $sql->get( "SELECT r.id, r.floor_id, r.name, r.number, r.comment, r.x, r.y, r.width, r.height, r.polygon_points, COUNT(no.id) AS outlet_count FROM rooms r LEFT JOIN network_outlets no ON no.room_id = r.id GROUP BY r.id ORDER BY r.floor_id, CASE WHEN r.number IS NULL OR r.number = '' THEN 1 ELSE 0 END, r.number, r.name", '', [] ); $buildingsByLocation = []; foreach ($buildings as $building) { $buildingsByLocation[(int)$building['location_id']][] = $building; } $floorsByBuilding = []; foreach ($floors as $floor) { $floorsByBuilding[(int)$floor['building_id']][] = $floor; } $roomsByFloor = []; foreach ($rooms as $room) { $roomsByFloor[(int)$room['floor_id']][] = $room; } ?>

Standorte

Reset + Neuer Standort
Name Gebaeude Beschreibung Aktionen
Bearbeiten

Keine Standorte gefunden.

Ersten Standort anlegen

Gebaeude, Stockwerke und Raeume

(float)$x, 'y' => (float)$y, ]; } } } } $roomPreviewData[] = [ 'id' => (int)$room['id'], 'number' => (string)($room['number'] ?? ''), 'name' => (string)($room['name'] ?? ''), 'polygon' => $polygonPoints, 'bounds' => [ 'x' => isset($room['x']) ? (float)$room['x'] : null, 'y' => isset($room['y']) ? (float)$room['y'] : null, 'width' => isset($room['width']) ? (float)$room['width'] : null, 'height' => isset($room['height']) ? (float)$room['height'] : null, ], ]; } $roomPreviewPayload = json_encode($roomPreviewData, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); $roomPreviewPayload = ($roomPreviewPayload === false) ? '[]' : $roomPreviewPayload; $roomPreviewPayload = htmlspecialchars($roomPreviewPayload, ENT_QUOTES, 'UTF-8'); $hasRoomsForPreview = !empty($roomPreviewData); ?>
Standort Gebaeude Stockwerk Raum Details Aktionen
( Gebaeude) + Gebaeude
  Kein Kommentar Bearbeiten + Stockwerk
    Ebene Keine Ebene | Raeume Bearbeiten + Raum
      () Dosen | Bearbeiten
    Keine Raeume Fuer dieses Stockwerk sind noch keine Raeume angelegt.
  Keine Gebaeude Fuer diesen Standort sind noch keine Gebaeude vorhanden.

Keine Standorte gefunden.