rename similar posts to recommended posts, refactor menu on posts/show

This commit is contained in:
Albert Yi
2018-07-20 16:36:14 -07:00
parent b8b0f2628d
commit 9cfb629891
12 changed files with 40 additions and 24 deletions

View File

@@ -438,7 +438,7 @@
$("#comments").show();
$("#edit").hide();
$("#share").hide();
$("#similar").hide();
$("#recommended").hide();
} else if (e.target.hash === "#edit") {
$("#edit").show();
$("#comments").hide();
@@ -446,18 +446,18 @@
$("#post_tag_string").focus().selectEnd().height($("#post_tag_string")[0].scrollHeight);
$("#related-tags-button").trigger("click");
$("#find-artist-button").trigger("click");
$("#similar").hide();
} else if (e.target.hash === "#similar") {
$("#recommended").hide();
} else if (e.target.hash === "#recommended") {
$("#comments").hide();
$("#edit").hide();
$("#share").hide();
$("#similar").show();
$("#recommended").show();
} else {
$("#edit").hide();
$("#comments").hide();
$("#share").show();
addthis.init();
$("#similar").hide();
$("#recommended").hide();
}
$("#post-sections li").removeClass("active");
@@ -465,11 +465,14 @@
e.preventDefault();
});
$("#post-sections li:first-child").addClass("active");
$("#notes").hide();
$("#edit").hide();
if ($("#similar").length) {
if ($("#recommended").data("available")) {
$("#post-sections li:first-child").addClass("active");
$("#comments").hide();
} else {
$("#post-sections li:nth-child(2)").addClass("active");
$("#recommended").hide();
}
}

View File

@@ -324,7 +324,7 @@ div#c-posts {
font-weight: bold;
}
.similar-posts {
.recommended-posts {
margin-top: 1em;
}

View File

@@ -178,6 +178,7 @@
article.post-preview {
width: 33.3%;
height: 33.3vw;
overflow: hidden;
}
img {

View File

@@ -96,6 +96,7 @@ class UsersController < ApplicationController
disable_categorized_saved_searches disable_tagged_filenames
enable_recent_searches disable_cropped_thumbnails disable_mobile_gestures
enable_safe_mode disable_responsive_mode disable_post_tooltips
enable_recommended_posts
]
permitted_params += [dmail_filter_attributes: %i[id words]]

View File

@@ -281,6 +281,10 @@ class AnonymousUser
false
end
def enable_recommended_posts?
false
end
User::Roles.reject {|r| r == :anonymous}.each do |name|
define_method("is_#{name}?") do
false

View File

@@ -1,5 +1,5 @@
module PostSets
class Similar < PostSets::Post
class Recommended < PostSets::Post
def initialize(post)
super("")
@post = post

View File

@@ -1,12 +1,14 @@
module RecommenderService
extend self
SCORE_THRESHOLD = 10
def enabled?
Danbooru.config.recommender_server.present?
end
def available?(post)
enabled? && post.created_at > 6.months.ago && post.score >= 10
enabled? && CurrentUser.enable_recommended_posts? && post.created_at > Date.civil(2018, 1, 1) #&& post.score >= SCORE_THRESHOLD
end
def similar(post)

View File

@@ -59,6 +59,7 @@ class User < ApplicationRecord
enable_safe_mode
disable_responsive_mode
disable_post_tooltips
enable_recommended_posts
)
include Danbooru::HasBitFlags

View File

@@ -0,0 +1,7 @@
<div class="recommended-posts">
<p><em>You might also like:</em></p>
<section class="user-disable-cropped-<%= Danbooru.config.enable_image_cropping && CurrentUser.user.disable_cropped_thumbnails? %>">
<%= PostSets::Recommended.new(post).presenter.post_previews_html(self) %>
</section>
</div>

View File

@@ -1,7 +0,0 @@
<div class="similar-posts">
<p><em>You might also like:</em></p>
<section>
<%= PostSets::Similar.new(post).presenter.post_previews_html(self) %>
</section>
</div>

View File

@@ -87,8 +87,8 @@
<% end %>
<menu id="post-sections">
<% if RecommenderService.available?(@post) %>
<li><a href="#similar">Similar</a></li>
<% if RecommenderService.enabled? %>
<li><a href="#recommended">Recommended</a></li>
<% end %>
<li><a href="#comments">Comments</a></li>
@@ -100,11 +100,13 @@
<li><a href="#share">Share</a></li>
</menu>
<% if RecommenderService.available?(@post) %>
<section id="similar">
<%= render "posts/partials/index/similar", post: @post %>
</section>
<% end %>
<section id="recommended" data-available="<%= RecommenderService.available?(@post) %>">
<% if RecommenderService.available?(@post) %>
<%= render "posts/partials/index/recommended", post: @post %>
<% else %>
<p><em>Not enough data available</em></p>
<% end %>
</section>
<section id="comments">
<% if !CurrentUser.user.is_builder? %>

View File

@@ -82,6 +82,8 @@
<%= f.input :disable_cropped_thumbnails, :as => :select, :collection => [["No", "false"], ["Yes", "true"]], :include_blank => false %>
<%= f.input :enable_recommended_posts, :as => :select, :collection => [["No", "false"], ["Yes", "true"]], :include_blank => false %>
<div class="input text optional field_with_hint">
<label class="text optional" for="user_dmail_filter_attributes_words">Dmail filter</label>
<%= hidden_field_tag "user[dmail_filter_attributes][id]", @user.dmail_filter.try(:id) %>