From bd0bb658b8dd62baa215779e263a21cec6a89c5c Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 6 Nov 2018 14:33:04 -0600 Subject: [PATCH] Fix #3974: Pool galleries: link thumbnails to pools instead of posts. --- app/presenters/post_presenter.rb | 17 +++++++---------- .../post_set_presenters/pool_gallery.rb | 4 ++-- .../posts/partials/index/_preview.html.erb | 2 +- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/presenters/post_presenter.rb b/app/presenters/post_presenter.rb index 89d580998..5dabf92c6 100644 --- a/app/presenters/post_presenter.rb +++ b/app/presenters/post_presenter.rb @@ -27,20 +27,17 @@ class PostPresenter < Presenter "class" => preview_class(post, options).join(" ") }.merge(data_attributes(post)) - # TODO: rename path_prefix to controller - locals[:link_params] = { - "controller" => options[:path_prefix] || "posts", - "action" => "show", - "id" => post.id - } + locals[:link_target] = options[:link_target] || post + + locals[:link_params] = {} if options[:tags].present? && !CurrentUser.is_anonymous? locals[:link_params]["q"] = options[:tags] end - if options[:pool_id] || options[:pool] - locals[:link_params]["pool_id"] = options[:pool_id] || options[:pool].id + if options[:pool_id] + locals[:link_params]["pool_id"] = options[:pool_id] end - if options[:favgroup_id] || options[:favgroup] - locals[:link_params]["favgroup_id"] = options[:favgroup_id] || options[:favgroup].id + if options[:favgroup_id] + locals[:link_params]["favgroup_id"] = options[:favgroup_id] end locals[:tooltip] = "#{post.tag_string} rating:#{post.rating} score:#{post.score}" diff --git a/app/presenters/post_set_presenters/pool_gallery.rb b/app/presenters/post_set_presenters/pool_gallery.rb index 0123a754f..52fca8457 100644 --- a/app/presenters/post_set_presenters/pool_gallery.rb +++ b/app/presenters/post_set_presenters/pool_gallery.rb @@ -7,7 +7,7 @@ module PostSetPresenters @post_set = post_set end - def post_previews_html(template, options = {}) + def post_previews_html(template) html = "" if pools.empty? @@ -17,7 +17,7 @@ module PostSetPresenters pools.each do |pool| if pool.cover_post_id post = ::Post.find(pool.cover_post_id) - html << PostPresenter.preview(post, options.merge(:tags => @post_set.tag_string, :raw => @post_set.raw, :pool => pool, :show_deleted => true)) + html << PostPresenter.preview(post, link_target: pool, pool: pool, show_deleted: true) html << "\n" end end diff --git a/app/views/posts/partials/index/_preview.html.erb b/app/views/posts/partials/index/_preview.html.erb index 0d51864b1..9dda428ff 100644 --- a/app/views/posts/partials/index/_preview.html.erb +++ b/app/views/posts/partials/index/_preview.html.erb @@ -1,5 +1,5 @@ <%= content_tag(:article, article_attrs) do -%> - <%= content_tag(:a, href: url_for(link_params)) do -%> + <%= link_to polymorphic_path(link_target, link_params) do -%> <%= content_tag(:picture) do -%> <%= tag.source media: "(max-width: 660px)", srcset: cropped_url -%> <%= tag.source media: "(min-width: 660px)", srcset: preview_url -%>