From fde9e6bc25227b69195181d45ee4360c25c279da Mon Sep 17 00:00:00 2001 From: Alan Guo Xiang Tan Date: Thu, 8 Dec 2022 09:44:29 +0800 Subject: [PATCH] DEV: Migrate sidebar site settings (#19336) This new site setting replaces the `enable_experimental_sidebar_hamburger` and `enable_sidebar` site settings as the sidebar feature exits the experimental phase. Note that we're replacing this without depreciation since the previous site setting was considered experimental. Internal Ref: /t/86563 --- .../discourse/app/components/site-header.js | 24 ++++---- .../components/user-nav/preferences-nav.hbs | 2 +- .../discourse/app/controllers/application.js | 6 +- .../discourse/app/lib/plugin-api.js | 4 +- .../discourse/app/templates/application.hbs | 2 +- .../discourse/app/templates/preferences.hbs | 2 +- .../discourse/app/widgets/header-contents.js | 9 +-- .../discourse/app/widgets/header.js | 11 ++-- .../acceptance/second-factor-auth-test.js | 3 +- ...debar-anonymous-categories-section-test.js | 3 +- ...idebar-anonymous-community-section-test.js | 3 +- .../sidebar-anonymous-tags-section-test.js | 3 +- .../acceptance/sidebar-anonymous-user-test.js | 8 +-- .../tests/acceptance/sidebar-mobile-test.js | 3 +- .../acceptance/sidebar-narrow-desktop-test.js | 3 +- .../acceptance/sidebar-plugin-api-test.js | 3 +- .../sidebar-user-categories-section-test.js | 6 +- .../sidebar-user-community-section-test.js | 3 +- .../sidebar-user-messages-section-test.js | 6 +- .../sidebar-user-tags-section-test.js | 6 +- .../tests/acceptance/sidebar-user-test.js | 8 +-- .../user-preferences-sidebar-test.js | 3 +- app/controllers/notifications_controller.rb | 9 ++- .../reviewable_claimed_topics_controller.rb | 3 +- app/controllers/users_controller.rb | 2 +- app/jobs/regular/notify_reviewable.rb | 30 +++++----- app/models/navigation_menu_site_setting.rb | 23 +++++++ app/models/site_setting.rb | 4 ++ app/models/topic_tracking_state.rb | 2 +- app/models/user.rb | 4 +- .../concerns/user_sidebar_tags_mixin.rb | 2 +- app/serializers/current_user_serializer.rb | 2 +- app/serializers/site_serializer.rb | 2 +- config/locales/client.en.yml | 7 ++- config/locales/server.ar.yml | 2 - config/locales/server.de.yml | 2 - config/locales/server.en.yml | 3 +- config/locales/server.es.yml | 2 - config/locales/server.fi.yml | 2 - config/locales/server.fr.yml | 2 - config/locales/server.he.yml | 2 - config/locales/server.hu.yml | 2 - config/locales/server.it.yml | 2 - config/locales/server.ja.yml | 2 - config/locales/server.nl.yml | 2 - config/locales/server.pl_PL.yml | 2 - config/locales/server.pt_BR.yml | 2 - config/locales/server.ru.yml | 2 - config/locales/server.sv.yml | 2 - config/locales/server.tr_TR.yml | 2 - config/locales/server.uk.yml | 2 - config/locales/server.vi.yml | 2 - config/locales/server.zh_CN.yml | 2 - config/locales/server.zh_TW.yml | 2 - config/site_settings.yml | 11 ++-- ...205225450_migrate_sidebar_site_settings.rb | 36 +++++++++++ lib/site_setting_extension.rb | 8 +-- .../javascripts/discourse/controllers/chat.js | 5 +- plugins/chat/spec/system/navigation_spec.rb | 5 +- .../spec/system/receiving_message_spec.rb | 3 +- plugins/chat/spec/system/sidebars_spec.rb | 5 +- .../acceptance/chat-channels-list-test.js | 3 +- .../chat-sidebar-user-status-test.js | 3 +- .../acceptance/chat-status-test.js | 1 - .../test/javascripts/acceptance/chat-test.js | 2 +- .../acceptance/core-sidebar-test.js | 17 ++---- spec/jobs/notify_reviewable_spec.rb | 4 +- spec/lib/site_setting_extension_spec.rb | 20 ------- spec/models/topic_tracking_state_spec.rb | 4 +- spec/models/user_spec.rb | 10 ++-- .../requests/notifications_controller_spec.rb | 60 +++++++++++++------ ...viewable_claimed_topics_controller_spec.rb | 4 +- spec/requests/users_controller_spec.rb | 4 +- .../current_user_serializer_spec.rb | 36 +++++------ spec/serializers/site_serializer_spec.rb | 6 +- spec/serializers/user_serializer_spec.rb | 14 ++--- spec/support/user_sidebar_tags_mixin.rb | 6 +- 77 files changed, 254 insertions(+), 265 deletions(-) create mode 100644 app/models/navigation_menu_site_setting.rb create mode 100644 db/migrate/20221205225450_migrate_sidebar_site_settings.rb diff --git a/app/assets/javascripts/discourse/app/components/site-header.js b/app/assets/javascripts/discourse/app/components/site-header.js index d1609ca0eef..b8c146d9325 100644 --- a/app/assets/javascripts/discourse/app/components/site-header.js +++ b/app/assets/javascripts/discourse/app/components/site-header.js @@ -43,10 +43,8 @@ const SiteHeaderComponent = MountWidget.extend( @observes("site.narrowDesktopView") narrowDesktopViewChanged() { this.eventDispatched("dom:clean", "header"); - if ( - this.siteSettings.enable_experimental_sidebar_hamburger && - (!this.sidebarEnabled || this.site.narrowDesktopView) - ) { + + if (this._dropDownHeaderEnabled()) { this.appEvents.on( "sidebar-hamburger-dropdown:rendered", this, @@ -232,10 +230,7 @@ const SiteHeaderComponent = MountWidget.extend( this.appEvents.on("user-menu:rendered", this, "_animateMenu"); } - if ( - this.siteSettings.enable_experimental_sidebar_hamburger && - (!this.sidebarEnabled || this.site.narrowDesktopView) - ) { + if (this._dropDownHeaderEnabled()) { this.appEvents.on( "sidebar-hamburger-dropdown:rendered", this, @@ -324,10 +319,7 @@ const SiteHeaderComponent = MountWidget.extend( this.appEvents.off("user-menu:rendered", this, "_animateMenu"); } - if ( - this.siteSettings.enable_experimental_sidebar_hamburger && - !this.sidebarEnabled - ) { + if (this._dropDownHeaderEnabled()) { this.appEvents.off( "sidebar-hamburger-dropdown:rendered", this, @@ -469,6 +461,14 @@ const SiteHeaderComponent = MountWidget.extend( this._animate = false; }); }, + + _dropDownHeaderEnabled() { + return ( + (!this.sidebarEnabled && + this.siteSettings.navigation_menu !== "legacy") || + this.site.narrowDesktopView + ); + }, } ); diff --git a/app/assets/javascripts/discourse/app/components/user-nav/preferences-nav.hbs b/app/assets/javascripts/discourse/app/components/user-nav/preferences-nav.hbs index 45a007b6c3f..c097edb7b78 100644 --- a/app/assets/javascripts/discourse/app/components/user-nav/preferences-nav.hbs +++ b/app/assets/javascripts/discourse/app/components/user-nav/preferences-nav.hbs @@ -56,7 +56,7 @@ -{{#if @siteSettings.enable_experimental_sidebar_hamburger}} +{{#if (not (eq @siteSettings.navigation_menu "legacy"))}} - {{#if this.siteSettings.enable_experimental_sidebar_hamburger}} + {{#if (not (eq @siteSettings.navigation_menu "legacy"))}}