favorites: remove is_favorited attribute from post API.
* Remove the data-is-favorited attribute from post thumbnails. * Remove the is_favorited attribute from the /posts.json API. * Remove the fav_string attribute from the /posts.json API (only visible to moderators). * Change `Post#favorited_by?` to not use the fav_string. Further addresses #4652 by eliminating the last places where fav_string was used.
This commit is contained in:
@@ -762,12 +762,11 @@ class Post < ApplicationRecord
|
|||||||
update_column(:fav_count, fav_count)
|
update_column(:fav_count, fav_count)
|
||||||
end
|
end
|
||||||
|
|
||||||
def favorited_by?(user_id = CurrentUser.id)
|
def favorited_by?(user)
|
||||||
fav_string.match?(/(?:\A| )fav:#{user_id}(?:\Z| )/)
|
return false if user.is_anonymous?
|
||||||
|
Favorite.exists?(post: self, user: user)
|
||||||
end
|
end
|
||||||
|
|
||||||
alias is_favorited? favorited_by?
|
|
||||||
|
|
||||||
def append_user_to_fav_string(user_id)
|
def append_user_to_fav_string(user_id)
|
||||||
update_column(:fav_string, (fav_string + " fav:#{user_id}").strip)
|
update_column(:fav_string, (fav_string + " fav:#{user_id}").strip)
|
||||||
clean_fav_string! if clean_fav_string?
|
clean_fav_string! if clean_fav_string?
|
||||||
|
|||||||
@@ -88,11 +88,11 @@ class PostPolicy < ApplicationPolicy
|
|||||||
|
|
||||||
def api_attributes
|
def api_attributes
|
||||||
attributes = super
|
attributes = super
|
||||||
attributes += [:has_large, :has_visible_children, :is_favorited?]
|
attributes += [:has_large, :has_visible_children]
|
||||||
attributes += TagCategory.categories.map {|x| "tag_string_#{x}".to_sym}
|
attributes += TagCategory.categories.map {|x| "tag_string_#{x}".to_sym}
|
||||||
attributes += [:file_url, :large_file_url, :preview_file_url] if visible?
|
attributes += [:file_url, :large_file_url, :preview_file_url] if visible?
|
||||||
attributes -= [:id, :md5, :file_ext] if !visible?
|
attributes -= [:id, :md5, :file_ext] if !visible?
|
||||||
attributes -= [:fav_string] if !user.is_moderator?
|
attributes -= [:fav_string]
|
||||||
attributes
|
attributes
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -131,7 +131,6 @@ class PostPresenter
|
|||||||
"data-source" => post.source,
|
"data-source" => post.source,
|
||||||
"data-uploader-id" => post.uploader_id,
|
"data-uploader-id" => post.uploader_id,
|
||||||
"data-normalized-source" => post.normalized_source,
|
"data-normalized-source" => post.normalized_source,
|
||||||
"data-is-favorited" => post.favorited_by?(CurrentUser.user.id)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if post.visible?
|
if post.visible?
|
||||||
|
|||||||
@@ -38,11 +38,7 @@
|
|||||||
<%= link_to recommended_posts_path(search: { post_id: post.id }), class: "more-recommended-posts", "data-post-id": post.id do %>
|
<%= link_to recommended_posts_path(search: { post_id: post.id }), class: "more-recommended-posts", "data-post-id": post.id do %>
|
||||||
<%= post.fav_count %>
|
<%= post.fav_count %>
|
||||||
|
|
||||||
<% if post.favorited_by?(CurrentUser.id) %>
|
<i class="far fa-heart fa-xs"></i>
|
||||||
<i class="fas fa-heart fa-xs"></i>
|
|
||||||
<% else %>
|
|
||||||
<i class="far fa-heart fa-xs"></i>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<br>more »
|
<br>more »
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -23,10 +23,10 @@
|
|||||||
|
|
||||||
<% if policy(Favorite).create? %>
|
<% if policy(Favorite).create? %>
|
||||||
<li id="post-option-add-to-favorites">
|
<li id="post-option-add-to-favorites">
|
||||||
<%= link_to "Favorite", favorites_path(post_id: post.id), remote: true, method: :post, id: "add-to-favorites", "data-shortcut": "f", style: ("display: none;" if @post.is_favorited?) %>
|
<%= link_to "Favorite", favorites_path(post_id: post.id), remote: true, method: :post, id: "add-to-favorites", "data-shortcut": "f", style: ("display: none;" if @post.favorited_by?(CurrentUser.user)) %>
|
||||||
</li>
|
</li>
|
||||||
<li id="post-option-remove-from-favorites">
|
<li id="post-option-remove-from-favorites">
|
||||||
<%= link_to "Unfavorite", favorite_path(post), remote: true, method: :delete, id: "remove-from-favorites", "data-shortcut": "shift+f", "data-shortcut-when": ":visible", style: ("display: none;" if !@post.is_favorited?) %>
|
<%= link_to "Unfavorite", favorite_path(post), remote: true, method: :delete, id: "remove-from-favorites", "data-shortcut": "shift+f", "data-shortcut-when": ":visible", style: ("display: none;" if !@post.favorited_by?(CurrentUser.user)) %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if policy(post).update? %>
|
<% if policy(post).update? %>
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
<% end -%>
|
<% end -%>
|
||||||
|
|
||||||
<% if policy(Favorite).create? %>
|
<% if policy(Favorite).create? %>
|
||||||
<%= content_tag(:div, class: "fav-buttons fav-buttons-#{@post.is_favorited?}") do %>
|
<%= content_tag(:div, class: "fav-buttons fav-buttons-#{@post.favorited_by?(CurrentUser.user)}") do %>
|
||||||
<%= form_tag(favorites_path(post_id: @post.id), method: "post", id: "add-fav-button", "data-remote": true) do %>
|
<%= form_tag(favorites_path(post_id: @post.id), method: "post", id: "add-fav-button", "data-remote": true) do %>
|
||||||
<%= button_tag tag.i(class: "far fa-heart"), class: "ui-button ui-widget ui-corner-all", "data-disable-with": tag.i(class: "fas fa-spinner fa-spin") %>
|
<%= button_tag tag.i(class: "far fa-heart"), class: "ui-button ui-widget ui-corner-all", "data-disable-with": tag.i(class: "fas fa-spinner fa-spin") %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -633,7 +633,6 @@ class PostsControllerTest < ActionDispatch::IntegrationTest
|
|||||||
assert_response :success
|
assert_response :success
|
||||||
assert_nil(response.parsed_body["md5"])
|
assert_nil(response.parsed_body["md5"])
|
||||||
assert_nil(response.parsed_body["file_url"])
|
assert_nil(response.parsed_body["file_url"])
|
||||||
assert_nil(response.parsed_body["fav_string"])
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user