mirror of
https://github.com/pi-hole/web.git
synced 2026-08-23 06:39:09 +01:00
Convert all 35 static checkbox/radio inputs across 9 templates (queries, search, settings-api, settings-dhcp, groups-domains, settings-dns, settings-privacy, settings-teleporter) plus the dynamically-generated ones (settings-advanced.js's per-setting boolean/enum controls, settings-dns.js's DNS-upstream picker) from icheck-bootstrap's JS-post-processed styling to Bootstrap 5's native .form-check/ .form-check-input/.form-check-label markup, which needs no JS at all. Remove footer.js's applyCheckboxRadioStyle() (and its call sites in settings-advanced.js/settings-dns.js) entirely - it used to strip and re-add classes on every checkbox/radio's parent after page load, which would have destroyed the new static .form-check classes at runtime. Drop the icheck-bootstrap dependency, its vendor CSS and the <link> in header.lp, and replace its now-dead pseudo-element checkbox styling in pi-hole.css with a couple of plain .form-check-input/.form-check-label rules for the one spot that needs a smaller checkbox size (the domain list's filter-by-type row). Two "no-icheck"-excluded checkboxes (a table-header select-all in both settings-dns.lp and settings-dns.js) are left as bare native checkboxes, matching their original deliberate exclusion. Also confirmed pi-hole's own text-red/text-green/bg-*/etc. color utility classes are unaffected by the AdminLTE core removal - each theme file already defines them fully rather than only overriding an AdminLTE base, so no fix was needed there. Verified against a live container: settings/dns (checkbox/radio styling, custom-servers card-collapse toggle) and settings/privacy (privacy-level radios) render correctly with zero console errors. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Signed-off-by: Adam Warner <me@adamwarner.co.uk>