teddim/gCamp

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

Summary

Maintainability
Test Coverage
<div class="page-header">
  <h1><%= @project.name %>: Manage Members</h1>
</div>

<ol class="breadcrumb">
  <li><%= link_to 'Projects', projects_path %></li>
  <li><%= link_to @project.name, project_path(@project) %></li>
  <li class= "Active">Memberships</li>
</ol>

<%= render partial: "shared/error_left", locals: {object: @membership} %>
<% if current_user.is_project_owner(@project) %>
<div class="row">
  <div class="col-md-7">
    <div class="well">
      <%= form_for [@project,@membership],:html => {:class => "form-inline"} do |f| %>
        <div class="form-group">
          <%= f.collection_select(:user_id, User.all, :id, :full_name, {prompt: 'Please select a user...'}, {class: 'form-control'}) %>
          <%= f.collection_select(:role, Membership::ROLES, :to_s, :capitalize,{}, {class: 'form-control'}) %>
          <%= f.submit "Add New Member", class: "btn btn-primary" %>
        </div>
      <% end %>
    </div>

  </div>
</div>
<% end %>
<div class = "row">
  <% @memberships.each do |membership| %>
    <div class="form-group col-md-10">
      <%= form_for [@project,membership] do |ed| %>
        <div>
          <div>
            <%= link_to "#{membership.user.full_name}", user_path(membership.user), class: "col-md-2" %>
          </div>
          <% if current_user.is_project_owner(@project) %>
            <div class="col-md-2">
              <%= ed.collection_select(:role, Membership::ROLES, :to_s, :capitalize,{}, {class:'form-control'}) %>
            </div>
            <div class="col-md-2">
            <%= ed.submit "Update", class: "btn btn-primary" %>
            </div>
            <% if membership.user.id == current_user.id && @project.memberships.where(role: "owner").count == 1 %>
              <div class= "col-md-3"> You are the last owner</div>
            <% end %>
          <% else %>
            <div class="col-md-2">
            </div>
            <div class="col-md-2">
              <%= membership.role %>
            </div>
          <% end %>

          <% if membership.role == "owner" && @project.memberships.where(role: "owner").count == 1%>
          <% elsif (current_user.is_admin || current_user.is_project_owner(@project) || current_user.id == membership.user.id)  %>
            <div class= "col-md-2">
              <%= link_to "", project_membership_path(@project,membership), method: :delete, class: "glyphicon glyphicon-remove" %>
            </div>
          <% end %>
        </div>
      <% end %>
    </div>
  <% end %>
</div>