mberlanda/cheidelacoriera

View on GitHub
app/views/layouts/_nav.html.haml

Summary

Maintainability
Test Coverage
%nav.navbar.navbar-cheidelacoriera.navbar-fixed-top.navbar-no-bg{ role: 'navigation' }
  .container
    .navbar-header
      %button.navbar-toggle.collapsed{ 'aria-expanded' => false, 'data-target' => '#navbar-collapse-1', 'data-toggle' => 'collapse', type: 'button' }
        %span.sr-only Toggle navigation
        %span.icon-bar
        %span.icon-bar
        %span.icon-bar
      %a.navbar-brand.navbar-logo{ href: seo_url(root_path) }
        %img{ src: asset_path('cheidelacoriera_logo.png'), alt: 'Chei De La Coriera' }
    .navbar-collapse.collapse#navbar-collapse-1
      %ul.nav.navbar-nav
        - if user_signed_in?
          - if current_user.admin?
            %li.dropdown.admin-dropdown
              %a.dropdown-toggle{ 'aria-expanded' => false, 'data-toggle' => 'dropdown', href: 'javascript:;' }
                Admin
                %span.fa.fa-angle-down
              %ul.dropdown-menu
                %li{ navbar_intro(:users) }= link_to t('navbar.admin.users'), users_path, **nav_opt(:admin_users)
                %li{ navbar_intro(:teams) }= link_to t('navbar.admin.teams'), teams_path, **nav_opt(:admin_teams)
                %li{ navbar_intro(:competitions) }= link_to t('navbar.admin.competitions'), competitions_path, **nav_opt(:admin_competitions)
                %li{ navbar_intro(:events) }= link_to t('navbar.admin.events'), events_path, **nav_opt(:admin_events)
                %li{ navbar_intro(:transport_means) }= link_to t('navbar.admin.transport_means'), transport_means_path, **nav_opt(:admin_transport_means)
                %li{ navbar_intro(:posts) }= link_to t('navbar.admin.posts'), posts_path, **nav_opt(:admin_posts)
                %li{ navbar_intro(:albums) }= link_to t('navbar.admin.albums'), albums_path, **nav_opt(:admin_albums)
                %li#navbar-demo
                  %a{ href: 'javascript:;' }
                    %i.fa.fa-question-circle
                    = t('navbar.admin.demo')
        %li= link_to t('navbar.events.upcoming'), seo_url(upcoming_events_path), **nav_opt(:upcoming_events)
        / %li= link_to t('navbar.news.index'), seo_url(news_index_path), **nav_opt(:news)
        / %li= link_to t('navbar.posts.index'), seo_url(all_posts_path), **nav_opt(:comunicazioni)
        / %li= link_to t('navbar.albums.index'), seo_url(all_albums_path), **nav_opt(:all_albums)

      %ul.nav.navbar-nav.navbar-right
        / - unless I18n.locale == :en
        /   %li= link_to image_tag('flags/4x3/gb.svg', size: '20x15', alt: 'English'), { locale: :en }, **nav_opt(:en)
        / - unless I18n.locale == :it
        /   %li= link_to image_tag('flags/4x3/it.svg', size: '20x15', alt: 'Italiano'), { locale: :it }, **nav_opt(:it)
        - if user_signed_in?
          %li.dropdown
            %a.user-profile.dropdown-toggle{ 'aria-expanded' => false, 'data-toggle' => 'dropdown', href: 'javascript:;' }
              %i.fa.fa-user.hidden-xs
              = current_user.email
              %span.fa.fa-angle-down
            %ul.dropdown-menu
              %li= link_to 'Profilo', seo_url(profile_users_path), **nav_opt(:profile_users)
              %li= link_to t('navbar.session.edit_profile'), edit_user_registration_path, **nav_opt(:edit_profile)
              %li= link_to t('navbar.session.logout'), destroy_user_session_path, method: :delete, **nav_opt(:logout)
        - else
          %li= link_to t('navbar.session.login'), seo_url(new_user_session_path), **nav_opt(:login)

- if user_signed_in?
  - if current_user.admin?
    :javascript
      $(function(){
        $('#navbar-demo').click(function(e){
          e.stopPropagation();
          $('.admin-dropdown').on('hide.bs.dropdown', function(){ return false });
          introJs().onexit(function() {
            $('.admin-dropdown').on('hide.bs.dropdown', function () {
              $('.admin-dropdown').removeClass('open');
            })
            $('#navbar-demo').remove();
          }).start();
        })
      })