rename similar posts to recommended posts, refactor menu on posts/show
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -324,7 +324,7 @@ div#c-posts {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.similar-posts {
|
||||
.recommended-posts {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
|
||||
@@ -178,6 +178,7 @@
|
||||
article.post-preview {
|
||||
width: 33.3%;
|
||||
height: 33.3vw;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
img {
|
||||
|
||||
@@ -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]]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
module PostSets
|
||||
class Similar < PostSets::Post
|
||||
class Recommended < PostSets::Post
|
||||
def initialize(post)
|
||||
super("")
|
||||
@post = post
|
||||
@@ -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)
|
||||
|
||||
@@ -59,6 +59,7 @@ class User < ApplicationRecord
|
||||
enable_safe_mode
|
||||
disable_responsive_mode
|
||||
disable_post_tooltips
|
||||
enable_recommended_posts
|
||||
)
|
||||
|
||||
include Danbooru::HasBitFlags
|
||||
|
||||
7
app/views/posts/partials/index/_recommended.html.erb
Normal file
7
app/views/posts/partials/index/_recommended.html.erb
Normal 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>
|
||||
@@ -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>
|
||||
@@ -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? %>
|
||||
|
||||
@@ -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) %>
|
||||
|
||||
Reference in New Issue
Block a user