From 832b3b9e60352f5cf293ea8d85a0645a6657455e Mon Sep 17 00:00:00 2001 From: Alan Guo Xiang Tan Date: Mon, 9 Oct 2023 07:24:10 +0800 Subject: [PATCH] FEATURE: Remove support for legacy navigation menu (#23752) Why this change? Back in May 17 2023 along with the release of Discourse 3.1, we announced on meta that the legacy hamburger dropdown navigation menu is deprecated and will be dropped in Discourse 3.2. This is the link to the announcement on meta: https://meta.discourse.org/t/removing-the-legacy-hamburger-navigation-menu-option/265274 ## What does this change do? This change removes the `legacy` option from the `navigation_menu` site setting and migrates existing sites on the `legacy` option to the `header dropdown` option. All references to the `legacy` option in code and tests have been removed as well. --- .../discourse/app/components/site-header.js | 6 +- .../discourse/app/controllers/application.js | 5 +- .../discourse/app/lib/plugin-api.js | 62 +++++++++---------- .../discourse/app/templates/preferences.hbs | 18 +++--- .../discourse/app/widgets/header.js | 38 ++---------- .../discourse/config/deprecation-workflow.js | 4 ++ .../acceptance/enforce-second-factor-test.js | 26 +++++--- .../tests/acceptance/hamburger-menu-test.js | 41 ------------ .../tests/acceptance/sidebar-user-test.js | 18 ------ .../components/site-header-test.js | 10 --- .../reviewable_claimed_topics_controller.rb | 4 +- app/controllers/users_controller.rb | 22 +++---- app/models/admin_dashboard_data.rb | 9 +-- app/models/navigation_menu_site_setting.rb | 2 - app/models/site_setting.rb | 4 -- app/models/topic_tracking_state.rb | 12 ++-- app/models/user.rb | 1 - .../concerns/user_sidebar_mixin.rb | 25 +------- app/serializers/site_serializer.rb | 4 +- app/serializers/web_hook_user_serializer.rb | 3 + config/locales/server.ar.yml | 1 - config/locales/server.de.yml | 1 - config/locales/server.en.yml | 1 - config/locales/server.es.yml | 1 - config/locales/server.fi.yml | 1 - config/locales/server.fr.yml | 1 - config/locales/server.he.yml | 1 - config/locales/server.id.yml | 1 - config/locales/server.it.yml | 1 - config/locales/server.ja.yml | 1 - config/locales/server.nl.yml | 1 - config/locales/server.pl_PL.yml | 1 - config/locales/server.pt_BR.yml | 1 - config/locales/server.ru.yml | 1 - config/locales/server.sv.yml | 1 - config/locales/server.tr_TR.yml | 1 - config/locales/server.uk.yml | 1 - config/locales/server.zh_CN.yml | 1 - ...ate_legacy_navigation_menu_site_setting.rb | 11 ++++ .../system/list_channels/no_sidebar_spec.rb | 2 +- plugins/chat/spec/system/sidebars_spec.rb | 2 +- spec/models/admin_dashboard_data_spec.rb | 12 ---- spec/models/topic_tracking_state_spec.rb | 22 +------ spec/models/user_spec.rb | 8 --- .../api/schemas/json/user_get_response.json | 9 +++ spec/requests/api/users_spec.rb | 1 - .../requests/notifications_controller_spec.rb | 12 ---- .../current_user_serializer_spec.rb | 6 -- spec/serializers/site_serializer_spec.rb | 15 ----- ...pic_tracking_state_item_serializer_spec.rb | 9 +-- .../web_hook_user_serializer_spec.rb | 2 - .../user_sidebar_serializer_attributes.rb | 24 ------- .../components/legacy_header_dropdown.rb | 15 ----- spec/system/viewing_sidebar_spec.rb | 45 -------------- 54 files changed, 116 insertions(+), 411 deletions(-) delete mode 100644 app/assets/javascripts/discourse/tests/acceptance/hamburger-menu-test.js create mode 100644 db/migrate/20231004020328_migrate_legacy_navigation_menu_site_setting.rb delete mode 100644 spec/system/page_objects/components/legacy_header_dropdown.rb diff --git a/app/assets/javascripts/discourse/app/components/site-header.js b/app/assets/javascripts/discourse/app/components/site-header.js index 8490dec6394..4d8d3c0bd33 100644 --- a/app/assets/javascripts/discourse/app/components/site-header.js +++ b/app/assets/javascripts/discourse/app/components/site-header.js @@ -408,11 +408,7 @@ const SiteHeaderComponent = MountWidget.extend( }, _dropDownHeaderEnabled() { - return ( - (!this.sidebarEnabled && - this.siteSettings.navigation_menu !== "legacy") || - this.site.narrowDesktopView - ); + return !this.sidebarEnabled || this.site.narrowDesktopView; }, } ); diff --git a/app/assets/javascripts/discourse/app/controllers/application.js b/app/assets/javascripts/discourse/app/controllers/application.js index 5df4c9cb548..e0ea6bfa27b 100644 --- a/app/assets/javascripts/discourse/app/controllers/application.js +++ b/app/assets/javascripts/discourse/app/controllers/application.js @@ -87,10 +87,7 @@ export default Controller.extend({ return true; } - if ( - navigationMenuQueryParamOverride === "legacy" || - navigationMenuQueryParamOverride === "header_dropdown" - ) { + if (navigationMenuQueryParamOverride === "header_dropdown") { return false; } diff --git a/app/assets/javascripts/discourse/app/lib/plugin-api.js b/app/assets/javascripts/discourse/app/lib/plugin-api.js index 0dd28cf8762..c3db4806157 100644 --- a/app/assets/javascripts/discourse/app/lib/plugin-api.js +++ b/app/assets/javascripts/discourse/app/lib/plugin-api.js @@ -522,45 +522,45 @@ class PluginApi { decorateWidget(name, fn); } + /** + * This is a bridge to support the legacy hamburger widget links that are added by decorating the widgets. This can + * be removed once the legacy hamburger widget no longer exists. + */ _deprecateDecoratingHamburgerWidgetLinks(name, fn) { if ( name === "hamburger-menu:generalLinks" || name === "hamburger-menu:footerLinks" ) { - const siteSettings = this.container.lookup("service:site-settings"); - - if (siteSettings.navigation_menu !== "legacy") { - try { - const { href, route, label, rawLabel, className } = fn(); - const textContent = rawLabel || I18n.t(label); - - const args = { - name: className || textContent.replace(/\s+/g, "-").toLowerCase(), - title: textContent, - text: textContent, - }; - - if (href) { - if (DiscourseURL.isInternal(href)) { - args.href = href; - } else { - // Skip external links support for now - return; - } - } else { - args.route = route; - } - - this.addCommunitySectionLink(args, name.match(/footerLinks/)); - } catch { - deprecated( - `Usage of \`api.decorateWidget('hamburger-menu:generalLinks')\` is incompatible with the \`navigation_menu\` site setting when not set to "legacy". Please use \`api.addCommunitySectionLink\` instead.`, - { id: "discourse.decorate-widget.hamburger-widget-links" } - ); + deprecated( + `Usage of \`api.decorateWidget('${name}')\` is deprecated, please use \`api.addCommunitySectionLink\` instead.`, + { + id: "discourse.decorate-widget.hamburger-widget-links", + since: "3.2", + dropFrom: "3.3", } + ); - return; + const { href, route, label, rawLabel, className } = fn(); + const textContent = rawLabel || I18n.t(label); + + const args = { + name: className || textContent.replace(/\s+/g, "-").toLowerCase(), + title: textContent, + text: textContent, + }; + + if (href) { + if (DiscourseURL.isInternal(href)) { + args.href = href; + } else { + // Skip external links support for now + return; + } + } else { + args.route = route; } + + this.addCommunitySectionLink(args, name.match(/footerLinks/)); } } diff --git a/app/assets/javascripts/discourse/app/templates/preferences.hbs b/app/assets/javascripts/discourse/app/templates/preferences.hbs index 6309d5ae0a9..121210f1d2c 100644 --- a/app/assets/javascripts/discourse/app/templates/preferences.hbs +++ b/app/assets/javascripts/discourse/app/templates/preferences.hbs @@ -76,16 +76,14 @@ {{i18n "user.preferences_nav.interface"}} - {{#if (not-eq this.siteSettings.navigation_menu "legacy")}} - - {{d-icon "bars"}} - {{i18n "user.preferences_nav.navigation_menu"}} - - {{/if}} + + {{d-icon "bars"}} + {{i18n "user.preferences_nav.navigation_menu"}} + { - if (this.siteSettings.navigation_menu !== "legacy") { - // Remove focus from hamburger toggle button - document.querySelector("#toggle-hamburger-menu")?.blur(); - } else { - // auto focus on first link in dropdown - document.querySelector(".hamburger-panel .menu-links a")?.focus(); - } + // Remove focus from hamburger toggle button + document.querySelector("#toggle-hamburger-menu")?.blur(); }); } }, diff --git a/app/assets/javascripts/discourse/config/deprecation-workflow.js b/app/assets/javascripts/discourse/config/deprecation-workflow.js index 853946bd7e2..d56b9f017ec 100644 --- a/app/assets/javascripts/discourse/config/deprecation-workflow.js +++ b/app/assets/javascripts/discourse/config/deprecation-workflow.js @@ -11,5 +11,9 @@ globalThis.deprecationWorkflow.config = { }, { handler: "silence", matchId: "discourse.select-kit" }, { handler: "silence", matchId: "discourse.d-section" }, + { + handler: "silence", + matchId: "discourse.decorate-widget.hamburger-widget-links", + }, ], }; diff --git a/app/assets/javascripts/discourse/tests/acceptance/enforce-second-factor-test.js b/app/assets/javascripts/discourse/tests/acceptance/enforce-second-factor-test.js index 95aeecf176c..c672aa1109f 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/enforce-second-factor-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/enforce-second-factor-test.js @@ -25,9 +25,6 @@ acceptance("Enforce Second Factor", function (needs) { }); }); }); - needs.settings({ - navigation_menu: "legacy", - }); test("as an admin", async function (assert) { await visit("/u/eviltrout/preferences/second-factor"); @@ -41,8 +38,9 @@ acceptance("Enforce Second Factor", function (needs) { "it will not transition from second-factor preferences" ); - await click("#toggle-hamburger-menu"); - await click("a.admin-link"); + await click( + ".sidebar-section[data-section-name='community'] .sidebar-section-link[data-link-name='admin']" + ); assert.strictEqual( currentRouteName(), @@ -65,8 +63,13 @@ acceptance("Enforce Second Factor", function (needs) { "it will not transition from second-factor preferences" ); - await click("#toggle-hamburger-menu"); - await click("a.about-link"); + await click( + ".sidebar-section[data-section-name='community'] .sidebar-more-section-links-details-summary" + ); + + await click( + ".sidebar-section[data-section-name='community'] .sidebar-section-link[data-link-name='about']" + ); assert.strictEqual( currentRouteName(), @@ -90,8 +93,13 @@ acceptance("Enforce Second Factor", function (needs) { "it will transition from second-factor preferences" ); - await click("#toggle-hamburger-menu"); - await click("a.about-link"); + await click( + ".sidebar-section[data-section-name='community'] .sidebar-more-section-links-details-summary" + ); + + await click( + ".sidebar-section[data-section-name='community'] .sidebar-section-link[data-link-name='about']" + ); assert.strictEqual( currentRouteName(), diff --git a/app/assets/javascripts/discourse/tests/acceptance/hamburger-menu-test.js b/app/assets/javascripts/discourse/tests/acceptance/hamburger-menu-test.js deleted file mode 100644 index d6ff32033e6..00000000000 --- a/app/assets/javascripts/discourse/tests/acceptance/hamburger-menu-test.js +++ /dev/null @@ -1,41 +0,0 @@ -import { - acceptance, - exists, - query, - updateCurrentUser, -} from "discourse/tests/helpers/qunit-helpers"; -import { click, triggerKeyEvent, visit } from "@ember/test-helpers"; -import { test } from "qunit"; - -acceptance( - "Opening the hamburger menu with some reviewables", - function (needs) { - needs.user(); - needs.settings({ - navigation_menu: "legacy", - }); - test("As a staff member", async function (assert) { - updateCurrentUser({ moderator: true, admin: false, reviewable_count: 3 }); - - await visit("/"); - await click(".hamburger-dropdown"); - - assert.strictEqual( - query(".review .badge-notification.reviewables").innerText, - "3" - ); - }); - } -); - -acceptance("Hamburger Menu accessibility", function (needs) { - needs.settings({ - navigation_menu: "legacy", - }); - test("Escape key closes hamburger menu", async function (assert) { - await visit("/"); - await click("#toggle-hamburger-menu"); - await triggerKeyEvent(".hamburger-panel", "keydown", "Escape"); - assert.ok(!exists(".hamburger-panel"), "Esc closes the hamburger panel"); - }); -}); diff --git a/app/assets/javascripts/discourse/tests/acceptance/sidebar-user-test.js b/app/assets/javascripts/discourse/tests/acceptance/sidebar-user-test.js index 2bb6c7858ff..bf50a98ee2e 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/sidebar-user-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/sidebar-user-test.js @@ -9,24 +9,6 @@ import { } from "discourse/tests/helpers/qunit-helpers"; import Sinon from "sinon"; -acceptance( - "Sidebar - Logged on user - Legacy navigation menu enabled", - function (needs) { - needs.user(); - - needs.settings({ - navigation_menu: "legacy", - }); - - test("clicking header hamburger icon displays old hamburger dropdown", async function (assert) { - await visit("/"); - await click(".hamburger-dropdown"); - - assert.ok(exists(".menu-container-general-links")); - }); - } -); - acceptance( "Sidebar - Logged on user - Mobile view - Header dropdown navigation menu enabled", function (needs) { diff --git a/app/assets/javascripts/discourse/tests/integration/components/site-header-test.js b/app/assets/javascripts/discourse/tests/integration/components/site-header-test.js index 4dc3e8203fd..54cc3c07d18 100644 --- a/app/assets/javascripts/discourse/tests/integration/components/site-header-test.js +++ b/app/assets/javascripts/discourse/tests/integration/components/site-header-test.js @@ -37,16 +37,6 @@ module("Integration | Component | site-header", function (hooks) { assert.strictEqual(unreadBadge.textContent, "5"); }); - test("hamburger menu icon shows pending reviewables count", async function (assert) { - this.siteSettings.navigation_menu = "legacy"; - this.currentUser.set("reviewable_count", 1); - await render(hbs``); - let pendingReviewablesBadge = query( - ".hamburger-dropdown .badge-notification" - ); - assert.strictEqual(pendingReviewablesBadge.textContent, "1"); - }); - test("hamburger menu icon doesn't show pending reviewables count for non-legacy navigation menu", async function (assert) { this.currentUser.set("reviewable_count", 1); this.siteSettings.navigation_menu = "sidebar"; diff --git a/app/controllers/reviewable_claimed_topics_controller.rb b/app/controllers/reviewable_claimed_topics_controller.rb index 8d5cc4a25dd..bce77f3be65 100644 --- a/app/controllers/reviewable_claimed_topics_controller.rb +++ b/app/controllers/reviewable_claimed_topics_controller.rb @@ -49,8 +49,6 @@ class ReviewableClaimedTopicsController < ApplicationController MessageBus.publish("/reviewable_claimed", data, group_ids: group_ids.to_a) - if !SiteSetting.legacy_navigation_menu? - Jobs.enqueue(:refresh_users_reviewable_counts, group_ids: group_ids.to_a) - end + Jobs.enqueue(:refresh_users_reviewable_counts, group_ids: group_ids.to_a) end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 9d0789121e3..0b1f1e62b50 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2013,20 +2013,18 @@ class UsersController < ApplicationController permitted.concat UserUpdater::TAG_NAMES.keys permitted << UserUpdater::NOTIFICATION_SCHEDULE_ATTRS - if !SiteSetting.legacy_navigation_menu? - if params.has_key?(:sidebar_category_ids) && params[:sidebar_category_ids].blank? - params[:sidebar_category_ids] = [] + if params.has_key?(:sidebar_category_ids) && params[:sidebar_category_ids].blank? + params[:sidebar_category_ids] = [] + end + + permitted << { sidebar_category_ids: [] } + + if SiteSetting.tagging_enabled + if params.has_key?(:sidebar_tag_names) && params[:sidebar_tag_names].blank? + params[:sidebar_tag_names] = [] end - permitted << { sidebar_category_ids: [] } - - if SiteSetting.tagging_enabled - if params.has_key?(:sidebar_tag_names) && params[:sidebar_tag_names].blank? - params[:sidebar_tag_names] = [] - end - - permitted << { sidebar_tag_names: [] } - end + permitted << { sidebar_tag_names: [] } end if SiteSetting.enable_user_status diff --git a/app/models/admin_dashboard_data.rb b/app/models/admin_dashboard_data.rb index 1e3c3c75356..a57b4d7c1b4 100644 --- a/app/models/admin_dashboard_data.rb +++ b/app/models/admin_dashboard_data.rb @@ -207,8 +207,7 @@ class AdminDashboardData :unreachable_themes, :watched_words_check, :google_analytics_version_check, - :translation_overrides_check, - :legacy_navigation_menu_check + :translation_overrides_check register_default_scheduled_problem_checks @@ -368,12 +367,6 @@ class AdminDashboardData end end - def legacy_navigation_menu_check - if SiteSetting.navigation_menu == "legacy" - I18n.t("dashboard.legacy_navigation_menu_deprecated", base_path: Discourse.base_path) - end - end - def image_magick_check if SiteSetting.create_thumbnails && !system("command -v convert >/dev/null;") I18n.t("dashboard.image_magick_warning") diff --git a/app/models/navigation_menu_site_setting.rb b/app/models/navigation_menu_site_setting.rb index bc7b38540de..45f71631085 100644 --- a/app/models/navigation_menu_site_setting.rb +++ b/app/models/navigation_menu_site_setting.rb @@ -3,7 +3,6 @@ class NavigationMenuSiteSetting < EnumSiteSetting SIDEBAR = "sidebar" HEADER_DROPDOWN = "header dropdown" - LEGACY = "legacy" def self.valid_value?(val) values.any? { |v| v[:value] == val } @@ -13,7 +12,6 @@ class NavigationMenuSiteSetting < EnumSiteSetting @values ||= [ { name: "admin.navigation_menu.sidebar", value: SIDEBAR }, { name: "admin.navigation_menu.header_dropdown", value: HEADER_DROPDOWN }, - { name: "admin.navigation_menu.legacy", value: LEGACY }, ] end diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb index b6f0636f3e9..fc751d6d0ea 100644 --- a/app/models/site_setting.rb +++ b/app/models/site_setting.rb @@ -257,10 +257,6 @@ class SiteSetting < ActiveRecord::Base c.present? && c.to_i != SiteSetting.uncategorized_category_id.to_i end - def self.legacy_navigation_menu? - SiteSetting.navigation_menu == "legacy" - end - protected def self.clear_cache! diff --git a/app/models/topic_tracking_state.rb b/app/models/topic_tracking_state.rb index b2ef7441428..bde60d24ccf 100644 --- a/app/models/topic_tracking_state.rb +++ b/app/models/topic_tracking_state.rb @@ -43,7 +43,7 @@ class TopicTrackingState return unless topic.regular? tag_ids, tags = nil - tag_ids, tags = topic.tags.pluck(:id, :name).transpose if SiteSetting.tagging_enabled + tag_ids, tags = topic.tags.pluck(:id, :name).transpose if include_tags_in_report? payload = { last_read_post_number: nil, @@ -71,7 +71,7 @@ class TopicTrackingState return unless topic.regular? tag_ids, tags = nil - tag_ids, tags = topic.tags.pluck(:id, :name).transpose if SiteSetting.tagging_enabled + tag_ids, tags = topic.tags.pluck(:id, :name).transpose if include_tags_in_report? message = { topic_id: topic.id, @@ -276,11 +276,7 @@ class TopicTrackingState end def self.include_tags_in_report? - SiteSetting.tagging_enabled && (@include_tags_in_report || !SiteSetting.legacy_navigation_menu?) - end - - def self.include_tags_in_report=(v) - @include_tags_in_report = v + SiteSetting.tagging_enabled end # Sam: this is a hairy report, in particular I need custom joins and fancy conditions @@ -340,7 +336,7 @@ class TopicTrackingState end def self.tags_included_wrapped_sql(sql) - return <<~SQL if SiteSetting.tagging_enabled && TopicTrackingState.include_tags_in_report? + return <<~SQL if include_tags_in_report? WITH tags_included_cte AS ( #{sql} ) diff --git a/app/models/user.rb b/app/models/user.rb index c6d49bfddcd..0963b485c8a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -2048,7 +2048,6 @@ class User < ActiveRecord::Base private def set_default_sidebar_section_links(update: false) - return if SiteSetting.legacy_navigation_menu? return if staged? || bot? if SiteSetting.default_navigation_menu_categories.present? diff --git a/app/serializers/concerns/user_sidebar_mixin.rb b/app/serializers/concerns/user_sidebar_mixin.rb index 549ca54c695..263be614691 100644 --- a/app/serializers/concerns/user_sidebar_mixin.rb +++ b/app/serializers/concerns/user_sidebar_mixin.rb @@ -16,33 +16,10 @@ module UserSidebarMixin end def include_sidebar_tags? - SiteSetting.tagging_enabled && sidebar_navigation_menu? + SiteSetting.tagging_enabled end def sidebar_category_ids object.secured_sidebar_category_ids(scope) end - - def include_sidebar_category_ids? - sidebar_navigation_menu? - end - - def sidebar_sections - object - .sidebar_sections - .order(created_at: :asc) - .includes(sidebar_section_links: :linkable) - .map { |section| SidebarSectionSerializer.new(section, root: false) } - end - - def include_sidebar_sections? - sidebar_navigation_menu? - end - - private - - def sidebar_navigation_menu? - !SiteSetting.legacy_navigation_menu? || - %w[sidebar header_dropdown].include?(options[:navigation_menu_param]) - end end diff --git a/app/serializers/site_serializer.rb b/app/serializers/site_serializer.rb index ee8b027ebc9..06fe0478d03 100644 --- a/app/serializers/site_serializer.rb +++ b/app/serializers/site_serializer.rb @@ -268,7 +268,7 @@ class SiteSerializer < ApplicationSerializer end def include_navigation_menu_site_top_tags? - !SiteSetting.legacy_navigation_menu? && SiteSetting.tagging_enabled + SiteSetting.tagging_enabled end def anonymous_default_navigation_menu_tags @@ -283,7 +283,7 @@ class SiteSerializer < ApplicationSerializer end def include_anonymous_default_navigation_menu_tags? - scope.anonymous? && !SiteSetting.legacy_navigation_menu? && SiteSetting.tagging_enabled && + scope.anonymous? && SiteSetting.tagging_enabled && SiteSetting.default_navigation_menu_tags.present? && anonymous_default_navigation_menu_tags.present? end diff --git a/app/serializers/web_hook_user_serializer.rb b/app/serializers/web_hook_user_serializer.rb index 5de175413ef..5459d86f0a6 100644 --- a/app/serializers/web_hook_user_serializer.rb +++ b/app/serializers/web_hook_user_serializer.rb @@ -38,6 +38,9 @@ class WebHookUserSerializer < UserSerializer use_logo_small_as_avatar pending_posts_count status + display_sidebar_tags + sidebar_category_ids + sidebar_tags ].each { |attr| define_method("include_#{attr}?") { false } } def include_email? diff --git a/config/locales/server.ar.yml b/config/locales/server.ar.yml index a75a584b932..07f825cedb9 100644 --- a/config/locales/server.ar.yml +++ b/config/locales/server.ar.yml @@ -1626,7 +1626,6 @@ ar: unreachable_themes: "لم نتمكن من التحقُّق من وجود تحديثات للسمات التالية:" watched_word_regexp_error: "التعبير العادي للكلمات المُراقَبة للإجراء \"%{action}\" غير صالح. يُرجى التحقُّق من إعدادات الكلمات المُراقَبة، أو إيقاف إعداد الموقع `watched words regular expressions`." v3_analytics_deprecated: "يستخدم Discourse لديك حاليًا Google Analytics 3، والذي سيتوقف دعمه بعد يوليو 2023. قم بالترقية إلى Google Analytics 4 الآن للاستمرار في تلقي رؤى وتحليلات قيمة لأداء موقعك الإلكتروني." - legacy_navigation_menu_deprecated: "يستخدم Discourse لديك حاليًا قائمة التنقل \"القديمة\"، والتي ستتم إزالتها في الإصدار التجريبي الأول من Discourse 3.2. انتقل إلى قائمة التنقل الجديدة عن طريق تحديث إعداد موقع قائمة التنقل إلى \"الشريط الجانبي\" أو \"القائمة المنسدلة للرأس\"." site_settings: allow_bulk_invite: "السماح بالدعوات الجماعية عن طريق تحميل ملف CSV" disabled: "متوقف" diff --git a/config/locales/server.de.yml b/config/locales/server.de.yml index 10c652b229d..b25b771e1cd 100644 --- a/config/locales/server.de.yml +++ b/config/locales/server.de.yml @@ -1415,7 +1415,6 @@ de: unreachable_themes: "Wir konnten die folgenden Themes nicht auf Updates prüfen:" watched_word_regexp_error: "Der reguläre Ausdruck für „%{action}“ überwachte Wörter ist ungültig. Bitte überprüfe deine Einstellungen für überwachte Wörter oder deaktiviere die Website-Einstellung „watched words regular expressions“." v3_analytics_deprecated: "Dein Discourse verwendet derzeit Google Analytics 3, das ab Juli 2023 nicht mehr unterstützt wird. Aktualisiere jetzt auf Google Analytics 4, um weiterhin wertvolle Einblicke und Analysen zur Leistung deiner Website zu erhalten." - legacy_navigation_menu_deprecated: "Dein Discourse verwendet derzeit das „alte“ Navigationsmenü, das in der ersten Betaversion von Discourse 3.2 entfernt wird. Stelle auf das neue Navigationsmenü um, indem du deine Navigationsmenü-Website-Einstellung auf „Seitenleiste“ oder „Kopfzeilen-Drop-down“ aktualisierst." site_settings: allow_bulk_invite: "Erlaube Masseneinladungen durch Hochladen einer CSV-Datei" disabled: "deaktiviert" diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 6823a6b8918..7e234103ed7 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -1502,7 +1502,6 @@ en: unreachable_themes: "We were unable to check for updates on the following themes:" watched_word_regexp_error: "The regular expression for '%{action}' watched words is invalid. Please check your Watched Word settings, or disable the 'watched words regular expressions' site setting." v3_analytics_deprecated: "Your Discourse is currently using Google Analytics 3, which will no longer be supported after July 2023. Upgrade to Google Analytics 4 now to continue receiving valuable insights and analytics for your website's performance." - legacy_navigation_menu_deprecated: "Your Discourse is currently using the 'legacy' navigation menu which will be removed in the first beta release of Discourse 3.2. Migrate to the new navigation menu by updating your navigation menu site setting to 'sidebar' or 'header dropdown'." site_settings: allow_bulk_invite: "Allow bulk invites by uploading a CSV file" diff --git a/config/locales/server.es.yml b/config/locales/server.es.yml index 6960dfbad56..741dafa180a 100644 --- a/config/locales/server.es.yml +++ b/config/locales/server.es.yml @@ -1387,7 +1387,6 @@ es: unreachable_themes: "No pudimos verificar actualizaciones de los siguientes temas:" watched_word_regexp_error: "Expresión regular no válida para las palabras vigiladas con acción de «%{action}». Por favor, revisa los ajustes sobre palabras vigiladas o desactiva el ajuste «watched words regular expressions»." v3_analytics_deprecated: "Tu Discourse utiliza actualmente Google Analytics 3, que dejará de ser compatible después de julio de 2023. Actualízate a Google Analytics 4 ahora para seguir recibiendo información y análisis valiosos sobre el rendimiento de tu sitio web." - legacy_navigation_menu_deprecated: "Tu Discourse utiliza actualmente el menú de navegación «heredado» que se eliminará en la primera versión beta de Discourse 3.2. Migra al nuevo menú de navegación actualizando tu configuración del menú de navegación del sitio a «barra lateral» o «encabezado desplegable»." site_settings: allow_bulk_invite: "Permitir invitaciones en masa subiendo un archivo CSV" disabled: "desactivado" diff --git a/config/locales/server.fi.yml b/config/locales/server.fi.yml index bc3a2e0cce9..cd0bce70024 100644 --- a/config/locales/server.fi.yml +++ b/config/locales/server.fi.yml @@ -1406,7 +1406,6 @@ fi: unreachable_themes: "Näille teemoille ei voitu tarkistaa päivityksiä:" watched_word_regexp_error: "Säännöllinen lauseke %{action}-tyypin tarkkailuille sanoille ei kelpaa. Tarkista tarkkailtujen sanojen asetukset tai poista käytöstä \"watched words regular expressions\" -sivustoasetus." v3_analytics_deprecated: "Discoursesi käyttää tällä hetkellä Google Analytics 3:a, jota ei enää tueta heinäkuun 2023 jälkeen. Päivitä Google Analytics 4:ään nyt, jotta saat jatkossakin arvokkaita tietoja ja analytiikkaa verkkosivustosi suoriutumisesta." - legacy_navigation_menu_deprecated: "Discoursesi käyttää tällä hetkellä vanhaa navigointivalikkoa, joka poistetaan Discourse 3.2:n ensimmäisessä beetaversiossa. Siirry uuteen navigointivalikkoon päivittämällä navigation menu -sivustoasetukseksi \"sidebar\" tai \"header dropdown\"." site_settings: allow_bulk_invite: "Salli joukkokutsut lataamalla CSV-tiedosto" disabled: "poistettu käytöstä" diff --git a/config/locales/server.fr.yml b/config/locales/server.fr.yml index d214d77619e..0d909afad0e 100644 --- a/config/locales/server.fr.yml +++ b/config/locales/server.fr.yml @@ -1401,7 +1401,6 @@ fr: unreachable_themes: "Nous n'avons pas pu vérifier les mises à jour pour les thèmes suivants :" watched_word_regexp_error: "L'expression régulière pour détecter des mots suivis et déclencher l'action « %{action} » n'est pas valide. Veuillez vérifier la configuration des mots surveillés ou désactiver le paramètre « watched words regular expressions »." v3_analytics_deprecated: "Votre Discourse utilise actuellement Google Analytics 3, qui ne sera plus pris en charge après le mois de juillet 2023. Passez à Google Analytics 4 dès maintenant pour continuer à recevoir des informations et des analyses précieuses sur les performances de votre site Web." - legacy_navigation_menu_deprecated: "Votre Discourse utilise actuellement le menu de navigation hérité qui sera supprimé dans la première version bêta de Discourse 3.2. Migrez vers le nouveau menu de navigation en mettant à jour le paramètre du menu de navigation sur « barre latérale » ou « menu déroulant d'en-tête »." site_settings: allow_bulk_invite: "Autoriser l'envoi d'invitations multiples via l'importation d'un fichier CSV" disabled: "désactivé" diff --git a/config/locales/server.he.yml b/config/locales/server.he.yml index 92c6825e53b..6e499e75f4a 100644 --- a/config/locales/server.he.yml +++ b/config/locales/server.he.yml @@ -1521,7 +1521,6 @@ he: unreachable_themes: "לא הצלחתי לבדוק אם יש עדכונים לערכות העיצוב הבאות:" watched_word_regexp_error: "הביטוי הרגולרי למילים במעקב ‚%{action}’ שגוי. נא לבדוק את הגדרות המילים במעקב או ךהשבית את הגדרת האתר ‚ביטוי רגולרי למילים במעקב’." v3_analytics_deprecated: "ה־Discourse שלך משתמש כרגע ב־Google Analytics 3, שהתמיכה בו תיפסק אחרי יולי 2023. כדאי לשדרג ל־Google Analytics 4 כעת כדי להמשיך לקבל תובנות מועילות בנוגע לביצועי האתר שלך." - legacy_navigation_menu_deprecated: "ה־Discourse שלך משתמש עדיין בתפריט הניווט ה‚מיושן’ שיוסר במהדורת הבטא הראשונה של Discourse 3.2. כדי לעבור לתפריט הניווט החדש על ידי עדכון הגדרת תפריט הניווט באתר שלך ל־‚sidebar’ (סרגל צד) או ל־‚header dropdown’ (תפריט נגלל משורת הכותרת)." site_settings: allow_bulk_invite: "לאפשר הזמנות במרוכז על ידי העלאת קובץ CSV" disabled: "מושבת" diff --git a/config/locales/server.id.yml b/config/locales/server.id.yml index 22f7959b20b..dd9b09952bc 100644 --- a/config/locales/server.id.yml +++ b/config/locales/server.id.yml @@ -1186,7 +1186,6 @@ id: other: "Email polling telah menghasilkan %{count} kesalahan dalam 24 jam terakhir. Lihatlah log untuk lebih jelasnya." missing_mailgun_api_key: "Server dikonfigurasi untuk mengirim email melalui Mailgun tetapi Anda belum memberikan kunci API yang digunakan untuk memverifikasi pesan webhook." v3_analytics_deprecated: "Wacana Anda saat ini menggunakan Google Analytics 3, yang tidak akan didukung lagi setelah Juli 2023.0 ke Google Analytics 4 sekarang untuk terus menerima wawasan dan analitik berharga untuk kinerja situs web Anda." - legacy_navigation_menu_deprecated: "Discourse Anda saat ini menggunakan menu navigasi 'lama' yang akan dihapus pada rilis beta pertama Discourse 3.2. Migrasi ke menu navigasi yang baru dengan memperbarui pengaturan situs menu navigasi ke 'sidebar' atau 'header dropdown'." site_settings: disabled: "dinonaktifkan" allow_user_locale: "Perbolehkan pengguna untuk memilih bahasa sendiri" diff --git a/config/locales/server.it.yml b/config/locales/server.it.yml index 72057c67616..34a01dfc3b7 100644 --- a/config/locales/server.it.yml +++ b/config/locales/server.it.yml @@ -1408,7 +1408,6 @@ it: unreachable_themes: "Non è stato possibile verificare la presenza di aggiornamenti per i seguenti temi:" watched_word_regexp_error: "L'espressione regolare per le parole osservate %{action} non è valida. Per favore verifica le tue Impostazioni sulle Parole Osservate, o disabilita l'impostazione del sito 'watched words regular expressions'." v3_analytics_deprecated: "Il tuo Discourse utilizza attualmente Google Analytics 3, che non sarà più supportato dopo luglio 2023. Passa a Google Analytics 4 ora per continuare a ricevere preziose informazioni e analisi per le prestazioni del tuo sito web." - legacy_navigation_menu_deprecated: "Il tuo Discourse sta attualmente utilizzando il menu di navigazione \"legacy\" che verrà rimosso nella prima versione beta di Discourse 3.2. Passa al nuovo menu di navigazione aggiornando la tua impostazione del sito del menu di navigazione su \"barra laterale\" o \"elenco a discesa dell'intestazione\"." site_settings: allow_bulk_invite: "Consenti inviti di massa caricando un file CSV" disabled: "disabilitato" diff --git a/config/locales/server.ja.yml b/config/locales/server.ja.yml index 70b956b1aff..e39ba90dcc1 100644 --- a/config/locales/server.ja.yml +++ b/config/locales/server.ja.yml @@ -1334,7 +1334,6 @@ ja: unreachable_themes: "次のテーマの更新を確認できませんでした:" watched_word_regexp_error: "'%{action}' のウォッチ語の正規表現は無効です。ウォッチ語の設定を確認するか、'ウォッチ語の正規表現' サイト設定を無効にしてください。" v3_analytics_deprecated: "あなたの Discourse は現在 Google Analytics 3 を使用していますが、2023 年 7 月以降はサポートされなくなります。今すぐ Google Analytics 4 にアップグレードして、ウェブサイトのパフォーマンスに関する貴重なインサイトと分析を引き続き受け取りましょう。" - legacy_navigation_menu_deprecated: "Discourse は現在「レガシー」ナビゲーションメニューを使用していますが、Discourse 3.2 の最初のベータリリースで削除されますナビゲーションメニューのサイトの設定を「サイドバー」または「ヘッダードロップダウン」に更新して、新しいナビゲーションメニューに移行してください。" site_settings: allow_bulk_invite: "CSV ファイルのアップロードによる一括招待を許可する" disabled: "無効" diff --git a/config/locales/server.nl.yml b/config/locales/server.nl.yml index 8d9d1a5ea8d..a738899af70 100644 --- a/config/locales/server.nl.yml +++ b/config/locales/server.nl.yml @@ -1401,7 +1401,6 @@ nl: unreachable_themes: "We konden niet op updates controleren voor de volgende thema's:" watched_word_regexp_error: "De reguliere expressie voor '%{action}' geobserveerde woorden is ongeldig. Controleer je instellingen voor geobserveerde woorden of schakel de website-instelling 'reguliere expressies voor geobserveerde woorden' uit." v3_analytics_deprecated: "Je Discourse gebruikt momenteel Google Analytics 3, dat na juli 2023 niet meer wordt ondersteund. Upgrade nu naar Google Analytics 4 om waardevolle inzichten en analyses te blijven ontvangen voor de prestaties van je website." - legacy_navigation_menu_deprecated: "Je Discourse gebruikt momenteel het 'verouderde' navigatiemenu dat wordt verwijderd in de eerste bètaversie van Discourse 3.2. Migreer naar het nieuwe navigatiemenu door de site-instelling van je navigatiemenu bij te werken naar 'Zijbalk' of 'Vervolgkeuzelijst kop'." site_settings: allow_bulk_invite: "Bulkuitnodigingen toestaan door een CSV-bestand te uploaden" disabled: "uitgeschakeld" diff --git a/config/locales/server.pl_PL.yml b/config/locales/server.pl_PL.yml index 92f8937af68..a12c9f0a269 100644 --- a/config/locales/server.pl_PL.yml +++ b/config/locales/server.pl_PL.yml @@ -1517,7 +1517,6 @@ pl_PL: unreachable_themes: "Nie byliśmy w stanie sprawdzić aktualizacji następujących tematów:" watched_word_regexp_error: "Wyrażenie regularne dla '%{action}' jest nieprawidłowe. Sprawdź ustawienia obserwowanych słów lub wyłącz ustawienie witryny „obserwowane słowa regularne”." v3_analytics_deprecated: "Twój Discourse używa obecnie Google Analytics 3, które nie będzie już wspierane po lipcu 2023 roku. Uaktualnij do Google Analytics 4 teraz, aby nadal otrzymywać cenne informacje i analizy dotyczące wydajności twojej strony." - legacy_navigation_menu_deprecated: "Twój Discourse używa obecnie \"starszego\" menu nawigacyjnego, które zostanie usunięte w pierwszej wersji beta Discourse 3.2. Przeprowadź migrację do nowego menu nawigacyjnego, aktualizując ustawienia witryny menu nawigacyjnego do 'sidebar' lub 'header dropdown'." site_settings: allow_bulk_invite: "Zezwalaj na zaproszenia zbiorcze, przesyłając plik CSV" disabled: "wyłączone" diff --git a/config/locales/server.pt_BR.yml b/config/locales/server.pt_BR.yml index b925b676ef9..0024727b6d7 100644 --- a/config/locales/server.pt_BR.yml +++ b/config/locales/server.pt_BR.yml @@ -1401,7 +1401,6 @@ pt_BR: unreachable_themes: "Não foi possível verificar se há atualizações para os seguintes temas:" watched_word_regexp_error: "A expressão regular para \"%{action}\" palavras acompanhadas é inválida. Verifique as configurações de palavras acompanhadas ou desative as \"configurações do site para expressões regulares\"." v3_analytics_deprecated: "Atualmente, seu Discourse está usando o Google Analytics 3, que não será mais compatível depois de julho de 2023. Atualize para o Google Analytics 4 agora para continuar recebendo informações e análises valiosas para o desempenho do seu site." - legacy_navigation_menu_deprecated: "Atualmente, seu Discourse está usando o menu de navegação herdado, que será removido no lançamento da primeira versão beta do Discourse 3.2. Migre para o novo menu de navegação ao atualizar as configurações do site do menu de navegação para \"barra lateral\" ou \"menu de cascada do cabeçalho\"." site_settings: allow_bulk_invite: "Permitir convites em massa com o uso de um arquivo CSV" disabled: "desativado(a)" diff --git a/config/locales/server.ru.yml b/config/locales/server.ru.yml index 11200730e45..143037af146 100644 --- a/config/locales/server.ru.yml +++ b/config/locales/server.ru.yml @@ -1493,7 +1493,6 @@ ru: unreachable_themes: "Не удается проверить наличие обновлений для следующих тем:" watched_word_regexp_error: "Недопустимое регулярное выражение для контролируемых слов типа «%{action}». Проверьте параметры контролируемых слов или отключите в настройках сайта пункт «Контролируемые слова представлены регулярными выражениями»." v3_analytics_deprecated: "Ваша версия Discourse использует Google Аналитику 3, поддержка которой прекратится после июля 2023 года. Обновитесь до Google Аналитики 4 — так вы сможете и в дальнейшем получать ценную информацию и статистику о работе веб-сайта." - legacy_navigation_menu_deprecated: "Ваша версия Discourse использует настройку меню навигации «Старая версия», которая будет удалено в первой бета-версии Discourse 3.2. Перейдите на новое меню навигации — измените настройку сайта для меню навигации на «Боковую панель» или «Выпадающий список заголовка»." site_settings: allow_bulk_invite: "Разрешить массовые приглашения путём загрузки CSV-файла" disabled: "отключено" diff --git a/config/locales/server.sv.yml b/config/locales/server.sv.yml index 4faf446cdd2..ee6c00c4871 100644 --- a/config/locales/server.sv.yml +++ b/config/locales/server.sv.yml @@ -1401,7 +1401,6 @@ sv: unreachable_themes: "Vi kunde inte kontrollera uppdateringar för följande teman:" watched_word_regexp_error: "Det reguljära uttrycket för '%{action}'-bevakade ord är ogiltigt. Kontrollera dina inställningar för bevakade ord eller inaktivera webbplatsinställningen 'Reguljära uttryck för bevakade ord'." v3_analytics_deprecated: "Din Discourse använder för närvarande Google Analytics 3, som inte längre kommer att stödjas efter juli 2023. Uppgradera till Google Analytics 4 nu för att fortsätta att få värdefulla insikter i, och analyser av, din webbplats prestanda." - legacy_navigation_menu_deprecated: "Din Discourse använder för närvarande den \"äldre\" navigeringsmenyn som kommer att tas bort i den första betaversionen av Discourse 3.2. Migrera till den nya navigeringsmenyn genom att uppdatera din webbplatsinställning för navigeringsmenyer till 'sidebar' eller 'header dropdown'." site_settings: allow_bulk_invite: "Tillåt massinbjudningar genom att ladda upp en CSV-fil" disabled: "inaktiverade" diff --git a/config/locales/server.tr_TR.yml b/config/locales/server.tr_TR.yml index b9b50c6df99..771514a9a5d 100644 --- a/config/locales/server.tr_TR.yml +++ b/config/locales/server.tr_TR.yml @@ -1398,7 +1398,6 @@ tr_TR: unreachable_themes: "Aşağıdaki temalarda güncelleme olup olmadığını kontrol edemedik:" watched_word_regexp_error: "\"%{action}\" izlenen sözcükler için normal ifade geçersiz. Lütfen İzlenen Kelime ayarlarınızıkontrol edin veya \"izlenen kelimeler sıradan ifadeler\" site ayarını devre dışı bırakın." v3_analytics_deprecated: "Discourse'unuz şu anda Temmuz 2023'ten sonra artık desteklenmeyecek olan Google Analytics 3'ü kullanıyor. Web sitenizin performansı hakkında değerli bilgiler ve analizler almaya devam etmek için hemen Google Analytics 4'e yükseltin." - legacy_navigation_menu_deprecated: "Discourse'unuz şu anda Discourse 3.2'ninilk beta sürümünde kaldırılacak olan \"eski\" gezinme menüsünü kullanıyor. Gezinme menüsü site ayarınızı \"yan çubuk\" veya \"başlık açılır menüsü\" olarak güncelleyerek yeni gezinme menüsüne geçiş yapın." site_settings: allow_bulk_invite: "Bir CSV dosyası yükleyerek toplu davetlere izin verin" disabled: "devre dışı" diff --git a/config/locales/server.uk.yml b/config/locales/server.uk.yml index b5205ecb87a..57cbbebc63d 100644 --- a/config/locales/server.uk.yml +++ b/config/locales/server.uk.yml @@ -1521,7 +1521,6 @@ uk: unreachable_themes: "Ми не змогли перевірити наявність оновлень для наступних тем:" watched_word_regexp_error: "Неприпустимий регулярний вираз для '%{action}' контрольованих слів. Будь ласка, перевірте ваші Налаштування контрольованих слів, або вимкніть параметр 'контрольовані слова представлені регулярними виразами'." v3_analytics_deprecated: "Ваш Discourse наразі використовує Google Analytics 3, яка більше не підтримуватиметься після липня 2023 року. Оновіть Google Analytics 4 зараз, щоб і надалі отримувати цінну статистику та аналітику щодо ефективності вашого веб-сайту." - legacy_navigation_menu_deprecated: "У вашому Discourse наразі використовується «застаріле» навігаційне меню, буде видалено в першій бета-версії Discourse 3.2. Перейдіть до нового навігаційного меню, оновивши налаштування сайту навігаційного меню на «бічній панелі» або «випадаючому списку заголовка»." site_settings: allow_bulk_invite: "Дозволити масові запрошення, шляхом завантаження файлу CSV" disabled: "вимкнуто" diff --git a/config/locales/server.zh_CN.yml b/config/locales/server.zh_CN.yml index 7786b02ba08..4f92637d4b1 100644 --- a/config/locales/server.zh_CN.yml +++ b/config/locales/server.zh_CN.yml @@ -1343,7 +1343,6 @@ zh_CN: unreachable_themes: "我们无法检查以下主题的更新:" watched_word_regexp_error: "'%{action}' 关注词的正则表达式无效。请检查您的关注词设置,或禁用“关注词正则表达式”站点设置。" v3_analytics_deprecated: "您的 Discourse 目前使用的是 Google Analytics(分析)3,2023 年 7 月后该版本将不受支持。立即升级到Google Analytics(分析)4 ,以继续接收有价值的见解和分析,了解您的网站性能。" - legacy_navigation_menu_deprecated: "您的 Discourse 目前使用的是“旧版”导航菜单,该菜单将在 Discourse 3.2 的第一个测试版中移除。更新您的导航菜单站点设置为 'sidebar' 或 'header dropdown',迁移到新的导航菜单。" site_settings: allow_bulk_invite: "允许通过上传 CSV 文件批量邀请" disabled: "已禁用" diff --git a/db/migrate/20231004020328_migrate_legacy_navigation_menu_site_setting.rb b/db/migrate/20231004020328_migrate_legacy_navigation_menu_site_setting.rb new file mode 100644 index 00000000000..ff55ac7a275 --- /dev/null +++ b/db/migrate/20231004020328_migrate_legacy_navigation_menu_site_setting.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class MigrateLegacyNavigationMenuSiteSetting < ActiveRecord::Migration[7.0] + def up + execute "UPDATE site_settings SET value = 'header dropdown' WHERE name = 'navigation_menu' AND value = 'legacy'" + end + + def down + raise ActiveRecord::IrreversibleMigration + end +end diff --git a/plugins/chat/spec/system/list_channels/no_sidebar_spec.rb b/plugins/chat/spec/system/list_channels/no_sidebar_spec.rb index 79b64eb18c2..9d5017a6e1b 100644 --- a/plugins/chat/spec/system/list_channels/no_sidebar_spec.rb +++ b/plugins/chat/spec/system/list_channels/no_sidebar_spec.rb @@ -6,7 +6,7 @@ RSpec.describe "List channels | no sidebar", type: :system do let(:chat) { PageObjects::Pages::Chat.new } before do - SiteSetting.navigation_menu = "legacy" + SiteSetting.navigation_menu = "header dropdown" chat_system_bootstrap sign_in(current_user) end diff --git a/plugins/chat/spec/system/sidebars_spec.rb b/plugins/chat/spec/system/sidebars_spec.rb index d1df0415164..075da0db7a8 100644 --- a/plugins/chat/spec/system/sidebars_spec.rb +++ b/plugins/chat/spec/system/sidebars_spec.rb @@ -13,7 +13,7 @@ RSpec.describe "Navigation", type: :system do before do chat_system_bootstrap(user, [category_channel, category_channel_2]) sign_in(user) - SiteSetting.navigation_menu = "legacy" + SiteSetting.navigation_menu = "header dropdown" end it "uses chat (not core) sidebar" do diff --git a/spec/models/admin_dashboard_data_spec.rb b/spec/models/admin_dashboard_data_spec.rb index fec93548322..4f93c786fd3 100644 --- a/spec/models/admin_dashboard_data_spec.rb +++ b/spec/models/admin_dashboard_data_spec.rb @@ -45,18 +45,6 @@ RSpec.describe AdminDashboardData do expect(problems.map(&:to_s)).to include("a problem was found") end end - - describe "when `navigation_menu` site setting is `legacy`" do - it "should include the right problem message" do - SiteSetting.set(:navigation_menu, "legacy") - - problem = AdminDashboardData.fetch_problems.last - - expect(problem.message).to include( - I18n.t("dashboard.legacy_navigation_menu_deprecated", base_path: Discourse.base_path), - ) - end - end end describe "adding scheduled checks" do diff --git a/spec/models/topic_tracking_state_spec.rb b/spec/models/topic_tracking_state_spec.rb index 6e0a692d639..ecfe4d269cc 100644 --- a/spec/models/topic_tracking_state_spec.rb +++ b/spec/models/topic_tracking_state_spec.rb @@ -673,36 +673,20 @@ RSpec.describe TopicTrackingState do ) end - it "includes tags when SiteSetting.navigation_menu is not legacy" do - SiteSetting.navigation_menu = "legacy" - report = TopicTrackingState.report(user) - expect(report.length).to eq(1) - row = report[0] - expect(row.respond_to?(:tags)).to eq(false) + it "includes tags based on the `tagging_enabled` site setting" do + SiteSetting.tagging_enabled = false - SiteSetting.navigation_menu = "sidebar" - - report = TopicTrackingState.report(user) - expect(report.length).to eq(1) - row = report[0] - expect(row.tags).to contain_exactly("apples", "bananas") - end - - it "includes tags when TopicTrackingState.include_tags_in_report option is enabled" do - SiteSetting.navigation_menu = "legacy" report = TopicTrackingState.report(user) expect(report.length).to eq(1) row = report[0] expect(row.respond_to? :tags).to eq(false) - TopicTrackingState.include_tags_in_report = true + SiteSetting.tagging_enabled = true report = TopicTrackingState.report(user) expect(report.length).to eq(1) row = report[0] expect(row.tags).to contain_exactly("apples", "bananas") - ensure - TopicTrackingState.include_tags_in_report = false end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index f0e47e8f8e5..e7d72a01d54 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -64,14 +64,6 @@ RSpec.describe User do ).to contain_exactly(tag.id, hidden_tag.id) end - it "should not create any sidebar section link records when navigation_menu site setting is still legacy" do - SiteSetting.navigation_menu = "legacy" - - user = Fabricate(:user) - - expect(SidebarSectionLink.exists?(user_id: user.id)).to eq(false) - end - it "should not create any sidebar section link records for staged users" do user = Fabricate(:user, staged: true) diff --git a/spec/requests/api/schemas/json/user_get_response.json b/spec/requests/api/schemas/json/user_get_response.json index ed539d524f3..06df91371d5 100644 --- a/spec/requests/api/schemas/json/user_get_response.json +++ b/spec/requests/api/schemas/json/user_get_response.json @@ -324,6 +324,15 @@ "null" ] }, + "sidebar_tags": { + "type": "array" + }, + "sidebar_category_ids": { + "type": "array" + }, + "display_sidebar_tags": { + "type": "boolean" + }, "user_auth_tokens": { "type": "array", "items": diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb index e3a44901362..90b22cc3140 100644 --- a/spec/requests/api/users_spec.rb +++ b/spec/requests/api/users_spec.rb @@ -8,7 +8,6 @@ RSpec.describe "users" do before do SiteSetting.tagging_enabled = true - SiteSetting.navigation_menu = "legacy" Jobs.run_immediately! sign_in(admin) end diff --git a/spec/requests/notifications_controller_spec.rb b/spec/requests/notifications_controller_spec.rb index c940bf129b6..972ef1c2550 100644 --- a/spec/requests/notifications_controller_spec.rb +++ b/spec/requests/notifications_controller_spec.rb @@ -389,12 +389,6 @@ RSpec.describe NotificationsController do get "/notifications.json", params: { recent: true } expect(response.status).to eq(200) expect_correct_notifications(response) - - SiteSetting.navigation_menu = "legacy" - - get "/notifications.json", params: { recent: true } - expect(response.status).to eq(200) - expect_correct_notifications(response) end end @@ -405,12 +399,6 @@ RSpec.describe NotificationsController do get "/notifications.json" expect(response.status).to eq(200) expect_correct_notifications(response) - - SiteSetting.navigation_menu = "legacy" - - get "/notifications.json" - expect(response.status).to eq(200) - expect_correct_notifications(response) end end end diff --git a/spec/serializers/current_user_serializer_spec.rb b/spec/serializers/current_user_serializer_spec.rb index 6a681915eb9..3153d3075eb 100644 --- a/spec/serializers/current_user_serializer_spec.rb +++ b/spec/serializers/current_user_serializer_spec.rb @@ -283,12 +283,6 @@ RSpec.describe CurrentUserSerializer do ) end - it "is included when navigation menu is legacy" do - SiteSetting.navigation_menu = "legacy" - - expect(serializer.as_json[:new_personal_messages_notifications_count]).to eq(1) - end - it "is included when sidebar is enabled" do SiteSetting.navigation_menu = "sidebar" diff --git a/spec/serializers/site_serializer_spec.rb b/spec/serializers/site_serializer_spec.rb index 54a1a035c43..e01c3182178 100644 --- a/spec/serializers/site_serializer_spec.rb +++ b/spec/serializers/site_serializer_spec.rb @@ -155,13 +155,6 @@ RSpec.describe SiteSerializer do expect(serialized[:anonymous_default_navigation_menu_tags]).to eq(nil) end - it "is not included in the serialised object when navigation menu is legacy" do - SiteSetting.navigation_menu = "legacy" - - serialized = described_class.new(Site.new(guardian), scope: guardian, root: false).as_json - expect(serialized[:anonymous_default_navigation_menu_tags]).to eq(nil) - end - it "is not included in the serialised object when user is not anonymous" do guardian = Guardian.new(user) @@ -339,14 +332,6 @@ RSpec.describe SiteSerializer do ) end - it "should not be serialized if `navigation_menu` site setting is set to `legacy`" do - SiteSetting.set(:navigation_menu, "legacy") - - serialized = described_class.new(Site.new(guardian), scope: guardian, root: false).as_json - - expect(serialized[:navigation_menu_site_top_tags]).to eq(nil) - end - it "should not be serialized if `tagging_enabled` site setting is set to false" do SiteSetting.set(:tagging_enabled, false) diff --git a/spec/serializers/topic_tracking_state_item_serializer_spec.rb b/spec/serializers/topic_tracking_state_item_serializer_spec.rb index be576393f39..39ac9598a2f 100644 --- a/spec/serializers/topic_tracking_state_item_serializer_spec.rb +++ b/spec/serializers/topic_tracking_state_item_serializer_spec.rb @@ -4,8 +4,6 @@ RSpec.describe TopicTrackingStateItemSerializer do fab!(:user) { Fabricate(:user) } fab!(:post) { create_post } - before { SiteSetting.navigation_menu = "legacy" } - it "serializes topic tracking state reports" do report = TopicTrackingState.report(user) serialized = described_class.new(report[0], scope: Guardian.new(user), root: false).as_json @@ -17,11 +15,10 @@ RSpec.describe TopicTrackingStateItemSerializer do expect(serialized[:notification_level]).to eq(nil) expect(serialized[:created_in_new_period]).to eq(true) expect(serialized[:treat_as_new_topic_start_date]).to be_present - expect(serialized.has_key?(:tags)).to eq(false) end - it "includes tags attribute when tags are present" do - TopicTrackingState.include_tags_in_report = true + it "includes tags attribute when `tagging_enabled` site setting is `true`" do + SiteSetting.tagging_enabled = true post.topic.notifier.watch_topic!(post.topic.user_id) @@ -35,7 +32,5 @@ RSpec.describe TopicTrackingStateItemSerializer do serialized = described_class.new(report[0], scope: Guardian.new(user), root: false).as_json expect(serialized[:tags]).to contain_exactly("bananas", "apples") - ensure - TopicTrackingState.include_tags_in_report = false end end diff --git a/spec/serializers/web_hook_user_serializer_spec.rb b/spec/serializers/web_hook_user_serializer_spec.rb index 98da0fde644..b21a1aa0961 100644 --- a/spec/serializers/web_hook_user_serializer_spec.rb +++ b/spec/serializers/web_hook_user_serializer_spec.rb @@ -13,8 +13,6 @@ RSpec.describe WebHookUserSerializer do WebHookUserSerializer.new(user, scope: Guardian.new(admin), root: false) end - before { SiteSetting.navigation_menu = "legacy" } - it "should include relevant user info" do payload = serializer.as_json expect(payload[:email]).to eq(user.email) diff --git a/spec/support/user_sidebar_serializer_attributes.rb b/spec/support/user_sidebar_serializer_attributes.rb index 3e4b0647beb..7045227f6ca 100644 --- a/spec/support/user_sidebar_serializer_attributes.rb +++ b/spec/support/user_sidebar_serializer_attributes.rb @@ -25,14 +25,6 @@ RSpec.shared_examples "User Sidebar Serializer Attributes" do |serializer_klass| Fabricate(:category_sidebar_section_link, user: user, linkable: private_category) end - it "is not included when navigation menu is legacy" do - SiteSetting.navigation_menu = "legacy" - - json = serializer.as_json - - expect(json[:sidebar_category_ids]).to eq(nil) - end - it 'serializes only the categories that the user can see when sidebar has been enabled"' do SiteSetting.navigation_menu = "sidebar" @@ -73,15 +65,6 @@ RSpec.shared_examples "User Sidebar Serializer Attributes" do |serializer_klass| Fabricate(:tag_sidebar_section_link, user: user, linkable: hidden_tag) end - it "is not included when navigation menu is legacy" do - SiteSetting.navigation_menu = "legacy" - SiteSetting.tagging_enabled = true - - json = serializer.as_json - - expect(json[:sidebar_tags]).to eq(nil) - end - it "is not included when tagging has not been enabled" do SiteSetting.navigation_menu = "sidebar" SiteSetting.tagging_enabled = false @@ -117,13 +100,6 @@ RSpec.shared_examples "User Sidebar Serializer Attributes" do |serializer_klass| describe "#display_sidebar_tags" do fab!(:tag) { Fabricate(:tag) } - it "should not be included in serialised object when navigation menu is legacy" do - SiteSetting.tagging_enabled = true - SiteSetting.navigation_menu = "legacy" - - expect(serializer.as_json[:display_sidebar_tags]).to eq(nil) - end - it "should not be included in serialised object when tagging has been disabled" do SiteSetting.tagging_enabled = false diff --git a/spec/system/page_objects/components/legacy_header_dropdown.rb b/spec/system/page_objects/components/legacy_header_dropdown.rb deleted file mode 100644 index 8273e16940e..00000000000 --- a/spec/system/page_objects/components/legacy_header_dropdown.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -module PageObjects - module Components - class LegacyHeaderDropdown < PageObjects::Components::Base - def click - page.find(".hamburger-dropdown").click - end - - def visible? - page.has_css?(".menu-container-general-links") - end - end - end -end diff --git a/spec/system/viewing_sidebar_spec.rb b/spec/system/viewing_sidebar_spec.rb index 80d8487f3dc..89942cc8d63 100644 --- a/spec/system/viewing_sidebar_spec.rb +++ b/spec/system/viewing_sidebar_spec.rb @@ -9,29 +9,6 @@ describe "Viewing sidebar as logged in user", type: :system do before { sign_in(user) } - describe "when using the legacy navigation menu" do - before { SiteSetting.navigation_menu = "legacy" } - - it "should display the sidebar when `navigation_menu` query param is 'sidebar'" do - visit("/latest?navigation_menu=sidebar") - - expect(sidebar).to be_visible - expect(sidebar).to have_category_section_link(category_sidebar_section_link.linkable) - expect(page).not_to have_css(".hamburger-dropdown") - end - - it "should display the sidebar dropdown menu when `navigation_menu` query param is 'header_dropdown'" do - visit("/latest?navigation_menu=header_dropdown") - - expect(sidebar).to be_not_visible - - header_dropdown = PageObjects::Components::SidebarHeaderDropdown.new - header_dropdown.click - - expect(header_dropdown).to be_visible - end - end - describe "when using the header dropdown navigation menu" do before { SiteSetting.navigation_menu = "header dropdown" } @@ -41,33 +18,11 @@ describe "Viewing sidebar as logged in user", type: :system do expect(sidebar).to be_visible expect(page).not_to have_css(".hamburger-dropdown") end - - it "should display the legacy dropdown menu when `navigation_menu` query param is 'legacy'" do - visit("/latest?navigation_menu=legacy") - - expect(sidebar).to be_not_visible - - legacy_header_dropdown = PageObjects::Components::LegacyHeaderDropdown.new - legacy_header_dropdown.click - - expect(legacy_header_dropdown).to be_visible - end end describe "when using the sidebar navigation menu" do before { SiteSetting.navigation_menu = "sidebar" } - it "should display the legacy dropdown menu when `navigation_menu` query param is 'legacy'" do - visit("/latest?navigation_menu=legacy") - - expect(sidebar).to be_not_visible - - legacy_header_dropdown = PageObjects::Components::LegacyHeaderDropdown.new - legacy_header_dropdown.click - - expect(legacy_header_dropdown).to be_visible - end - it "should display the sidebar dropdown menu when `navigation_menu` query param is 'header_dropdown'" do visit("/latest?navigation_menu=header_dropdown")