app/views/layouts/_navigation.html.erb
<div class="navbar navbar-fixed-top navbar-inverse">
<div class="navbar-inner">
<%= link_to Houston.config.title, main_app.root_url, class: "brand" %>
<ul class="nav pull-right">
<% if current_user -%>
<% if can?(:read, User) || can?(:read, Team) || can?(:read, Project) || can?(:read, Action) %>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i> <b class="caret"></b></a>
<ul class="dropdown-menu">
<% if can?(:read, Team) %>
<li><%= link_to "Teams", main_app.teams_path %></li>
<% end %>
<% if can?(:read, Project) %>
<li><%= link_to "Projects", main_app.projects_path %></li>
<% end %>
<% if can?(:read, User) %>
<li><%= link_to "Users", main_app.users_path %></li>
<% end %>
<% if can?(:read, Action) %>
<% if can?(:read, User) || can?(:read, Team) || can?(:read, Project) %>
<li class="divider"></li>
<% end %>
<li><%= link_to "Actions", main_app.actions_path %></li>
<li><%= link_to "Running Actions", main_app.running_actions_path %></li>
<li><%= link_to "Triggers", main_app.triggers_path %></li>
<li><%= link_to "Errors", main_app.errors_path %></li>
<% if can?(:read, :all_authorizations) %>
<li class="divider"></li>
<li><%= link_to "Authorizations", main_app.authorizations_path %></li>
<li><%= link_to "API Tokens", main_app.api_tokens_path %></li>
<% end %>
<% end %>
</ul>
</li>
<% end %>
<li class="current-user dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><%= avatar_for(current_user, size: 30) %> <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><%= link_to "Settings", main_app.edit_user_path(current_user) %></li>
<% if can?(:create, Authorization) %>
<li class="divider"></li>
<li><%= link_to "My Authorizations", main_app.my_authorizations_path %></li>
<li><%= link_to "My API Tokens", main_app.my_api_tokens_path %></li>
<% end %>
<li class="divider"></li>
<li><%= link_to "Sign out", main_app.destroy_user_session_path %></li>
</ul>
</li>
<% else -%>
<li><%= link_to "Sign in", main_app.new_user_session_path %></li>
<% end -%>
</ul>
<ul class="nav">
<% Houston.config.navigation.each do |navigation| %><%= render_navigation navigation %><% end %>
</ul>
</div>
</div>
<% if current_user -%>
<div class="navbar project-navbar <%= current_project && current_project.color %>">
<ul class="nav">
<li class="dropdown current-project <%= current_project && current_project.color %>">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<%= current_project ? current_project.name : "Select Project" %>
</a>
<ul class="dropdown-menu">
<% followed_projects.each do |project| %>
<% if project == current_project %>
<li class="current">
<b class="bubble <%= project.color %>"></b> <%= project.name %></a>
</li>
<% else %>
<li>
<% path = if !current_feature
# we're not on a project page,
# just refresh the page and set the project
"?project=#{project.slug}"
elsif !project.features.include?(current_feature)
# we're using a feature that this project
# doesn't support. Navigate to the root URL
# and set the project
main_app.root_path(project: project.slug)
else
feature_path(project, current_feature)
end %>
<%= link_to path do %>
<b class="bubble <%= project.color %>"></b> <%= project.name %></a>
<% end %>
</li>
<% end %>
<% end %>
</ul>
</li>
<% if current_project && current_project.persisted? %>
<% if current_project.features.any? %>
<% current_project.features.each do |feature| %>
<% if feature == :settings %>
<li class="divider-vertical"></li>
<% end %>
<%= render_nav_for_feature(feature) %>
<% end %>
<% else %>
<li class="project-no-features">
No features are enabled for <%= current_project.name %>.
<% if can?(:update, current_project) %>
You can enable features in <%= link_to "Project Settings", main_app.edit_project_path(current_project) %>.
<% end %>
</li>
<% end %>
<% end %>
</ul>
</div>
<% end %>