From 8dcc6ae4ee418cdfdc60c76709ad03b4814fb83a Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Sat, 4 Jun 2022 16:02:25 +0200 Subject: KB66 Add comment count to post header. Change-Id: I98fd99327fdfebaddfebe3541e6b1ccb1d78fe3c --- .../java/eu/mulk/mulkcms2/benki/posts/Post.java | 21 +++++++++++---------- src/main/resources/META-INF/resources/cms2/base.css | 4 ++-- .../resources/templates/PostResource/postList.html | 10 ++++++++++ src/main/resources/templates/tags/commentBox.html | 2 +- 4 files changed, 24 insertions(+), 13 deletions(-) (limited to 'src/main') diff --git a/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java b/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java index d3e7712..1ddffa8 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java @@ -44,10 +44,12 @@ import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.MapKey; import javax.persistence.OneToMany; +import javax.persistence.OrderBy; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import org.hibernate.annotations.Type; import org.hibernate.annotations.TypeDef; +import org.hibernate.annotations.Where; @Entity @Table(name = "posts", schema = "benki") @@ -113,6 +115,12 @@ public abstract class Post> extends PanacheEntityBase { @JsonbTransient public Collection referrers; + @ManyToMany(mappedBy = "referees") + @OrderBy("date DESC") + @Where(clause = "scope = 'comment'") + @JsonbTransient + public Collection comments; + @OneToMany( mappedBy = "post", fetch = FetchType.LAZY, @@ -216,6 +224,9 @@ public abstract class Post> extends PanacheEntityBase { cb = cb.where("post.scope").eq(Scope.top_level); + cb = cb.leftJoinFetch("post.comments", "comment"); + cb = cb.fetch("comment.texts"); + return cb; } @@ -393,16 +404,6 @@ public abstract class Post> extends PanacheEntityBase { } } - public Collection getComments() { - return referrers.stream() - .filter(l -> l.scope == Scope.comment) - .sorted( - Comparator.comparing( - (LazychatMessage l) -> Objects.requireNonNullElse(l.date, OffsetDateTime.MIN)) - .reversed()) - .toList(); - } - public enum Visibility { PUBLIC, SEMIPRIVATE, diff --git a/src/main/resources/META-INF/resources/cms2/base.css b/src/main/resources/META-INF/resources/cms2/base.css index d68e07e..14d4f7a 100644 --- a/src/main/resources/META-INF/resources/cms2/base.css +++ b/src/main/resources/META-INF/resources/cms2/base.css @@ -323,7 +323,7 @@ a.bookmark-title { color: #555; } -.post-self-link, .comment-self-link { +.post-self-link, .comment-self-link, .comment-box-self-link { padding-left: 5px; padding-right: 5px; } @@ -379,7 +379,7 @@ article.lazychat-message > header, .comment-info { line-height: 1em; } -a.post-link, a.comment-link { +a.post-link, a.comment-link, a.comment-box-link { text-decoration: none; } diff --git a/src/main/resources/templates/PostResource/postList.html b/src/main/resources/templates/PostResource/postList.html index 2f932ec..8c66e1d 100644 --- a/src/main/resources/templates/PostResource/postList.html +++ b/src/main/resources/templates/PostResource/postList.html @@ -66,6 +66,11 @@ # + {#if post.comments.size() > 0} + + ({post.comments.size()}) + + {/if}

🔖 {post.title}

. @@ -103,6 +108,11 @@
# + {#if post.comments.size() > 0} + + ({post.comments.size()}) + + {/if} diff --git a/src/main/resources/templates/tags/commentBox.html b/src/main/resources/templates/tags/commentBox.html index 40cec4a..abe73f5 100644 --- a/src/main/resources/templates/tags/commentBox.html +++ b/src/main/resources/templates/tags/commentBox.html @@ -1,7 +1,7 @@ {@java.lang.Integer postId} {@java.util.List comments} -
+
-- cgit v1.2.3