rename similar posts to recommended posts, refactor menu on posts/show
This commit is contained in:
@@ -438,7 +438,7 @@
|
|||||||
$("#comments").show();
|
$("#comments").show();
|
||||||
$("#edit").hide();
|
$("#edit").hide();
|
||||||
$("#share").hide();
|
$("#share").hide();
|
||||||
$("#similar").hide();
|
$("#recommended").hide();
|
||||||
} else if (e.target.hash === "#edit") {
|
} else if (e.target.hash === "#edit") {
|
||||||
$("#edit").show();
|
$("#edit").show();
|
||||||
$("#comments").hide();
|
$("#comments").hide();
|
||||||
@@ -446,18 +446,18 @@
|
|||||||
$("#post_tag_string").focus().selectEnd().height($("#post_tag_string")[0].scrollHeight);
|
$("#post_tag_string").focus().selectEnd().height($("#post_tag_string")[0].scrollHeight);
|
||||||
$("#related-tags-button").trigger("click");
|
$("#related-tags-button").trigger("click");
|
||||||
$("#find-artist-button").trigger("click");
|
$("#find-artist-button").trigger("click");
|
||||||
$("#similar").hide();
|
$("#recommended").hide();
|
||||||
} else if (e.target.hash === "#similar") {
|
} else if (e.target.hash === "#recommended") {
|
||||||
$("#comments").hide();
|
$("#comments").hide();
|
||||||
$("#edit").hide();
|
$("#edit").hide();
|
||||||
$("#share").hide();
|
$("#share").hide();
|
||||||
$("#similar").show();
|
$("#recommended").show();
|
||||||
} else {
|
} else {
|
||||||
$("#edit").hide();
|
$("#edit").hide();
|
||||||
$("#comments").hide();
|
$("#comments").hide();
|
||||||
$("#share").show();
|
$("#share").show();
|
||||||
addthis.init();
|
addthis.init();
|
||||||
$("#similar").hide();
|
$("#recommended").hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#post-sections li").removeClass("active");
|
$("#post-sections li").removeClass("active");
|
||||||
@@ -465,11 +465,14 @@
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#post-sections li:first-child").addClass("active");
|
|
||||||
$("#notes").hide();
|
$("#notes").hide();
|
||||||
$("#edit").hide();
|
$("#edit").hide();
|
||||||
if ($("#similar").length) {
|
if ($("#recommended").data("available")) {
|
||||||
|
$("#post-sections li:first-child").addClass("active");
|
||||||
$("#comments").hide();
|
$("#comments").hide();
|
||||||
|
} else {
|
||||||
|
$("#post-sections li:nth-child(2)").addClass("active");
|
||||||
|
$("#recommended").hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -324,7 +324,7 @@ div#c-posts {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.similar-posts {
|
.recommended-posts {
|
||||||
margin-top: 1em;
|
margin-top: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -178,6 +178,7 @@
|
|||||||
article.post-preview {
|
article.post-preview {
|
||||||
width: 33.3%;
|
width: 33.3%;
|
||||||
height: 33.3vw;
|
height: 33.3vw;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ class UsersController < ApplicationController
|
|||||||
disable_categorized_saved_searches disable_tagged_filenames
|
disable_categorized_saved_searches disable_tagged_filenames
|
||||||
enable_recent_searches disable_cropped_thumbnails disable_mobile_gestures
|
enable_recent_searches disable_cropped_thumbnails disable_mobile_gestures
|
||||||
enable_safe_mode disable_responsive_mode disable_post_tooltips
|
enable_safe_mode disable_responsive_mode disable_post_tooltips
|
||||||
|
enable_recommended_posts
|
||||||
]
|
]
|
||||||
|
|
||||||
permitted_params += [dmail_filter_attributes: %i[id words]]
|
permitted_params += [dmail_filter_attributes: %i[id words]]
|
||||||
|
|||||||
@@ -281,6 +281,10 @@ class AnonymousUser
|
|||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def enable_recommended_posts?
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
User::Roles.reject {|r| r == :anonymous}.each do |name|
|
User::Roles.reject {|r| r == :anonymous}.each do |name|
|
||||||
define_method("is_#{name}?") do
|
define_method("is_#{name}?") do
|
||||||
false
|
false
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
module PostSets
|
module PostSets
|
||||||
class Similar < PostSets::Post
|
class Recommended < PostSets::Post
|
||||||
def initialize(post)
|
def initialize(post)
|
||||||
super("")
|
super("")
|
||||||
@post = post
|
@post = post
|
||||||
@@ -1,12 +1,14 @@
|
|||||||
module RecommenderService
|
module RecommenderService
|
||||||
extend self
|
extend self
|
||||||
|
|
||||||
|
SCORE_THRESHOLD = 10
|
||||||
|
|
||||||
def enabled?
|
def enabled?
|
||||||
Danbooru.config.recommender_server.present?
|
Danbooru.config.recommender_server.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
def available?(post)
|
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
|
end
|
||||||
|
|
||||||
def similar(post)
|
def similar(post)
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ class User < ApplicationRecord
|
|||||||
enable_safe_mode
|
enable_safe_mode
|
||||||
disable_responsive_mode
|
disable_responsive_mode
|
||||||
disable_post_tooltips
|
disable_post_tooltips
|
||||||
|
enable_recommended_posts
|
||||||
)
|
)
|
||||||
|
|
||||||
include Danbooru::HasBitFlags
|
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 %>
|
<% end %>
|
||||||
|
|
||||||
<menu id="post-sections">
|
<menu id="post-sections">
|
||||||
<% if RecommenderService.available?(@post) %>
|
<% if RecommenderService.enabled? %>
|
||||||
<li><a href="#similar">Similar</a></li>
|
<li><a href="#recommended">Recommended</a></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<li><a href="#comments">Comments</a></li>
|
<li><a href="#comments">Comments</a></li>
|
||||||
@@ -100,11 +100,13 @@
|
|||||||
<li><a href="#share">Share</a></li>
|
<li><a href="#share">Share</a></li>
|
||||||
</menu>
|
</menu>
|
||||||
|
|
||||||
<% if RecommenderService.available?(@post) %>
|
<section id="recommended" data-available="<%= RecommenderService.available?(@post) %>">
|
||||||
<section id="similar">
|
<% if RecommenderService.available?(@post) %>
|
||||||
<%= render "posts/partials/index/similar", post: @post %>
|
<%= render "posts/partials/index/recommended", post: @post %>
|
||||||
</section>
|
<% else %>
|
||||||
<% end %>
|
<p><em>Not enough data available</em></p>
|
||||||
|
<% end %>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section id="comments">
|
<section id="comments">
|
||||||
<% if !CurrentUser.user.is_builder? %>
|
<% 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 :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">
|
<div class="input text optional field_with_hint">
|
||||||
<label class="text optional" for="user_dmail_filter_attributes_words">Dmail filter</label>
|
<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) %>
|
<%= hidden_field_tag "user[dmail_filter_attributes][id]", @user.dmail_filter.try(:id) %>
|
||||||
|
|||||||
Reference in New Issue
Block a user