diff --git a/internal/web/actions/default/api/helper.go b/internal/web/actions/default/api/helper.go index ddefba98..299e7fe7 100644 --- a/internal/web/actions/default/api/helper.go +++ b/internal/web/actions/default/api/helper.go @@ -1,7 +1,6 @@ package api import ( - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/iwind/TeaGo/actions" ) @@ -13,11 +12,4 @@ func NewHelper() *Helper { } func (this *Helper) BeforeAction(action *actions.ActionObject) { - action.Data["teaMenu"] = "api" - - selectedTabbar, _ := action.Data["mainTab"] - - tabbar := actionutils.NewTabbar() - tabbar.Add("API节点", "", "/api", "", selectedTabbar == "node") - actionutils.SetTabbar(action, tabbar) } diff --git a/internal/web/actions/default/api/init.go b/internal/web/actions/default/api/init.go index 8b84209e..8e7720de 100644 --- a/internal/web/actions/default/api/init.go +++ b/internal/web/actions/default/api/init.go @@ -2,6 +2,7 @@ package api import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/api/node" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/settingutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" "github.com/iwind/TeaGo" ) @@ -11,9 +12,10 @@ func init() { server. Helper(helpers.NewUserMustAuth()). Helper(NewHelper()). + Helper(settingutils.NewHelper("api")). Prefix("/api"). Get("", new(IndexAction)). - GetPost("/node/create", new(node.CreateAction)). + GetPost("/node/createPopup", new(node.CreatePopupAction)). EndAll() }) } diff --git a/internal/web/actions/default/api/node/create.go b/internal/web/actions/default/api/node/createPopup.go similarity index 94% rename from internal/web/actions/default/api/node/create.go rename to internal/web/actions/default/api/node/createPopup.go index 8810fe34..71c9463f 100644 --- a/internal/web/actions/default/api/node/create.go +++ b/internal/web/actions/default/api/node/createPopup.go @@ -9,19 +9,19 @@ import ( "github.com/iwind/TeaGo/actions" ) -type CreateAction struct { +type CreatePopupAction struct { actionutils.ParentAction } -func (this *CreateAction) Init() { +func (this *CreatePopupAction) Init() { this.Nav("", "node", "create") } -func (this *CreateAction) RunGet(params struct{}) { +func (this *CreatePopupAction) RunGet(params struct{}) { this.Show() } -func (this *CreateAction) RunPost(params struct { +func (this *CreatePopupAction) RunPost(params struct { Name string Description string ListensJSON []byte diff --git a/internal/web/actions/default/api/node/helper.go b/internal/web/actions/default/api/node/helper.go index 90434629..badb413b 100644 --- a/internal/web/actions/default/api/node/helper.go +++ b/internal/web/actions/default/api/node/helper.go @@ -2,7 +2,6 @@ package node import ( "github.com/TeaOSLab/EdgeAdmin/internal/rpc" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/logs" @@ -43,22 +42,10 @@ func (this *Helper) BeforeAction(action *actions.ActionObject) (goNext bool) { action.WriteString("node not found") return } - node := nodeResp.Node - - // 顶部Tab栏 - selectedTabbar, _ := action.Data["mainTab"] - tabbar := actionutils.NewTabbar() - tabbar.Add("节点列表", "", "/api", "", false) - tabbar.Add("设置", "", "/api/node/settings?nodeId="+nodeIdString, "setting", selectedTabbar == "setting") - { - m := tabbar.Add("当前节点:"+node.Name, "", "", "", false) - m["right"] = true - } - actionutils.SetTabbar(action, tabbar) // 左侧菜单栏 secondMenuItem := action.Data.GetString("secondMenuItem") - switch selectedTabbar { + switch action.Data.GetString("firstMenuItem") { case "setting": action.Data["leftMenuItems"] = this.createSettingMenu(nodeIdString, secondMenuItem) } diff --git a/internal/web/actions/default/api/node/init.go b/internal/web/actions/default/api/node/init.go index 25ac7b12..b7bdeba7 100644 --- a/internal/web/actions/default/api/node/init.go +++ b/internal/web/actions/default/api/node/init.go @@ -1,6 +1,7 @@ package node import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/settingutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" "github.com/iwind/TeaGo" ) @@ -9,6 +10,7 @@ func init() { TeaGo.BeforeStart(func(server *TeaGo.Server) { server. Helper(helpers.NewUserMustAuth()). + Helper(settingutils.NewHelper("api")). Prefix("/api/node"). // 这里不受Helper的约束 diff --git a/internal/web/actions/default/api/node/settings.go b/internal/web/actions/default/api/node/settings.go index 4b279aff..91d4d374 100644 --- a/internal/web/actions/default/api/node/settings.go +++ b/internal/web/actions/default/api/node/settings.go @@ -15,7 +15,7 @@ type SettingsAction struct { } func (this *SettingsAction) Init() { - this.Nav("", "setting", "") + this.Nav("", "setting", "setting") this.SecondMenu("basic") } diff --git a/internal/web/actions/default/db/init.go b/internal/web/actions/default/db/init.go index 3f353762..c93c4e7f 100644 --- a/internal/web/actions/default/db/init.go +++ b/internal/web/actions/default/db/init.go @@ -1,6 +1,7 @@ package db import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/settingutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" "github.com/iwind/TeaGo" ) @@ -10,6 +11,7 @@ func init() { server. Helper(new(helpers.UserMustAuth)). Helper(new(Helper)). + Helper(settingutils.NewHelper("db")). Prefix("/db"). Get("", new(IndexAction)). GetPost("/createPopup", new(CreatePopupAction)). diff --git a/internal/web/actions/default/settings/backup/index.go b/internal/web/actions/default/settings/backup/index.go new file mode 100644 index 00000000..8ca128bc --- /dev/null +++ b/internal/web/actions/default/settings/backup/index.go @@ -0,0 +1,15 @@ +package backup + +import "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "", "") +} + +func (this *IndexAction) RunGet(params struct{}) { + this.Show() +} diff --git a/internal/web/actions/default/settings/backup/init.go b/internal/web/actions/default/settings/backup/init.go new file mode 100644 index 00000000..4601f271 --- /dev/null +++ b/internal/web/actions/default/settings/backup/init.go @@ -0,0 +1,18 @@ +package backup + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/settingutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(settingutils.NewHelper("backup")). + Prefix("/settings/backup"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/settings/init.go b/internal/web/actions/default/settings/init.go index f7935152..1e71dd3f 100644 --- a/internal/web/actions/default/settings/init.go +++ b/internal/web/actions/default/settings/init.go @@ -1,6 +1,7 @@ package settings import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/settingutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" "github.com/iwind/TeaGo" ) @@ -10,6 +11,7 @@ func init() { server. Helper(helpers.NewUserMustAuth()). Helper(NewHelper()). + Helper(settingutils.NewHelper("console")). Prefix("/settings"). Get("", new(IndexAction)). EndAll() diff --git a/internal/web/actions/default/settings/login/index.go b/internal/web/actions/default/settings/login/index.go new file mode 100644 index 00000000..15365056 --- /dev/null +++ b/internal/web/actions/default/settings/login/index.go @@ -0,0 +1,15 @@ +package login + +import "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "", "") +} + +func (this *IndexAction) RunGet(params struct{}) { + this.Show() +} diff --git a/internal/web/actions/default/settings/login/init.go b/internal/web/actions/default/settings/login/init.go new file mode 100644 index 00000000..15e0d0ba --- /dev/null +++ b/internal/web/actions/default/settings/login/init.go @@ -0,0 +1,18 @@ +package login + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/settingutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(settingutils.NewHelper("login")). + Prefix("/settings/login"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/settings/profile/index.go b/internal/web/actions/default/settings/profile/index.go new file mode 100644 index 00000000..0c8d28d4 --- /dev/null +++ b/internal/web/actions/default/settings/profile/index.go @@ -0,0 +1,15 @@ +package profile + +import "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "", "") +} + +func (this *IndexAction) RunGet(params struct{}) { + this.Show() +} diff --git a/internal/web/actions/default/settings/profile/init.go b/internal/web/actions/default/settings/profile/init.go new file mode 100644 index 00000000..fbce4b3b --- /dev/null +++ b/internal/web/actions/default/settings/profile/init.go @@ -0,0 +1,18 @@ +package profile + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/settingutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(settingutils.NewHelper("profile")). + Prefix("/settings/profile"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/settings/security/index.go b/internal/web/actions/default/settings/security/index.go new file mode 100644 index 00000000..837df198 --- /dev/null +++ b/internal/web/actions/default/settings/security/index.go @@ -0,0 +1,15 @@ +package security + +import "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "", "") +} + +func (this *IndexAction) RunGet(params struct{}) { + this.Show() +} diff --git a/internal/web/actions/default/settings/security/init.go b/internal/web/actions/default/settings/security/init.go new file mode 100644 index 00000000..7b6a4d13 --- /dev/null +++ b/internal/web/actions/default/settings/security/init.go @@ -0,0 +1,18 @@ +package security + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/settingutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(settingutils.NewHelper("security")). + Prefix("/settings/security"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/settings/settingutils/utils.go b/internal/web/actions/default/settings/settingutils/utils.go new file mode 100644 index 00000000..f852a98f --- /dev/null +++ b/internal/web/actions/default/settings/settingutils/utils.go @@ -0,0 +1,39 @@ +package settingutils + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/iwind/TeaGo/actions" +) + +type Helper struct { + tab string +} + +func NewHelper(tab string) *Helper { + return &Helper{ + tab: tab, + } +} + +func (this *Helper) BeforeAction(actionPtr actions.ActionWrapper) (goNext bool) { + goNext = true + + action := actionPtr.Object() + + // 左侧菜单 + action.Data["teaMenu"] = "settings" + + // 标签栏 + tabbar := actionutils.NewTabbar() + tabbar.Add("管理界面", "", "/settings", "", this.tab == "console") + tabbar.Add("安全设置", "", "/settings/security", "", this.tab == "security") + tabbar.Add("API节点", "", "/api", "exchange", this.tab == "api") + tabbar.Add("日志数据库节点", "", "/db", "database", this.tab == "db") + tabbar.Add("备份", "", "/settings/backup", "", this.tab == "backup") + tabbar.Add("个人资料", "", "/settings/profile", "", this.tab == "profile") + tabbar.Add("登录设置", "", "/settings/login", "", this.tab == "login") + tabbar.Add("检查版本更新", "", "/settings/upgrade", "", this.tab == "upgrade") + actionutils.SetTabbar(actionPtr, tabbar) + + return +} diff --git a/internal/web/actions/default/settings/upgrade/index.go b/internal/web/actions/default/settings/upgrade/index.go new file mode 100644 index 00000000..66ca0476 --- /dev/null +++ b/internal/web/actions/default/settings/upgrade/index.go @@ -0,0 +1,15 @@ +package upgrade + +import "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "", "") +} + +func (this *IndexAction) RunGet(params struct{}) { + this.Show() +} diff --git a/internal/web/actions/default/settings/upgrade/init.go b/internal/web/actions/default/settings/upgrade/init.go new file mode 100644 index 00000000..7aa7e41b --- /dev/null +++ b/internal/web/actions/default/settings/upgrade/init.go @@ -0,0 +1,18 @@ +package upgrade + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/settingutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(settingutils.NewHelper("upgrade")). + Prefix("/settings/upgrade"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/helpers/user_must_auth.go b/internal/web/helpers/user_must_auth.go index 06b2a7da..f3449db1 100644 --- a/internal/web/helpers/user_must_auth.go +++ b/internal/web/helpers/user_must_auth.go @@ -75,21 +75,16 @@ func (this *UserMustAuth) BeforeAction(actionPtr actions.ActionWrapper, paramNam "menuName": "节点集群", "icon": "cloud", }, - { - "code": "api", - "menuName": "API节点", - "icon": "exchange", - }, - { - "code": "db", - "menuName": "日志数据库", - "icon": "database", - }, { "code": "dns", "menuName": "DNS", "icon": "globe", }, + { + "code": "settings", + "menuName": "系统设置", + "icon": "setting", + }, } action.Data["teaTitle"] = teaconst.ProductNameZH diff --git a/internal/web/import.go b/internal/web/import.go index f60172cb..ce923e5e 100644 --- a/internal/web/import.go +++ b/internal/web/import.go @@ -65,5 +65,10 @@ import ( _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/websocket" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/stat" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/backup" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/login" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/profile" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/security" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/upgrade" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ui" ) diff --git a/web/public/js/utils.js b/web/public/js/utils.js index 1e53f7f8..09f6e636 100644 --- a/web/public/js/utils.js +++ b/web/public/js/utils.js @@ -224,5 +224,8 @@ window.teaweb = { } } }); + }, + reload: function () { + window.location.reload() } }; diff --git a/web/views/@default/@layout.html b/web/views/@default/@layout.html index 5e21565f..ffa134e1 100644 --- a/web/views/@default/@layout.html +++ b/web/views/@default/@layout.html @@ -29,7 +29,7 @@