diff --git a/public_html/admin/index.php b/public_html/admin/index.php index 181059d..835d0c9 100644 --- a/public_html/admin/index.php +++ b/public_html/admin/index.php @@ -768,6 +768,7 @@ select.filter-sel:focus{border-color:var(--cyan)} +  
SCANNING...
@@ -1359,11 +1360,17 @@ async function loadFactCategories() { const _factCntEl = document.getElementById('facts-count'); if(_factCntEl) _factCntEl.textContent=_factTotal.toLocaleString()+' TOTAL'; } +const _unavailValues = new Set(['unavailable','unknown','none','null','','N/A','n/a','undefined']); +function toggleFactUnavail(btn){ btn.classList.toggle('active'); loadFacts(); } async function loadFacts() { scanShell('facts-tbl', ['CATEGORY','KEY','VALUE','UPDATED','ACTIONS'], null, null); const cat = document.getElementById('factCat')?.value || '__all__'; - const facts = await api('facts_list', {category: cat}); - if (!facts.length) { document.getElementById('facts-tbl').innerHTML='
NO FACTS
'; return; } + let facts = await api('facts_list', {category: cat}); + const hideUnavail = document.getElementById('fact-hide-unavail')?.classList.contains('active'); + if (hideUnavail) facts = facts.filter(f => { const v=(f.fact_value||'').toLowerCase().trim(); return !_unavailValues.has(v); }); + const _factDispEl = document.getElementById('facts-count'); + if (_factDispEl && hideUnavail) _factDispEl.textContent += ` ยท ${facts.length} SHOWN`; + if (!facts.length) { document.getElementById('facts-tbl').innerHTML='
NO FACTS MATCH FILTER
'; return; } document.getElementById('facts-tbl').innerHTML = `
CATEGORYKEYVALUEUPDATEDACTIONS
`;