app/views/users/show.html.erb
<div class="well">
<legend id="top" style="font-size: 2.5em;">
<%= image_tag @user.image || 'placeholder-avatar.png', size: '50x50' %>
<%= @user.name %>
<span class="pull-right" style="font-size: .5em;">Lacquer Lover Since:<br><%= @user.created_at.to_date.strftime("%B %e, %Y") %> (<strong><%= time_ago_in_words(@user.created_at) %></strong> ago)</span>
</legend>
<div class="row" id="show"><i class="fa fa-caret-square-o-down pull-right" style="font-size: 20px; margin-top:-15px;" title="show dashboard"></i></div>
<div class="user-dashboard">
<% if (@user != current_user) && (!current_user.accepted_friends.include?(@user)) %>
<%= link_to "Add Friend", new_friendship_path(friend_id: @user) %><br>
<% end %>
<div class="row">
<!-- PUBLIC PROFILE -->
<div class="col-sm-4" id="public-profile">
<h3>Lacquers: <%= @user.lacquers.count %></h3>
<h3>Friends: <%= @user.accepted_friends.count %></h3>
<% if !@user.lacquers_added_by.empty? %>
<% if @user == current_user %>
<h3>Lacquers Added by You: <%= @user.lacquers_added_by.count %></h3>
<% else %>
<h3>Lacquers Added by <%= @user.first_name %>: <%= @user.lacquers_added_by.count %></h3>
<% end %>
<ul>
<% @user.lacquers_added_by.each do |lacquer| %>
<li><%= link_to lacquer.name, lacquer_path(lacquer) %> (<%= link_to lacquer.brand.name, brand_path(lacquer.brand) %>)</li>
<% end %>
</ul>
<% end %>
<% if @user.owned_transactions %>
<% if @user == current_user %>
<h3>Your Loan Count:
<% else %>
<h3><%= @user.first_name %>’s Loan Count:
<% end %>
<%= @user.owned_transactions.count %></h3>
<% end %>
<% if @user.requested_transactions %>
<% if @user == current_user %>
<h3>Your Borrow Count:
<% else %>
<h3><%= @user.first_name %>’s Borrow Count:
<% end %>
<%= @user.requested_transactions.count %></h3>
<% end %>
</div>
<!-- END OF PUBLIC PROFILE -->
<div class="col-sm-3">
<% if @user == current_user || @user.accepted_friends.include?(current_user) %>
<h3>Friends
<% if @user == current_user %>
<%= link_to "Invite Friends!", new_invite_path, class: "btn btn-xs btn-primary grey-rounded", id:"new-invite-link" %>
<a data-toggle="modal" data-target="#inviteModal" style="display: none;" id="hidden-invite-modal-link"></a>
<span id="hidden_friend_count" style="display: none;">
<%= render 'count', count: @user.accepted_friends.count %>
</span>
<% end %>
</h3>
<div class="profile-section">
<ul class='list-group' id="accepted-friends">
<%= render 'friends', user: @user %>
</ul>
</div>
<% end %>
<h3>Favorites</h3>
<div class="profile-section">
<% if @user.favorited_lacquers.count > 0 %>
<ul class="list-group fave">
<% @user.favorited_lacquers.each do |favorite| %>
<li class="fave" style="font-size: 20px;">
<%= link_to favorite.name, lacquer_path(favorite) %>
</li>
<% end %>
</ul>
<% end %>
</div>
</div>
<!-- BEGINNING OF YOUR ALERTS & FRIENDSHIPS (IF YOU ARE THE CURRENT USER) -->
<% if @user == current_user %>
<div id="live-notifications" class="col-sm-5">
<%= render 'live_notifications', user: @user %>
</div>
<% end %>
</div>
<div class="row" id="hide"><i class="fa fa-caret-square-o-up pull-right" style="font-size: 20px; margin-bottom:-15px;" title="hide dashboard"></i></div>
</div>
</div>
<!-- END OF YOUR ALERTS (IF YOU ARE THE CURRENT USER) -->
<% if (@user == current_user) || (current_user.accepted_friends.include?(@user)) %>
<section style="margin-top: 50px;">
<!-- <div class="page-header"> -->
<% if @user == current_user %>
<legend style="font-size: 2em;">Your Lacquers</legend>
<div class="page-header" style="margin-top: 0;">
<h4><strong>Add a lacquer</strong></h4>
<div class="dropdown">
<select id="brand-selection" class="btn-default">
<option value="hasnt-been-chosen">Choose your brand</option>
<% Brand.order(:name).each do |brand| %>
<option value="<%= brand.name %>"><%= brand.name %></option>
<% end %>
</select>
</div>
<% Brand.all.each do |brand| %>
<div class="lacquer-dropdown dropdown btn" id="<%= brand.abbreviation %>-dropdown">
<%= form_for @new_user_lacquer, :url => url_for(:controller => 'user_lacquers', :action => 'create'), remote: true do |f| %>
<%= f.hidden_field :user_id, value: current_user.id %>
<%= f.select(:lacquer_id, brand.lacquers.order(:name).collect {|p| [ p.name, p.id ] } + [ [ 'Other', 'new' ] ], {:prompt => "Select #{brand.name.indefinitize} lacquer"}, :class => "btn-default") %>
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle main-color-dropdown" data-toggle="dropdown" aria-expanded="false">
Select Colors <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" id="main-color-dropdown" style="padding: 10px;">
<div class="row" style="width: 255px;">
<%= f.collection_check_boxes :color_ids, Color.all.order(:name), :id, :name do |b| %>
<div class="col-xs-6">
<%= b.check_box %> <%= b.label %>
</div>
<% end %>
</div>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle main-finish-dropdown" data-toggle="dropdown" aria-expanded="false">
Select Finishes <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" id="main-finish-dropdown" style="padding: 10px;">
<div class="row" style="width: 335px;">
<%= f.collection_check_boxes :finish_ids, Finish.all.order(:description), :id, :description do |b| %>
<div class="col-xs-6">
<%= b.check_box %> <%= b.label %>
</div>
<% end %>
</div>
</ul>
</div>
<%= f.submit value: "add this lacquer", :class => "add-lacquer btn disabled" %>
<% end %>
</div>
<% end %>
<!-- ADD "OTHER" LACQUER -->
<% Brand.all.each do |brand| %>
<% new_lacquer = brand.lacquers.new %>
<div class="other-lacquer" id="<%= brand.abbreviation %>">
<%= form_for new_lacquer, :url => url_for(:controller => 'lacquers', :action => 'create'), remote: true do |f| %>
<%= f.label :name %>
<%= f.text_field :name, placeholder: "lacquer name", :required => true %>
<%= fields_for new_lacquer.user_lacquers.new do |user_lacquer_form| %>
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle color-dropdown" data-toggle="dropdown" aria-expanded="false">
Select Colors <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" id="color-dropdown" style="padding: 10px;">
<div class="row" style="width: 255px;">
<%= user_lacquer_form.collection_check_boxes :color_ids, Color.all.order(:name), :id, :name do |b| %>
<div class="col-xs-6">
<%= b.check_box %> <%= b.label %>
</div>
<% end %>
</div>
</ul>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle finish-dropdown" data-toggle="dropdown" aria-expanded="false">
Select Finishes <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" id="finish-dropdown" style="padding: 10px;">
<div class="row" style="width: 335px;">
<%= user_lacquer_form.collection_check_boxes :finish_ids, Finish.all.order(:description), :id, :description do |b| %>
<div class="col-xs-6">
<%= b.check_box %> <%= b.label %>
</div>
<% end %>
</div>
</ul>
</div>
<div class="add-new-lacquer-to-collection">
<%= user_lacquer_form.label "Add this lacquer to my collection." %>
<%= check_box_tag :user_id, current_user.id, required: true %>
<% end %>
</div>
<%= f.hidden_field :brand_id, value: new_lacquer.brand_id %>
<%= f.hidden_field :user_added_by_id, value: current_user.id %>
<%= f.submit "Create Lacquer", class:"btn btn-primary" %>
<% end %>
</div>
<% end %>
<!-- END OF ADD "OTHER" LACQUER -->
</div>
<!-- ***** END OF ADD OTHER LACQUERS ***** -->
<% else %>
<legend style="font-size: 2em;"><%= @user.first_name %>'s Lacquers</legend>
<% end %>
<!-- </div> -->
<div class="row well" id="filter-buttons" style="padding: 10px; margin: 5px 0; text-align: center;">
<% brands = @user.lacquers.collect {|l| l.brand.name}.uniq %>
<% colors = @user.lacquers.collect {|l| l.color_tags}.flatten.uniq %>
<% finishes = @user.lacquers.collect {|l| l.finish_tags}.flatten.uniq %>
<% attributes = {"brands" => brands, "colors" => colors, "finishes" => finishes} %>
<!-- <div class="row" style="text-align:center;"> -->
<% attributes.each do |attribute, items| %>
<div class="<%=attribute%>-buttons col-xs-4">
<% if !items.empty? %>
<% items.each do |item| %>
<%= link_to "#{item}", "#", :class => "btn btn-xs btn-default #{attribute} grey-rounded", :id => "#{item}", :style => "margin: 2px; max-width: 100%; white-space: normal;" %>
<% end %>
<% else %>
<h6>No <%= attribute.singularize %> tags in <%= @user.first_name %>'s collection.</h6>
<% end %>
</div>
<% end %>
<!-- </div> -->
</div>
<div class="table-responsive">
<table class="table table-striped table-hover" id="user-lacquer-collection">
<thead>
<tr class="selected color-selected finish-selected">
<th>Swatch</th>
<th>Brand</th>
<th></th>
<th>Name</th>
<th>Colors</th>
<th>Finishes</th>
<% if @user == current_user %>
<th>Loanable?</th>
<!-- <th>Giftable?</th> -->
<th>On Loan?</th>
<th>Edit/Remove</th>
<% else %>
<% if @user == current_user %>
<th>Loan Requests</th>
<% else %>
<th>Borrow/Buy</th>
<% end %>
<% end %>
</tr>
</thead>
<tbody>
<% @user.user_lacquers.each do |user_lacquer| %>
<tr class="user-lacquer-partial" lacquer-id="<%= user_lacquer.lacquer.id %>" user-lacquer-id="<%= user_lacquer.id %>" id="<%=user_lacquer.id%>">
</tr>
<% end %>
</tbody>
</table>
</div>
</section>
<p style="float: right; font-size: 2em;"><a href='#top'><i class="fa fa-caret-square-o-up fa-4" title="scroll up"></i></a></p>
<% end %>
<% if @user == current_user %>
<%= link_to "Export collection as JSON", user_path( id: @user.id, format: :json ), class: "btn btn-xs btn-info" %>
<% end %>