diff --git a/frontend/index.html b/frontend/index.html
index 1e65bb8..23f88b4 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -924,11 +924,15 @@ function renderOnboarding() {
Source Onboarding Pipeline
6-stage lifecycle tracker for every active data source
+
-
@@ -971,20 +975,21 @@ function obCopy() {
let _obShowCompleted = false
+let _obPipelineData = null
+
async function loadOnboardingPipeline() {
const statsEl = document.getElementById('ob-pipeline-stats')
const tableEl = document.getElementById('ob-pipeline-table')
if (!statsEl || !tableEl) return
try {
const data = await apiGet('/api/coverage/onboarding-status')
+ _obPipelineData = data
const sources = data.sources || []
- if (statsEl) {
- statsEl.innerHTML = `
- ✓ Fully Onboarded: ${data.fully_onboarded}
- ⟳ In Progress: ${data.in_progress}
- ○ Not Started: ${data.not_started}`
- }
+ statsEl.innerHTML = `
+ ✓ Fully Onboarded: ${data.fully_onboarded}
+ ⟳ In Progress: ${data.in_progress}
+ ○ Not Started: ${data.not_started}`
const STAGE_ICONS = ['📥','📄','⚙️','🏷️','🔍','🔔']
const incomplete = sources.filter(s => s.completed < s.total)
@@ -1046,6 +1051,16 @@ async function loadOnboardingPipeline() {
}
}
+let _obPipelineVisible = false
+
+function obTogglePipeline() {
+ _obPipelineVisible = !_obPipelineVisible
+ const tableEl = document.getElementById('ob-pipeline-table')
+ const btn = document.getElementById('btn-ob-pipeline-toggle')
+ if (tableEl) tableEl.classList.toggle('hidden', !_obPipelineVisible)
+ if (btn) btn.textContent = _obPipelineVisible ? 'Hide Pipeline' : 'Show Pipeline'
+}
+
function obToggleCompleted() {
_obShowCompleted = !_obShowCompleted
const rows = document.getElementById('ob-complete-rows')