houston/houston-core

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

Summary

Maintainability
Test Coverage
<% content_for :title do %>
<h1 class="project-banner space-below">
  Users
  <%= link_to "New User", new_user_path, :class => "btn btn-primary" if can?(:create, User) %>

  <%= render partial: "projects/keyboard_shortcuts" %>
</h1>
<% end %>

<% if @users.any? %>
  <div class="nomargin">
    <table id="users" class="table table-sortable table-striped">
      <thead>
        <tr>
          <td class="table-margin"></td>
          <td class="user-avatar"></td>
          <th class="user-name sort-desc">Name</th>
          <th class="user-email">Email</th>
          <th class="user-nickname">Nickname</th>
          <th class="user-role">Role</th>
          <td class="table-margin"></td>
        </tr>
      </thead>
      <tbody>
        <% @users.each do |user| %>
          <tr id="user_<%= user.id %>">
            <td class="table-margin"></td>
            <td class="user-avatar"><%= avatar_for(user, size: 32) %></td>
            <td class="user-name">
              <%= link_to user_path(user) do %>
                <span class="first-name"><%= user.first_name %></span>
                <span class="last-name"><%= user.last_name %></span>
              <% end %>
            </td>
            <td class="user-email"><%= mail_to user.email %></td>
            <td class="user-email"><%= user.nickname %></td>
            <td class="user-role"><%= user.role %></td>
            <td class="table-margin"></td>
          </tr>
        <% end %>
      </tbody>
    </table>
  </div>
<% else %>
  <div class="alert alert-info">There are no team members yet. Click <b>New Team Member</b> to create one.</div>
<% end %>

<% content_for :javascripts do %>
  <script type="text/javascript">
    $.tablesorter.addParser({
      id: 'name',
      type: 'text',
      is: function(s) { return false; }, // return false so this parser is not auto detected
      format: function(s, table, td) {
        var $td = $(td),
            firstName = $td.find('.first-name').text(),
            lastName = $td.find('.last-name').text();
        return lastName + ' ' + firstName;
      }
    });

    $(function() {
      $('#users').tablesorter({
        headers: { 2: { sorter: 'name' } }
      });
    });
  </script>
<% end %>