fablabbcn/fablabs

View on GitHub
app/views/application/_header.html.haml

Summary

Maintainability
Test Coverage
= render "application/please_verify" if current_user and current_user.unverified?
%nav.navbar.navbar-custom.navbar-expand-lg{:role => "navigation"}
  .container-fluid
    = link_to root_path, class: 'navbar-brand' do
      =image_tag ("logo.svg"), :alt => "fablabs.io"

    %button.mt-0.navbar-toggler{"aria-controls" => "navbar", "aria-expanded" => "false", "data-target" => "#navbar", "data-toggle" => "collapse", "aria-label" => "Toggle navigation", :type => "button"}
      %i.fa.fa-bars.fa-lg

    #navbar.collapse.navbar-collapse

      = form_tag '/search', class: 'navbar-form', method: 'get' do
        .form-group.container-fluid.mb-0
          - if params[:country].present?
            = hidden_field_tag 'country', params[:country]
          = text_field_tag 'query', params[:query], class: 'form-control', autocomplete: 'off', placeholder: t("views.header.search"), id: 'search-box'

      %ul.navbar-nav
        %li.nav-item{class: ("active" if current_page?(labs_path)) }
          = link_to t("views.header.labs"), labs_path, class: 'nav-link'
        %li.nav-item{class: ("active" if current_page?(organizations_path)) }
          = link_to t("views.header.organizations"), organizations_path, class: 'nav-link'
        %li.nav-item{class: ("active" if current_page?(machines_path)) }
          = link_to t("views.header.machines"), machines_path, class: 'nav-link'
        %li.nav-item{class: ("active" if current_page?(jobs_path)) }
          = link_to t("views.header.jobs"), jobs_path, class: 'nav-link'
        %li.nav-item
          = link_to 'https://fabacademy.org/', target: "_blank", class: 'nav-link' do
            Fab Academy
            = icon 'external-link', class: 'ml-1'
        %li.nav-item{class: ("active" if current_page?(events_path)) }
          = link_to  "https://fabevent.org/", target: "_blank", class: 'nav-link' do
            = t("views.header.events")
            = icon 'external-link', class: 'ml-1'
        %li.nav-item
          = link_to 'https://live.fablabs.io/', target: "_blank", class: 'nav-link' do
            Network
            = icon 'external-link', class: 'ml-1'
        %li.nav-item
          = link_to 'https://projects.fablabs.io', target: "_blank", class: 'nav-link' do
            = t("views.header.projects")
            = icon 'external-link', class: 'ml-1'
        %li.nav-item
          = link_to 'https://forum.fablabs.io', target: "_blank", class: 'nav-link' do
            Forum
            = icon 'external-link', class: 'ml-1'

      %ul.nav.navbar-nav.ml-auto
        - if current_user
          %li.dropdown
            %a.dropdown-toggle{href: "#", "role": "button", "data-toggle": "dropdown", "data-target": "#"}
              = image_tag current_user.avatar_url, class: 'avatar tiny'
              - if current_or_null_user.has_role? :superadmin
                = gem_count_tag Lab.with_unverified_state.size
              - else
                - if current_or_null_user.is_referee? or current_or_null_user.is_unique_referee?
                  = gem_count_tag current_or_null_user.referees_count
            %ul.dropdown-menu.dropdown-menu-right
              = link_to current_user, class: 'dropdown-item' do
                = icon "user", t("views.header.me"), class: 'fa-fw'
              = link_to settings_path, class: 'dropdown-item'  do
                = icon "cog", t("views.header.settings"), class: 'fa-fw'
              - if current_or_null_user.has_role? :superadmin
                %li.divider
                = link_to backstage_root_path, class: 'dropdown-item' do
                  = icon "gamepad", class: 'fa-fw'
                  = t("views.header.backstage", default: "Backstage")
                  = gem_count_tag Lab.with_unverified_state.size
                = link_to admin_root_path, target: '_blank', class: 'dropdown-item' do
                  = icon "lock", class: 'fa-fw'
                  Admin
                = link_to stats_path, class: 'dropdown-item' do
                  = icon "line-chart", class: 'fa-fw'
                  Statistics
              - else
                - if current_or_null_user.is_referee? or current_or_null_user.is_unique_referee?
                  = link_to backstage_root_path, class: 'dropdown-item' do
                    = icon "gamepad", class: 'fa-fw'
                    = t("views.header.backstage", default: "Backstage")
                    = gem_count_tag current_or_null_user.pending_referee_labs.count

              %li.divider
              - if current_user.passed_spam_period?
                = link_to oauth_applications_path, class: 'dropdown-item'  do
                  = icon "code", t("views.header.developer_console", default: "Developer Console"), class: 'fa-fw' 
              -else
                %a.dropdown-item.disabled{:role => "button", "aria-disabled" => "true"}  
                  = t("views.header.developer_console", default: "Developer Console")

              %li.divider
              = link_to signout_path, class: 'dropdown-item'  do
                = icon "sign-out", t("views.header.signout", default: "Sign out"), class: 'fa-fw'

        - else
          %li.navbar-btn
            = link_to t("views.header.signin", default: "Sign in"), signin_path, class: 'btn btn-default w-100'
          %li.navbar-btn
            = link_to t("views.header.signup", default: "Sign up"), signup_path, class: 'btn btn-primary w-100'
          %li.navbar-btn

- if flash.any?
  - flash.each do |name, msg|
    = content_tag :div, msg, class: "#{flash_class(name)} m-3"