From e96a3debda643da01d65826ad9a1331183920ee2 Mon Sep 17 00:00:00 2001 From: Mateus Rambo Strey <mars11@inf.ufpr.br> Date: Thu, 24 Mar 2016 11:10:58 -0300 Subject: [PATCH] fix review rate javascript --- app/assets/javascripts/application/reviews.js | 6 +-- app/controllers/reviews_controller.rb | 6 ++- app/views/reviews/_review.html.erb | 51 ++++++++++--------- 3 files changed, 34 insertions(+), 29 deletions(-) diff --git a/app/assets/javascripts/application/reviews.js b/app/assets/javascripts/application/reviews.js index bec87d6e8..8d246d57c 100644 --- a/app/assets/javascripts/application/reviews.js +++ b/app/assets/javascripts/application/reviews.js @@ -19,11 +19,11 @@ $(document).ready(function(){ $('.review-button-approve').on('ajax:success', function() { $(this).parent().children('.review-button-desapprove').removeClass('desapproved'); - $(this).addClass('approved'); + $(this).hasClass('approved') ? $(this).removeClass('approved') : $(this).addClass('approved'); }); $('.review-button-desapprove').on('ajax:success', function() { $(this).parent().children('.review-button-approve').removeClass('approved'); - $(this).addClass('desapproved'); + $(this).hasClass('desapproved') ? $(this).removeClass('desapproved') : $(this).addClass('desapproved'); }); -}); \ No newline at end of file +}); diff --git a/app/controllers/reviews_controller.rb b/app/controllers/reviews_controller.rb index 534119072..75e783ee4 100644 --- a/app/controllers/reviews_controller.rb +++ b/app/controllers/reviews_controller.rb @@ -63,7 +63,11 @@ class ReviewsController < ApplicationController rate = Rate.where(user: user, review: review).first_or_initialize - rate.update(approves: approves) + if rate.approves == approves + rate.destroy + else + rate.update(approves: approves) + end render json: { approves: approves } if request.xhr? end diff --git a/app/views/reviews/_review.html.erb b/app/views/reviews/_review.html.erb index 761733968..a1834b646 100644 --- a/app/views/reviews/_review.html.erb +++ b/app/views/reviews/_review.html.erb @@ -15,7 +15,7 @@ <%= render 'reviews/ratingstars', rate_id: "avg", value: review.rating_average.to_i, review_id: review.id, disabled: true%> </div> - <div id="popovercontent_<%=review.id%>" style="display: none"> + <div id="popovercontent_<%=review.id%>" style="display: none"> <% review.rating_values.each do |r| %> <%= render 'reviews/rating', rate: r[:rating], value: r[:value], review_id: review.id %> <% end %> @@ -25,7 +25,7 @@ <div class="col-md-8 review-right-data"> - <div class="row review-title"> + <div class="row review-title"> <div class="col-md-12"> <h3><%= review.name %></h3> </div> @@ -35,7 +35,7 @@ <div class="col-md-12"> <b>Comentário</b><br> <%= review.description %> - </div> + </div> </div> <div class="row"> @@ -51,7 +51,7 @@ </div> </div> - + <div class="row"> <div class="review-footer"> @@ -61,27 +61,28 @@ <% else %> Esta avaliação não possui votos suficientes. <% end %> - </span> - - - <% approves = review.user_approves?(current_user) %> - <% button_approves_class = "btn btn-default btn-xs review-button review-button-approve " %> - <% button_desapproves_class = "btn btn-default btn-xs review-button review-button-desapprove " %> - <% if !approves.nil? %> - <% if approves%> - <%button_approves_class += "approved" %> - <%else%> - <%button_desapproves_class += "desapproved" %> + </span> + + <% unless review.user == current_user %> + <% approves = review.user_approves?(current_user) %> + <% button_approves_class = "btn btn-default btn-xs review-button review-button-approve " %> + <% button_desapproves_class = "btn btn-default btn-xs review-button review-button-desapprove " %> + <% if !approves.nil? %> + <% if approves%> + <%button_approves_class += "approved" %> + <%else%> + <%button_desapproves_class += "desapproved" %> + <%end%> <%end%> - <%end%> - <%= link_to rate_review_path(id: review.id, approves: true), class: button_approves_class, method: :post, remote: true do %> - <i class="fa fa-thumbs-up fa-2x" aria-hidden="true"></i> - <% end %> - - <%= link_to rate_review_path(id: review.id, approves: false), class: button_desapproves_class, method: :post, remote: true do %> - <i class="fa fa-thumbs-down fa-2x" aria-hidden="true"></i> - <% end %> + <%= link_to rate_review_path(id: review.id, approves: true), class: button_approves_class, method: :post, remote: true do %> + <i class="fa fa-thumbs-up fa-2x" aria-hidden="true"></i> + <% end %> + + <%= link_to rate_review_path(id: review.id, approves: false), class: button_desapproves_class, method: :post, remote: true do %> + <i class="fa fa-thumbs-down fa-2x" aria-hidden="true"></i> + <% end %> + <%end %> <%= link_to '#', class: 'btn btn-default btn-xs review-button', style:"display:none", method: :post, remote: true do %> <i class="fa fa-flag fa-2x" aria-hidden="true"></i> @@ -96,5 +97,5 @@ </div> </div> - -</div> \ No newline at end of file + +</div> -- GitLab