show counts for rack and disk type

This commit is contained in:
chrislu
2025-07-02 19:47:08 -07:00
parent 080dce80eb
commit 1cac3e73f9
3 changed files with 245 additions and 463 deletions

View File

@@ -74,18 +74,10 @@ templ ClusterVolumes(data dash.ClusterVolumesData) {
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
if data.DataCenterCount == 1 {
Data Center
} else {
Data Centers
}
Data Centers
</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">
if data.DataCenterCount == 1 {
{data.SingleDataCenter}
} else {
{fmt.Sprintf("%d", data.DataCenterCount)}
}
{fmt.Sprintf("%d", countUniqueDataCenters(data.Volumes))}
</div>
</div>
<div class="col-auto">
@@ -102,18 +94,10 @@ templ ClusterVolumes(data dash.ClusterVolumesData) {
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-secondary text-uppercase mb-1">
if data.RackCount == 1 {
Rack
} else {
Racks
}
Racks
</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">
if data.RackCount == 1 {
{data.SingleRack}
} else {
{fmt.Sprintf("%d", data.RackCount)}
}
{fmt.Sprintf("%d", data.RackCount)}
</div>
</div>
<div class="col-auto">
@@ -130,18 +114,10 @@ templ ClusterVolumes(data dash.ClusterVolumesData) {
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-dark text-uppercase mb-1">
if data.DiskTypeCount == 1 {
Disk Type
} else {
Disk Types
}
Disk Types
</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">
if data.DiskTypeCount == 1 {
{data.SingleDiskType}
} else {
{fmt.Sprintf("%d", data.DiskTypeCount)}
}
{fmt.Sprintf("%d", data.DiskTypeCount)}
</div>
</div>
<div class="col-auto">
@@ -198,22 +174,18 @@ templ ClusterVolumes(data dash.ClusterVolumesData) {
@getSortIcon("server", data.SortBy, data.SortOrder)
</a>
</th>
if data.ShowDataCenterColumn {
<th>
<a href="#" onclick="sortTable('datacenter')" class="text-decoration-none text-dark">
Data Center
@getSortIcon("datacenter", data.SortBy, data.SortOrder)
</a>
</th>
}
if data.ShowRackColumn {
<th>
<a href="#" onclick="sortTable('rack')" class="text-decoration-none text-dark">
Rack
@getSortIcon("rack", data.SortBy, data.SortOrder)
</a>
</th>
}
<th>
<a href="#" onclick="sortTable('datacenter')" class="text-decoration-none text-dark">
Data Center
@getSortIcon("datacenter", data.SortBy, data.SortOrder)
</a>
</th>
<th>
<a href="#" onclick="sortTable('rack')" class="text-decoration-none text-dark">
Rack
@getSortIcon("rack", data.SortBy, data.SortOrder)
</a>
</th>
<th>
<a href="#" onclick="sortTable('collection')" class="text-decoration-none text-dark">
Collection
@@ -238,14 +210,12 @@ templ ClusterVolumes(data dash.ClusterVolumesData) {
@getSortIcon("replication", data.SortBy, data.SortOrder)
</a>
</th>
if data.ShowDiskTypeColumn {
<th>
<a href="#" onclick="sortTable('disktype')" class="text-decoration-none text-dark">
Disk Type
@getSortIcon("disktype", data.SortBy, data.SortOrder)
</a>
</th>
}
<th>
<a href="#" onclick="sortTable('disktype')" class="text-decoration-none text-dark">
Disk Type
@getSortIcon("disktype", data.SortBy, data.SortOrder)
</a>
</th>
<th>Actions</th>
</tr>
</thead>
@@ -261,16 +231,12 @@ templ ClusterVolumes(data dash.ClusterVolumesData) {
<i class="fas fa-external-link-alt ms-1 text-muted"></i>
</a>
</td>
if data.ShowDataCenterColumn {
<td>
<span class="badge bg-light text-dark">{volume.DataCenter}</span>
</td>
}
if data.ShowRackColumn {
<td>
<span class="badge bg-light text-dark">{volume.Rack}</span>
</td>
}
<td>
<span class="badge bg-light text-dark">{volume.DataCenter}</span>
</td>
<td>
<span class="badge bg-light text-dark">{volume.Rack}</span>
</td>
<td>
<span class="badge bg-secondary">{volume.Collection}</span>
</td>
@@ -279,11 +245,9 @@ templ ClusterVolumes(data dash.ClusterVolumesData) {
<td>
<span class="badge bg-info">{volume.Replication}</span>
</td>
if data.ShowDiskTypeColumn {
<td>
<span class="badge bg-primary">{volume.DiskType}</span>
</td>
}
<td>
<span class="badge bg-primary">{volume.DiskType}</span>
</td>
<td>
<div class="btn-group btn-group-sm">
<button type="button" class="btn btn-outline-primary btn-sm"