mirror of
https://github.com/osmarks/mycorrhiza.git
synced 2024-10-30 03:36:16 +00:00
72 lines
2.6 KiB
Go
72 lines
2.6 KiB
Go
package admin
|
||
|
||
import (
|
||
"embed"
|
||
"github.com/bouncepaw/mycorrhiza/cfg"
|
||
"github.com/bouncepaw/mycorrhiza/user"
|
||
"github.com/bouncepaw/mycorrhiza/viewutil"
|
||
"github.com/gorilla/mux"
|
||
"net/http"
|
||
)
|
||
|
||
const adminTranslationRu = `
|
||
{{define "panel title"}}Панель админстратора{{end}}
|
||
{{define "panel safe section title"}}Безопасная секция{{end}}
|
||
{{define "panel link about"}}Об этой вики{{end}}
|
||
{{define "panel update header"}}Обновить ссылки в верхней панели{{end}}
|
||
{{define "panel link user list"}}Список пользователей{{end}}
|
||
{{define "panel users"}}Управление пользователями{{end}}
|
||
{{define "panel unsafe section title"}}Опасная секция{{end}}
|
||
{{define "panel shutdown"}}Выключить вики{{end}}
|
||
{{define "panel reindex hyphae"}}Переиндексировать гифы{{end}}
|
||
|
||
{{define "manage users"}}Управление пользователями{{end}}
|
||
{{define "create user"}}Создать пользователя{{end}}
|
||
{{define "reindex users"}}Переиндексировать пользователей{{end}}
|
||
{{define "name"}}Имя{{end}}
|
||
{{define "group"}}Группа{{end}}
|
||
{{define "registered at"}}Зарегистрирован{{end}}
|
||
{{define "actions"}}Действия{{end}}
|
||
{{define "edit"}}Изменить{{end}}
|
||
`
|
||
|
||
var (
|
||
//go:embed *.html
|
||
fs embed.FS
|
||
panelChain viewutil.Chain
|
||
listChain viewutil.Chain
|
||
)
|
||
|
||
func Init(rtr *mux.Router) {
|
||
rtr.HandleFunc("/shutdown", handlerAdminShutdown).Methods(http.MethodPost)
|
||
rtr.HandleFunc("/reindex-users", handlerAdminReindexUsers).Methods(http.MethodPost)
|
||
|
||
rtr.HandleFunc("/new-user", handlerAdminUserNew).Methods(http.MethodGet, http.MethodPost)
|
||
rtr.HandleFunc("/users/{username}/edit", handlerAdminUserEdit).Methods(http.MethodGet, http.MethodPost)
|
||
rtr.HandleFunc("/users/{username}/delete", handlerAdminUserDelete).Methods(http.MethodGet, http.MethodPost)
|
||
rtr.HandleFunc("/users", handlerAdminUsers)
|
||
|
||
rtr.HandleFunc("/", handlerAdmin)
|
||
|
||
panelChain = viewutil.CopyEnRuWith(fs, "view_panel.html", adminTranslationRu)
|
||
listChain = viewutil.CopyEnRuWith(fs, "view_user_list.html", adminTranslationRu)
|
||
}
|
||
|
||
func viewPanel(meta viewutil.Meta) {
|
||
viewutil.ExecutePage(meta, panelChain, &viewutil.BaseData{})
|
||
}
|
||
|
||
type listData struct {
|
||
*viewutil.BaseData
|
||
UserHypha string
|
||
Users []*user.User
|
||
}
|
||
|
||
func viewList(meta viewutil.Meta, users []*user.User) {
|
||
viewutil.ExecutePage(meta, listChain, listData{
|
||
BaseData: &viewutil.BaseData{},
|
||
UserHypha: cfg.UserHypha,
|
||
Users: users,
|
||
})
|
||
}
|