Commit Graph
30 Commits
Author SHA1 Message Date
3149820eb4 Convert box/panel markup to Bootstrap 5 cards across all pages
Convert the remaining 20 .lp templates from AdminLTE 2's .box/.panel
component family to Bootstrap 5 .card markup, matching the pattern
established in index.lp/queries.lp during the layout migration:
box/box-header/box-title/box-body/box-footer -> card equivalents,
box-info/-danger/-warning etc. -> card-info/-danger/-warning +
card-outline for the non-solid variant, collapsed-box + data-widget
-> collapsed-card + data-lte-toggle="card-collapse" with the dual
expand/collapse icon AdminLTE 4 expects. Also renames the accompanying
Bootstrap-3-isms throughout (col-xs-*, pull-left/right, input-group-addon,
data-toggle/-dismiss/-backdrop/-keyboard, label -> badge, btn-default,
BS3 modal close-button markup).

Fix the JS-side selectors that referenced the old markup and would have
silently broken once the classes changed: charts.js's tooltip anchor
lookup, footer.js's "no visible cards" redirect check, login.js's
2FA/forgot-password card color swap (plus made both boxes consistently
non-solid so the swap doesn't need to touch card-outline), and
settings-advanced.js's dynamically generated settings cards and its
manual Bootstrap 3 "in"/"active" tab-pane class toggling (Bootstrap 5
renamed .in to .show). Rewrite settings-dhcp.js's jQuery-plugin tooltip
delegation (`$("body").tooltip(...)`, `.tooltip("hide")`) as a small
lazily-instantiating delegated listener plus direct bootstrap.Tooltip
calls, since Bootstrap 5 dropped jQuery integration entirely and the
DHCP lease action buttons are added to the DOM dynamically. Restore
Bootstrap 3's .has-error/.has-warning/.has-success form-validation
color feedback in pi-hole.css, since Bootstrap 5 dropped those classes
in favor of .is-invalid/.is-valid and a couple of pages still toggle
the old class names for simple color-coded feedback.

Refresh package-lock.json for the admin-lte/bootstrap version bump from
the previous commit.

Verified against a live container: dashboard, query log (incl. the
collapsible advanced-filter card and populated DataTable), groups/lists,
groups/domains, and settings/dns all render correctly with zero console
errors; card-collapse toggling confirmed working on the query log's
filter card. Plugin-styled elements (select2/bootstrap-select dropdowns,
DataTables chrome, icheck checkboxes, bootstrap-toggle switches, nav-tabs)
still look wrong until the JS-plugin-swap phase lands, as expected.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
2026-07-17 22:38:11 +01:00
89e65d8d08 Migrate layout shell to AdminLTE 4 / Bootstrap 5
Swap vendored AdminLTE 2.4.18 + Bootstrap 3.4.1 for AdminLTE 4.1.0 +
Bootstrap 5.3.8 (AdminLTE's dist CSS now bundles Bootstrap, so the
separate Bootstrap stylesheet is dropped; only its JS bundle remains).

Rewrite the page shell (header, header_authenticated, sidebar, footer)
to AdminLTE 4's app-wrapper/app-header/app-sidebar/app-main/app-content
structure and nav-sidebar/nav-treeview markup, and convert the dashboard
(index.lp) box/small-box markup to Bootstrap 5 cards as the first fully
migrated page.

Verified against a live container: fixed a chart.js tooltip lookup that
still targeted the old .box selector, restored the header logo mini/full
swap and sidebar user-panel collapse behavior that AdminLTE 2 used to
provide for free, and resolved a duplicate id="navigation" collision
with AdminLTE 4's own accessibility skip-link script.

Every other page still uses the old box/Bootstrap-3-grid/BS3-plugin
markup and will render incorrectly until the remaining migration phases
land.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
2026-07-17 22:38:11 +01:00
yubiuser 00909e9ec8 Fix issues in index.js
Signed-off-by: yubiuser <github@yubiuser.dev>
2026-07-07 16:30:05 +02:00
yubiuser 39504966a6 Use xo --fix to fix huge load of fixable issues, revert fixes to regex for manual inspection
Signed-off-by: yubiuser <github@yubiuser.dev>
2026-07-07 16:30:05 +02:00
vinayandvinaykulk621 4f8b47ddc1 fix: make changes as suggested and rebase with development branch
Signed-off-by: vinaykulk621 <kulkarnivinay621@gmail.com>
2026-05-23 13:50:23 +05:30
Austin GilmourandClaude Sonnet 4.6 1c621a53f8 fix: replace ES2024 regex v flag with u for WebKit compatibility (#3757)
WebKit-based browsers (Safari, DuckDuckGo on macOS) don't yet support
the ES2024 Unicode Sets `v` regex flag, causing a SyntaxError that
prevents all dashboard JavaScript from executing — stats show `---` and
charts spin indefinitely.

None of the affected patterns use v-exclusive features (set notation
`[A--B]`, `[A&&B]`), so downgrading to `u` is fully equivalent and
restores broad compatibility without any functional change.

Also updates xo.config.js to enforce `requireFlag: "u"` so the linter
stays consistent with the codebase.

Affected files (16 occurrences across 8 files):
- scripts/js/utils.js
- scripts/js/index.js
- scripts/js/footer.js
- scripts/js/groups-domains.js
- scripts/js/settings-teleporter.js
- scripts/js/gravity.js
- scripts/js/groups.js
- scripts/js/groups-clients.js
- scripts/js/groups-lists.js
- scripts/js/settings-dns-records.js
- scripts/js/network.js
- scripts/js/taillog.js

Signed-off-by: Austin Gilmour <gilmoursa@gmail.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 07:58:15 -04:00
yubiuser c02e66fe04 Fix xo errors
Signed-off-by: yubiuser <github@yubiuser.dev>
2026-03-16 08:55:20 +01:00
yubiuserandGitHub 94e8e909b7 Improve line graph tooltip (#3601) 2025-10-04 08:58:29 +02:00
RD WebDesign ec5f8b7037 Add offset effect on hover to the doughnut charts
We need to add a small padding to avoid "clipping" the arc/slice.
This happens because when an arc/slice expands, it grows beyond the canvas
limits and get clipped.

Signed-off-by: RD WebDesign <github@rdwebdesign.com.br>
2025-09-19 17:04:48 -03:00
RD WebDesign 48666e1ffd Use an array to store upstream server IPs
This will avoid overwritting the IP when more than one upstream DNS server uses the same name

Signed-off-by: RD WebDesign <github@rdwebdesign.com.br>
2025-09-15 22:34:06 -03:00
yubiuser 2c1876879d Fix calculation of tootlip percentage
Signed-off-by: yubiuser <github@yubiuser.dev>
2025-09-10 11:12:04 +02:00
yubiuser 66eb947718 Only display items in queryOverTimeChart tooltips with at least 1 query
Signed-off-by: yubiuser <github@yubiuser.dev>
2025-09-10 11:12:04 +02:00
yubiuser 9dc305c2b5 Show tooltip of bar graphs below x-axis
Signed-off-by: yubiuser <github@yubiuser.dev>
2025-09-10 11:11:52 +02:00
Adam WarnerandGitHub f683631afd Use proper Object methods (#3441) 2025-05-19 18:26:44 +01:00
XhmikosR 408334380e Use Object methods when possible
Signed-off-by: XhmikosR <xhmikosr@gmail.com>
2025-05-12 18:46:36 +03:00
XhmikosR ba3b76421b Use proper Object methods
Signed-off-by: XhmikosR <xhmikosr@gmail.com>
2025-05-12 18:46:36 +03:00
yubiuser f48ff7191b Remove deprecated <center>
Signed-off-by: yubiuser <github@yubiuser.dev>
2025-04-30 20:26:10 +02:00
yubiuser fbaa0c38fe Hide tables based on privacy level
Signed-off-by: yubiuser <github@yubiuser.dev>
2025-04-26 22:52:11 +02:00
yubiuser a0cc072c3d Hide top tables if no data is available
Signed-off-by: yubiuser <github@yubiuser.dev>
2025-04-26 22:18:59 +02:00
XhmikosR 756239a6dd xo: enable strict mode
Signed-off-by: XhmikosR <xhmikosr@gmail.com>
2025-04-23 20:50:12 +03:00
XhmikosR f8a0a1d4ec Tighten xo rules
Signed-off-by: XhmikosR <xhmikosr@gmail.com>
2025-04-23 07:53:13 +03:00
DL6ER b524a2f4b6 Always use document.body.dataset.apiurl instead of the intermediate const apiUrl
Signed-off-by: DL6ER <dl6er@dl6er.de>
2025-03-31 22:00:16 +02:00
XhmikosR ac24b73312 Use pretty URLs when possible
Signed-off-by: XhmikosR <xhmikosr@gmail.com>
2025-03-29 09:54:05 +02:00
DL6ER 5f3bcdac3c Merge branch 'development' into new/web_prefix
Signed-off-by: DL6ER <dl6er@dl6er.de>
2025-03-09 20:15:59 +01:00
DL6ER 68933f7a2c Add total/permitted/blocked filtering for domains and clients on the dashboard's top lists
Signed-off-by: DL6ER <dl6er@dl6er.de>
2025-03-06 18:33:33 +01:00
DL6ER 556aa65103 Add total/permitted/blocked filtering for domains and clients on the dashboard's top lists
Signed-off-by: DL6ER <dl6er@dl6er.de>
2025-03-06 17:32:15 +01:00
DL6ER a7f1ca7800 Allow path prefix multiplexing the dashboard and API. See https://github.com/pi-hole/FTL/pull/2319 for further details
Signed-off-by: DL6ER <dl6er@dl6er.de>
2025-03-02 20:20:10 +01:00
yubiuser e7f97baab1 Fix prefer-global-this error
Signed-off-by: yubiuser <github@yubiuser.dev>
2024-12-07 16:11:35 +01:00
yubiuser 4277311bc7 Adjust onZoom callback to not trigger on chart.zoomScale introduced in v2.1.0 of the chartjs zoom plugin
Signed-off-by: yubiuser <github@yubiuser.dev>
2024-11-27 22:19:45 +01:00
yubiuser 1e922a8b29 Move all files from /scripts/pi-hole/ to /scripts/
Signed-off-by: yubiuser <github@yubiuser.dev>
2024-10-28 20:22:09 +01:00