defekter floorplan
This commit is contained in:
@@ -94,6 +94,7 @@ if ($type === 'patchpanel') {
|
||||
|
||||
$defaultPanelSize = ['width' => 140, 'height' => 40];
|
||||
$defaultOutletSize = 32;
|
||||
$showPanelPlacementFields = $type === 'patchpanel' && $selectedFloorId > 0;
|
||||
|
||||
if ($type === 'patchpanel') {
|
||||
$panel['width'] = $panel['width'] ?? $defaultPanelSize['width'];
|
||||
@@ -160,26 +161,26 @@ $markerHeight = $type === 'patchpanel' ? $panel['height'] : $defaultOutletSize;
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-grid">
|
||||
<div id="panel-placement-fields" class="form-grid" <?php echo $showPanelPlacementFields ? '' : 'hidden'; ?>>
|
||||
<div class="form-group">
|
||||
<label>X</label>
|
||||
<input type="number" name="pos_x" value="<?php echo $panel['pos_x'] ?? 0; ?>" required>
|
||||
<input type="number" name="pos_x" value="<?php echo $panel['pos_x'] ?? 0; ?>">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Y</label>
|
||||
<input type="number" name="pos_y" value="<?php echo $panel['pos_y'] ?? 0; ?>" required>
|
||||
<input type="number" name="pos_y" value="<?php echo $panel['pos_y'] ?? 0; ?>">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Breite</label>
|
||||
<input type="number" name="width" value="<?php echo $panel['width']; ?>" required readonly title="Breite wird automatisch nach Standardwerten vorgegeben.">
|
||||
<input type="number" name="width" value="<?php echo $panel['width']; ?>" readonly title="Breite wird automatisch nach Standardwerten vorgegeben.">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Höhe</label>
|
||||
<input type="number" name="height" value="<?php echo $panel['height']; ?>" required readonly title="Höhe wird automatisch nach Standardwerten vorgegeben.">
|
||||
<input type="number" name="height" value="<?php echo $panel['height']; ?>" readonly title="Höhe wird automatisch nach Standardwerten vorgegeben.">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div id="panel-floor-plan-group" class="form-group" <?php echo $showPanelPlacementFields ? '' : 'hidden'; ?>>
|
||||
<label>Stockwerkskarte</label>
|
||||
<div class="floor-plan-block">
|
||||
<div id="floor-plan-canvas" class="floor-plan-canvas"
|
||||
@@ -202,6 +203,10 @@ $markerHeight = $type === 'patchpanel' ? $panel['height'] : $defaultOutletSize;
|
||||
<input type="number" name="port_count" value="<?php echo $panel['port_count'] ?? 0; ?>" min="0">
|
||||
</div>
|
||||
|
||||
<p id="panel-floor-missing-hint" class="info" <?php echo $showPanelPlacementFields ? 'hidden' : ''; ?>>
|
||||
Position, Groesse und Stockwerkskarte werden erst angezeigt, sobald ein Stockwerk ausgewaehlt ist.
|
||||
</p>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Kommentar</label>
|
||||
<textarea name="comment"><?php echo htmlspecialchars($panel['comment'] ?? ''); ?></textarea>
|
||||
@@ -476,6 +481,9 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
const panelFloorSelect = document.getElementById('panel-floor-select');
|
||||
const outletRoomSelect = document.getElementById('outlet-room-select');
|
||||
const floorPlanSvg = document.getElementById('floor-plan-svg');
|
||||
const panelPlacementFields = document.getElementById('panel-placement-fields');
|
||||
const panelFloorPlanGroup = document.getElementById('panel-floor-plan-group');
|
||||
const panelFloorMissingHint = document.getElementById('panel-floor-missing-hint');
|
||||
|
||||
const buildingOptions = panelBuildingSelect ? Array.from(panelBuildingSelect.options).filter((option) => option.value !== '') : [];
|
||||
const floorOptions = panelFloorSelect ? Array.from(panelFloorSelect.options).filter((option) => option.value !== '') : [];
|
||||
@@ -491,8 +499,30 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
if (svgUrl) {
|
||||
floorPlanSvg.src = svgUrl;
|
||||
floorPlanSvg.hidden = false;
|
||||
} else {
|
||||
floorPlanSvg.removeAttribute('src');
|
||||
floorPlanSvg.hidden = true;
|
||||
}
|
||||
};
|
||||
|
||||
if (floorPlanSvg) {
|
||||
floorPlanSvg.addEventListener('error', () => {
|
||||
floorPlanSvg.removeAttribute('src');
|
||||
floorPlanSvg.hidden = true;
|
||||
});
|
||||
}
|
||||
|
||||
const updatePanelPlacementVisibility = () => {
|
||||
if (!panelFloorSelect || !panelPlacementFields || !panelFloorPlanGroup) {
|
||||
return;
|
||||
}
|
||||
|
||||
const hasFloor = !!panelFloorSelect.value;
|
||||
panelPlacementFields.hidden = !hasFloor;
|
||||
panelFloorPlanGroup.hidden = !hasFloor;
|
||||
if (panelFloorMissingHint) {
|
||||
panelFloorMissingHint.hidden = hasFloor;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -517,6 +547,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
panelFloorSelect.value = firstMatch;
|
||||
}
|
||||
|
||||
updatePanelPlacementVisibility();
|
||||
updateFloorPlanImage();
|
||||
};
|
||||
|
||||
@@ -557,6 +588,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
if (panelFloorSelect) {
|
||||
panelFloorSelect.addEventListener('change', () => {
|
||||
updatePanelPlacementVisibility();
|
||||
updateFloorPlanImage();
|
||||
});
|
||||
}
|
||||
@@ -573,5 +605,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
} else {
|
||||
updateFloorPlanImage();
|
||||
}
|
||||
|
||||
updatePanelPlacementVisibility();
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user