feat: complete package 2 delete flows and package 3 port management

This commit is contained in:
2026-02-18 10:16:24 +01:00
parent f4ce7f360d
commit 77758f71d3
14 changed files with 754 additions and 141 deletions

View File

@@ -25,6 +25,47 @@ if (!$exists) {
exit;
}
$forceDelete = (int)($_POST['force'] ?? $_GET['force'] ?? 0) === 1;
$dependencyCounts = $sql->single(
"SELECT
(SELECT COUNT(*) FROM rooms WHERE floor_id = ?) AS room_count,
(SELECT COUNT(*) FROM racks WHERE floor_id = ?) AS rack_count,
(SELECT COUNT(*) FROM floor_patchpanels WHERE floor_id = ?) AS patchpanel_count",
"iii",
[$id, $id, $id]
);
$roomCount = (int)($dependencyCounts['room_count'] ?? 0);
$rackCount = (int)($dependencyCounts['rack_count'] ?? 0);
$patchpanelCount = (int)($dependencyCounts['patchpanel_count'] ?? 0);
$hasDependencies = $roomCount > 0 || $rackCount > 0 || $patchpanelCount > 0;
if ($hasDependencies && !$forceDelete) {
$parts = [];
if ($roomCount > 0) {
$parts[] = $roomCount . ' Raeume';
}
if ($rackCount > 0) {
$parts[] = $rackCount . ' Racks';
}
if ($patchpanelCount > 0) {
$parts[] = $patchpanelCount . ' Patchpanels';
}
http_response_code(409);
echo json_encode([
'success' => false,
'requires_force' => true,
'message' => 'Beim Loeschen werden abhaengige Daten entfernt (' . implode(', ', $parts) . '). Fortfahren?',
'dependencies' => [
'rooms' => $roomCount,
'racks' => $rackCount,
'patchpanels' => $patchpanelCount
]
]);
exit;
}
$rows = $sql->set("DELETE FROM floors WHERE id = ?", "i", [$id]);
if ($rows === false) {
http_response_code(500);
@@ -32,5 +73,13 @@ if ($rows === false) {
exit;
}
echo json_encode(['success' => true, 'message' => 'Stockwerk geloescht']);
echo json_encode([
'success' => true,
'message' => 'Stockwerk geloescht',
'dependencies' => [
'rooms' => $roomCount,
'racks' => $rackCount,
'patchpanels' => $patchpanelCount
]
]);