package views
import (
"fmt"
"gitrepo.ru/neonxp/gorum/models"
"gitrepo.ru/neonxp/gorum/utils"
"strconv"
)
templ Node(node *models.Node, topics []*models.Node, nodes []*models.Node) {
@Layout(node.Parent) {
switch node.Type {
case models.TopicType:
{ node.Text }
case models.PostType:
Пост
@Post(node, 0, false)
}
if len(topics) != 0 {
Тема |
Тем/Ответов |
Дата |
Автор |
for _, n := range topics {
@Topic(n)
}
}
if len(nodes) == 0 {
Постов нет
}
for _, n := range nodes {
@Post(n, level(node), true)
}
if isAuthorized(ctx) {
@NewPostForm(node)
} else {
Войдите чтобы ответить в тему.
}
}
}
templ Topic(n *models.Node) {
{ n.Text }
|
{ strconv.Itoa(len(n.Children)) }
|
{ utils.FormatDate(n.CreatedAt) }
|
{ n.Author.Username }
|
}
css levelStyle(level int) {
margin-left: { fmt.Sprintf("%dem", level) };
}
templ Post(n *models.Node, level int, withFooter bool) {
@templ.Raw(utils.MarkdownToHTML(n.Text))
if withFooter {
}
}
func level(node *models.Node) int {
if node.Type == models.PostType {
return 1
}
return 0
}