diff --git a/internal/web/actions/default/clusters/cluster/init.go b/internal/web/actions/default/clusters/cluster/init.go index 7e6c00df..afff1282 100644 --- a/internal/web/actions/default/clusters/cluster/init.go +++ b/internal/web/actions/default/clusters/cluster/init.go @@ -49,6 +49,7 @@ func init() { Post("/start", new(node.StartAction)). Post("/stop", new(node.StopAction)). Post("/up", new(node.UpAction)). + Post("/updateIsOn", new(node.UpdateIsOnAction)). Get("/detail", new(node.DetailAction)). GetPost("/updateDNSPopup", new(node.UpdateDNSPopupAction)). Post("/syncDomain", new(node.SyncDomainAction)). diff --git a/internal/web/actions/default/clusters/cluster/node/updateIsOn.go b/internal/web/actions/default/clusters/cluster/node/updateIsOn.go new file mode 100644 index 00000000..7f889a56 --- /dev/null +++ b/internal/web/actions/default/clusters/cluster/node/updateIsOn.go @@ -0,0 +1,35 @@ +// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn . + +package node + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/langs/codes" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" +) + +type UpdateIsOnAction struct { + actionutils.ParentAction +} + +func (this *UpdateIsOnAction) RunPost(params struct { + NodeId int64 + IsOn bool +}) { + if params.IsOn { + defer this.CreateLogInfo(codes.Node_LogUpdateNodeOn, params.NodeId) + } else { + defer this.CreateLogInfo(codes.Node_LogUpdateNodeOff, params.NodeId) + } + + _, err := this.RPC().NodeRPC().UpdateNodeIsOn(this.AdminContext(), &pb.UpdateNodeIsOnRequest{ + NodeId: params.NodeId, + IsOn: params.IsOn, + }) + if err != nil { + this.ErrorPage(err) + return + } + + this.Success() +} diff --git a/web/views/@default/clusters/cluster/nodes.html b/web/views/@default/clusters/cluster/nodes.html index 6ec9282f..8e3e9e21 100644 --- a/web/views/@default/clusters/cluster/nodes.html +++ b/web/views/@default/clusters/cluster/nodes.html @@ -70,7 +70,7 @@