This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

update admin filters

+27 -8
+9
src/components/Admin/AdminPanel.css
··· 632 632 margin-bottom: 15px; 633 633 font-size: 14px; 634 634 } 635 + 636 + .completeness-badge { 637 + background-color: #f0f0f0; 638 + color: #333; 639 + font-size: 0.8rem; 640 + padding: 0.1rem 0.3rem; 641 + border-radius: 3px; 642 + margin-left: 5px; 643 + } 635 644 636 645 /* Accessibility */ 637 646 .sr-only {
+18 -8
src/components/Admin/AdminPanel.js
··· 14 14 const [authError, setAuthError] = useState(null); 15 15 const [statusFilter, setStatusFilter] = useState('all'); 16 16 const [searchQuery, setSearchQuery] = useState(''); 17 - const [completenessFilter, setCompletenessFilter] = useState(0); 17 + const [completenessFilter, setCompletenessFilter] = useState('all'); 18 18 19 19 // Login state 20 20 const [email, setEmail] = useState(''); ··· 252 252 if (searchQuery && !resource.name.toLowerCase().includes(searchQuery.toLowerCase())) return false; 253 253 254 254 // Completeness filter 255 - if (completenessFilter > 0 && resource.completeness < completenessFilter) return false; 255 + if (completenessFilter === 'incomplete' && resource.completeness === 100) return false; 256 + if (completenessFilter === 'complete' && resource.completeness < 100) return false; 257 + if (completenessFilter.startsWith('min-') && resource.completeness < parseInt(completenessFilter.substring(4))) return false; 258 + if (completenessFilter.startsWith('max-') && resource.completeness > parseInt(completenessFilter.substring(4))) return false; 256 259 257 260 return true; 258 261 }); ··· 614 617 </select> 615 618 <select 616 619 value={completenessFilter} 617 - onChange={(e) => setCompletenessFilter(Number(e.target.value))} 620 + onChange={(e) => setCompletenessFilter(e.target.value)} 618 621 className="completeness-filter" 619 622 > 620 - <option value="0">All Completeness</option> 621 - <option value="25">At least 25%</option> 622 - <option value="50">At least 50%</option> 623 - <option value="75">At least 75%</option> 624 - <option value="100">100% Complete</option> 623 + <option value="all">All Resources</option> 624 + <option value="incomplete">Incomplete Only</option> 625 + <option value="complete">100% Complete Only</option> 626 + <option value="min-25">At least 25%</option> 627 + <option value="min-50">At least 50%</option> 628 + <option value="min-75">At least 75%</option> 629 + <option value="max-25">Less than 25%</option> 630 + <option value="max-50">Less than 50%</option> 631 + <option value="max-75">Less than 75%</option> 625 632 </select> 626 633 </div> 627 634 </div> ··· 647 654 {resource.status} 648 655 </span> 649 656 {resource.featured && <span className="featured-badge">Featured</span>} 657 + <span className="completeness-badge" title="Completeness"> 658 + {resource.completeness}% 659 + </span> 650 660 </div> 651 661 </div> 652 662 <div className="resource-item-actions">