diff --git a/admin.go b/admin.go index 9b2f3dc3..c1ba4049 100644 --- a/admin.go +++ b/admin.go @@ -137,121 +137,116 @@ func listConf(rw http.ResponseWriter, r *http.Request) { tmpl.Execute(rw, data) case "router": - resultList := new([][]string) + content := make(map[string]interface{}) - var result = []string{ - fmt.Sprintf("header"), + var fields = []string{ fmt.Sprintf("Router Pattern"), fmt.Sprintf("Methods"), fmt.Sprintf("Controller"), } - *resultList = append(*resultList, result) + content["Fields"] = fields + methods := []string{} + methodsData := make(map[string]interface{}) for method, t := range BeeApp.Handlers.routers { - var result = []string{ - fmt.Sprintf("success"), - fmt.Sprintf("Method: %s", method), - fmt.Sprintf(""), - fmt.Sprintf(""), - } - *resultList = append(*resultList, result) + + resultList := new([][]string) printTree(resultList, t) + + methods = append(methods, method) + methodsData[method] = resultList } - data["Content"] = resultList + + content["Data"] = methodsData + content["Methods"] = methods + data["Content"] = content data["Title"] = "Routers" + tmpl := template.Must(template.New("dashboard").Parse(dashboardTpl)) tmpl = template.Must(tmpl.Parse(routerAndFilterTpl)) tmpl = template.Must(tmpl.Parse(defaultScriptsTpl)) tmpl.Execute(rw, data) case "filter": - resultList := new([][]string) + content := make(map[string]interface{}) - var result = []string{ - fmt.Sprintf("header"), + var fields = []string{ fmt.Sprintf("Router Pattern"), fmt.Sprintf("Filter Function"), } - *resultList = append(*resultList, result) + content["Fields"] = fields + + filterTypes := []string{} + filterTypeData := make(map[string]interface{}) if BeeApp.Handlers.enableFilter { - var result = []string{ - fmt.Sprintf("success"), - fmt.Sprintf("Before Router"), - fmt.Sprintf(""), - } - *resultList = append(*resultList, result) + var filterType string if bf, ok := BeeApp.Handlers.filters[BeforeRouter]; ok { + filterType = "Before Router" + filterTypes = append(filterTypes, filterType) + resultList := new([][]string) for _, f := range bf { var result = []string{ - fmt.Sprintf(""), fmt.Sprintf("%s", f.pattern), fmt.Sprintf("%s", utils.GetFuncName(f.filterFunc)), } *resultList = append(*resultList, result) - } + filterTypeData[filterType] = resultList } - result = []string{ - fmt.Sprintf("success"), - fmt.Sprintf("Before Exec"), - fmt.Sprintf(""), - } - *resultList = append(*resultList, result) + if bf, ok := BeeApp.Handlers.filters[BeforeExec]; ok { + filterType = "Before Exec" + filterTypes = append(filterTypes, filterType) + resultList := new([][]string) for _, f := range bf { var result = []string{ - fmt.Sprintf(""), fmt.Sprintf("%s", f.pattern), fmt.Sprintf("%s", utils.GetFuncName(f.filterFunc)), } *resultList = append(*resultList, result) - } + filterTypeData[filterType] = resultList } - result = []string{ - fmt.Sprintf("success"), - fmt.Sprintf("AfterExec Exec"), - fmt.Sprintf(""), - } - *resultList = append(*resultList, result) if bf, ok := BeeApp.Handlers.filters[AfterExec]; ok { + filterType = "After Exec" + filterTypes = append(filterTypes, filterType) + resultList := new([][]string) for _, f := range bf { var result = []string{ - fmt.Sprintf(""), fmt.Sprintf("%s", f.pattern), fmt.Sprintf("%s", utils.GetFuncName(f.filterFunc)), } *resultList = append(*resultList, result) - } + filterTypeData[filterType] = resultList } - result = []string{ - fmt.Sprintf("success"), - fmt.Sprintf("Finish Router"), - fmt.Sprintf(""), - } - *resultList = append(*resultList, result) if bf, ok := BeeApp.Handlers.filters[FinishRouter]; ok { + filterType = "Finish Router" + filterTypes = append(filterTypes, filterType) + resultList := new([][]string) for _, f := range bf { var result = []string{ - fmt.Sprintf(""), fmt.Sprintf("%s", f.pattern), fmt.Sprintf("%s", utils.GetFuncName(f.filterFunc)), } *resultList = append(*resultList, result) - } + filterTypeData[filterType] = resultList } } - data["Content"] = resultList + + content["Data"] = filterTypeData + content["Methods"] = filterTypes + + data["Content"] = content data["Title"] = "Filters" tmpl := template.Must(template.New("dashboard").Parse(dashboardTpl)) tmpl = template.Must(tmpl.Parse(routerAndFilterTpl)) @@ -276,7 +271,6 @@ func printTree(resultList *[][]string, t *Tree) { if v, ok := l.runObject.(*controllerInfo); ok { if v.routerType == routerTypeBeego { var result = []string{ - fmt.Sprintf(""), fmt.Sprintf("%s", v.pattern), fmt.Sprintf("%s", v.methods), fmt.Sprintf("%s", v.controllerType), @@ -284,7 +278,6 @@ func printTree(resultList *[][]string, t *Tree) { *resultList = append(*resultList, result) } else if v.routerType == routerTypeRESTFul { var result = []string{ - fmt.Sprintf(""), fmt.Sprintf("%s", v.pattern), fmt.Sprintf("%s", v.methods), fmt.Sprintf(""), @@ -292,7 +285,6 @@ func printTree(resultList *[][]string, t *Tree) { *resultList = append(*resultList, result) } else if v.routerType == routerTypeHandler { var result = []string{ - fmt.Sprintf(""), fmt.Sprintf("%s", v.pattern), fmt.Sprintf(""), fmt.Sprintf(""), @@ -347,13 +339,15 @@ func profIndex(rw http.ResponseWriter, r *http.Request) { func healthcheck(rw http.ResponseWriter, req *http.Request) { data := make(map[interface{}]interface{}) - resultList := new([][]string) - var result = []string{ - fmt.Sprintf("header"), + var result = []string{} + fields := []string{ fmt.Sprintf("Name"), + fmt.Sprintf("Message"), fmt.Sprintf("Status"), } - *resultList = append(*resultList, result) + resultList := new([][]string) + + content := make(map[string]interface{}) for name, h := range toolbox.AdminCheckList { if err := h.Check(); err != nil { @@ -374,7 +368,9 @@ func healthcheck(rw http.ResponseWriter, req *http.Request) { *resultList = append(*resultList, result) } - data["Content"] = resultList + content["Fields"] = fields + content["Data"] = resultList + data["Content"] = content data["Title"] = "Health Check" tmpl := template.Must(template.New("dashboard").Parse(dashboardTpl)) tmpl = template.Must(tmpl.Parse(healthCheckTpl)) @@ -405,17 +401,17 @@ func taskStatus(rw http.ResponseWriter, req *http.Request) { } // List Tasks + content := make(map[string]interface{}) resultList := new([][]string) - var result = []string{ - fmt.Sprintf("header"), + var result = []string{} + var fields = []string{ fmt.Sprintf("Task Name"), fmt.Sprintf("Task Spec"), fmt.Sprintf("Task Function"), + fmt.Sprintf(""), } - *resultList = append(*resultList, result) for tname, tk := range toolbox.AdminTaskList { result = []string{ - fmt.Sprintf(""), fmt.Sprintf("%s", tname), fmt.Sprintf("%s", tk.GetStatus()), fmt.Sprintf("%s", tk.GetPrev().String()), @@ -423,7 +419,9 @@ func taskStatus(rw http.ResponseWriter, req *http.Request) { *resultList = append(*resultList, result) } - data["Content"] = resultList + content["Fields"] = fields + content["Data"] = resultList + data["Content"] = content data["Title"] = "Tasks" tmpl := template.Must(template.New("dashboard").Parse(dashboardTpl)) tmpl = template.Must(tmpl.Parse(tasksTpl)) diff --git a/adminui.go b/adminui.go index d84cb2a4..19cbacc2 100644 --- a/adminui.go +++ b/adminui.go @@ -56,31 +56,35 @@ var gcAjaxTpl = ` {{end}} ` -var qpsTpl = ` -{{define "content"}} +var qpsTpl = `{{define "content"}}

Requests statistics

-{{range $i, $slice := .Content}} - -{{range $j, $elem := $slice}} -{{if eq $i 0}} - -{{end}} -{{end}} + + + {{range .Content.Fields}} + + {{end}} + + + + + {{range $i, $elem := .Content.Data}} + + + {{range $elem}} + + {{end}} + + + {{end}} + - -{{end}}
-{{else}} - -{{end}} -{{$elem}} -{{if eq $i 0}} - -{{else}} -
+ {{.}} +
+ {{.}} +
-{{end}} -` +{{end}}` var configTpl = ` {{define "content"}} @@ -93,49 +97,51 @@ var configTpl = ` {{end}} ` -var routerAndFilterTpl = ` -{{define "content"}} +var routerAndFilterTpl = `{{define "content"}} +

{{.Title}}

+ +{{range .Content.Methods}} + +
+
{{.}}
+
-{{range $i, $slice := .Content}} - + + + {{range $.Content.Fields}} + + {{end}} + + -{{ $header := index $slice 0}} -{{if eq "header" $header }} - {{range $j, $elem := $slice}} - {{if ne $j 0}} - - {{end}} - {{end}} -{{else if eq "success" $header}} - {{range $j, $elem := $slice}} - {{if ne $j 0}} - - {{end}} - {{end}} -{{else}} - {{range $j, $elem := $slice}} - {{if ne $j 0}} - - {{end}} - {{end}} -{{end}} + + {{$slice := index $.Content.Data .}} + {{range $i, $elem := $slice}} + + + {{range $elem}} + + {{end}} + + + {{end}} + - -{{end}}
+ {{.}} +
- {{$elem}} - - {{$elem}} - - {{$elem}} -
+ {{.}} +
+
+
{{end}} -` -var tasksTpl = ` -{{define "content"}} + +{{end}}` + +var tasksTpl = `{{define "content"}}

{{.Title}}

@@ -156,59 +162,51 @@ bg-warning -{{range $i, $slice := .Content}} + +{{range .Content.Fields}} + +{{end}} + + -{{ $header := index $slice 0}} -{{if eq "header" $header }} - {{range $j, $elem := $slice}} - {{if ne $j 0}} - - {{end}} - {{end}} - -{{else}} - {{range $j, $elem := $slice}} - {{if ne $j 0}} + +{{range $i, $slice := .Content.Data}} + + {{range $slice}} {{end}} - {{end}} -{{end}} - {{end}} +
+{{.}} +
- {{$elem}} - - Run Task -
- {{$elem}} + {{.}} Run
-{{end}} -` + +{{end}}` var healthCheckTpl = ` {{define "content"}}

{{.Title}}

-{{range $i, $slice := .Content}} - -{{ $header := index $slice 0}} -{{if eq "header" $header }} + - {{range $j, $elem := $slice}} - {{if ne $j 0}} +{{range .Content.Fields}} - {{end}} - {{end}} +{{end}} -{{else}} + + +{{range $i, $slice := .Content.Data}} + {{ $header := index $slice 0}} {{ if eq "success" $header}} {{else if eq "error" $header}} @@ -223,10 +221,13 @@ var healthCheckTpl = ` {{end}} {{end}} + {{end}} -{{end}} +
- {{$elem}} + {{.}}
+ {{$header}} +
{{end}}` @@ -247,6 +248,7 @@ Welcome to Beego Admin Dashboard +