recommendations: show favcount beneath recommended posts.
* Add favorite count beneath recommended posts. Clicking the favcount loads more recommended posts like that post. * Increase number of recommendations shown on post show page.
This commit is contained in:
@@ -9,7 +9,7 @@ let Post = {};
|
|||||||
Post.pending_update_count = 0;
|
Post.pending_update_count = 0;
|
||||||
Post.SWIPE_THRESHOLD = 60;
|
Post.SWIPE_THRESHOLD = 60;
|
||||||
Post.SWIPE_VELOCITY = 0.6;
|
Post.SWIPE_VELOCITY = 0.6;
|
||||||
Post.MAX_RECOMMENDATIONS = 27; // 3 rows of 9 posts at 1920x1080.
|
Post.MAX_RECOMMENDATIONS = 45; // 3 rows of 9 posts at 1920x1080.
|
||||||
|
|
||||||
Post.initialize_all = function() {
|
Post.initialize_all = function() {
|
||||||
|
|
||||||
@@ -30,6 +30,7 @@ Post.initialize_all = function() {
|
|||||||
this.initialize_post_sections();
|
this.initialize_post_sections();
|
||||||
this.initialize_post_image_resize_links();
|
this.initialize_post_image_resize_links();
|
||||||
this.initialize_post_image_resize_to_window_link();
|
this.initialize_post_image_resize_to_window_link();
|
||||||
|
this.initialize_recommended();
|
||||||
|
|
||||||
if (CurrentUser.data("always-resize-images") || (Utility.meta("viewport") && (window.screen.width <= 660))) {
|
if (CurrentUser.data("always-resize-images") || (Utility.meta("viewport") && (window.screen.width <= 660))) {
|
||||||
$("#image-resize-to-window-link").click();
|
$("#image-resize-to-window-link").click();
|
||||||
@@ -582,6 +583,17 @@ Post.initialize_saved_searches = function() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Post.initialize_recommended = function() {
|
||||||
|
$(document).on("click.danbooru", ".post-preview .more-recommended-posts", async function (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
let post_id = $(this).parents(".post-preview").data("id");
|
||||||
|
$("#recommended").addClass("loading-recommended-posts");
|
||||||
|
await $.get("/recommended_posts.js", { search: { post_id: post_id }, limit: Post.MAX_RECOMMENDATIONS });
|
||||||
|
$("#recommended").removeClass("loading-recommended-posts");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
Post.update_tag_count = function(event) {
|
Post.update_tag_count = function(event) {
|
||||||
let string = "0 tags";
|
let string = "0 tags";
|
||||||
let count = 0;
|
let count = 0;
|
||||||
|
|||||||
@@ -366,6 +366,11 @@ div#c-posts {
|
|||||||
margin-top: 0.5em;
|
margin-top: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#recommended.loading-recommended-posts {
|
||||||
|
pointer-events: none;
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
#pool-nav, #search-seq-nav, #favgroup-nav {
|
#pool-nav, #search-seq-nav, #favgroup-nav {
|
||||||
li {
|
li {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
@@ -86,13 +86,19 @@ class PostPresenter < Presenter
|
|||||||
locals[:size] = nil
|
locals[:size] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if options[:recommended]
|
||||||
|
locals[:recommended] = options[:recommended].round(1)
|
||||||
|
else
|
||||||
|
locals[:recommended] = nil
|
||||||
|
end
|
||||||
|
|
||||||
ApplicationController.render(partial: "posts/partials/index/preview", locals: locals)
|
ApplicationController.render(partial: "posts/partials/index/preview", locals: locals)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.preview_class(post, highlight_score: nil, pool: nil, size: nil, similarity: nil, compact: nil, **options)
|
def self.preview_class(post, highlight_score: nil, pool: nil, size: nil, similarity: nil, recommended: nil, compact: nil, **options)
|
||||||
klass = ["post-preview"]
|
klass = ["post-preview"]
|
||||||
# klass << " large-cropped" if post.has_cropped? && options[:show_cropped]
|
# klass << " large-cropped" if post.has_cropped? && options[:show_cropped]
|
||||||
klass << "captioned" if pool || size || similarity
|
klass << "captioned" if pool || size || similarity || recommended
|
||||||
klass << "post-status-pending" if post.is_pending?
|
klass << "post-status-pending" if post.is_pending?
|
||||||
klass << "post-status-flagged" if post.is_flagged?
|
klass << "post-status-flagged" if post.is_flagged?
|
||||||
klass << "post-status-deleted" if post.is_deleted?
|
klass << "post-status-deleted" if post.is_deleted?
|
||||||
|
|||||||
@@ -32,4 +32,20 @@
|
|||||||
<%= link_to "#{similarity}%", iqdb_queries_path(post_id: post.id) %> similarity
|
<%= link_to "#{similarity}%", iqdb_queries_path(post_id: post.id) %> similarity
|
||||||
</p>
|
</p>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
|
|
||||||
|
<% if recommended -%>
|
||||||
|
<p class="desc recommended">
|
||||||
|
<%= link_to recommended_posts_path(search: { post_id: post.id }), class: "more-recommended-posts", "data-post-id": post.id do %>
|
||||||
|
<%= post.fav_count %>
|
||||||
|
|
||||||
|
<% if post.favorited_by?(CurrentUser.id) %>
|
||||||
|
<i class="fas fa-heart fa-xs"></i>
|
||||||
|
<% else %>
|
||||||
|
<i class="far fa-heart fa-xs"></i>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<br>more »
|
||||||
|
<% end %>
|
||||||
|
</p>
|
||||||
|
<% end -%>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
|
|||||||
Reference in New Issue
Block a user