Display replies in single thread view
This commit is contained in:
parent
d73c7d5ac6
commit
17557a72a4
|
@ -100,9 +100,13 @@ group {
|
|||
get '/:thread_id', [message_id => qr/[0-9]+/], sub ($c) {
|
||||
my $thread_id = $c->param('thread_id');
|
||||
my $thread = $c->thread->get_thread_by_id($thread_id);
|
||||
my $replies = $c->reply->get_replies_by_thread_id($thread_id);
|
||||
|
||||
if (%$thread{'body'}) {
|
||||
$c->stash(thread => $thread)
|
||||
if (my $thread_body = %$thread{'body'}) {
|
||||
$c->stash(
|
||||
thread => $thread,
|
||||
replies => $replies
|
||||
)
|
||||
}
|
||||
else {
|
||||
$c->stash(
|
||||
|
|
|
@ -13,4 +13,21 @@ sub new($class, $pg, $pg_reference) {
|
|||
}, $class
|
||||
}
|
||||
|
||||
sub get_replies_by_thread_id($self, $thread_id) {
|
||||
$self->pg->db->query(<<~'END_SQL', $thread_id)->hashes()
|
||||
SELECT reply_id AS id,
|
||||
TO_CHAR(reply_date, 'Dy Mon DD HH:MI:SS AM TZ YYYY') AS date,
|
||||
reply_author AS author,
|
||||
reply_body AS body
|
||||
FROM replies
|
||||
WHERE thread_id = ?
|
||||
AND NOT hidden_status
|
||||
ORDER BY reply_date ASC;
|
||||
END_SQL
|
||||
}
|
||||
|
||||
sub exception($self, $exception) {
|
||||
say $exception
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
@ -92,4 +92,8 @@ sub get_thread_by_id($self, $thread_id) {
|
|||
END_SQL
|
||||
}
|
||||
|
||||
sub exception($self, $exception) {
|
||||
say $exception
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
@ -1,13 +1,24 @@
|
|||
% layout 'main';
|
||||
% title "View Thread - #$thread->{'id'}";
|
||||
<h2><%= title %></h2>
|
||||
<div class="threads">
|
||||
<% if (my $thread = $thread) { %>
|
||||
<% if (my $thread_body = %$thread{'body'}) { =%>
|
||||
<div class="threads">
|
||||
<article class="thread">
|
||||
<h3 class="title"><%= %$thread{'title'} %></h3>
|
||||
<h4 class="date"><%= %$thread{'date'} %></h4>
|
||||
<h5 class="author"><%= %$thread{'author'} %></h5>
|
||||
<p class="body"><%= %$thread{'body'} %></p>
|
||||
<p class="body"><%= $thread_body %></p>
|
||||
</article>
|
||||
</div>
|
||||
<% } =%>
|
||||
<% if (my $first_reply = @$replies[0]) { =%>
|
||||
<div class="replies">
|
||||
<% for my $reply (@$replies) { =%>
|
||||
<article class="reply">
|
||||
<h4 class="date"><%= %$reply{'date'} %></h4>
|
||||
<h5 class="author"><%= %$reply{'author'} %></h5>
|
||||
<p class="body"><%= %$reply{'body'} %></p>
|
||||
</article>
|
||||
<% } =%>
|
||||
</div>
|
||||
</div>
|
||||
<% } =%>
|
||||
|
|
Loading…
Reference in a new issue