diff --git a/app/assets/javascripts/discourse/app/controllers/login.js b/app/assets/javascripts/discourse/app/controllers/login.js
index 11ece210557..6d1ca4800fa 100644
--- a/app/assets/javascripts/discourse/app/controllers/login.js
+++ b/app/assets/javascripts/discourse/app/controllers/login.js
@@ -118,7 +118,7 @@ export default class LoginPageController extends Controller {
get shouldTriggerRouteAction() {
return (
- !this.siteSettings.experimental_full_page_login ||
+ !this.siteSettings.full_page_login ||
this.siteSettings.enable_discourse_connect
);
}
diff --git a/app/assets/javascripts/discourse/app/instance-initializers/auth-complete.js b/app/assets/javascripts/discourse/app/instance-initializers/auth-complete.js
index 506178ab7ba..7bfc0847876 100644
--- a/app/assets/javascripts/discourse/app/instance-initializers/auth-complete.js
+++ b/app/assets/javascripts/discourse/app/instance-initializers/auth-complete.js
@@ -69,7 +69,7 @@ export default {
...properties,
};
- if (siteSettings.experimental_full_page_login) {
+ if (siteSettings.full_page_login) {
router.transitionTo("login").then((login) => {
Object.keys(loginProps || {}).forEach((key) => {
login.controller.set(key, loginProps[key]);
@@ -139,7 +139,7 @@ export default {
skipConfirmation: siteSettings.auth_skip_create_confirm,
};
- if (siteSettings.experimental_full_page_login) {
+ if (siteSettings.full_page_login) {
router.transitionTo("signup").then((signup) => {
const signupController =
signup.controller || owner.lookup("controller:signup");
diff --git a/app/assets/javascripts/discourse/app/routes/application.js b/app/assets/javascripts/discourse/app/routes/application.js
index 2cd41cc9110..59c5ed1df46 100644
--- a/app/assets/javascripts/discourse/app/routes/application.js
+++ b/app/assets/javascripts/discourse/app/routes/application.js
@@ -297,7 +297,7 @@ export default class ApplicationRoute extends DiscourseRoute {
} else {
if (this.isOnlyOneExternalLoginMethod) {
this.login.externalLogin(this.externalLoginMethods[0]);
- } else if (this.siteSettings.experimental_full_page_login) {
+ } else if (this.siteSettings.full_page_login) {
this.router.transitionTo("login").then((login) => {
login.controller.set("canSignUp", this.controller.canSignUp);
if (this.siteSettings.login_required) {
@@ -326,7 +326,7 @@ export default class ApplicationRoute extends DiscourseRoute {
this.login.externalLogin(this.externalLoginMethods[0], {
signup: true,
});
- } else if (this.siteSettings.experimental_full_page_login) {
+ } else if (this.siteSettings.full_page_login) {
this.router.transitionTo("signup").then((signup) => {
Object.keys(createAccountProps || {}).forEach((key) => {
signup.controller.set(key, createAccountProps[key]);
diff --git a/app/assets/javascripts/discourse/app/routes/login.js b/app/assets/javascripts/discourse/app/routes/login.js
index 4732bdfa2b2..05c2ff10ce2 100644
--- a/app/assets/javascripts/discourse/app/routes/login.js
+++ b/app/assets/javascripts/discourse/app/routes/login.js
@@ -11,7 +11,7 @@ export default class LoginRoute extends DiscourseRoute {
beforeModel() {
if (
!this.siteSettings.login_required &&
- (!this.siteSettings.experimental_full_page_login ||
+ (!this.siteSettings.full_page_login ||
this.siteSettings.enable_discourse_connect)
) {
this.router
diff --git a/app/assets/javascripts/discourse/app/routes/signup.js b/app/assets/javascripts/discourse/app/routes/signup.js
index 95c82d34ebb..e78b79a459f 100644
--- a/app/assets/javascripts/discourse/app/routes/signup.js
+++ b/app/assets/javascripts/discourse/app/routes/signup.js
@@ -14,7 +14,7 @@ export default class SignupRoute extends DiscourseRoute {
@action
async showCreateAccount() {
const { canSignUp } = this.controllerFor("application");
- if (canSignUp && this.siteSettings.experimental_full_page_login) {
+ if (canSignUp && this.siteSettings.full_page_login) {
return;
}
const route = await this.router
diff --git a/app/assets/javascripts/discourse/app/templates/login.hbs b/app/assets/javascripts/discourse/app/templates/login.hbs
index cdcd7318c93..70310b1cc30 100644
--- a/app/assets/javascripts/discourse/app/templates/login.hbs
+++ b/app/assets/javascripts/discourse/app/templates/login.hbs
@@ -1,6 +1,6 @@
{{#if
(and
- this.siteSettings.experimental_full_page_login
+ this.siteSettings.full_page_login
(or this.showLogin (not this.siteSettings.login_required))
)
}}
diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml
index 67c54e4e01f..73ecff37b24 100644
--- a/config/locales/server.en.yml
+++ b/config/locales/server.en.yml
@@ -1884,7 +1884,7 @@ en:
pending_users_reminder_delay_minutes: "Notify moderators if new users have been waiting for approval for longer than this many minutes. Set to -1 to disable notifications."
persistent_sessions: "Users will remain logged in when the web browser is closed"
maximum_session_age: "User will remain logged in for n hours since last visit"
- experimental_full_page_login: "Replace the login/signup modal with a full page login/signup form."
+ full_page_login: "Show the login and signup forms in a full page (when unchecked, users will see the forms in a modal). "
ga_version: "Version of Google Universal Analytics to use: v3 (analytics.js), v4 (gtag)"
ga_universal_tracking_code: "Google Universal Analytics tracking code ID, eg: UA-12345678-9; see https://google.com/analytics"
ga_universal_domain_name: "Google Universal Analytics domain name, eg: mysite.com; see https://google.com/analytics"
diff --git a/config/site_settings.yml b/config/site_settings.yml
index c5ab57d33e1..500e13ee267 100644
--- a/config/site_settings.yml
+++ b/config/site_settings.yml
@@ -628,6 +628,9 @@ login:
default: 1440
min: 1
max: 175200
+ full_page_login:
+ default: false
+ client: true
users:
min_username_length:
@@ -3295,9 +3298,6 @@ dashboard:
client: true
experimental:
- experimental_full_page_login:
- default: false
- client: true
experimental_rename_faq_to_guidelines:
default: false
hidden: true
diff --git a/db/migrate/20241104132424_rename_full_page_site_setting.rb b/db/migrate/20241104132424_rename_full_page_site_setting.rb
new file mode 100644
index 00000000000..89277727e6c
--- /dev/null
+++ b/db/migrate/20241104132424_rename_full_page_site_setting.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class RenameFullPageSiteSetting < ActiveRecord::Migration[7.1]
+ def up
+ execute "UPDATE site_settings SET name = 'full_page_login' where name = 'experimental_full_page_login'"
+ end
+
+ def down
+ execute "UPDATE site_settings SET name = 'experimental_full_page_login' where name = 'full_page_login'"
+ end
+end
diff --git a/spec/system/login_spec.rb b/spec/system/login_spec.rb
index 1dd275c6a51..56c81c642b1 100644
--- a/spec/system/login_spec.rb
+++ b/spec/system/login_spec.rb
@@ -252,12 +252,12 @@ describe "Login", type: :system do
end
context "when fullpage desktop" do
- before { SiteSetting.experimental_full_page_login = true }
+ before { SiteSetting.full_page_login = true }
include_examples "login scenarios", PageObjects::Pages::Login.new
end
context "when fullpage mobile", mobile: true do
- before { SiteSetting.experimental_full_page_login = true }
+ before { SiteSetting.full_page_login = true }
include_examples "login scenarios", PageObjects::Pages::Login.new
end
end
diff --git a/spec/system/signup_spec.rb b/spec/system/signup_spec.rb
index 289b9b7a192..829348f4132 100644
--- a/spec/system/signup_spec.rb
+++ b/spec/system/signup_spec.rb
@@ -295,14 +295,14 @@ describe "Signup", type: :system do
end
context "when fullpage desktop" do
- before { SiteSetting.experimental_full_page_login = true }
+ before { SiteSetting.full_page_login = true }
include_examples "signup scenarios",
PageObjects::Pages::Signup.new,
PageObjects::Pages::Login.new
end
context "when fullpage mobile", mobile: true do
- before { SiteSetting.experimental_full_page_login = true }
+ before { SiteSetting.full_page_login = true }
include_examples "signup scenarios",
PageObjects::Pages::Signup.new,
PageObjects::Pages::Login.new
diff --git a/spec/system/social_authentication_spec.rb b/spec/system/social_authentication_spec.rb
index 87ea8144590..94ca12d6b16 100644
--- a/spec/system/social_authentication_spec.rb
+++ b/spec/system/social_authentication_spec.rb
@@ -348,14 +348,14 @@ describe "Social authentication", type: :system do
end
context "when fullpage desktop" do
- before { SiteSetting.experimental_full_page_login = true }
+ before { SiteSetting.full_page_login = true }
include_examples "social authentication scenarios",
PageObjects::Pages::Signup.new,
PageObjects::Pages::Login.new
end
context "when fullpage mobile", mobile: true do
- before { SiteSetting.experimental_full_page_login = true }
+ before { SiteSetting.full_page_login = true }
include_examples "social authentication scenarios",
PageObjects::Pages::Signup.new,
PageObjects::Pages::Login.new