diff --git a/app/assets/stylesheets/application/layout.sass b/app/assets/stylesheets/application/layout.sass index 2431819fb41ecbe4a91ed633890b7895bb249c19..484376aaa1e22db034522910bb22f5d7bc7da07c 100644 --- a/app/assets/stylesheets/application/layout.sass +++ b/app/assets/stylesheets/application/layout.sass @@ -1,6 +1,8 @@ -.navbar-brand - img - max-width: 100px +.navbar + margin-bottom: 100px + .navbar-brand + img + max-width: 100px footer margin-top: 100px diff --git a/app/services/simple_navigation/bootstrap_renderer.rb b/app/services/simple_navigation/bootstrap_renderer.rb new file mode 100644 index 0000000000000000000000000000000000000000..21646e9f9a18cc926ae4e1e890d68a7aea9b3ada --- /dev/null +++ b/app/services/simple_navigation/bootstrap_renderer.rb @@ -0,0 +1,44 @@ +class SimpleNavigation::BootstrapRenderer < SimpleNavigation::Renderer::Base + def render(item_container) + content = '<ul class="nav">' + item_container.items.each do |item| + content << make(item) + end + content << '</ul>' + content.html_safe + end + + protected + + def make(item) + li = "<li class=\"sidebar-item #{ item.html_options[:class] } #{ ' disabled' unless item.url }\">" + li += make_a(item) + li += make_subnavigation(item) if consider_sub_navigation?(item) + li += '</li>' + li + end + + def make_item(item) + li = "<li class=\"nav-item #{ item.html_options[:class] } #{ ' disabled' unless item.url }\">" + li += make_a(item) + li += make_subnavigation(item) if consider_sub_navigation?(item) + li += '</li>' + li + end + + def make_a(item) + icon = item.send(:options)[:icon] + a = "<a href=\"#{ item.url }\" class=\"nav-link#{ item.selected? ? '' : ' collapsed' }\"" + a += " data-bs-target=\"##{ item.key }\" data-bs-toggle=\"collapse\"" if consider_sub_navigation?(item) + a += ">" + a += "<i class=\"fas fa-#{ icon }\"></i>" if icon + a += "<span class=\"align-middle\">#{ item.name }</span></a>" + a + end + + def make_subnavigation(item) + "<ul id=\"#{ item.key }\" class=\"sidebar-dropdown list-unstyled #{ item.selected? ? 'show' : 'collapse' }\"> + #{ render_sub_navigation_for item } + </ul>" + end +end diff --git a/config/navigation.rb b/config/navigation.rb index 0cf5b2b4ee59060be1c3192f4a36f014d82f02ae..f5202790206588dfe8dd40c142cd19d8961ff6df 100644 --- a/config/navigation.rb +++ b/config/navigation.rb @@ -1,5 +1,5 @@ SimpleNavigation::Configuration.run do |navigation| - # navigation.renderer = ::Appstack::SimpleNavigationRenderer + navigation.renderer = ::SimpleNavigation::BootstrapRenderer navigation.auto_highlight = true navigation.highlight_on_subpath = true navigation.selected_class = 'active'