mirror of
https://github.com/discourse/discourse.git
synced 2026-08-04 10:23:17 -05:00
UX: Enable site_name for all header fields on welcome banner (#37186)
Right now site_name is only available on the welcome-banner header field for anonymous visitors. This makes it available for all members. ### Before `site_name` is only available for anonymous visitors: <img width="380" height="450" alt="image" src="https://github.com/user-attachments/assets/4f973b49-f1f1-4355-8ea1-f7b43ff0914a" /> Using it in other fields results in a validation error: <img width="690" height="288" alt="image" src="https://github.com/user-attachments/assets/336139c4-100f-44e9-95d4-98494dd0aaf2" /> ### After `site_name` is available on all header fields: <img width="365" height="495" alt="image" src="https://github.com/user-attachments/assets/2654734e-10fa-4078-8c9c-88adf96bb870" />
This commit is contained in:
@@ -41,6 +41,7 @@ class TranslationOverride < ActiveRecord::Base
|
||||
optional_tags
|
||||
],
|
||||
%w[system_messages.welcome_user] => %w[username name name_or_username],
|
||||
%w[js.welcome_banner.header] => %w[site_name],
|
||||
}
|
||||
|
||||
include HasSanitizableFields
|
||||
|
||||
@@ -6029,11 +6029,11 @@ en:
|
||||
locale_label: "Language"
|
||||
header_new_members:
|
||||
label: "Header for new members"
|
||||
description: "Available variable: <code>%{preferred_display_name}</code>"
|
||||
description: "Available variables: <code>%{site_name}</code>, <code>%{preferred_display_name}</code>"
|
||||
placeholder: "Welcome, %{preferred_display_name}!"
|
||||
header_logged_in:
|
||||
label: "Header for logged-in members"
|
||||
description: "Available variable: <code>%{preferred_display_name}</code>"
|
||||
description: "Available variables: <code>%{site_name}</code>, <code>%{preferred_display_name}</code>"
|
||||
placeholder: "Welcome back, %{preferred_display_name}!"
|
||||
header_anonymous:
|
||||
label: "Header for anonymous visitors"
|
||||
|
||||
@@ -533,6 +533,7 @@ export default class AdminWelcomeBannerForm extends Component {
|
||||
<field.Input
|
||||
placeholder={{i18n
|
||||
"admin.config.welcome_banner.form.header_logged_in.placeholder"
|
||||
site_name="%{site_name}"
|
||||
preferred_display_name="%{preferred_display_name}"
|
||||
}}
|
||||
/>
|
||||
|
||||
@@ -98,22 +98,30 @@ export default class WelcomeBanner extends Component {
|
||||
}
|
||||
|
||||
get headerText() {
|
||||
const site_name = this.siteSettings.title || "";
|
||||
|
||||
let key, args;
|
||||
|
||||
if (!this.currentUser) {
|
||||
return i18n("welcome_banner.header.anonymous_members", {
|
||||
site_name: this.siteSettings.title,
|
||||
});
|
||||
key = "welcome_banner.header.anonymous_members";
|
||||
args = { site_name };
|
||||
} else {
|
||||
const isNewUser = !this.currentUser.previous_visit_at;
|
||||
key = isNewUser
|
||||
? "welcome_banner.header.new_members"
|
||||
: "welcome_banner.header.logged_in_members";
|
||||
args = {
|
||||
site_name,
|
||||
preferred_display_name: sanitize(
|
||||
prioritizeNameFallback(
|
||||
this.currentUser.name,
|
||||
this.currentUser.username
|
||||
)
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
const isNewUser = !this.currentUser.previous_visit_at;
|
||||
const key = isNewUser
|
||||
? "welcome_banner.header.new_members"
|
||||
: "welcome_banner.header.logged_in_members";
|
||||
|
||||
return i18n(key, {
|
||||
preferred_display_name: sanitize(
|
||||
prioritizeNameFallback(this.currentUser.name, this.currentUser.username)
|
||||
),
|
||||
});
|
||||
return i18n(key, args);
|
||||
}
|
||||
|
||||
get subheaderText() {
|
||||
|
||||
Reference in New Issue
Block a user