2021-09-01 18:25:09 +00:00
|
|
|
package website
|
|
|
|
|
|
|
|
import (
|
|
|
|
"git.handmade.network/hmn/hmn/src/hmnurl"
|
|
|
|
"git.handmade.network/hmn/hmn/src/models"
|
|
|
|
"git.handmade.network/hmn/hmn/src/templates"
|
|
|
|
)
|
|
|
|
|
2021-11-10 04:11:39 +00:00
|
|
|
func ProjectBreadcrumb(projectUrlContext *hmnurl.UrlContext) templates.Breadcrumb {
|
2021-09-01 18:25:09 +00:00
|
|
|
return templates.Breadcrumb{
|
2021-11-10 04:11:39 +00:00
|
|
|
Name: projectUrlContext.ProjectName,
|
|
|
|
Url: projectUrlContext.BuildHomepage(),
|
2021-09-01 18:25:09 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-10 04:11:39 +00:00
|
|
|
func ForumBreadcrumb(projectUrlContext *hmnurl.UrlContext) templates.Breadcrumb {
|
2021-09-01 18:25:09 +00:00
|
|
|
return templates.Breadcrumb{
|
|
|
|
Name: "Forums",
|
2021-11-10 04:11:39 +00:00
|
|
|
Url: projectUrlContext.BuildForum(nil, 1),
|
2021-09-01 18:25:09 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-10 04:11:39 +00:00
|
|
|
func SubforumBreadcrumbs(projectUrlContext *hmnurl.UrlContext, lineageBuilder *models.SubforumLineageBuilder, subforumID int) []templates.Breadcrumb {
|
2021-09-01 18:25:09 +00:00
|
|
|
var result []templates.Breadcrumb
|
|
|
|
result = []templates.Breadcrumb{
|
2021-11-10 04:11:39 +00:00
|
|
|
ProjectBreadcrumb(projectUrlContext),
|
|
|
|
ForumBreadcrumb(projectUrlContext),
|
2021-09-01 18:25:09 +00:00
|
|
|
}
|
|
|
|
subforums := lineageBuilder.GetSubforumLineage(subforumID)
|
|
|
|
slugs := lineageBuilder.GetSubforumLineageSlugs(subforumID)
|
|
|
|
for i, subforum := range subforums {
|
|
|
|
result = append(result, templates.Breadcrumb{
|
|
|
|
Name: subforum.Name,
|
2021-11-10 04:11:39 +00:00
|
|
|
Url: projectUrlContext.BuildForum(slugs[0:i+1], 1),
|
2021-09-01 18:25:09 +00:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
return result
|
|
|
|
}
|
|
|
|
|
2021-11-10 04:11:39 +00:00
|
|
|
func ForumThreadBreadcrumbs(projectUrlContext *hmnurl.UrlContext, lineageBuilder *models.SubforumLineageBuilder, thread *models.Thread) []templates.Breadcrumb {
|
|
|
|
result := SubforumBreadcrumbs(projectUrlContext, lineageBuilder, *thread.SubforumID)
|
2021-09-01 18:25:09 +00:00
|
|
|
result = append(result, templates.Breadcrumb{
|
|
|
|
Name: thread.Title,
|
2021-11-10 04:11:39 +00:00
|
|
|
Url: projectUrlContext.BuildForumThread(lineageBuilder.GetSubforumLineageSlugs(*thread.SubforumID), thread.ID, thread.Title, 1),
|
2021-09-01 18:25:09 +00:00
|
|
|
})
|
|
|
|
return result
|
|
|
|
}
|
|
|
|
|
2021-11-10 04:11:39 +00:00
|
|
|
func BlogBreadcrumb(projectUrlContext *hmnurl.UrlContext) templates.Breadcrumb {
|
2021-09-01 18:25:09 +00:00
|
|
|
return templates.Breadcrumb{
|
|
|
|
Name: "Blog",
|
2021-11-10 04:11:39 +00:00
|
|
|
Url: projectUrlContext.BuildBlog(1),
|
2021-09-01 18:25:09 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-10 04:11:39 +00:00
|
|
|
func BlogThreadBreadcrumbs(projectUrlContext *hmnurl.UrlContext, thread *models.Thread) []templates.Breadcrumb {
|
2021-09-01 18:25:09 +00:00
|
|
|
result := []templates.Breadcrumb{
|
2021-11-10 04:11:39 +00:00
|
|
|
BlogBreadcrumb(projectUrlContext),
|
|
|
|
{Name: thread.Title, Url: projectUrlContext.BuildBlogThread(thread.ID, thread.Title)},
|
2021-09-01 18:25:09 +00:00
|
|
|
}
|
|
|
|
return result
|
|
|
|
}
|