Moved the tree counter node into it's own experimental area.
Added ItemList microdata to /forum/, /forums/, and /topics. Moved the meta description for /forums/ to the right place. Began revamping the Control Panel menu.
This commit is contained in:
parent
21999cd7c6
commit
ac9623ab6b
|
@ -245,20 +245,3 @@ func (counter *DefaultTopicViewCounter) Bump(topicID int) {
|
|||
counter.oddLock.Unlock()
|
||||
}
|
||||
}
|
||||
|
||||
type TreeCounterNode struct {
|
||||
Value int64
|
||||
Zero *TreeCounterNode
|
||||
One *TreeCounterNode
|
||||
Parent *TreeCounterNode
|
||||
}
|
||||
|
||||
// MEGA EXPERIMENTAL. Start from the right-most bits in the integer and move leftwards
|
||||
type TreeTopicViewCounter struct {
|
||||
zero *TreeCounterNode
|
||||
one *TreeCounterNode
|
||||
}
|
||||
|
||||
func (counter *TreeTopicViewCounter) Bump(topicID int64) {
|
||||
|
||||
}
|
||||
|
|
|
@ -125,6 +125,7 @@ type PanelPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
ItemList []interface{}
|
||||
Something interface{}
|
||||
}
|
||||
|
@ -144,6 +145,7 @@ type PanelDashboardPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
GridItems []GridElement
|
||||
}
|
||||
|
||||
|
@ -152,6 +154,7 @@ type PanelThemesPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
PrimaryThemes []*Theme
|
||||
VariantThemes []*Theme
|
||||
}
|
||||
|
@ -161,6 +164,7 @@ type PanelUserPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
ItemList []User
|
||||
PageList []int
|
||||
Page int
|
||||
|
@ -172,6 +176,7 @@ type PanelGroupPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
ItemList []GroupAdmin
|
||||
PageList []int
|
||||
Page int
|
||||
|
@ -183,6 +188,7 @@ type PanelEditGroupPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
ID int
|
||||
Name string
|
||||
Tag string
|
||||
|
@ -200,6 +206,7 @@ type PanelEditForumPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
ID int
|
||||
Name string
|
||||
Desc string
|
||||
|
@ -208,11 +215,6 @@ type PanelEditForumPage struct {
|
|||
Groups []GroupForumPermPreset
|
||||
}
|
||||
|
||||
/*type NameLangPair struct {
|
||||
Name string
|
||||
LangStr string
|
||||
}*/
|
||||
|
||||
type NameLangToggle struct {
|
||||
Name string
|
||||
LangStr string
|
||||
|
@ -224,6 +226,7 @@ type PanelEditGroupPermsPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
ID int
|
||||
Name string
|
||||
LocalPerms []NameLangToggle
|
||||
|
@ -243,6 +246,7 @@ type PanelBackupPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
Backups []BackupItem
|
||||
}
|
||||
|
||||
|
@ -257,6 +261,7 @@ type PanelLogsPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
Logs []LogItem
|
||||
PageList []int
|
||||
Page int
|
||||
|
@ -268,6 +273,7 @@ type PanelDebugPage struct {
|
|||
CurrentUser User
|
||||
Header *HeaderVars
|
||||
Stats PanelStats
|
||||
Zone string
|
||||
Uptime string
|
||||
OpenConns int
|
||||
DBAdapter string
|
||||
|
|
|
@ -25,6 +25,7 @@ var ShutdownTasks []func() error
|
|||
var taskStmts TaskStmts
|
||||
var lastSync time.Time
|
||||
|
||||
// TODO: Add a TaskInits.Add
|
||||
func init() {
|
||||
lastSync = time.Now()
|
||||
DbInits.Add(func(acc *qgen.Accumulator) error {
|
||||
|
|
|
@ -141,7 +141,7 @@ func routePanel(w http.ResponseWriter, r *http.Request, user common.User) common
|
|||
gridElements = append(gridElements, common.GridElement{"dash-visitorsperweek", "2 visitors / week", 13, "grid_stat stat_disabled", "", "", "Coming Soon!" /*"The number of unique visitors we've had over the last 7 days"*/})
|
||||
gridElements = append(gridElements, common.GridElement{"dash-postsperuser", "5 posts / user / week", 14, "grid_stat stat_disabled", "", "", "Coming Soon!" /*"The average number of posts made by each active user over the past week"*/})
|
||||
|
||||
pi := common.PanelDashboardPage{common.GetTitlePhrase("panel-dashboard"), user, headerVars, stats, gridElements}
|
||||
pi := common.PanelDashboardPage{common.GetTitlePhrase("panel-dashboard"), user, headerVars, stats, "dashboard", gridElements}
|
||||
if common.PreRenderHooks["pre_render_panel_dashboard"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_dashboard", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -180,7 +180,7 @@ func routePanelForums(w http.ResponseWriter, r *http.Request, user common.User)
|
|||
forumList = append(forumList, fadmin)
|
||||
}
|
||||
}
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-forums"), user, headerVars, stats, forumList, nil}
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-forums"), user, headerVars, stats, "forums", forumList, nil}
|
||||
if common.PreRenderHooks["pre_render_panel_forums"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_forums", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -244,7 +244,7 @@ func routePanelForumsDelete(w http.ResponseWriter, r *http.Request, user common.
|
|||
confirmMsg := "Are you sure you want to delete the '" + forum.Name + "' forum?"
|
||||
yousure := common.AreYouSure{"/panel/forums/delete/submit/" + strconv.Itoa(fid), confirmMsg}
|
||||
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-delete-forum"), user, headerVars, stats, tList, yousure}
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-delete-forum"), user, headerVars, stats, "forums", tList, yousure}
|
||||
if common.PreRenderHooks["pre_render_panel_delete_forum"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_delete_forum", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -320,7 +320,7 @@ func routePanelForumsEdit(w http.ResponseWriter, r *http.Request, user common.Us
|
|||
gplist = append(gplist, common.GroupForumPermPreset{group, common.ForumPermsToGroupForumPreset(group.Forums[fid])})
|
||||
}
|
||||
|
||||
pi := common.PanelEditForumPage{common.GetTitlePhrase("panel-edit-forum"), user, headerVars, stats, forum.ID, forum.Name, forum.Desc, forum.Active, forum.Preset, gplist}
|
||||
pi := common.PanelEditForumPage{common.GetTitlePhrase("panel-edit-forum"), user, headerVars, stats, "forums", forum.ID, forum.Name, forum.Desc, forum.Active, forum.Preset, gplist}
|
||||
if common.PreRenderHooks["pre_render_panel_edit_forum"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_edit_forum", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -458,7 +458,7 @@ func routePanelSettings(w http.ResponseWriter, r *http.Request, user common.User
|
|||
settingList[setting.Name] = setting.Content
|
||||
}
|
||||
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-settings"), user, headerVars, stats, tList, settingList}
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-settings"), user, headerVars, stats, "settings", tList, settingList}
|
||||
if common.PreRenderHooks["pre_render_panel_settings"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_settings", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -504,7 +504,7 @@ func routePanelSettingEdit(w http.ResponseWriter, r *http.Request, user common.U
|
|||
}
|
||||
}
|
||||
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-edit-setting"), user, headerVars, stats, itemList, setting}
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-edit-setting"), user, headerVars, stats, "settings", itemList, setting}
|
||||
if common.PreRenderHooks["pre_render_panel_setting"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_setting", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -549,7 +549,7 @@ func routePanelWordFilters(w http.ResponseWriter, r *http.Request, user common.U
|
|||
}
|
||||
|
||||
var filterList = common.WordFilterBox.Load().(common.WordFilterMap)
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-word-filters"), user, headerVars, stats, tList, filterList}
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-word-filters"), user, headerVars, stats, "word-filters", tList, filterList}
|
||||
if common.PreRenderHooks["pre_render_panel_word_filters"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_word_filters", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -610,7 +610,7 @@ func routePanelWordFiltersEdit(w http.ResponseWriter, r *http.Request, user comm
|
|||
|
||||
_ = wfid
|
||||
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-edit-word-filter"), user, headerVars, stats, tList, nil}
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-edit-word-filter"), user, headerVars, stats, "word-filters", tList, nil}
|
||||
if common.PreRenderHooks["pre_render_panel_word_filters_edit"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_word_filters_edit", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -703,7 +703,7 @@ func routePanelPlugins(w http.ResponseWriter, r *http.Request, user common.User)
|
|||
pluginList = append(pluginList, plugin)
|
||||
}
|
||||
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-plugins"), user, headerVars, stats, pluginList, nil}
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-plugins"), user, headerVars, stats, "plugins", pluginList, nil}
|
||||
if common.PreRenderHooks["pre_render_panel_plugins"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_plugins", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -924,7 +924,7 @@ func routePanelUsers(w http.ResponseWriter, r *http.Request, user common.User) c
|
|||
}
|
||||
|
||||
pageList := common.Paginate(stats.Users, perPage, 5)
|
||||
pi := common.PanelUserPage{common.GetTitlePhrase("panel-users"), user, headerVars, stats, userList, pageList, page, lastPage}
|
||||
pi := common.PanelUserPage{common.GetTitlePhrase("panel-users"), user, headerVars, stats, "users", userList, pageList, page, lastPage}
|
||||
if common.PreRenderHooks["pre_render_panel_users"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_users", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -979,7 +979,7 @@ func routePanelUsersEdit(w http.ResponseWriter, r *http.Request, user common.Use
|
|||
groupList = append(groupList, group)
|
||||
}
|
||||
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-edit-user"), user, headerVars, stats, groupList, targetUser}
|
||||
pi := common.PanelPage{common.GetTitlePhrase("panel-edit-user"), user, headerVars, stats, "users", groupList, targetUser}
|
||||
if common.PreRenderHooks["pre_render_panel_edit_user"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_edit_user", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -1120,7 +1120,7 @@ func routePanelGroups(w http.ResponseWriter, r *http.Request, user common.User)
|
|||
//log.Printf("groupList: %+v\n", groupList)
|
||||
|
||||
pageList := common.Paginate(stats.Groups, perPage, 5)
|
||||
pi := common.PanelGroupPage{common.GetTitlePhrase("panel-groups"), user, headerVars, stats, groupList, pageList, page, lastPage}
|
||||
pi := common.PanelGroupPage{common.GetTitlePhrase("panel-groups"), user, headerVars, stats, "groups", groupList, pageList, page, lastPage}
|
||||
if common.PreRenderHooks["pre_render_panel_groups"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_groups", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -1179,7 +1179,7 @@ func routePanelGroupsEdit(w http.ResponseWriter, r *http.Request, user common.Us
|
|||
|
||||
disableRank := !user.Perms.EditGroupGlobalPerms || (group.ID == 6)
|
||||
|
||||
pi := common.PanelEditGroupPage{common.GetTitlePhrase("panel-edit-group"), user, headerVars, stats, group.ID, group.Name, group.Tag, rank, disableRank}
|
||||
pi := common.PanelEditGroupPage{common.GetTitlePhrase("panel-edit-group"), user, headerVars, stats, "groups", group.ID, group.Name, group.Tag, rank, disableRank}
|
||||
if common.PreRenderHooks["pre_render_panel_edit_group"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_edit_group", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -1257,7 +1257,7 @@ func routePanelGroupsEditPerms(w http.ResponseWriter, r *http.Request, user comm
|
|||
globalPerms = append(globalPerms, common.NameLangToggle{"ViewIPs", common.GetGlobalPermPhrase("ViewIPs"), group.Perms.ViewIPs})
|
||||
globalPerms = append(globalPerms, common.NameLangToggle{"UploadFiles", common.GetGlobalPermPhrase("UploadFiles"), group.Perms.UploadFiles})
|
||||
|
||||
pi := common.PanelEditGroupPermsPage{common.GetTitlePhrase("panel-edit-group"), user, headerVars, stats, group.ID, group.Name, localPerms, globalPerms}
|
||||
pi := common.PanelEditGroupPermsPage{common.GetTitlePhrase("panel-edit-group"), user, headerVars, stats, "groups", group.ID, group.Name, localPerms, globalPerms}
|
||||
if common.PreRenderHooks["pre_render_panel_edit_group_perms"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_edit_group_perms", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -1486,7 +1486,7 @@ func routePanelThemes(w http.ResponseWriter, r *http.Request, user common.User)
|
|||
|
||||
}
|
||||
|
||||
pi := common.PanelThemesPage{common.GetTitlePhrase("panel-themes"), user, headerVars, stats, pThemeList, vThemeList}
|
||||
pi := common.PanelThemesPage{common.GetTitlePhrase("panel-themes"), user, headerVars, stats, "themes", pThemeList, vThemeList}
|
||||
if common.PreRenderHooks["pre_render_panel_themes"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_themes", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -1603,7 +1603,7 @@ func routePanelBackups(w http.ResponseWriter, r *http.Request, user common.User,
|
|||
backupList = append(backupList, common.BackupItem{backupFile.Name(), backupFile.ModTime()})
|
||||
}
|
||||
|
||||
pi := common.PanelBackupPage{common.GetTitlePhrase("panel-backups"), user, headerVars, stats, backupList}
|
||||
pi := common.PanelBackupPage{common.GetTitlePhrase("panel-backups"), user, headerVars, stats, "backups", backupList}
|
||||
err = common.Templates.ExecuteTemplate(w, "panel-backups.html", pi)
|
||||
if err != nil {
|
||||
return common.InternalError(err, w, r)
|
||||
|
@ -1701,7 +1701,7 @@ func routePanelLogsMod(w http.ResponseWriter, r *http.Request, user common.User)
|
|||
}
|
||||
|
||||
pageList := common.Paginate(logCount, perPage, 5)
|
||||
pi := common.PanelLogsPage{common.GetTitlePhrase("panel-mod-logs"), user, headerVars, stats, logs, pageList, page, lastPage}
|
||||
pi := common.PanelLogsPage{common.GetTitlePhrase("panel-mod-logs"), user, headerVars, stats, "logs", logs, pageList, page, lastPage}
|
||||
if common.PreRenderHooks["pre_render_panel_mod_log"] != nil {
|
||||
if common.RunPreRenderHook("pre_render_panel_mod_log", w, r, &user, &pi) {
|
||||
return nil
|
||||
|
@ -1725,7 +1725,7 @@ func routePanelDebug(w http.ResponseWriter, r *http.Request, user common.User) c
|
|||
openConnCount := dbStats.OpenConnections
|
||||
// Disk I/O?
|
||||
|
||||
pi := common.PanelDebugPage{common.GetTitlePhrase("panel-debug"), user, headerVars, stats, uptime, openConnCount, dbAdapter}
|
||||
pi := common.PanelDebugPage{common.GetTitlePhrase("panel-debug"), user, headerVars, stats, "debug", uptime, openConnCount, dbAdapter}
|
||||
err := common.Templates.ExecuteTemplate(w, "panel-debug.html", pi)
|
||||
if err != nil {
|
||||
return common.InternalError(err, w, r)
|
||||
|
|
|
@ -303,7 +303,6 @@ func routeForum(w http.ResponseWriter, r *http.Request, user common.User, sfid s
|
|||
return common.InternalError(err, w, r)
|
||||
}
|
||||
headerVars.Zone = "view_forum"
|
||||
headerVars.MetaDesc = headerVars.Settings["meta_desc"].(string)
|
||||
|
||||
// Calculate the offset
|
||||
var offset int
|
||||
|
@ -390,6 +389,7 @@ func routeForums(w http.ResponseWriter, r *http.Request, user common.User) commo
|
|||
return ferr
|
||||
}
|
||||
headerVars.Zone = "forums"
|
||||
headerVars.MetaDesc = headerVars.Settings["meta_desc"].(string)
|
||||
|
||||
var err error
|
||||
var forumList []common.Forum
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
{{if ne .LastPage .Page}}<link rel="prerender" href="/forum/{{.Forum.ID}}?page={{add .Page 1}}" />
|
||||
<div id="nextFloat" class="next_button"><a class="next_link" aria-label="Go to the next page" rel="next" href="/forum/{{.Forum.ID}}?page={{add .Page 1}}">></a></div>{{end}}
|
||||
|
||||
<main>
|
||||
<main itemscope itemtype="http://schema.org/ItemList">
|
||||
<div id="forum_head_block" class="rowblock rowhead topic_list_title_block">
|
||||
<div class="rowitem forum_title{{if ne .CurrentUser.ID 0}} has_opt{{end}}">
|
||||
<h1>{{.Title}}</h1>
|
||||
<h1 itemprop="name">{{.Title}}</h1>
|
||||
</div>
|
||||
{{if ne .CurrentUser.ID 0}}
|
||||
{{if .CurrentUser.Perms.CreateTopic}}
|
||||
|
@ -74,7 +74,7 @@
|
|||
<span class="selector"></span>
|
||||
<a href="{{.Creator.Link}}"><img src="{{.Creator.Avatar}}" height="64" alt="{{.Creator.Name}}'s Avatar" title="{{.Creator.Name}}'s Avatar" /></a>
|
||||
<span class="topic_inner_left">
|
||||
<a class="rowtopic" href="{{.Link}}"><span>{{.Title}}</span></a>
|
||||
<a class="rowtopic" href="{{.Link}}" itemprop="itemListElement"><span>{{.Title}}</span></a>
|
||||
<br /><a class="rowsmall starter" href="{{.Creator.Link}}">{{.Creator.Name}}</a>
|
||||
{{/** TODO: Avoid the double '|' when both .IsClosed and .Sticky are set to true. We could probably do this with CSS **/}}
|
||||
{{if .IsClosed}}<span class="rowsmall topic_status_e topic_status_closed" title="Status: Closed"> | 🔒︎</span>{{end}}
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
{{template "header.html" . }}
|
||||
<main>
|
||||
<main itemscope itemtype="http://schema.org/ItemList">
|
||||
|
||||
<div class="rowblock opthead">
|
||||
<div class="rowitem"><h1>Forums</h1></div>
|
||||
<div class="rowitem"><h1 itemprop="name">Forums</h1></div>
|
||||
</div>
|
||||
<div class="rowblock forum_list">
|
||||
{{range .ItemList}}<div class="rowitem {{if (.Desc) or (.LastTopic.Title)}}datarow{{end}}">
|
||||
{{range .ItemList}}<div class="rowitem {{if (.Desc) or (.LastTopic.Title)}}datarow {{end}}"itemprop="itemListElement" itemscope
|
||||
itemtype="http://schema.org/ListItem">
|
||||
<span class="forum_left shift_left">
|
||||
<a href="{{.Link}}">{{.Name}}</a>
|
||||
<a href="{{.Link}}" itemprop="item">{{.Name}}</a>
|
||||
{{if .Desc}}
|
||||
<br /><span class="rowsmall">{{.Desc}}</span>
|
||||
<br /><span class="rowsmall" itemprop="description">{{.Desc}}</span>
|
||||
{{else}}
|
||||
<br /><span class="rowsmall" style="font-style: italic;">No description</span>
|
||||
{{end}}
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<nav class="colstack_left" aria-label="The control panel menu">
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="colstack panel_stack">
|
||||
<nav class="colstack_left" aria-label="The control panel menu">
|
||||
<div class="colstack_item colstack_head submenu_fallback">
|
||||
<div class="rowitem"><a href="/panel/logs/mod/">Logs</a></div>
|
||||
</div>
|
||||
<div class="colstack_item rowmenu">
|
||||
<div class="colstack_item rowmenu submenu_fallback">
|
||||
<div class="rowitem passive"><a href="/panel/logs/mod/">Moderation Logs</a></div>
|
||||
{{if .CurrentUser.Perms.ViewAdminLogs}}<div class="rowitem passive"><a>Administration Logs</a></div>{{end}}
|
||||
</div>
|
||||
{{template "panel-inner-menu.html" . }}
|
||||
</nav>
|
||||
<main class="colstack_right">
|
||||
</nav>
|
||||
<main class="colstack_right">
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="rowitem"><h1>Administration Logs</h1></div>
|
||||
</div>
|
||||
|
@ -37,7 +37,6 @@
|
|||
{{if ne .LastPage .Page}}<div class="pageitem"><a href="?page={{add .Page 1}}" aria-label="Next Page">Next</a></div>{{end}}
|
||||
</div>
|
||||
{{end}}
|
||||
</main>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
{{template "footer.html" . }}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
{{template "panel-menu.html" . }}
|
||||
<main class="colstack_right">
|
||||
<div class="colstack panel_stack">
|
||||
{{template "panel-menu.html" . }}
|
||||
<main class="colstack_right">
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="rowitem"><h1>Backups</h1></div>
|
||||
</div>
|
||||
|
@ -17,6 +17,6 @@
|
|||
<div class="rowitem">There aren't any backups available at this time.</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</main>
|
||||
</main>
|
||||
</div>
|
||||
{{template "footer.html" . }}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
{{template "panel-menu.html" . }}
|
||||
<main id="panel_dashboard_right" class="colstack_right">
|
||||
<div class="colstack_item colstack_head">
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
{{template "panel-menu.html" . }}
|
||||
<main id="panel_dashboard_right" class="colstack_right">
|
||||
<main id="panel_dashboard_right" class="colstack_right">
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="rowitem"><a>Debug</a></div>
|
||||
</div>
|
||||
|
@ -14,6 +14,6 @@
|
|||
<div class="grid_item grid_stat"><span>{{.OpenConns}}</span></div>
|
||||
<div class="grid_item grid_stat"><span>{{.DBAdapter}}</span></div>
|
||||
</div>
|
||||
</main>
|
||||
</main>
|
||||
</div>
|
||||
{{template "footer.html" . }}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{{template "header.html" . }}
|
||||
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
{{template "panel-menu.html" . }}
|
||||
<script>
|
||||
var form_vars = {'perm_preset': ['can_moderate','can_post','read_only','no_access','default','custom']};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{{template "header.html" . }}
|
||||
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
{{template "panel-menu.html" . }}
|
||||
<script>var form_vars = {
|
||||
'forum_active': ['Hide','Show'],
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
<nav class="colstack_left" aria-label="The control panel menu">
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="rowitem"><a href="/panel/groups/edit/{{.ID}}">Group Editor</a></div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
<nav class="colstack_left" aria-label="The control panel menu">
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="rowitem"><a href="/panel/groups/edit/{{.ID}}">Group Editor</a></div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
|
||||
{{template "panel-menu.html" . }}
|
||||
<main class="colstack_right">
|
||||
|
|
|
@ -20,9 +20,32 @@
|
|||
{{if .CurrentUser.Perms.ManageThemes}}<div class="rowitem passive">
|
||||
<a href="/panel/themes/">Themes</a> <a class="menu_stats" href="#">({{.Stats.Themes}})</a>
|
||||
</div>{{end}}
|
||||
</div>
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="rowitem"><a href="#">Events</a></div>
|
||||
</div>
|
||||
<div class="colstack_item rowmenu">
|
||||
<div class="rowitem passive">
|
||||
<a href="/panel/analytics/views/">Statistics</a>
|
||||
</div>
|
||||
{{if eq .Zone "analytics"}}
|
||||
<div class="rowitem passive submenu">
|
||||
<a href="/panel/analytics/posts/">Posts</a>
|
||||
</div>
|
||||
<div class="rowitem passive submenu">
|
||||
<a href="/panel/analytics/crawlers/">Crawlers</a>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="rowitem passive">
|
||||
<a href="/forum/1">Reports</a> <a class="menu_stats" href="#">({{.Stats.Reports}})</a>
|
||||
</div>
|
||||
<div class="rowitem passive">
|
||||
<a href="/panel/logs/mod/">Logs</a>
|
||||
</div>
|
||||
{{if eq .Zone "logs"}}
|
||||
<div class="rowitem passive submenu"><a href="/panel/logs/mod/">Moderators</a></div>
|
||||
{{if .CurrentUser.Perms.ViewAdminLogs}}<div class="rowitem passive submenu"><a>Administrators</a></div>{{end}}
|
||||
{{end}}
|
||||
</div>
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="rowitem"><a href="#">System</a></div>
|
||||
|
@ -34,9 +57,6 @@
|
|||
{{if .CurrentUser.IsSuperAdmin}}<div class="rowitem passive">
|
||||
<a href="/panel/backups/">Backups</a>
|
||||
</div>{{end}}
|
||||
<div class="rowitem passive">
|
||||
<a href="/panel/logs/mod/">Logs</a>
|
||||
</div>
|
||||
{{if .CurrentUser.IsAdmin}}<div class="rowitem passive">
|
||||
<a href="/panel/debug/">Debug</a>
|
||||
</div>{{end}}
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
|
||||
<nav class="colstack_left" aria-label="The control panel menu">
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="colstack panel_stack">
|
||||
<nav class="colstack_left" aria-label="The control panel menu">
|
||||
<div class="colstack_item colstack_head submenu_fallback">
|
||||
<div class="rowitem"><a href="/panel/logs/mod/">Logs</a></div>
|
||||
</div>
|
||||
<div class="colstack_item rowmenu">
|
||||
<div class="colstack_item rowmenu submenu_fallback">
|
||||
<div class="rowitem passive"><a href="/panel/logs/mod/">Moderation Logs</a></div>
|
||||
{{if .CurrentUser.Perms.ViewAdminLogs}}<div class="rowitem passive"><a>Administration Logs</a></div>{{end}}
|
||||
</div>
|
||||
{{template "panel-inner-menu.html" . }}
|
||||
</nav>
|
||||
<main class="colstack_right">
|
||||
</nav>
|
||||
<main class="colstack_right">
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="rowitem"><h1>Moderation Logs</h1></div>
|
||||
</div>
|
||||
|
@ -38,7 +37,6 @@
|
|||
{{if ne .LastPage .Page}}<div class="pageitem"><a href="?page={{add .Page 1}}" aria-label="Next Page">Next</a></div>{{end}}
|
||||
</div>
|
||||
{{end}}
|
||||
</main>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
{{template "footer.html" . }}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
|
||||
{{template "panel-menu.html" . }}
|
||||
<main class="colstack_right">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
|
||||
{{template "panel-menu.html" . }}
|
||||
<main class="colstack_right">
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
|
||||
<div class="colstack panel_stack">
|
||||
{{template "panel-menu.html" . }}
|
||||
<main class="colstack_right">
|
||||
<main class="colstack_right">
|
||||
<div class="colstack_item colstack_head">
|
||||
<div class="rowitem"><h1>Settings</h1></div>
|
||||
</div>
|
||||
|
@ -14,7 +13,6 @@
|
|||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</main>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
{{template "footer.html" . }}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
|
||||
<nav class="colstack_left" aria-label="The control panel menu">
|
||||
<div class="colstack_item colstack_head">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
|
||||
{{template "panel-menu.html" . }}
|
||||
<main class="colstack_right">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
|
||||
{{template "panel-menu.html" . }}
|
||||
<main class="colstack_right">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{template "header.html" . }}
|
||||
<div class="colstack">
|
||||
<div class="colstack panel_stack">
|
||||
|
||||
{{template "panel-menu.html" . }}
|
||||
<main class="colstack_right">
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{{template "header.html" . }}
|
||||
<main>
|
||||
<main itemscope itemtype="http://schema.org/ItemList">
|
||||
|
||||
<div class="rowblock rowhead topic_list_title_block">
|
||||
<div class="rowitem topic_list_title{{if ne .CurrentUser.ID 0}} has_opt{{end}}"><h1>All Topics</h1></div>
|
||||
<div class="rowitem topic_list_title{{if ne .CurrentUser.ID 0}} has_opt{{end}}"><h1 itemprop="name">All Topics</h1></div>
|
||||
{{if ne .CurrentUser.ID 0}}
|
||||
{{if .ForumList}}
|
||||
<div class="pre_opt auto_hide"></div>
|
||||
|
@ -74,7 +74,7 @@
|
|||
<span class="selector"></span>
|
||||
<a href="{{.Creator.Link}}"><img src="{{.Creator.Avatar}}" height="64" alt="{{.Creator.Name}}'s Avatar" title="{{.Creator.Name}}'s Avatar" /></a>
|
||||
<span class="topic_inner_left">
|
||||
<a class="rowtopic" href="{{.Link}}"><span>{{.Title}}</span></a> {{if .ForumName}}<a class="rowsmall parent_forum" href="{{.ForumLink}}">{{.ForumName}}</a>{{end}}
|
||||
<a class="rowtopic" href="{{.Link}}" itemprop="itemListElement"><span>{{.Title}}</span></a> {{if .ForumName}}<a class="rowsmall parent_forum" href="{{.ForumLink}}">{{.ForumName}}</a>{{end}}
|
||||
<br /><a class="rowsmall starter" href="{{.Creator.Link}}">{{.Creator.Name}}</a>
|
||||
{{/** TODO: Avoid the double '|' when both .IsClosed and .Sticky are set to true. We could probably do this with CSS **/}}
|
||||
{{if .IsClosed}}<span class="rowsmall topic_status_e topic_status_closed" title="Status: Closed"> | 🔒︎</span>{{end}}
|
||||
|
|
|
@ -68,7 +68,7 @@ body, #back {
|
|||
}
|
||||
.nav {
|
||||
padding-top: 16px;
|
||||
border-bottom: 2px solid var(--header-border-color);
|
||||
border-bottom: 1.5px solid var(--header-border-color);
|
||||
}
|
||||
|
||||
li {
|
||||
|
|
|
@ -1,3 +1,44 @@
|
|||
#back {
|
||||
padding-top: 0px;
|
||||
}
|
||||
#main {
|
||||
padding-left: 0px;
|
||||
}
|
||||
.colstack_left {
|
||||
background-color: hsl(0,0%,90%);
|
||||
}
|
||||
.colstack_left .colstack_head {
|
||||
margin-top: -1px;
|
||||
margin-bottom: 0px;
|
||||
margin-left: 0px;
|
||||
padding-bottom: 12px;
|
||||
padding-top: 12px;
|
||||
border-bottom: 1.5px solid var(--element-border-color);
|
||||
}
|
||||
.colstack_left .rowmenu .passive:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
.colstack_left .rowmenu .passive:last-child {
|
||||
border-bottom: 0.5px solid var(--element-border-color) !important;
|
||||
}
|
||||
/*.colstack_left > *:not(.colstack_head):last-child {
|
||||
border-bottom: 0.5px solid var(--element-border-color) !important;
|
||||
}*/
|
||||
.submenu {
|
||||
margin-left: 12px;
|
||||
}
|
||||
.submenu_fallback {
|
||||
display: none;
|
||||
}
|
||||
.colstack_right {
|
||||
margin-right: 14px;
|
||||
margin-top: 14px;
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
.footer {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.complex_rowlist {
|
||||
background-color: inherit !important;
|
||||
border: none !important;
|
||||
|
|
Loading…
Reference in New Issue