hmn/src/templates/types.go

281 lines
4.6 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
CurrentUrl string
2021-05-11 22:53:23 +00:00
LoginPageUrl string
ProjectCSSUrl string
2021-03-26 03:33:00 +00:00
Project Project
User *User
Session *Session
2021-05-11 22:53:23 +00:00
2021-06-20 19:06:22 +00:00
IsProjectPage bool
Header Header
Footer Footer
MathjaxEnabled bool
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
}
type Session struct {
CSRFToken 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 {
2021-06-22 10:27:27 +00:00
Title string
Url string
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
2021-06-22 12:02:47 +00:00
UUID string
2021-06-22 09:50:40 +00:00
OwnerAvatarUrl string
OwnerName string
OwnerUrl string
Description template.HTML
DiscordMessageUrl string
Width int
Height int
AssetUrl string
2021-06-23 20:13:22 +00:00
MimeType string
2021-06-22 09:50:40 +00:00
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
}