fix(dashboard): remove all event.target dependencies

- switchTab(tabId, el): uses el or document.querySelector fallback
- switchHmTab(tabName, btn): uses btn or querySelector fallback
- All 6 tab buttons + 4 heatmap modal tabs pass 'this' as parameter
- Rebuilt index.standalone.html (261.6 KB)
- Verified: grep event.target returns 0 occurrences
This commit is contained in:
Deploy Bot
2026-05-26 13:22:40 +01:00
parent c212a0a34e
commit 95e0866b46
2 changed files with 27 additions and 27 deletions

View File

@@ -756,12 +756,12 @@
</div>
<div class="tabs" id="tabBar">
<button class="tab-btn active" onclick="switchTab('overview')">Overview</button>
<button class="tab-btn" onclick="switchTab('agents')">All Agents</button>
<button class="tab-btn" onclick="switchTab('history')">Timeline</button>
<button class="tab-btn" onclick="switchTab('recommendations')">Recommendations</button>
<button class="tab-btn" onclick="switchTab('heatmap')">Heatmap</button>
<button class="tab-btn" onclick="switchTab('impact')">Impact</button>
<button class="tab-btn active" onclick="switchTab('overview', this)">Overview</button>
<button class="tab-btn" onclick="switchTab('agents', this)">All Agents</button>
<button class="tab-btn" onclick="switchTab('history', this)">Timeline</button>
<button class="tab-btn" onclick="switchTab('recommendations', this)">Recommendations</button>
<button class="tab-btn" onclick="switchTab('heatmap', this)">Heatmap</button>
<button class="tab-btn" onclick="switchTab('impact', this)">Impact</button>
</div>
<!-- Overview Tab -->
@@ -1738,11 +1738,11 @@ document.addEventListener('click', function(e) {
}
});
function switchHmTab(tabName) {
document.querySelectorAll('.hm-tab-btn').forEach(btn => btn.classList.remove('active'));
function switchHmTab(tabName, btn) {
document.querySelectorAll('.hm-tab-btn').forEach(b => b.classList.remove('active'));
document.querySelectorAll('.hm-tab-content').forEach(c => c.classList.remove('active'));
event.target.classList.add('active');
(btn || document.querySelector(`.hm-tab-btn[onclick*="switchHmTab('${tabName}')"]`) || {}).classList.add('active');
renderHmModalContent(tabName);
}
@@ -2413,11 +2413,11 @@ function closeResearchModal() {
}
// Tab switching
function switchTab(tabId) {
function switchTab(tabId, el) {
document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.tab-panel').forEach(panel => panel.classList.remove('active'));
event.target.classList.add('active');
(el || document.querySelector(`button[onclick*="switchTab('${tabId}')"]`)).classList.add('active');
document.getElementById('tab-' + tabId).classList.add('active');
}

View File

@@ -756,12 +756,12 @@
</div>
<div class="tabs" id="tabBar">
<button class="tab-btn active" onclick="switchTab('overview')">Overview</button>
<button class="tab-btn" onclick="switchTab('agents')">All Agents</button>
<button class="tab-btn" onclick="switchTab('history')">Timeline</button>
<button class="tab-btn" onclick="switchTab('recommendations')">Recommendations</button>
<button class="tab-btn" onclick="switchTab('heatmap')">Heatmap</button>
<button class="tab-btn" onclick="switchTab('impact')">Impact</button>
<button class="tab-btn active" onclick="switchTab('overview', this)">Overview</button>
<button class="tab-btn" onclick="switchTab('agents', this)">All Agents</button>
<button class="tab-btn" onclick="switchTab('history', this)">Timeline</button>
<button class="tab-btn" onclick="switchTab('recommendations', this)">Recommendations</button>
<button class="tab-btn" onclick="switchTab('heatmap', this)">Heatmap</button>
<button class="tab-btn" onclick="switchTab('impact', this)">Impact</button>
</div>
<!-- Overview Tab -->
@@ -1024,12 +1024,12 @@ const INLINE_RECOMMENDATIONS = []; // REMOVED — data now comes from agentData,
/* MODEL_BENCHMARKS removed — data now in EMBEDDED_DATA.model_benchmarks */
// Default embedded data (minimal - updated by sync script)
// Unified data from REAL sources (2026-05-25T21:24:16.296Z)
// Unified data from REAL sources (2026-05-26T12:21:49.730Z)
// Sources: .kilo/agents/*.md + kilo-meta.json + model-benchmarks-verified.json
const EMBEDDED_DATA = {
"$schema": "./data/evolution.schema.json",
"version": "2.1.0",
"lastUpdated": "2026-05-25T21:24:16.287Z",
"lastUpdated": "2026-05-26T12:21:49.721Z",
"agents": {
"agent-architect": {
"current": {
@@ -5655,7 +5655,7 @@ const EMBEDDED_DATA = {
"total_agents": 34,
"agents_with_history": 34,
"pending_recommendations": 18,
"last_sync": "2026-05-25T21:24:16.287Z",
"last_sync": "2026-05-26T12:21:49.722Z",
"sync_sources": [
".kilo/agents/*.md",
"kilo-meta.json",
@@ -6313,11 +6313,11 @@ document.addEventListener('click', function(e) {
}
});
function switchHmTab(tabName) {
document.querySelectorAll('.hm-tab-btn').forEach(btn => btn.classList.remove('active'));
function switchHmTab(tabName, btn) {
document.querySelectorAll('.hm-tab-btn').forEach(b => b.classList.remove('active'));
document.querySelectorAll('.hm-tab-content').forEach(c => c.classList.remove('active'));
event.target.classList.add('active');
(btn || document.querySelector(`.hm-tab-btn[onclick*="switchHmTab('${tabName}')"]`) || {}).classList.add('active');
renderHmModalContent(tabName);
}
@@ -6988,11 +6988,11 @@ function closeResearchModal() {
}
// Tab switching
function switchTab(tabId) {
function switchTab(tabId, el) {
document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.tab-panel').forEach(panel => panel.classList.remove('active'));
event.target.classList.add('active');
(el || document.querySelector(`button[onclick*="switchTab('${tabId}')"]`)).classList.add('active');
document.getElementById('tab-' + tabId).classList.add('active');
}