From ab4af3c4104bfe61b43cf984bc43ca186fc0147f Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 7 Jan 2020 00:57:58 -0600 Subject: [PATCH] /related_tag: convert to table builder. --- app/logical/related_tag_query.rb | 14 +++++--------- app/views/related_tags/show.html.erb | 27 +++++++-------------------- test/unit/related_tag_query_test.rb | 10 +++++----- 3 files changed, 17 insertions(+), 34 deletions(-) diff --git a/app/logical/related_tag_query.rb b/app/logical/related_tag_query.rb index 9527541e8..e0df28606 100644 --- a/app/logical/related_tag_query.rb +++ b/app/logical/related_tag_query.rb @@ -18,11 +18,11 @@ class RelatedTagQuery if query =~ /\*/ pattern_matching_tags elsif category.present? - RelatedTagCalculator.frequent_tags_for_search(query, category: Tag.categories.value_for(category)).take(25).pluck(:name) + RelatedTagCalculator.frequent_tags_for_search(query, category: Tag.categories.value_for(category)).take(25) elsif query.present? - RelatedTagCalculator.similar_tags_for_search(query).take(25).map(&:name) + RelatedTagCalculator.similar_tags_for_search(query).take(25) else - [] + Tag.none end end @@ -54,15 +54,11 @@ class RelatedTagQuery other_wikis end - def tags_for_html - tags_with_categories(tags) - end - def serializable_hash(**options) { query: query, category: category, - tags: tags_with_categories(tags), + tags: tags_with_categories(tags.map(&:name)), wiki_page_tags: tags_with_categories(wiki_page_tags), other_wikis: other_wiki_pages.map { |wiki| [wiki.title, tags_with_categories(wiki.tags)] }.to_h } @@ -75,7 +71,7 @@ class RelatedTagQuery end def pattern_matching_tags - Tag.name_matches(query).where("post_count > 0").order("post_count desc").limit(50).sort_by {|x| x.name}.map(&:name) + Tag.nonempty.name_matches(query).order("post_count desc, name asc").limit(50) end def wiki_page diff --git a/app/views/related_tags/show.html.erb b/app/views/related_tags/show.html.erb index f8d7df9b8..cc5fb0fca 100644 --- a/app/views/related_tags/show.html.erb +++ b/app/views/related_tags/show.html.erb @@ -9,26 +9,13 @@ <% end %> <% if params.dig(:search, :query).present? %> -
- - - - - - - - <% @query.tags_for_html.each do |tag, category| %> - - - - <% end %> - -
Name
- <%= link_to_wiki "?", tag %> - <%= link_to(tag, posts_path(:tags => tag)) %> -
-
- <% end %> + <%= table_for @query.tags do |t| %> + <% t.column "Name" do |tag| %> + <%= link_to_wiki "?", tag.name, class: "tag-type-#{tag.category}" %> + <%= link_to tag.name, posts_path(tags: tag.name), class: "tag-type-#{tag.category}" %> + <% end %> + <% end %> + <% end %> diff --git a/test/unit/related_tag_query_test.rb b/test/unit/related_tag_query_test.rb index b2e3f06b8..2c6578083 100644 --- a/test/unit/related_tag_query_test.rb +++ b/test/unit/related_tag_query_test.rb @@ -37,7 +37,7 @@ class RelatedTagQueryTest < ActiveSupport::TestCase end should "work" do - assert_equal(["aaa", "bbb", "ccc"], @query.tags) + assert_equal(["aaa", "bbb", "ccc"], @query.tags.map(&:name)) end should "render the json" do @@ -51,7 +51,7 @@ class RelatedTagQueryTest < ActiveSupport::TestCase end should "work" do - assert_equal([], @query.tags) + assert_equal(true, @query.tags.empty?) end end @@ -68,7 +68,7 @@ class RelatedTagQueryTest < ActiveSupport::TestCase end should "take related tags from the consequent tag" do - assert_equal(%w[aaa bbb ccc], @query.tags) + assert_equal(%w[aaa bbb ccc], @query.tags.map(&:name)) end end @@ -78,7 +78,7 @@ class RelatedTagQueryTest < ActiveSupport::TestCase end should "work" do - assert_equal(["aaa"], @query.tags) + assert_equal(["aaa"], @query.tags.map(&:name)) end end @@ -118,7 +118,7 @@ class RelatedTagQueryTest < ActiveSupport::TestCase end should "find the related tags" do - assert_equal(%w(ccc), @query.tags) + assert_equal(["ccc"], @query.tags.map(&:name)) end end end