diff --git a/changelog.d/3175-header-simple-welcome-title.fixed.md b/changelog.d/3175-header-simple-welcome-title.fixed.md new file mode 100644 index 0000000000..2dbb695f58 --- /dev/null +++ b/changelog.d/3175-header-simple-welcome-title.fixed.md @@ -0,0 +1 @@ +- The fresh-install welcome page no longer renders a browser tab titled `Wheels - Error`; `_header_simple.cfm` now defaults its `` to `Wheels` and the error handler overrides it for error screens (#3175) diff --git a/vendor/wheels/events/EventMethods.cfc b/vendor/wheels/events/EventMethods.cfc index faeccc52d3..a2dfb17fd8 100644 --- a/vendor/wheels/events/EventMethods.cfc +++ b/vendor/wheels/events/EventMethods.cfc @@ -99,7 +99,13 @@ component extends="wheels.Global" implements="wheels.interfaces.events.EventHand $header(name = "Content-Type", value = "text/xml"); local.rv = $toXml(local.wheelsError); } else { - // Default HTML error display + // Default HTML error display. The shared _header_simple.cfm + // partial defaults its <title> to "Wheels" (the fresh-install + // welcome page, #3175); override it here so error screens keep + // their error-specific title. + if (StructKeyExists(request, "wheels") && IsStruct(request.wheels)) { + request.wheels.pageTitle = "Wheels - Error"; + } if (!StructKeyExists(request.wheels, "internalHeaderLoaded")) { local.rv &= $includeAndReturnOutput($template = "/wheels/public/layout/_header_simple.cfm"); } diff --git a/vendor/wheels/public/layout/_header_simple.cfm b/vendor/wheels/public/layout/_header_simple.cfm index 7e6a5c4838..2c13ff6760 100644 --- a/vendor/wheels/public/layout/_header_simple.cfm +++ b/vendor/wheels/public/layout/_header_simple.cfm @@ -30,13 +30,30 @@ if (!StructKeyExists(application.wheels, "iconsFontDataUri")) { } } } + +// Page <title> for this shared chrome. Defaults to "Wheels" — the +// fresh-install welcome page (congratulations.cfm) leaves it at the +// default. The error handler (EventMethods.$runOnError) sets +// request.wheels.pageTitle = "Wheels - Error" before including this +// partial so error screens keep their error-specific title. +// Issue ##3175: the title was hardcoded to "Wheels - Error", so every +// successful first boot rendered a browser tab titled "Error". +local.simpleHeaderTitle = "Wheels"; +if ( + StructKeyExists(request, "wheels") + && IsStruct(request.wheels) + && StructKeyExists(request.wheels, "pageTitle") + && Len(Trim(request.wheels.pageTitle)) +) { + local.simpleHeaderTitle = request.wheels.pageTitle; +} </cfscript> <cfoutput> <!--- cfformat-ignore-start ---> <!DOCTYPE html> <html> <head> - <title>Wheels - Error + #EncodeForHTML(local.simpleHeaderTitle)#