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