feat: Erweiterung der Module für Geräte, Stockwerke und Racks mit grundlegenden Funktionen und Strukturen
This commit is contained in:
@@ -1,2 +1,156 @@
|
||||
<?php
|
||||
// Gerät anlegen oder bearbeiten
|
||||
/**
|
||||
* app/devices/edit.php
|
||||
*
|
||||
* Konkretes Gerät anlegen / bearbeiten
|
||||
* - Name, Beschreibung, Standort (Rack / Floor)
|
||||
* - Gerätetyp wählen
|
||||
* - Ports automatisch vom Device-Type übernehmen
|
||||
* - SVG-Position im Rack / Floor
|
||||
* - Optional: Notizen / Kommentare
|
||||
*/
|
||||
|
||||
// TODO: bootstrap laden
|
||||
// require_once __DIR__ . '/../../bootstrap.php';
|
||||
|
||||
// TODO: Auth erzwingen
|
||||
// requireAuth();
|
||||
|
||||
// =========================
|
||||
// Kontext bestimmen
|
||||
// =========================
|
||||
|
||||
// Gerät-ID aus GET
|
||||
// $deviceId = (int)($_GET['id'] ?? 0);
|
||||
|
||||
// TODO: Gerät aus DB laden, falls ID vorhanden
|
||||
// $device = null;
|
||||
|
||||
// TODO: Alle Device-Types laden
|
||||
// $deviceTypes = $sql->get("SELECT * FROM device_types ORDER BY name", "", []);
|
||||
|
||||
// TODO: Wenn Gerät vorhanden, Ports laden (vom Device-Type)
|
||||
$ports = []; // TODO: Ports vorbereiten
|
||||
|
||||
?>
|
||||
|
||||
<h2>Gerät bearbeiten</h2>
|
||||
|
||||
<form method="post" action="/app/devices/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>
|
||||
|
||||
<br><br>
|
||||
|
||||
<label>
|
||||
Gerätetyp<br>
|
||||
<select name="device_type_id">
|
||||
<!-- TODO: Device-Types aus DB -->
|
||||
<option value="1">Switch</option>
|
||||
</select>
|
||||
</label>
|
||||
</fieldset>
|
||||
|
||||
<!-- =========================
|
||||
Standort / Rack / Floor
|
||||
========================= -->
|
||||
|
||||
<fieldset>
|
||||
<legend>Standort</legend>
|
||||
|
||||
<label>
|
||||
Stockwerk<br>
|
||||
<select name="floor_id">
|
||||
<!-- TODO: Floors laden -->
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<br><br>
|
||||
|
||||
<label>
|
||||
Rack<br>
|
||||
<select name="rack_id">
|
||||
<!-- TODO: Racks laden -->
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<br><br>
|
||||
|
||||
<label>
|
||||
Position im Rack<br>
|
||||
<input type="number" name="rack_position" value="">
|
||||
</label>
|
||||
</fieldset>
|
||||
|
||||
<!-- =========================
|
||||
Ports
|
||||
========================= -->
|
||||
|
||||
<fieldset>
|
||||
<legend>Ports</legend>
|
||||
|
||||
<p class="hint">Ports werden vom Device-Type übernommen. Positionen können angepasst werden.</p>
|
||||
|
||||
<div class="svg-editor-container">
|
||||
<svg
|
||||
id="device-svg"
|
||||
viewBox="0 0 800 400"
|
||||
width="100%"
|
||||
height="400"
|
||||
>
|
||||
<!-- TODO: SVG laden -->
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<!-- TODO: Port-Liste -->
|
||||
<div class="port-list">
|
||||
<!-- Ports mit Typ, Name, Modus, VLAN -->
|
||||
</div>
|
||||
</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>
|
||||
/**
|
||||
* SVG-Editor Konfiguration
|
||||
*/
|
||||
|
||||
// TODO: Device-ID setzen
|
||||
// window.DEVICE_ID = <?= (int)$deviceId ?>;
|
||||
|
||||
// TODO: Ports an JS übergeben
|
||||
// window.DEVICE_PORTS = <?= json_encode($ports) ?>;
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user