nezha/cmd/dashboard/controller/controller.go

70 lines
1.4 KiB
Go
Raw Normal View History

2019-12-08 16:59:58 +08:00
package controller
import (
"fmt"
"html/template"
2020-12-19 10:57:10 +08:00
"strings"
2019-12-08 16:59:58 +08:00
"time"
2019-12-09 18:14:31 +08:00
"code.cloudfoundry.org/bytefmt"
2019-12-08 16:59:58 +08:00
"github.com/gin-gonic/gin"
2020-11-11 10:07:45 +08:00
"github.com/naiba/nezha/pkg/mygin"
"github.com/naiba/nezha/service/dao"
2019-12-08 16:59:58 +08:00
)
// ServeWeb ..
2019-12-10 18:05:02 +08:00
func ServeWeb(port uint) {
2019-12-08 23:18:29 +08:00
gin.SetMode(gin.ReleaseMode)
if dao.Conf.Debug {
gin.SetMode(gin.DebugMode)
}
2019-12-08 16:59:58 +08:00
r := gin.Default()
r.Use(mygin.RecordPath)
r.SetFuncMap(template.FuncMap{
"tf": func(t time.Time) string {
return t.Format("2006年1月2号")
},
2020-12-19 10:57:10 +08:00
"css": func(s string) template.CSS {
return template.CSS(s)
},
2020-12-19 12:43:03 +08:00
"tag": func(s string) template.HTML {
return template.HTML(`<` + s + `>`)
},
2019-12-09 23:45:23 +08:00
"stf": func(s uint64) string {
return time.Unix(int64(s), 0).Format("2006年1月2号 15:04")
},
"sf": func(duration uint64) string {
return time.Duration(time.Duration(duration) * time.Second).String()
},
2019-12-09 18:14:31 +08:00
"bf": func(b uint64) string {
return bytefmt.ByteSize(b)
},
2020-12-19 10:57:10 +08:00
"ts": func(s string) string {
return strings.TrimSpace(s)
},
2019-12-08 16:59:58 +08:00
})
r.Static("/static", "resource/static")
r.LoadHTMLGlob("resource/template/**/*")
routers(r)
2019-12-10 18:05:02 +08:00
r.Run(fmt.Sprintf(":%d", port))
2019-12-08 16:59:58 +08:00
}
func routers(r *gin.Engine) {
// 通用页面
cp := commonPage{r}
cp.serve()
// 游客页面
gp := guestPage{r}
gp.serve()
// 会员页面
mp := &memberPage{r}
mp.serve()
// API
api := r.Group("api")
{
ma := &memberAPI{api}
ma.serve()
}
}