feat: Rack stuff now complete
This commit is contained in:
+8
-3
@@ -12,9 +12,10 @@
|
||||
{% include 'header.html' %}
|
||||
<div class="flex-1 flex items-center justify-center mx-4">
|
||||
<div class="container py-8 max-w-2xl pt-20">
|
||||
<div class="flex items-center mb-6 relative min-h-[3.5rem]">
|
||||
<div class="flex flex-col items-center mb-6 relative min-h-[3.5rem]">
|
||||
<a href="/racks" class="hidden sm:flex absolute left-0 bg-gradient-to-r from-gray-500 to-gray-600 hover:from-gray-600 hover:to-gray-500 text-white items-center justify-center rounded-full w-11 h-11"><i class="fas fa-arrow-left"></i></a>
|
||||
<h1 class="text-3xl font-bold text-center w-full flex items-center justify-center mb-0">{{ rack.name }} <span class="text-base text-gray-400 ml-2">({{ rack.height_u }}U, {{ rack.site }})</span></h1>
|
||||
<h1 class="text-3xl font-bold text-center w-full mb-0">{{ rack.name }}</h1>
|
||||
<span class="text-base text-gray-400 mt-1">({{ rack.height_u }}U, {{ rack.site }})</span>
|
||||
<form action="/rack/{{ rack.id }}/delete" method="POST" onsubmit="return confirm('Delete this rack?');" class="hidden sm:flex absolute right-0 mr-14">
|
||||
<button type="submit" class="bg-gradient-to-r from-gray-500 to-gray-600 hover:from-gray-600 hover:to-gray-500 text-white items-center justify-center rounded-full w-11 h-11 flex" title="Delete Rack">
|
||||
<i class="fas fa-times fa-lg"></i>
|
||||
@@ -98,7 +99,11 @@
|
||||
{% set found = false %}
|
||||
{% for rd in rack_devices %}
|
||||
{% if rd.position_u == u and rd.side == current_side %}
|
||||
<a href="/device/{{ rd.device_id }}" class="text-blue-400 hover:underline text-base">{{ rd.device_name }}</a>
|
||||
{% if rd.device_id %}
|
||||
<a href="/device/{{ rd.device_id }}" class="text-blue-400 hover:underline text-base">{{ rd.device_name }}</a>
|
||||
{% else %}
|
||||
<span class="text-blue-200 text-base">{{ rd.nonnet_device_name }}</span>
|
||||
{% endif %}
|
||||
<form action="/rack/{{ rack.id }}/remove_device" method="POST" style="display:inline" onsubmit="return confirm('Are you sure you want to remove this device from the rack?');">
|
||||
<input type="hidden" name="rack_device_id" value="{{ rd.id }}">
|
||||
<button type="submit" class="ml-3 text-red-400 hover:text-red-600"><i class="fas fa-times"></i></button>
|
||||
|
||||
+15
-4
@@ -11,20 +11,31 @@
|
||||
<body class="bg-gray-900 text-gray-100 min-h-screen flex flex-col">
|
||||
{% include 'header.html' %}
|
||||
<div class="flex-1 flex items-center justify-center mx-4">
|
||||
<div class="container py-8 max-w-3xl pt-20">
|
||||
<div class="container py-8 max-w-md pt-20">
|
||||
<h1 class="text-3xl font-bold mb-8 text-center">Racks</h1>
|
||||
<div class="flex justify-center mb-6">
|
||||
<a href="/rack/add" class="bg-gradient-to-r from-gray-500 to-gray-700 hover:from-gray-600 hover:to-gray-800 text-white px-4 py-2 rounded-lg inline-block"><i class="fas fa-plus"></i> Add Rack</a>
|
||||
</div>
|
||||
<div class="space-y-6">
|
||||
{% for rack in racks %}
|
||||
<div class="bg-gray-800 rounded-lg shadow-md p-4 flex items-center justify-between">
|
||||
<a href="/rack/{{ rack.id }}" class="block bg-gray-800 rounded-lg shadow-md p-4 flex items-start justify-between hover:ring-2 hover:ring-gray-400 transition group">
|
||||
<div>
|
||||
<h2 class="text-xl font-bold text-blue-200 mb-1">{{ rack.name }}</h2>
|
||||
<div class="text-gray-400">Site: {{ rack.site }} | Height: {{ rack.height_u }}U</div>
|
||||
</div>
|
||||
<a href="/rack/{{ rack.id }}" class="bg-gradient-to-r from-gray-500 to-gray-700 hover:from-gray-600 hover:to-gray-800 text-white px-4 py-2 rounded-lg">View</a>
|
||||
</div>
|
||||
<div class="ml-6 flex-shrink-0">
|
||||
<div class="relative flex items-center justify-center w-16 h-16 group">
|
||||
<svg class="w-16 h-16 rotate-[-90deg]" viewBox="0 0 100 100">
|
||||
<circle cx="50" cy="50" r="42" stroke="#374151" stroke-width="12" fill="none" />
|
||||
<circle cx="50" cy="50" r="42" stroke="#6b7280" stroke-width="12" fill="none" stroke-dasharray="264" stroke-dashoffset="{{ 264 - (264 * rack.percent_full / 100) }}" style="transition: stroke-dashoffset 0.5s;" />
|
||||
</svg>
|
||||
<div class="absolute inset-0 flex flex-col items-center justify-center">
|
||||
<span class="text-sm font-bold text-white">{{ rack.percent_full }}%</span>
|
||||
<span class="text-xs text-gray-300">Full</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
{% else %}
|
||||
<div class="text-center text-gray-400">No racks defined yet.</div>
|
||||
{% endfor %}
|
||||
|
||||
Reference in New Issue
Block a user