ui: reorganize dashboard and sidebar navigation

- Remove 'Workloads with Issues' table from main dashboard
- Create new 'Requests & Limits' section in sidebar under 'Analysis'
- Replace empty 'Workloads' section (Pods, Deployments, Services) with 'Requests & Limits'
- Move workloads table functionality to dedicated 'Requests & Limits' page
- Update navigation logic to handle new section
- Improve dashboard focus on metrics and cluster overview
- Clean up sidebar by removing non-functional menu items
This commit is contained in:
2025-10-03 08:06:17 -03:00
parent dd51071592
commit 1595370720

View File

@@ -1064,27 +1064,12 @@
</div>
<div class="sidebar-section">
<h3 class="sidebar-section-title">Workloads</h3>
<h3 class="sidebar-section-title">Analysis</h3>
<ul class="sidebar-nav">
<li class="sidebar-nav-item">
<a href="#" class="sidebar-nav-link">
<i class="fas fa-cube sidebar-nav-icon"></i>
<span>Pods</span>
<i class="fas fa-chevron-right sidebar-nav-arrow"></i>
</a>
</li>
<li class="sidebar-nav-item">
<a href="#" class="sidebar-nav-link">
<i class="fas fa-layer-group sidebar-nav-icon"></i>
<span>Deployments</span>
<i class="fas fa-chevron-right sidebar-nav-arrow"></i>
</a>
</li>
<li class="sidebar-nav-item">
<a href="#" class="sidebar-nav-link">
<i class="fas fa-server sidebar-nav-icon"></i>
<span>Services</span>
<i class="fas fa-chevron-right sidebar-nav-arrow"></i>
<a href="#" class="sidebar-nav-link" data-section="requests-limits">
<i class="fas fa-exclamation-triangle sidebar-nav-icon"></i>
<span>Requests & Limits</span>
</a>
</li>
</ul>
@@ -1193,6 +1178,15 @@
</div>
</div>
</section>
<!-- Requests & Limits Section -->
<section id="requests-limits-section" class="section-hidden">
<div class="page-header">
<h1 class="page-title">Requests & Limits Analysis</h1>
<p class="page-description">Analyze workloads with resource configuration issues and missing requests/limits</p>
</div>
<!-- Workloads Table Card -->
<div class="openshift-card">
<div class="card-header">
@@ -1401,7 +1395,7 @@
});
// Refresh buttons
document.getElementById('refresh-workloads').addEventListener('click', loadWorkloadScanner);
document.getElementById('refresh-workloads').addEventListener('click', loadRequestsLimits);
document.getElementById('refresh-historical').addEventListener('click', loadHistoricalAnalysis);
}
@@ -1425,6 +1419,8 @@
// Load section data
if (section === 'workload-scanner') {
loadWorkloadScanner();
} else if (section === 'requests-limits') {
loadRequestsLimits();
} else if (section === 'smart-recommendations') {
loadSmartRecommendations();
} else if (section === 'vpa-management') {
@@ -1436,26 +1432,36 @@
async function loadWorkloadScanner() {
try {
showLoading('workloads-table-container');
// Load cluster status
const clusterResponse = await fetch('/api/v1/cluster/status');
const clusterData = await clusterResponse.json();
currentData = { cluster: clusterData };
// Update metrics cards
updateMetricsCards(clusterData);
} catch (error) {
console.error('Error loading workload scanner data:', error);
showError('metrics-grid', 'Failed to load cluster data');
}
}
async function loadRequestsLimits() {
try {
showLoading('workloads-table-container');
// Load validations
const validationsResponse = await fetch('/api/v1/validations');
const validationsData = await validationsResponse.json();
currentData = { cluster: clusterData, validations: validationsData };
// Update metrics cards
updateMetricsCards(clusterData);
currentData = { validations: validationsData };
// Update workloads table
updateWorkloadsTable(validationsData);
} catch (error) {
console.error('Error loading workload scanner data:', error);
console.error('Error loading requests & limits data:', error);
showError('workloads-table-container', 'Failed to load workload data');
}
}