app/views/layouts/_controls.html.erb

Summary

Maintainability
Test Coverage
<ul class="nav navbar-nav ml-auto">
  <li id="language_selection" class="nav-item dropdown">
    <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
      <%= t("txt.views.lang_widget.caption") %>
    </a>

    <ul class="lang-widget dropdown-menu">
      <%- if Iqvoc::Concept.pref_labeling_languages.reject(&:nil?).any? -%>
        <li class="lang-widget-header">
          <h2><%= t("txt.views.lang_widget.primary") %></h2>
        </li>
        <% Iqvoc::Concept.pref_labeling_languages.each do |lang| %>
          <li class="lang-widget-item">
            <%= link_to t("languages.#{lang.presence || "-"}", default: lang.presence || "-"), url_for(lang: lang || "none"), class: ("active" if lang == I18n.locale.to_s) %>
          </li>
        <% end %>
      <% end %>

      <% secondary_languages = Iqvoc.all_languages.reject { |lang| lang == I18n.locale.to_s } %>
        <% if secondary_languages.any? %>
          <div class="dropdown-divider"></div>

          <li class="lang-widget-header">
            <h2><%= t("txt.views.lang_widget.secondary") %></h2>
          </li>
          <% secondary_languages.each do |lang| %>
            <li class="lang-widget-item">
            <label>
              <input type="checkbox" value="<%= lang %>"> <%= t("languages.#{lang.presence || "-"}", :default => lang.presence || "-") %>
            </label>
            </li>
          <% end %>
        <% end %>
    </ul>
  </li>

  <% if current_user %>
    <%= render "layouts/user_navigation" %>
  <% else %>
  <li>
    <%= link_to t("txt.views.layouts.application.login"), new_user_session_path(:back_to => @return_url), class: 'nav-link' %>
  </li>
<% end %>
</ul>