fix(view): drop top nav from welcome + error pages, debug footer is the only chrome#2406
Merged
Conversation
…he only chrome
The framework dev-mode chrome had two competing surfaces showing on the
welcome page (`/` after `wheels new`) and on error pages: a Wheels-branded
top nav with Info/Routes/API/Guides/Tests/Migrator/Packages/Plugins tabs
(via `_header.cfm` and `_header_simple.cfm`), and a fixed-position debug
bar at the bottom of every dev-mode page (via
`vendor/wheels/events/onrequestend/debug.cfm`). Both led to the same
internal admin pages, so they were redundant — and the top bar shifted
content while the debug bar (collapsible, fixed-bottom) is unobtrusive.
Pick one chrome: the debug footer. The footer's "Links" panel already
exposes every nav target the top bar offered (`wheelsInfo`, `wheelsRoutes`,
`wheelsApiDocs`, `wheelsGuides`, `testbox`, `wheelsMigrator`,
`wheelsPackageList`, `wheelsPlugins`), so removing the top nav loses no
functionality.
Changes:
- `_header_simple.cfm` (used by error pages via `EventMethods.cfc:101`):
drop the `<div class="ui pointing fluid eight item menu stackable">`
nav block. Keep doctype, head, dark-theme styles, body open, and the
content container div.
- `congratulations.cfm` (welcome page): switch from `_header.cfm` /
`_footer.cfm` (which include the rich top nav and a bunch of GUI
JavaScript the welcome page doesn't need) to the slimmed
`_header_simple.cfm` / `_footer_simple.cfm`. Same dark theme + CSS
variables the page already uses; no top nav.
The framework's own admin pages (`/wheels/info`, `/wheels/routes`, etc.)
still include the rich `_header.cfm` because navigating between admin
pages IS the point of those tools — the top nav is functional context
there. Only the welcome page and error pages get the slimmed treatment.
Visual baselines (`web/tests/visual-baselines/`) cover the static doc
sites only (api/blog/guides/landing/packages), not the framework's
runtime pages. So no visual-regression CI risk.
Tests: 3384 SQLite tests still pass (zero regressions). Manually verified
the welcome page renders without the top nav while preserving all
hero/CLI/guidance content.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 tasks
bpamiri
added a commit
that referenced
this pull request
May 5, 2026
The top navigation in _header.cfm duplicated links already provided by the debug bar emitted at onrequestend (System Info / Routes / API / Guides / Migrator / Packages / Plugins). Drop the nav include to eliminate the duplicate surface. Public.cfc handlers <cfinclude> their views directly without going through renderView, so request.wheels.showDebugInformation never flipped on /wheels/info, /wheels/routes, etc. — the bar wouldn't have appeared even after dropping the top nav. Opt into the bar from both _header.cfm and _header_simple.cfm so any view using either layout self-arms the debug footer. Extends the pattern from #2406 (welcome + error pages) to the rest of the dev-tools admin pages.
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.
Summary
Wheels' dev-mode chrome had two competing surfaces on the welcome page (`/` after `wheels new`) and on error pages:
Both led to the same set of internal admin pages, so they were redundant. Worse, the top bar shifted content while the debug bar (collapsible, fixed-bottom) is unobtrusive. Pick one — the debug footer.
The debug footer's "Links" panel already exposes every nav target the top bar offered (`wheelsInfo`, `wheelsRoutes`, `wheelsApiDocs`, `wheelsGuides`, `testbox`, `wheelsMigrator`, `wheelsPackageList`, `wheelsPlugins`), so removing the top nav loses no functionality.
Changes
`_header_simple.cfm` (used by error pages via `EventMethods.cfc:101`): drop the `<div class="ui pointing fluid eight item menu stackable">` nav block (lines 76–100, ~25 lines including all the SVG icons inline). Keep doctype, head, dark-theme styles, body open, and the content container div.
`congratulations.cfm` (welcome page): switch from `_header.cfm` / `_footer.cfm` (rich nav + GUI JavaScript the welcome page doesn't need) to the slimmed `_header_simple.cfm` / `_footer_simple.cfm`. Same dark theme + CSS variables the page already uses; no top nav.
What this PR doesn't change
Framework admin pages (`/wheels/info`, `/wheels/routes`, `/wheels/api`, `/wheels/guides`, `/wheels/migrator`, `/wheels/packages`, `/wheels/plugins`) still include the rich `_header.cfm`. Navigating between admin pages IS the point of those tools — the top nav is functional context there. Only the welcome page and error pages get the slimmed treatment.
The debug footer itself is unchanged. It's emitted from the user app's `Application.cfc` (template at `cli/lucli/templates/app/public/Application.cfc:245`) which calls `$includeAndOutput(template = "/wheels/events/onrequestend/debug.cfm")`. New apps generated by `wheels new` get this wiring automatically.
Verification
Test plan
🤖 Generated with Claude Code