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}}

@@ -96,6 +97,19 @@ + + + + 选择域名服务集群 * + + + + + + diff --git a/web/views/@default/dns/providers/createPopup.js b/web/views/@default/dns/providers/createPopup.js index 87a5452c..e86900e5 100644 --- a/web/views/@default/dns/providers/createPopup.js +++ b/web/views/@default/dns/providers/createPopup.js @@ -1,4 +1,17 @@ Tea.context(function () { this.success = NotifyPopup this.type = "" + this.typeDescription = "" + + this.changeType = function () { + let that = this + let t = this.types.$find(function (k, v) { + return v.code == that.type + }) + if (t != null) { + this.typeDescription = t.description + } else { + this.typeDescription = "" + } + } }) \ No newline at end of file diff --git a/web/views/@default/dns/providers/provider.html b/web/views/@default/dns/providers/provider.html index 552f9e88..d7718370 100644 --- a/web/views/@default/dns/providers/provider.html +++ b/web/views/@default/dns/providers/provider.html @@ -22,11 +22,11 @@ - 密钥ID + 密钥ID {{provider.apiParams.id}} - 密钥Token + 密钥Token {{provider.apiParams.token}} @@ -46,25 +46,35 @@ - API密钥 + API密钥 {{provider.apiParams.apiKey}} - 账号邮箱 + 账号邮箱 {{provider.apiParams.email}} + + + + 域名服务集群 + + {{provider.localEdgeDNS.name}} + + + + - HTTP URL + HTTP URL {{provider.apiParams.url}} - 私钥 + 私钥 {{provider.apiParams.secret}} diff --git a/web/views/@default/dns/providers/updatePopup.html b/web/views/@default/dns/providers/updatePopup.html index 0f9aaa10..cc00f463 100644 --- a/web/views/@default/dns/providers/updatePopup.html +++ b/web/views/@default/dns/providers/updatePopup.html @@ -17,7 +17,7 @@ 服务商厂家 * {{provider.typeName}} -

创建后无法修改此选项。

+

{{typeDescription}}创建后无法修改此选项。

@@ -79,6 +79,19 @@ + + + + 选择域名服务集群 * + + + + + + diff --git a/web/views/@default/dns/providers/updatePopup.js b/web/views/@default/dns/providers/updatePopup.js new file mode 100644 index 00000000..27718731 --- /dev/null +++ b/web/views/@default/dns/providers/updatePopup.js @@ -0,0 +1,10 @@ +Tea.context(function () { + this.typeDescription = "" + + let that = this + this.types.forEach(function (v) { + if (v.code == that.provider.type) { + that.typeDescription = v.description + } + }) +}) \ No newline at end of file