EagerELK/ditty

View on GitHub
views/partials/navitems.haml

Summary

Maintainability
Test Coverage
- if authenticated?
  - Ditty::Components.navigation(request).each do |item|
    - if item[:type] == 'divider'
      %hr.sidebar-divider.my-0
    - elsif item[:target].nil? || policy(item[:target]).list?
      - if item[:group]
        %li.nav-item
          %a.nav-link.collapsed{ href: '#', 'data-toggle': 'collapse', 'data-target': "##{item[:group].parameterize}", 'aria-expanded': 'true', 'aria-controls': item[:group].parameterize }
            - if item[:icon]
              %i.fas.fa-fw{ class: "fa-#{item[:icon]}" }
            %span= item[:group]
          .collapse{ id: item[:group].parameterize, 'data-parent': '#accordionSidebar' }
            .bg-white.py-2.collapse-inner.rounded
              - item[:items].each do |sub_item|
                - next unless sub_item[:target] && policy(sub_item[:target]).list?
                %a.collapse-item{ href: "#{settings.map_path}#{sub_item[:link]}" }
                  - if sub_item[:icon]
                    %i.fa.fa-fw{ class: "fa-#{sub_item[:icon]}" }
                  = sub_item[:text]
      - else
        %li.nav-item
          %a.nav-link{ href: "#{settings.map_path}#{item[:link]}" }
            - if item[:icon]
              %i.fas.fa-fw{ class: "fa-#{item[:icon]}" }
            %span= item[:text]
  %hr.sidebar-divider.my-0
  %li.nav-item
    = delete_form_tag("#{settings.map_path}/auth", attributes: { id: 'logout-form' }) do
      %a.nav-link{ type: 'submit', onClick: 'document.getElementById("logout-form").submit()' }
        %i.fas.fa-fw.fa-sign-out-alt
        %span Logout
- else
  %li.nav-item
    %a.nav-link{ href: "#{settings.map_path}/auth/login" }
      %i.fas.fa-fw.fa-user
      %span Log In
  - if policy(::Ditty::User).register?
    %li.nav-item
      %a.nav-link{ href: "#{settings.map_path}/auth/register" }
        %i.fas.fa-fw.fa-pen-square
        %span Register