Vector Collections
@@ -1883,6 +1889,31 @@ async function loadOverview() {
animateValue(el('ov-switches'), h.database.stats.switch_count, 600);
animateValue(el('ov-standards'), h.database.stats.standard_count, 700);
animateValue(el('ov-news'), h.database.stats.news_count, 900);
+
+ // Verification status section
+ if (h.verification) {
+ var v = h.verification;
+ var total = v.total || 1;
+ var items = [
+ { label: 'Price Verified', count: v.price_verified, pct: v.price_coverage_pct || Math.round(v.price_verified / total * 100), color: '#22c55e' },
+ { label: 'Image Verified', count: v.image_verified, pct: Math.round(v.image_verified / total * 100), color: '#3b82f6' },
+ { label: 'Details Verified', count: v.details_verified, pct: Math.round(v.details_verified / total * 100), color: '#a855f7' },
+ { label: 'Fully Verified', count: v.fully_verified, pct: v.fully_verified_pct || Math.round(v.fully_verified / total * 100), color: '#f97316' },
+ ];
+ buildDOM(el('verification-overview'), items.map(function(item) {
+ return '
'
+ + '
'
+ + '' + item.label + ''
+ + '' + (item.count || 0).toLocaleString() + ''
+ + '
'
+ + '
'
+ + '
' + (item.pct || 0) + '% of ' + total.toLocaleString() + '
'
+ + '
';
+ }).join(''));
+ }
+
el('version-label').textContent = 'v' + h.version;
el('api-status').className = 'dot ' + (h.success ? 'dot-ok' : 'dot-err');
el('db-status').className = 'dot ' + (h.database.connected ? 'dot-ok' : 'dot-err');