132 lines
2.9 KiB
PHP
132 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* 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>
|