app/views/memberships/index.html.erb
<% if notice %>
<p class="alert alert-success" id="notice"><%= notice %></p>
<% end %>
<div class="page-header">
<h1><%= @project.name %>: Manage Members </h1>
</div>
<div class="row container">
<ol class="breadcrumb">
<li><%= link_to "Projects", projects_path %></li>
<li><%= link_to @project.name, project_path(@project) %></li>
<li class="active">Members</li>
</ol>
</div>
<div class="row container">
<% if current_user.memberships.where(project_id: @project.id, role: "owner").exists? || admin_check %>
<%= render "shared/errors", model: @membership %>
<div class="well form-inline col-md-6 ">
<%= form_for([@project, @membership], html: {class: "form-inline"}) do |f| %>
<%= f.collection_select(:user_id, User.all, :id, :full_name, {include_blank: "Please Select a User"}, {class: "form-control"}) %>
<%= f.select :role, [:member, :owner], {}, {class: "form-control"} %>
<%= f.submit class: "btn btn-primary" %>
<% end %>
</div>
<% end %>
</div>
<div class="row container">
<table class="table-condensed">
<% @project.users.each do |user| %>
<% user.memberships.where(project_id: @project.id).each do |member| %>
<tr>
<%= form_for [@project, member], html: {class: "form-inline"} do |f| %>
<td><%=link_to user.full_name, user_path(user), class: "control-label " %></td>
<% if current_user.memberships.where(project_id: @project.id, role: "owner").exists? || current_user.admin %>
<td><%= f.select :role, [:member, :owner], {}, {class: "form-control"} %></td>
<td><%= f.submit class: "btn btn-primary" %></td>
<% end %>
<% if current_user.memberships.where(project_id: @project.id, role: "owner").exists? ||
member.user_id == current_user.id || current_user.admin %>
<% if @project.memberships.where(role: "owner").count > 1 || member.role == "member" %>
<td><%= link_to project_membership_path(@project, member), method: :delete, data: { confirm: 'Are you sure?' } do %>
<span class="glyphicon glyphicon-remove"></span></td>
<% end %>
<% end %>
</tr>
<% end %>
<% end %>
<% end %>
<% end %>
</table>
</div>