From 55192c6f7b6fe49a9a5828d18c688af2d18a2aa8 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 18 Aug 2021 09:24:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8A=82=E7=82=B9IP=E5=A2=9E=E5=8A=A0=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=90=AF=E7=94=A8=E3=80=81=E6=98=AF=E5=90=A6=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- .../default/clusters/cluster/node/detail.go | 4 ++- .../default/clusters/cluster/node/update.go | 2 ++ .../default/nodes/ipAddresses/createPopup.go | 2 ++ .../nodes/ipAddresses/ipaddressutils/utils.go | 7 +++++ .../default/nodes/ipAddresses/updatePopup.go | 17 +++++++++-- web/public/js/components/common/labels.js | 6 ++++ .../components/node/node-ip-addresses-box.js | 4 +++ .../clusters/cluster/node/detail.html | 2 ++ .../nodes/ipAddresses/createPopup.html | 2 +- .../nodes/ipAddresses/updatePopup.html | 29 ++++++++++++++----- .../@default/ns/domains/records/index.html | 6 ++-- web/views/@default/servers/index.html | 2 +- 13 files changed, 70 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index dc6e5bb4..8d6576a2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *_plus.go -*-plus.sh \ No newline at end of file +*-plus.sh +*@plus.js \ No newline at end of file diff --git a/internal/web/actions/default/clusters/cluster/node/detail.go b/internal/web/actions/default/clusters/cluster/node/detail.go index 858c1ad1..7044123d 100644 --- a/internal/web/actions/default/clusters/cluster/node/detail.go +++ b/internal/web/actions/default/clusters/cluster/node/detail.go @@ -84,6 +84,8 @@ func (this *DetailAction) RunGet(params struct { "name": addr.Name, "ip": addr.Ip, "canAccess": addr.CanAccess, + "isOn": addr.IsOn, + "isUp": addr.IsUp, }) } @@ -121,7 +123,7 @@ func (this *DetailAction) RunGet(params struct { } for _, addr := range ipAddresses { - if !addr.CanAccess { + if !addr.CanAccess || !addr.IsUp || !addr.IsOn { continue } for _, route := range dnsInfo.Routes { diff --git a/internal/web/actions/default/clusters/cluster/node/update.go b/internal/web/actions/default/clusters/cluster/node/update.go index dc9e3f7b..f2f5f40a 100644 --- a/internal/web/actions/default/clusters/cluster/node/update.go +++ b/internal/web/actions/default/clusters/cluster/node/update.go @@ -62,6 +62,8 @@ func (this *UpdateAction) RunGet(params struct { "name": addr.Name, "ip": addr.Ip, "canAccess": addr.CanAccess, + "isOn": addr.IsOn, + "isUp": addr.IsUp, }) } diff --git a/internal/web/actions/default/nodes/ipAddresses/createPopup.go b/internal/web/actions/default/nodes/ipAddresses/createPopup.go index 323c1c44..57541bcd 100644 --- a/internal/web/actions/default/nodes/ipAddresses/createPopup.go +++ b/internal/web/actions/default/nodes/ipAddresses/createPopup.go @@ -42,6 +42,8 @@ func (this *CreatePopupAction) RunPost(params struct { "canAccess": params.CanAccess, "ip": params.IP, "id": 0, + "isOn": true, + "isUp": true, } this.Success() } diff --git a/internal/web/actions/default/nodes/ipAddresses/ipaddressutils/utils.go b/internal/web/actions/default/nodes/ipAddresses/ipaddressutils/utils.go index 1c4f644f..c62a66fe 100644 --- a/internal/web/actions/default/nodes/ipAddresses/ipaddressutils/utils.go +++ b/internal/web/actions/default/nodes/ipAddresses/ipaddressutils/utils.go @@ -18,11 +18,18 @@ func UpdateNodeIPAddresses(parentAction *actionutils.ParentAction, nodeId int64, for _, addr := range addresses { addrId := addr.GetInt64("id") if addrId > 0 { + var isOn = false + if !addr.Has("isOn") { // 兼容老版本 + isOn = true + } else { + isOn = addr.GetBool("isOn") + } _, err = parentAction.RPC().NodeIPAddressRPC().UpdateNodeIPAddress(parentAction.AdminContext(), &pb.UpdateNodeIPAddressRequest{ AddressId: addrId, Ip: addr.GetString("ip"), Name: addr.GetString("name"), CanAccess: addr.GetBool("canAccess"), + IsOn: isOn, }) if err != nil { return err diff --git a/internal/web/actions/default/nodes/ipAddresses/updatePopup.go b/internal/web/actions/default/nodes/ipAddresses/updatePopup.go index ba218975..65d92e7f 100644 --- a/internal/web/actions/default/nodes/ipAddresses/updatePopup.go +++ b/internal/web/actions/default/nodes/ipAddresses/updatePopup.go @@ -2,6 +2,7 @@ package ipAddresses import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" "net" @@ -26,15 +27,25 @@ func (this *UpdatePopupAction) RunPost(params struct { IP string `alias:"ip"` Name string CanAccess bool + IsOn bool Must *actions.Must }) { - // TODO 严格校验IP地址 - params.Must. Field("ip", params.IP). Require("请输入IP地址") + // 获取IP地址信息 + addressResp, err := this.RPC().NodeIPAddressRPC().FindEnabledNodeIPAddress(this.AdminContext(), &pb.FindEnabledNodeIPAddressRequest{AddressId: params.AddressId}) + if err != nil { + this.ErrorPage(err) + return + } + var address = addressResp.IpAddress + if address == nil { + this.Fail("找不到要修改的地址") + } + ip := net.ParseIP(params.IP) if len(ip) == 0 { this.Fail("请输入正确的IP") @@ -45,6 +56,8 @@ func (this *UpdatePopupAction) RunPost(params struct { "ip": params.IP, "id": params.AddressId, "canAccess": params.CanAccess, + "isOn": params.IsOn, + "isUp": address.IsUp, } this.Success() diff --git a/web/public/js/components/common/labels.js b/web/public/js/components/common/labels.js index 0f1bea25..fdbc9263 100644 --- a/web/public/js/components/common/labels.js +++ b/web/public/js/components/common/labels.js @@ -22,3 +22,9 @@ Vue.component("tiny-basic-label", { Vue.component("micro-basic-label", { template: `` }) + + +// 灰色的Label +Vue.component("grey-label", { + template: `` +}) diff --git a/web/public/js/components/node/node-ip-addresses-box.js b/web/public/js/components/node/node-ip-addresses-box.js index 356bb1c7..829f4a44 100644 --- a/web/public/js/components/node/node-ip-addresses-box.js +++ b/web/public/js/components/node/node-ip-addresses-box.js @@ -1,3 +1,4 @@ +// 节点IP地址管理(标签形式) Vue.component("node-ip-addresses-box", { props: ["vIpAddresses"], data: function () { @@ -48,6 +49,9 @@ Vue.component("node-ip-addresses-box", { [IPv6] {{address.ip}} ({{address.name}},不可访问 (不可访问) + [off] + [down] +   diff --git a/web/views/@default/clusters/cluster/node/detail.html b/web/views/@default/clusters/cluster/node/detail.html index 7f81482f..4ed4faab 100644 --- a/web/views/@default/clusters/cluster/node/detail.html +++ b/web/views/@default/clusters/cluster/node/detail.html @@ -27,6 +27,8 @@ [IPv6] {{address.ip}} ({{address.name}},不可访问 (不可访问) + [off] + [down] diff --git a/web/views/@default/nodes/ipAddresses/createPopup.html b/web/views/@default/nodes/ipAddresses/createPopup.html index eade7eb0..45127632 100644 --- a/web/views/@default/nodes/ipAddresses/createPopup.html +++ b/web/views/@default/nodes/ipAddresses/createPopup.html @@ -5,7 +5,7 @@
- + diff --git a/web/views/@default/nodes/ipAddresses/updatePopup.html b/web/views/@default/nodes/ipAddresses/updatePopup.html index 28fdaa95..3bcc96e5 100644 --- a/web/views/@default/nodes/ipAddresses/updatePopup.html +++ b/web/views/@default/nodes/ipAddresses/updatePopup.html @@ -6,7 +6,7 @@
IP地址 *IP地址 *
- + @@ -21,12 +21,27 @@

是否为可以公开访问的IP,如果选中,也会作为DNS解析记录的值使用。

- - - - + + + + + + + + + + + + +
IP地址 *IP地址 *
备注 - -
是否启用 +
+ + +
+

选中表示当前IP有效。

+
备注 + +
\ No newline at end of file diff --git a/web/views/@default/ns/domains/records/index.html b/web/views/@default/ns/domains/records/index.html index d743c1da..a1c1f77d 100644 --- a/web/views/@default/ns/domains/records/index.html +++ b/web/views/@default/ns/domains/records/index.html @@ -41,16 +41,16 @@ - {{record.name}} + {{record.name}} {{record.type}} - {{record.value}} + {{record.value}} {{formatTTL(record.ttl)}}
{{route.name}}
- {{record.description}} + {{record.description}} 修改   diff --git a/web/views/@default/servers/index.html b/web/views/@default/servers/index.html index f4c60445..7487b8bd 100644 --- a/web/views/@default/servers/index.html +++ b/web/views/@default/servers/index.html @@ -81,7 +81,7 @@ {{server.name}}
- {{server.serverTypeName}} + {{server.serverTypeName}}