Nothing to see here

Back to racks"; } else { $row = mysqli_fetch_assoc($sql); $rack_name = escapeHtml($row['rack_name']); $rack_description = escapeHtml($row['rack_description']); $rack_model = escapeHtml($row['rack_model']); $rack_depth = escapeHtml($row['rack_depth']); $rack_type = escapeHtml($row['rack_type']); $rack_units = max(1, intval($row['rack_units'])); $rack_units_descending = intval($row['rack_units_descending']); $rack_power_capacity = intval($row['rack_power_capacity']); $rack_photo = escapeHtml($row['rack_photo']); $rack_photo_rear = escapeHtml($row['rack_photo_rear']); $rack_physical_location = escapeHtml($row['rack_physical_location']); $rack_notes = escapeHtml($row['rack_notes']); $rack_archived_at = escapeHtml($row['rack_archived_at']); $rack_updated_at = escapeHtml($row['rack_updated_at'] ?: $row['rack_created_at']); $location_id = intval($row['location_id']); $location_name = escapeHtml($row['location_name']); $can_edit = lookupUserPermission('module_support') >= 2; $can_delete = lookupUserPermission('module_support') >= 3; $rack_rows = rackLoadUnits([$rack_id])[$rack_id]; $rack_items = array_map('rackUnitView', $rack_rows); $occupancy = rackOccupancy($rack_rows, $rack_units); $used_percent = (int) round($occupancy['any'] / $rack_units * 100); $power_used = array_sum(array_column($rack_items, 'power')); $power_percent = $rack_power_capacity ? (int) round($power_used / $rack_power_capacity * 100) : 0; $item_count = count($rack_items); $gap = $occupancy['largest_gap']; // The client's network kit that isn't in any rack - one click to put it here $unracked_assets = []; if ($can_edit && !$rack_archived_at) { $sql_unracked = mysqli_query($mysqli, "SELECT asset_id, asset_name, asset_type, asset_make, asset_model FROM assets WHERE asset_client_id = $client_id AND asset_archived_at IS NULL AND asset_type IN ('Server', 'Switch', 'Firewall/Router') AND NOT EXISTS (SELECT 1 FROM rack_units WHERE unit_asset_id = asset_id) ORDER BY FIELD(asset_type, 'Firewall/Router', 'Switch', 'Server'), asset_name LIMIT 25"); while ($unracked_row = mysqli_fetch_assoc($sql_unracked)) { $unracked_assets[] = $unracked_row; } } $usage_tone = $used_percent >= 90 ? 'danger' : ($used_percent >= 75 ? 'warning' : 'primary'); $power_tone = $power_percent >= 90 ? 'danger' : ($power_percent >= 75 ? 'warning' : 'success'); ?>

Archived

U

Elevation

Click an empty U to add something there
Servers Network Firewalls Power Patching Other Full depth from the other side

In this rack ()

$b['start'] : $b['end'] <=> $a['end']; }); foreach ($table_items as $item) { ?>
Position Item Make / Model Serial IP Mounted Power
· ·
-' ?> -' ?> -' ?> Full depth -' ?>
Total draw W
Nothing racked yet.
Click an empty U on the elevation, or use Add Item.
of U used
%
U
Free
U
Largest gap
Items
Room for up to U at

W of W
%
$rack_power_capacity) { ?>
Over budget by W
Set a power budget on the rack to track headroom.

Details

Model
Depth
Numbering
U1 at the
Location
In the building
Front / rear
U / U in use
Updated

Photos

$rack_photo, 'Rear' => $rack_photo_rear] as $photo_side => $photo_file) { if (!$photo_file) { continue; } ?>

Notes

Not racked yet