diff --git a/app/models/domain/post.rb b/app/models/domain/post.rb index 5eb81205..665c494e 100644 --- a/app/models/domain/post.rb +++ b/app/models/domain/post.rb @@ -144,6 +144,10 @@ class Domain::Post < ReduxApplicationRecord def title end + sig { abstract.returns(Integer) } + def num_post_files_for_view + end + sig { overridable.returns(String) } def title_for_view title || "(unknown)" diff --git a/app/models/domain/post/bluesky_post.rb b/app/models/domain/post/bluesky_post.rb index 28d015c1..3bdb3e58 100644 --- a/app/models/domain/post/bluesky_post.rb +++ b/app/models/domain/post/bluesky_post.rb @@ -57,6 +57,11 @@ class Domain::Post::BlueskyPost < Domain::Post ["bsky", :rkey] end + sig { override.returns(Integer) } + def num_post_files_for_view + self.files.group(:file_order).count.size + end + sig { override.returns(String) } def self.view_prefix "bsky" diff --git a/app/models/domain/post/e621_post.rb b/app/models/domain/post/e621_post.rb index 6426e92a..d520c822 100644 --- a/app/models/domain/post/e621_post.rb +++ b/app/models/domain/post/e621_post.rb @@ -47,6 +47,11 @@ class Domain::Post::E621Post < Domain::Post self.index_page_ids << log_entry.id end + sig { override.returns(Integer) } + def num_post_files_for_view + 1 + end + sig { override.returns([String, Symbol]) } def self.param_prefix_and_attribute ["e621", :e621_id] diff --git a/app/models/domain/post/fa_post.rb b/app/models/domain/post/fa_post.rb index 38447c4f..4251b215 100644 --- a/app/models/domain/post/fa_post.rb +++ b/app/models/domain/post/fa_post.rb @@ -50,6 +50,11 @@ class Domain::Post::FaPost < Domain::Post self.creator end + sig { override.returns(Integer) } + def num_post_files_for_view + 1 + end + sig { override.returns(T.nilable(T.any(String, Integer))) } def domain_id_for_view self.fa_id diff --git a/app/models/domain/post/inkbunny_post.rb b/app/models/domain/post/inkbunny_post.rb index 55c43e32..f6dd3a1b 100644 --- a/app/models/domain/post/inkbunny_post.rb +++ b/app/models/domain/post/inkbunny_post.rb @@ -135,4 +135,9 @@ class Domain::Post::InkbunnyPost < Domain::Post def num_favorites_for_view num_favs end + + sig { override.returns(Integer) } + def num_post_files_for_view + self.files.group(:file_order).count.size + end end diff --git a/app/models/domain/post/sofurry_post.rb b/app/models/domain/post/sofurry_post.rb index 8c2bb807..1ce59d6b 100644 --- a/app/models/domain/post/sofurry_post.rb +++ b/app/models/domain/post/sofurry_post.rb @@ -112,4 +112,10 @@ class Domain::Post::SofurryPost < Domain::Post def scanned_post_log_entry_for_view last_scan_log_entry end + + sig { override.returns(Integer) } + def num_post_files_for_view + # TODO - this might not be correct, but sofurry is still down + 1 + end end diff --git a/app/views/domain/posts/_as_gallery_item.html.erb b/app/views/domain/posts/_as_gallery_item.html.erb index 71440794..e7d21f47 100644 --- a/app/views/domain/posts/_as_gallery_item.html.erb +++ b/app/views/domain/posts/_as_gallery_item.html.erb @@ -1,10 +1,10 @@
<%= render "domain/posts/inline_postable_domain_link", post: post %>
-
+
<% if (thumbnail_file = gallery_file_for_post(post)) && (thumbnail_path = thumbnail_for_post_path(post)) %> <%= link_to domain_post_path(post) do %> <%= image_tag thumbnail_path, @@ -26,6 +26,12 @@ <% else %> No file available <% end %> + <% if post.num_post_files_for_view > 1 %> +
+ + <%= post.num_post_files_for_view %> +
+ <% end %>