hmn/src/templates/types.go

273 lines
4.5 KiB
Go
Raw Normal View History

2021-03-14 20:49:58 +00:00
package templates
import (
"html/template"
"time"
)
2021-04-22 23:02:50 +00:00
2021-03-14 20:49:58 +00:00
type BaseData struct {
Title string
CanonicalLink string
OpenGraphItems []OpenGraphItem
BackgroundImage BackgroundImage
Theme string
BodyClasses []string
Breadcrumbs []Breadcrumb
2021-03-26 03:33:00 +00:00
2021-05-11 22:53:23 +00:00
LoginPageUrl string
ProjectCSSUrl string
2021-03-26 03:33:00 +00:00
Project Project
User *User
2021-05-11 22:53:23 +00:00
2021-06-06 23:48:43 +00:00
IsProjectPage bool
Header Header
Footer Footer
2021-05-11 22:53:23 +00:00
}
type Header struct {
AdminUrl string
2021-06-22 09:50:40 +00:00
UserSettingsUrl string
2021-05-11 22:53:23 +00:00
LoginActionUrl string
LogoutActionUrl string
RegisterUrl string
HMNHomepageUrl string
ProjectHomepageUrl string
2021-06-06 23:48:43 +00:00
ProjectIndexUrl string
2021-05-11 22:53:23 +00:00
BlogUrl string
ForumsUrl string
WikiUrl string
LibraryUrl string
ManifestoUrl string
EpisodeGuideUrl string
EditUrl string
SearchActionUrl string
}
type Footer struct {
HomepageUrl string
AboutUrl string
ManifestoUrl string
CodeOfConductUrl string
CommunicationGuidelinesUrl string
ProjectIndexUrl string
ForumsUrl string
ContactUrl string
SitemapUrl string
2021-03-14 20:49:58 +00:00
}
2021-04-22 23:02:50 +00:00
type Thread struct {
Title string
2021-04-29 04:52:27 +00:00
Locked bool
Sticky bool
2021-04-22 23:02:50 +00:00
}
type Post struct {
ID int
Url string
DeleteUrl string
EditUrl string
ReplyUrl string
QuoteUrl string
Preview string
ReadOnly bool
Author *User
Content template.HTML
PostDate time.Time
Editor *User
EditDate time.Time
EditIP string
EditReason string
2021-04-23 04:07:44 +00:00
IP string
}
2021-03-18 01:25:06 +00:00
type Project struct {
2021-06-06 23:48:43 +00:00
Name string
Subdomain string
Color1 string
Color2 string
Url string
Blurb string
ParsedDescription template.HTML
Owners []User
Logo string
2021-06-06 23:48:43 +00:00
LifecycleBadgeClass string
LifecycleString string
2021-03-18 01:25:06 +00:00
IsHMN bool
HasBlog bool
HasForum bool
HasWiki bool
HasLibrary bool
UUID string
DateApproved time.Time
2021-03-18 01:25:06 +00:00
}
2021-03-26 03:33:00 +00:00
type User struct {
ID int
2021-03-26 03:33:00 +00:00
Username string
Email string
IsSuperuser bool
IsStaff bool
2021-04-17 00:01:13 +00:00
2021-04-22 23:02:50 +00:00
Name string
Blurb string
Bio string
2021-04-22 23:02:50 +00:00
Signature string
2021-06-22 09:50:40 +00:00
DateJoined time.Time
2021-04-22 23:02:50 +00:00
AvatarUrl string
ProfileUrl string
2021-04-17 00:01:13 +00:00
DarkTheme bool
Timezone string
ProfileColor1 string
ProfileColor2 string
CanEditLibrary bool
DiscordSaveShowcase bool
DiscordDeleteSnippetOnMessageDelete bool
2021-03-26 03:33:00 +00:00
}
2021-06-22 09:50:40 +00:00
type Link struct {
Key string
ServiceName string
ServiceUserData string
Name string
Value string
}
2021-03-14 20:49:58 +00:00
type OpenGraphItem struct {
Property string
Name string
Value string
}
type BackgroundImage struct {
Url string
Size string // A valid CSS background-size value
}
2021-04-22 23:02:50 +00:00
type PostType int
const (
PostTypeUnknown PostType = iota
PostTypeBlogPost
PostTypeBlogComment
PostTypeForumThread
PostTypeForumReply
PostTypeWikiCreate
PostTypeWikiTalk
PostTypeWikiEdit
PostTypeLibraryComment
)
2021-04-22 23:02:50 +00:00
// Data from post_list_item.html
type PostListItem struct {
Title string
Url string
UUID string
2021-04-22 23:02:50 +00:00
Breadcrumbs []Breadcrumb
PostType PostType
PostTypePrefix string
User User
Date time.Time
Unread bool
Classes string
Preview string
LastEditDate time.Time
}
// Data from thread_list_item.html
type ThreadListItem struct {
Title string
Url string
Breadcrumbs []Breadcrumb
FirstUser User
FirstDate time.Time
LastUser User
LastDate time.Time
Unread bool
Classes string
Content string
2021-04-22 23:02:50 +00:00
}
2021-06-22 09:50:40 +00:00
type TimelineType int
const (
TimelineTypeUnknown TimelineType = iota
TimelineTypeForumThread
TimelineTypeForumReply
TimelineTypeBlogPost
TimelineTypeBlogComment
TimelineTypeWikiCreate
TimelineTypeWikiEdit
TimelineTypeWikiTalk
TimelineTypeLibraryComment
TimelineTypeSnippetImage
TimelineTypeSnippetVideo
TimelineTypeSnippetAudio
TimelineTypeSnippetYoutube
)
type TimelineItem struct {
Type TimelineType
TypeTitle string
Class string
Date time.Time
Url string
OwnerAvatarUrl string
OwnerName string
OwnerUrl string
Description template.HTML
DiscordMessageUrl string
Width int
Height int
AssetUrl string
YoutubeID string
Title string
Breadcrumbs []Breadcrumb
}
2021-06-06 23:48:43 +00:00
type ProjectCardData struct {
Project *Project
Classes string
}
2021-04-22 23:02:50 +00:00
type Breadcrumb struct {
Name, Url string
Current bool
2021-04-22 23:02:50 +00:00
}
2021-04-25 19:33:22 +00:00
type Pagination struct {
Current int
Total int
FirstUrl string
LastUrl string
PreviousUrl string
NextUrl string
}