YaleSTC/shifts

View on GitHub
app/views/layouts/include/_nav.html.erb

Summary

Maintainability
Test Coverage
<ul class="nav navbar-nav navbar-right">
  <% unless current_user.nil? %>
      <%= content_tag :li, class: ('active' if navbar_highlight(params[:controller]) == "dashboard") do %>
        <%= link_to "Dashboard", dashboard_path %>
      <% end %>
  <% end %>

  <% if current_user.is_admin_of?(current_department) && current_user.is_active?(current_department) || current_user.is_superuser? %>
    <%= content_tag :li, class: ['dropdown',('active' if navbar_highlight(params[:controller]) == "departments")] do %>
        <%= link_to current_user.is_superuser? ? departments_path : edit_department_config_path(current_department.department_config), data: {toggle: 'dropdown', hover: 'dropdown'} do%>
            Departments
        <span class="caret"></span>
        <% end %>
            <ul class="dropdown-menu dropdown-menu-left">
                <% if current_user.is_superuser? %>
                    <li><%= link_to "All Departments", departments_path %></li>
                    <li><%= link_to "Application Settings", edit_app_config_path %></li>
                <% end %>
                <li><%= link_to "Department Settings", edit_department_config_path(current_department.department_config) %></li>
                <li><%= link_to "Location Groups", department_loc_groups_path(current_department) %></li>
                <li><%= link_to "Locations", department_locations_path(current_department) %></li>
                <li><%= link_to "Time Slots", time_slots_path %></li>
                <li><%= link_to "Calendars", calendars_path %></li>
                <li><%= link_to "Templates", templates_path %></li>
            </ul>
    <% end %>
  <% end %>

  <% if current_user.is_admin_of?(current_department) && current_user.is_active?(current_department) || current_user.is_superuser? %>
    <%= content_tag :li, class: ('active' if navbar_highlight(params[:controller]) == "users") do %>
        <%= link_to department_users_path(current_department) ,data: {toggle: 'dropdown', hover: 'dropdown'} do %>
            Users
      <span class="caret"></span>
        <% end %>
        <ul class="dropdown-menu dropdown-menu-left">
            <li><%= link_to "Users", department_users_path(current_department) %></li>
            <% if current_user.is_superuser? %>
                <li><%= link_to "Superusers", superusers_path %></li>
            <% end %>
            <li><%= link_to "Permissions", department_roles_path(current_department) %></li>
            <li><%= link_to "Profiles", user_profiles_path %></li>
            <li><%= link_to "Facebook View", facebook_path %></li>
            <li><%= link_to "Profile Fields", user_profile_fields_path %></li>
            <li><%= link_to "Email Group", email_group_path %></li>
        </ul>
    <% end %>
  <% else %>
      <%= content_tag :li, class: ('active' if navbar_highlight(params[:controller]) == "users") do%>
        <%= link_to user_profile_path(current_user.login) ,data: {toggle: 'dropdown', hover: 'dropdown'} do%>
            Profiles
      <span class="caret"></span>
        <% end %>
            <ul class="dropdown-menu dropdown-menu-left">
                <li><%= link_to "My Profile", user_profile_path(current_user.login) %></li>
                  <li><%= link_to "All Profiles", user_profiles_path %></li>
                <li><%= link_to "Facebook View", facebook_path %></li>
                <li><%= link_to "Email Group", email_group_path %></li>
            </ul>
    <% end %>
  <% end %>

  <%# name here 'shifts3' must be distinct from 'shifts' otherwise it is always highlighted %>
  <%= content_tag :li, class: ('active' if navbar_highlight(params[:controller]) == "shifts3") do%>
        <%= link_to shifts_path, data: {toggle: 'dropdown', hover: 'dropdown'} do %>
            Shifts
      <span class="caret"></span>
        <% end %>
        <ul class="dropdown-menu dropdown-menu-left">
            <li><%= link_to "Shifts Schedule", shifts_path %></li>
            <li><%= link_to "Public Schedule", controller: 'public_view', action: 'index' %></li>
            <li><%= link_to "Tasks", tasks_path %></li>
            <li><%= link_to "Links", links_path %></li>
              <li><%= link_to "Notices", notices_path %></li>
              <li><%= link_to "Data Objects", data_objects_path %></li>
              <li><%= link_to "Stats", stats_path %></li>
        </ul>
  <% end %>

  <%= content_tag :li, class: ('active' if navbar_highlight(params[:controller]) == "actions") do %>
    <%= link_to test_new_lists_path ,data: {toggle: 'dropdown', hover: 'dropdown'} do %>
        Actions
    <span class="caret"></span>
    <% end %>
    <ul class="dropdown-menu dropdown-menu-left">
        <li><%= link_to "All Active Tasks", active_tasks_path %></li>
        <li><%= link_to "Update Data Objects", update_data_objects_path %></li>
    </ul>
  <% end %>

  <%= content_tag :li, class: ('active' if navbar_highlight(params[:controller]) == "payforms") do %>
      <%= link_to (current_user.is_admin_of?(current_department) ? payforms_path : go_payforms_path),
    data: {toggle: 'dropdown', hover: 'dropdown'} do %>
          Payforms
      <span class='caret'></span>
      <% end %>
        <ul class="dropdown-menu dropdown-menu-left">
             <% unless current_user.is_admin_of?(current_department) %>
                 <li><%= link_to "My Payform", go_payforms_path %></li>
             <% end %>
             <li><%= link_to "All Payforms", payforms_path %></li>
            <% if current_user.is_admin_of?(current_department) %>
                <li><%= link_to "Punch Clocks", punch_clocks_path %></li>
              <li><%= link_to "Group Jobs", payform_item_sets_path %></li>
                <li><%= link_to "Categories", department_categories_path(current_department) %></li>
            <% end %>
        </ul>
  <% end %>
  <%= content_tag :li do %>
    <%= link_to user_profile_path(current_user.login), data: {toggle: 'dropdown', hover: 'dropdown'} do %>
      <% if current_user && current_user.user_profile && current_user.user_profile.photo && current_user.user_profile.photo.file? %>
        <%= image_tag current_user.user_profile.photo(:pico) %>
      <% end %>
      <%= current_user ? (current_user.name + " (" + current_user.login + ") ") : session[:cas_user] %>
      <span class='caret'></span>
    <% end %>
    <ul class="dropdown-menu dropdown-menu-left" role="menu">
      <li><%= link_to "My Profile", user_profile_path(current_user.login) %></li>
      <li><%= link_to "My Preferences", edit_user_config_path(current_user.user_config) %></li>
      <li><%= link_to "My Calendar Feeds", calendar_feeds_path %></li>
      <% if @user_session && @user_session.user %>
        <li><%= link_to "Logout", logout_path %></li>
      <% else %>
        <li><%= link_to "Logout", cas_logout_path %></li>
      <% end %>
    </ul>
  <% end %>
</ul>