feat: Erweiterung der Module für Geräte, Stockwerke und Racks mit grundlegenden Funktionen und Strukturen

This commit is contained in:
Troy Grunt
2026-02-06 18:47:25 +01:00
parent 3ec3ad7fa5
commit 98a3f4d5b6
8 changed files with 943 additions and 8 deletions

View File

@@ -1,2 +1,131 @@
<?php
// Rack anlegen oder bearbeiten
/**
* app/racks/edit.php
*
* Rack anlegen oder bearbeiten
* - Name, Beschreibung
* - Zugehöriges Stockwerk (Floor)
* - Höhe / Slots
* - Gerätepositionen (optional Vorschau)
*/
// TODO: bootstrap laden
// require_once __DIR__ . '/../../bootstrap.php';
// TODO: Auth erzwingen
// requireAuth();
// =========================
// Kontext bestimmen
// =========================
// Rack-ID aus GET
// $rackId = (int)($_GET['id'] ?? 0);
// TODO: Rack aus DB laden, falls ID vorhanden
// $rack = null;
// TODO: Floors laden für Auswahl
// $floors = $sql->get("SELECT * FROM floors ORDER BY name", "", []);
?>
<h2>Rack bearbeiten</h2>
<form method="post" action="/app/racks/save.php" enctype="multipart/form-data">
<!-- =========================
Basisdaten
========================= -->
<fieldset>
<legend>Allgemein</legend>
<label>
Name<br>
<input type="text" name="name" value="">
<!-- TODO: Name vorbelegen -->
</label>
<br><br>
<label>
Beschreibung<br>
<textarea name="description"></textarea>
<!-- TODO: Beschreibung vorbelegen -->
</label>
</fieldset>
<!-- =========================
Zugehöriges Floor
========================= -->
<fieldset>
<legend>Stockwerk / Standort</legend>
<label>
Stockwerk<br>
<select name="floor_id">
<!-- TODO: Floors aus DB -->
</select>
</label>
<br><br>
<label>
Höhe (Anzahl U)<br>
<input type="number" name="height" value="">
<!-- TODO: Höhe vorbelegen -->
</label>
</fieldset>
<!-- =========================
Rack-SVG / Gerätepositionen
========================= -->
<fieldset>
<legend>Rack-Layout</legend>
<div class="svg-editor-container">
<svg
id="rack-svg"
viewBox="0 0 200 1000"
width="100%"
height="600"
>
<!-- TODO: Rack-SVG laden -->
</svg>
</div>
<p class="hint">
Geräte per Drag & Drop im Rack positionieren.
</p>
</fieldset>
<!-- =========================
Aktionen
========================= -->
<fieldset>
<button type="submit">Speichern</button>
<button type="button" onclick="history.back()">Abbrechen</button>
<!-- TODO: Löschen, falls edit -->
</fieldset>
</form>
<!-- =========================
JS-Konfiguration
========================= -->
<script>
/**
* Konfiguration für Rack-SVG-Editor
*/
// TODO: Rack-ID aus PHP setzen
// window.RACK_ID = <?= (int)$rackId ?>;
// TODO: Gerätepositionen an JS übergeben
// window.RACK_DEVICES = <?= json_encode($rackDevices ?? []) ?>;
</script>