alpha
Login
or
Join now
atpota.to
/
cred.blue
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
This repository has no description
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
update admin filters
author
damedotblog
date
1 year ago
(Mar 3, 2025, 9:06 AM -0500)
commit
4fbfccd5
4fbfccd5fba5086745ca49823045f80c0db03d22
parent
376f2b50
376f2b5035e707d9d13fdd8131d377831064ac93
+27
-8
2 changed files
Expand all
Collapse all
Unified
Split
src
components
Admin
AdminPanel.css
AdminPanel.js
+9
src/components/Admin/AdminPanel.css
Reviewed
···
632
632
margin-bottom: 15px;
633
633
font-size: 14px;
634
634
}
635
635
+
636
636
+
.completeness-badge {
637
637
+
background-color: #f0f0f0;
638
638
+
color: #333;
639
639
+
font-size: 0.8rem;
640
640
+
padding: 0.1rem 0.3rem;
641
641
+
border-radius: 3px;
642
642
+
margin-left: 5px;
643
643
+
}
635
644
636
645
/* Accessibility */
637
646
.sr-only {
+18
-8
src/components/Admin/AdminPanel.js
Reviewed
···
14
14
const [authError, setAuthError] = useState(null);
15
15
const [statusFilter, setStatusFilter] = useState('all');
16
16
const [searchQuery, setSearchQuery] = useState('');
17
17
-
const [completenessFilter, setCompletenessFilter] = useState(0);
17
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
255
-
if (completenessFilter > 0 && resource.completeness < completenessFilter) return false;
255
255
+
if (completenessFilter === 'incomplete' && resource.completeness === 100) return false;
256
256
+
if (completenessFilter === 'complete' && resource.completeness < 100) return false;
257
257
+
if (completenessFilter.startsWith('min-') && resource.completeness < parseInt(completenessFilter.substring(4))) return false;
258
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
617
-
onChange={(e) => setCompletenessFilter(Number(e.target.value))}
620
620
+
onChange={(e) => setCompletenessFilter(e.target.value)}
618
621
className="completeness-filter"
619
622
>
620
620
-
<option value="0">All Completeness</option>
621
621
-
<option value="25">At least 25%</option>
622
622
-
<option value="50">At least 50%</option>
623
623
-
<option value="75">At least 75%</option>
624
624
-
<option value="100">100% Complete</option>
623
623
+
<option value="all">All Resources</option>
624
624
+
<option value="incomplete">Incomplete Only</option>
625
625
+
<option value="complete">100% Complete Only</option>
626
626
+
<option value="min-25">At least 25%</option>
627
627
+
<option value="min-50">At least 50%</option>
628
628
+
<option value="min-75">At least 75%</option>
629
629
+
<option value="max-25">Less than 25%</option>
630
630
+
<option value="max-50">Less than 50%</option>
631
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
657
+
<span className="completeness-badge" title="Completeness">
658
658
+
{resource.completeness}%
659
659
+
</span>
650
660
</div>
651
661
</div>
652
662
<div className="resource-item-actions">