chore(ui): drop AdminLTE 2, Bootstrap 3 and the rest of the dead front end - #1333
Merged
Merged
Conversation
…t end
FOG moved to AdminLTE 4 / Bootstrap 5 and the old bundles were never
removed. Nothing loaded them: Page declares every stylesheet and script in
one place (lib/fog/page.class.php, plus swagger on the API docs page), no
plugin declares its own assets, and the only references anywhere in the
tree were sourceMappingURL comments inside other minified files. So this
was ~1.2 MB of vendored code shipping in every release and sitting in every
backup, answering "which bootstrap is this" with the wrong version.
It also actively misled. bootstrap5.min.css carries
`sourceMappingURL=bootstrap.min.css.map`, and the map of that name in the
tree was BOOTSTRAP 3's -- its `sources` start `less/normalize.less`, the
LESS build BS3 used and BS5 does not. Devtools resolved BS5 rules against
BS3 sources.
Removed:
AdminLTE 2 AdminLTE.min.css, adminlte-skins.min.css, adminlte.min.js
Bootstrap 3 bootstrap.min.css, its .map, bootstrap.min.js, css/less/
(71 LESS sources -- there is no build step), and the
glyphicons-halflings faces, which no loaded stylesheet has
defined a rule for since the migration
Superseded bootstrap-datetimepicker.min.{css,js}, replaced by
js/fog/datetimepicker-shim.js, which re-implements
$.fn.datetimepicker for the call sites still using the
BS3-era API
jquery.color.min.js, replaced by shade() in
fog.dashboard.js -- the comment there already said so
Redundant datatables.bootstrap5.min.{css,js}; datatables.min.css is a
combined downloader build that already contains the
Bootstrap 5 integration
Dead markup the <!--[if lt IE 9]--> block in other/index.php, which is
the shell for EVERY page and pointed at
dist/js/html5shiv.min.js and dist/js/respond.min.js --
neither of which has ever existed in this tree, and
Bootstrap 5 dropped IE outright
tests/retired-frontend-bundles.test.php, 23 checks, three
mutation-verified: a retired bundle reappearing, the datetimepicker shim
being gutted, and page.class.php starting to reference a retired file.
The replacements are checked by what they PROVIDE -- $.fn.datetimepicker,
shade(), the --dt-row-selected rules -- so gutting a file still fails
rather than passing because the file exists.
Verified on a live 1.6 install after deploying (copybacktrunk rsyncs with
--delete, so the removals propagate): the host list renders 86 rows and 144
sidebar links with ZERO failed resource requests, and every asset the login
page references returns 200.
Co-Authored-By: Claude <noreply@anthropic.com>
mastacontrola
force-pushed
the
chore-drop-adminlte2-bootstrap3
branch
from
August 24, 2026 01:15
28d8ddd to
089f710
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FOG moved to AdminLTE 4 / Bootstrap 5 and the old bundles were never removed.
Nothing loaded them.
Pagedeclares every stylesheet and script in oneplace (
lib/fog/page.class.php, plus swagger on the API docs page), no plugindeclares its own assets, and the only references anywhere in the tree were
sourceMappingURLcomments inside other minified files. So this was ~1.2 MBof vendored code shipping in every release, sitting in every backup, and
answering "which bootstrap is this" with the wrong version.
It also actively misled:
bootstrap5.min.csscarriessourceMappingURL=bootstrap.min.css.map, and the map of that name in the treewas Bootstrap 3's — its
sourcesbeginless/normalize.less, the LESSbuild BS3 used and BS5 does not. Devtools was resolving BS5 rules against BS3
sources.
Removed
AdminLTE.min.css,adminlte-skins.min.css,adminlte.min.jsbootstrap.min.css, its.map,bootstrap.min.js,css/less/(71 LESS sources — there is no build step), and theglyphicons-halflingsfaces, which no loaded stylesheet has defined a rule for since the migrationbootstrap-datetimepicker.min.{css,js}→js/fog/datetimepicker-shim.jsre-implements$.fn.datetimepickerfor the call sites still on the BS3-era API.jquery.color.min.js→shade()infog.dashboard.js; the comment there already said sodatatables.bootstrap5.min.{css,js}—datatables.min.cssis a combined downloader build that already contains the Bootstrap 5 integration<!--[if lt IE 9]-->block inother/index.php, which is the shell for every page and pointed atdist/js/html5shiv.min.jsanddist/js/respond.min.js— neither has ever existed in this tree, and Bootstrap 5 dropped IE outrightTests
tests/retired-frontend-bundles.test.php, 23 checks, three mutation-verified:a retired bundle reappearing, the datetimepicker shim being gutted, and
page.class.phpstarting to reference a retired file.The replacements are checked by what they provide —
$.fn.datetimepicker,shade(), the--dt-row-selectedrules — so gutting a file still fails,rather than passing because the file happens to exist.
Verified live
Deployed to a 1.6 install (
copybacktrunkrsyncs with--delete, so theremovals propagate) and then loaded in a browser:
resource requests
bootstrap5.min.css,adminlte4.min.css,datatables.min.css,font-awesome.min.cssand the datetimepicker shim all still present andserving
Follow-up
Font Awesome is still 4.7.0. That is a separate change with a real blast
radius (the plugins repo uses
fa fa-*too) and is being done next.Downstream
None — no plugin references any removed file.