mfvico/gCamp

View on GitHub
app/views/memberships/index.html.erb

Summary

Maintainability
Test Coverage
<% 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>