Feature #28531

Add css to distinguish when a main menu is present or not

Added by Felix Schäfer 10 days ago. Updated 10 days ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:Themes
Target version:Candidate for next major release
Resolution:

Description

We have a theme with a styling dependent on knowing when a main menu is present. We previously used a body[class*="project-"] selector to test when a project is shown, but as there is now a global main menu in some cases this doesn't work anymore.

We would suggest the following addition:

--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -592,6 +592,7 @@ module ApplicationHelper
     end

     css << 'project-' + @project.identifier if @project && @project.identifier.present?
+    css << 'has-main-menu' if display_main_menu?(@project)
     css << 'controller-' + controller_name
     css << 'action-' + action_name
     css << 'avatars-' + (Setting.gravatar_enabled? ? 'on' : 'off')

History

#1 Updated by Go MAEDA 10 days ago

  • Target version set to Candidate for next major release

Here is a test code for the feature.

index d52fef2d5..0b01f5d7f 100644
--- a/test/integration/lib/redmine/menu_manager_test.rb
+++ b/test/integration/lib/redmine/menu_manager_test.rb
@@ -77,4 +77,11 @@ class MenuManagerTest < Redmine::IntegrationTest
     get '/login'
     assert_select '#main-menu', 0
   end
+
+  def test_body_should_have_main_menu_css_class_if_main_menu_is_present
+    get '/projects'
+    assert_select 'body.has-main-menu'
+    get '/'
+    assert_select 'body.has-main-menu', 0
+  end
 end

#2 Updated by Felix Schäfer 10 days ago

Thank you!

Also available in: Atom PDF