diff --git a/internal/web/actions/default/dns/providers/createPopup.go b/internal/web/actions/default/dns/providers/createPopup.go index 7ea1fd06..dd04f11e 100644 --- a/internal/web/actions/default/dns/providers/createPopup.go +++ b/internal/web/actions/default/dns/providers/createPopup.go @@ -27,8 +27,9 @@ func (this *CreatePopupAction) RunGet(params struct{}) { typeMaps := []maps.Map{} for _, t := range typesResp.ProviderTypes { typeMaps = append(typeMaps, maps.Map{ - "name": t.Name, - "code": t.Code, + "name": t.Name, + "code": t.Code, + "description": t.Description, }) } this.Data["types"] = typeMaps @@ -36,6 +37,21 @@ func (this *CreatePopupAction) RunGet(params struct{}) { // 自动生成CustomHTTP私钥 this.Data["paramCustomHTTPSecret"] = rands.HexString(32) + // EdgeDNS集群列表 + nsClustersResp, err := this.RPC().NSClusterRPC().FindAllEnabledNSClusters(this.AdminContext(), &pb.FindAllEnabledNSClustersRequest{}) + if err != nil { + this.ErrorPage(err) + return + } + nsClusterMaps := []maps.Map{} + for _, nsCluster := range nsClustersResp.NsClusters { + nsClusterMaps = append(nsClusterMaps, maps.Map{ + "id": nsCluster.Id, + "name": nsCluster.Name, + }) + } + this.Data["nsClusters"] = nsClusterMaps + this.Show() } @@ -59,6 +75,9 @@ func (this *CreatePopupAction) RunPost(params struct { CloudFlareAPIKey string CloudFlareEmail string + // Local EdgeDNS + ParamLocalEdgeDNSClusterId int64 + // CustomHTTP ParamCustomHTTPURL string ParamCustomHTTPSecret string @@ -109,6 +128,11 @@ func (this *CreatePopupAction) RunPost(params struct { Email("请输入正确格式的邮箱地址") apiParams["apiKey"] = params.CloudFlareAPIKey apiParams["email"] = params.CloudFlareEmail + case "localEdgeDNS": + params.Must. + Field("ParamLocalEdgeDNSClusterId", params.ParamLocalEdgeDNSClusterId). + Gt(0, "请选择域名服务集群") + apiParams["clusterId"] = params.ParamLocalEdgeDNSClusterId case "customHTTP": params.Must. Field("paramCustomHTTPURL", params.ParamCustomHTTPURL). diff --git a/internal/web/actions/default/dns/providers/provider.go b/internal/web/actions/default/dns/providers/provider.go index 16caf824..b8bafd5f 100644 --- a/internal/web/actions/default/dns/providers/provider.go +++ b/internal/web/actions/default/dns/providers/provider.go @@ -39,12 +39,31 @@ func (this *ProviderAction) RunGet(params struct { } } + // 本地EdgeDNS相关 + var localEdgeDNSMap = maps.Map{} + if provider.Type == "localEdgeDNS" { + nsClusterId := apiParams.GetInt64("clusterId") + nsClusterResp, err := this.RPC().NSClusterRPC().FindEnabledNSCluster(this.AdminContext(), &pb.FindEnabledNSClusterRequest{NsClusterId: nsClusterId}) + if err != nil { + this.ErrorPage(err) + return + } + nsCluster := nsClusterResp.NsCluster + if nsCluster != nil { + localEdgeDNSMap = maps.Map{ + "id": nsCluster.Id, + "name": nsCluster.Name, + } + } + } + this.Data["provider"] = maps.Map{ - "id": provider.Id, - "name": provider.Name, - "type": provider.Type, - "typeName": provider.TypeName, - "apiParams": apiParams, + "id": provider.Id, + "name": provider.Name, + "type": provider.Type, + "typeName": provider.TypeName, + "apiParams": apiParams, + "localEdgeDNS": localEdgeDNSMap, } // 域名 diff --git a/internal/web/actions/default/dns/providers/updatePopup.go b/internal/web/actions/default/dns/providers/updatePopup.go index a0f50f7a..ca7a673b 100644 --- a/internal/web/actions/default/dns/providers/updatePopup.go +++ b/internal/web/actions/default/dns/providers/updatePopup.go @@ -57,12 +57,28 @@ func (this *UpdatePopupAction) RunGet(params struct { typeMaps := []maps.Map{} for _, t := range typesResp.ProviderTypes { typeMaps = append(typeMaps, maps.Map{ - "name": t.Name, - "code": t.Code, + "name": t.Name, + "code": t.Code, + "description": t.Description, }) } this.Data["types"] = typeMaps + // EdgeDNS集群列表 + nsClustersResp, err := this.RPC().NSClusterRPC().FindAllEnabledNSClusters(this.AdminContext(), &pb.FindAllEnabledNSClustersRequest{}) + if err != nil { + this.ErrorPage(err) + return + } + nsClusterMaps := []maps.Map{} + for _, nsCluster := range nsClustersResp.NsClusters { + nsClusterMaps = append(nsClusterMaps, maps.Map{ + "id": nsCluster.Id, + "name": nsCluster.Name, + }) + } + this.Data["nsClusters"] = nsClusterMaps + this.Show() } @@ -88,6 +104,9 @@ func (this *UpdatePopupAction) RunPost(params struct { CloudFlareAPIKey string CloudFlareEmail string + // Local EdgeDNS + ParamLocalEdgeDNSClusterId int64 + // CustomHTTP ParamCustomHTTPURL string ParamCustomHTTPSecret string @@ -140,6 +159,11 @@ func (this *UpdatePopupAction) RunPost(params struct { Email("请输入正确格式的邮箱地址") apiParams["apiKey"] = params.CloudFlareAPIKey apiParams["email"] = params.CloudFlareEmail + case "localEdgeDNS": + params.Must. + Field("ParamLocalEdgeDNSClusterId", params.ParamLocalEdgeDNSClusterId). + Gt(0, "请选择域名服务集群") + apiParams["clusterId"] = params.ParamLocalEdgeDNSClusterId case "customHTTP": params.Must. Field("paramCustomHTTPURL", params.ParamCustomHTTPURL). diff --git a/web/views/@default/dns/providers/createPopup.html b/web/views/@default/dns/providers/createPopup.html index 7c462aff..30a29a61 100644 --- a/web/views/@default/dns/providers/createPopup.html +++ b/web/views/@default/dns/providers/createPopup.html @@ -14,10 +14,11 @@
创建后无法修改此选项。
+{{typeDescription}}创建后无法修改此选项。