nezha/cmd/dashboard/controller/member_page.go

74 lines
1.8 KiB
Go
Raw Normal View History

2019-12-08 03:59:58 -05:00
package controller
import (
2019-12-08 10:18:29 -05:00
"net/http"
2019-12-08 03:59:58 -05:00
"github.com/gin-gonic/gin"
"github.com/naiba/nezha/model"
2020-11-10 21:07:45 -05:00
"github.com/naiba/nezha/pkg/mygin"
2022-01-08 22:54:14 -05:00
"github.com/naiba/nezha/service/singleton"
2019-12-08 03:59:58 -05:00
)
type memberPage struct {
r *gin.Engine
}
func (mp *memberPage) serve() {
mr := mp.r.Group("")
mr.Use(mygin.Authorize(mygin.AuthorizeOption{
Member: true,
IsPage: true,
Msg: "此页面需要登录",
Btn: "点此登录",
Redirect: "/login",
}))
2019-12-08 10:18:29 -05:00
mr.GET("/server", mp.server)
mr.GET("/monitor", mp.monitor)
mr.GET("/cron", mp.cron)
mr.GET("/notification", mp.notification)
2020-12-09 06:05:40 -05:00
mr.GET("/setting", mp.setting)
2019-12-08 10:18:29 -05:00
}
func (mp *memberPage) server(c *gin.Context) {
2022-01-08 22:54:14 -05:00
singleton.SortedServerLock.RLock()
defer singleton.SortedServerLock.RUnlock()
2020-12-09 06:05:40 -05:00
c.HTML(http.StatusOK, "dashboard/server", mygin.CommonEnvironment(c, gin.H{
2019-12-08 10:18:29 -05:00
"Title": "服务器管理",
2022-01-08 22:54:14 -05:00
"Servers": singleton.SortedServerList,
2019-12-08 10:18:29 -05:00
}))
2019-12-08 03:59:58 -05:00
}
2020-12-09 06:05:40 -05:00
func (mp *memberPage) monitor(c *gin.Context) {
c.HTML(http.StatusOK, "dashboard/monitor", mygin.CommonEnvironment(c, gin.H{
"Title": "服务监控",
2022-01-08 22:54:14 -05:00
"Monitors": singleton.ServiceSentinelShared.Monitors(),
}))
}
func (mp *memberPage) cron(c *gin.Context) {
var crons []model.Cron
2022-01-08 22:54:14 -05:00
singleton.DB.Find(&crons)
c.HTML(http.StatusOK, "dashboard/cron", mygin.CommonEnvironment(c, gin.H{
"Title": "计划任务",
"Crons": crons,
}))
}
func (mp *memberPage) notification(c *gin.Context) {
var nf []model.Notification
2022-01-08 22:54:14 -05:00
singleton.DB.Find(&nf)
var ar []model.AlertRule
2022-01-08 22:54:14 -05:00
singleton.DB.Find(&ar)
c.HTML(http.StatusOK, "dashboard/notification", mygin.CommonEnvironment(c, gin.H{
2021-01-29 22:22:59 -05:00
"Title": "报警通知",
"Notifications": nf,
"AlertRules": ar,
}))
}
2020-12-09 06:05:40 -05:00
func (mp *memberPage) setting(c *gin.Context) {
c.HTML(http.StatusOK, "dashboard/setting", mygin.CommonEnvironment(c, gin.H{
"Title": "系统设置",
}))
}