app/views/layouts/_navbar.html.erb
<div class="main-header" role="navigation">
<!-- Materialize Icons -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<script>
// Not using Jquery to bind the listener since it's not loaded at this point
document.addEventListener("DOMContentLoaded", function(event) {
$('.sidenav').sidenav({
edge: 'right'
});
// Using this over jQuery approach to avoid any issues when other libraries override .dropdown()
var elems = document.querySelectorAll('.dropdown-trigger');
M.Dropdown.init(elems, { coverTrigger: false });
});
</script>
<%= stylesheet_link_tag 'navbar' %>
<!-- Experimental Navbar Code -->
<ul id="dropdown1" class="dropdown-content">
<% unless current_user.nil? %>
<li role="presentation">
<%= link_to "Account", user_path(current_user), title: "View your account info" %>
</li>
<% end %>
<% if @cud %>
<li role="presentation">
<%= link_to "Course Profile", course_course_user_data_path(@course, @cud),
title: "View your user profile for the current course" %>
</li>
<% end %>
<li role="presentation">
<%= link_to "Join Course", join_course_courses_path, title: "Join Course" %>
</li>
<% if Rails.env.development? %>
<li role="presentation">
<%= link_to "Dev Login", home_developer_login_path %>
</li>
<% end %>
<li role="presentation" class="divider"></li>
<li role="presentation">
<%= link_to "Log out", destroy_user_session_path, method: :delete %>
</li>
</ul>
<% if current_user&.administrator? %>
<ul id="dropdown2" class="dropdown-content">
<li role="presentation"><%= link_to "Create New Course", new_course_path, title: "Create a new course" %></li>
<li role="presentation"><%= link_to "Manage Users", users_path, title: "Manage every Autolab user" %></li>
<li role="presentation"><%= link_to "Manage API Applications", oauth_applications_path, title: "Manage registered API clients" %></li>
<li role="presentation"><%= link_to "Bulk Email Instructors",
email_instructors_admin_path,
title: "Send a bulk email to every Autolab instructor" %></li>
<li role="presentation"><%= link_to "Configure Autolab", autolab_config_admin_path, title: "Configure Autolab settings" %></li>
<li role="presentation"><%= link_to "Clear Cache", clear_cache_admin_url,
title: "Clear Cache", data: { method: "post" } %></li>
</ul>
<% end %>
<% if current_user&.administrator? %>
<ul id="dropdown3" class="dropdown-content">
<li role="presentation"><%= link_to "Create New Course", new_course_path, title: "Create a new course" %></li>
<li role="presentation"><%= link_to "Manage Users", users_path, title: "Manage every Autolab user" %></li>
<li role="presentation"><%= link_to "Manage API Applications", oauth_applications_path, title: "Manage registered API clients" %></li>
<li role="presentation"><%= link_to "Bulk Email Instructors",
email_instructors_admin_path,
title: "Send a bulk email to every Autolab instructor" %></li>
<li role="presentation"><%= link_to "Configure Autolab", autolab_config_admin_path, title: "Configure Autolab settings" %></li>
<li role="presentation"><%= link_to "Clear Cache", clear_cache_admin_url, title: "Clear Cache", data: { method: "post" } %></li>
</ul>
<% end %>
<nav>
<div class="nav-wrapper">
<a href="/courses" class="brand-logo logo">
<%= image_tag "AUTOLAB@2x.png", width: 180, alt: "Carnegie Mellon University" %>
</a>
<a href="#" data-target="mobile-demo" class="sidenav-trigger right">
<i class="material-icons">menu</i>
</a>
<ul class="right hide-on-med-and-down">
<% if session[:sudo] && @cud %>
<li>
<%= link_to "(#{@cud.display_name}) Return to instructor view",
unsudo_course_course_user_datum_path(@course, @cud),
data: { method: "post" } %>
</li>
<% end %>
<% if @cud %>
<% if !@cud.instructor? && @cud.course_assistant? && !@cud.section.blank? %>
<li>
<%= link_to "<i class='material-icons left'>grading</i> Section #{@cud.section} Gradebook".html_safe,
view_course_course_user_datum_gradebook_path(@course, @cud, { section: @cud.section }),
title: "View your gradebook" %>
</li>
<% elsif @cud.instructor? || @cud.student? %>
<li>
<%= link_to "<i class='material-icons left'>grading</i> Gradebook".html_safe,
course_course_user_datum_gradebook_path(@course, @cud), title: "View your gradebook" %>
</li>
<% end %>
<li>
<%= link_to "<i class='material-icons left'>clear_all</i> Jobs".html_safe, course_jobs_path(@course),
title: "View a history of autograding jobs" %>
</li>
<% if @cud.instructor? %>
<li>
<%= link_to "<i class='material-icons left'>settings</i>Manage Course".html_safe,
manage_course_path(@course),
title: "Perform course-wise administrative actions" %>
</li>
<% end %>
<% end %>
<% if current_user&.administrator? %>
<li>
<a class="dropdown-trigger" href="#!" data-target="dropdown2" data-beloworigin="true" data-hover="false">
<i class='material-icons left'>lock</i>Manage Autolab<i class="material-icons right">arrow_drop_down</i>
</a>
</li>
<% end %>
<% if user_signed_in? %>
<li>
<a class="dropdown-trigger" href="#!" data-target="dropdown1" data-beloworigin="true" data-hover="false">
<i class='material-icons left'>person</i><%= current_user.display_name %><i class="material-icons right">arrow_drop_down</i>
</a>
</li>
<% end %>
</ul>
<!-- Responsive Sidebar -->
<ul class="sidenav" id="mobile-demo">
<!-- User -->
<div id="nav-user" class="red lighten-5">
<% if user_signed_in? %>
<div class="dropdown-toggle" id="dropdownMenu1">
<%= current_user.display_name %>
</div>
<% unless current_user.nil? %>
<li role="presentation">
<%= link_to "<i class='material-icons left'>account_circle</i> Account".html_safe,
user_path(current_user), title: "View your account info" %>
</li>
<% end %>
<% if @cud %>
<li role="presentation">
<%= link_to "<i class='material-icons left'>assignment_ind</i> Course Profile".html_safe,
course_course_user_data_path(@course, @cud),
title: "View your user profile for the current course" %>
</li>
<% end %>
<li role="presentation">
<%= link_to "<i class='material-icons left'>add</i> Join Course".html_safe, join_course_courses_path, title: "Join Course" %>
</li>
<% if Rails.env.development? %>
<li role="presentation">
<%= link_to "<i class='material-icons left'>developer_mode</i> Dev Login".html_safe, home_developer_login_path %>
</li>
<% end %>
<li role="presentation" class="divider"></li>
<li role="presentation">
<%= link_to "<i class='material-icons left'>exit_to_app</i> Log out".html_safe,
destroy_user_session_path, method: :delete %>
</li>
<% end %>
</div>
<!-- Usual Navbar Items -->
<% if session[:sudo] && @cud %>
<li>
<%= link_to "(#{@cud.display_name}) Return to instructor view",
unsudo_course_course_user_datum_path(@course, @cud), data: { method: "post" } %>
</li>
<% end %>
<% if @cud %>
<% if !@cud.instructor? && @cud.course_assistant? && !@cud.section.blank? %>
<li>
<%= link_to "<i class='material-icons left'>grading</i> Section #{@cud.section} Gradebook".html_safe,
view_course_course_user_datum_gradebook_path(@course, @cud, { section: @cud.section }),
title: "View your gradebook" %>
</li>
<% elsif @cud.instructor? || @cud.student? %>
<li>
<%= link_to "<i class='material-icons left'>grading</i> Gradebook".html_safe,
[@course, @cud, :gradebook], title: "View your gradebook" %>
</li>
<% end %>
<li>
<%= link_to "<i class='material-icons left'>clear_all</i> Jobs".html_safe,
course_jobs_path(@course, :jobs), title: "View a history of autograding jobs" %>
</li>
<% if @cud.instructor? %>
<li>
<%= link_to "<i class='material-icons left'>settings</i> Manage Course".html_safe,
manage_course_path(@course), title: "Perform course-wise administrative actions" %>
</li>
<% end %>
<% end %>
<% if current_user&.administrator? %>
<li>
<a class="dropdown-trigger" href="#!" data-target="dropdown3" data-beloworigin="true" data-hover="false">
<i class='material-icons left'>lock</i>Manage Autolab<i class="material-icons right">
arrow_drop_down
</i>
</a>
</li>
<% end %>
</ul>
</div>
<!-- Responsive Menu Code -->
</nav>
</div>
<% unless @breadcrumbs.blank? && @title.blank? %>
<div class="sub-navigation">
<span class="left-nav">
<span class="item">
<a title="Go to Courses Home" href="/courses"><i class="material-icons home-icon">home</i></a>
</span>
<% @breadcrumbs&.each do |b| %>
<span class="item"><%= b %></span>
<% end %>
<% if @title %>
<span class="item"><span class="title"><%= @title %></span></span>
<% end %>
</span>
</div>
<% end %>