From 799fc6223fbf1595d793edcf96bdcfb98b71e457 Mon Sep 17 00:00:00 2001 From: Toks Date: Tue, 7 May 2013 21:50:49 -0400 Subject: [PATCH] fixes #1286 --- app/logical/post_sets/post.rb | 4 ++++ app/presenters/post_set_presenters/post.rb | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/logical/post_sets/post.rb b/app/logical/post_sets/post.rb index 216194cc2..21db554ca 100644 --- a/app/logical/post_sets/post.rb +++ b/app/logical/post_sets/post.rb @@ -69,6 +69,10 @@ module PostSets tag_string =~ /\*/ end + def is_empty_search? + posts.count == 0 + end + def current_page [page.to_i, 1].max end diff --git a/app/presenters/post_set_presenters/post.rb b/app/presenters/post_set_presenters/post.rb index c24c9c7dc..6ebe62790 100644 --- a/app/presenters/post_set_presenters/post.rb +++ b/app/presenters/post_set_presenters/post.rb @@ -9,7 +9,9 @@ module PostSetPresenters end def related_tags - if post_set.is_pattern_search? + if post_set.is_empty_search? + suggested_tags + elsif post_set.is_pattern_search? pattern_tags elsif post_set.is_tag_subscription? post_set.tag_subscription_tags @@ -39,6 +41,12 @@ module PostSetPresenters Tag.name_matches(post_set.tag_string).all(:select => "name", :limit => Danbooru.config.tag_query_limit, :order => "post_count DESC").map(&:name) end + def suggested_tags + if post_set.tag_string.length >= 3 + Tag.name_matches("*#{post_set.tag_string}*").where("post_count > 0").all(:select => "name", :limit => Danbooru.config.tag_query_limit, :order => "post_count DESC").map(&:name) + end + end + def related_tags_for_group RelatedTagCalculator.calculate_from_sample_to_array(post_set.tag_string).map(&:first) end