mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-05 22:30:28 +08:00
实现在域名解析中使用EdgeDNS
This commit is contained in:
@@ -29,6 +29,7 @@ func (this *CreatePopupAction) RunGet(params struct{}) {
|
||||
typeMaps = append(typeMaps, maps.Map{
|
||||
"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).
|
||||
|
||||
@@ -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,
|
||||
"localEdgeDNS": localEdgeDNSMap,
|
||||
}
|
||||
|
||||
// 域名
|
||||
|
||||
@@ -59,10 +59,26 @@ func (this *UpdatePopupAction) RunGet(params struct {
|
||||
typeMaps = append(typeMaps, maps.Map{
|
||||
"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).
|
||||
|
||||
@@ -14,10 +14,11 @@
|
||||
<tr>
|
||||
<td>服务商厂家 *</td>
|
||||
<td>
|
||||
<select class="ui dropdown auto-width" name="type" v-model="type">
|
||||
<select class="ui dropdown auto-width" name="type" v-model="type" @change="changeType">
|
||||
<option value="">[请选择]</option>
|
||||
<option v-for="type in types" :value="type.code">{{type.name}}</option>
|
||||
</select>
|
||||
<p class="comment">{{typeDescription}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -96,6 +97,19 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<!-- Edge DNS -->
|
||||
<tbody v-if="type == 'localEdgeDNS'">
|
||||
<tr>
|
||||
<td>选择域名服务集群 *</td>
|
||||
<td>
|
||||
<select class="ui dropdown auto-width" name="paramLocalEdgeDNSClusterId">
|
||||
<option value="0">[选择域名服务集群]</option>
|
||||
<option v-for="cluster in nsClusters" :value="cluster.id">{{cluster.name}}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<!-- 自定义HTTP-->
|
||||
<tbody v-if="type == 'customHTTP'">
|
||||
<tr>
|
||||
|
||||
@@ -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 = ""
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -22,11 +22,11 @@
|
||||
<!-- DNSPod -->
|
||||
<tbody v-if="provider.type == 'dnspod'">
|
||||
<tr>
|
||||
<td>密钥ID</td>
|
||||
<td class="color-border">密钥ID</td>
|
||||
<td>{{provider.apiParams.id}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>密钥Token</td>
|
||||
<td class="color-border">密钥Token</td>
|
||||
<td>{{provider.apiParams.token}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -46,25 +46,35 @@
|
||||
<!-- CloudFlare -->
|
||||
<tbody v-if="provider.type == 'cloudFlare'">
|
||||
<tr>
|
||||
<td>API密钥</td>
|
||||
<td class="color-border">API密钥</td>
|
||||
<td>
|
||||
{{provider.apiParams.apiKey}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>账号邮箱</td>
|
||||
<td class="color-border">账号邮箱</td>
|
||||
<td>{{provider.apiParams.email}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<!-- Local EdgeDNS -->
|
||||
<tbody v-if="provider.type == 'localEdgeDNS'">
|
||||
<tr>
|
||||
<td class="color-border">域名服务集群</td>
|
||||
<td>
|
||||
{{provider.localEdgeDNS.name}}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<!-- CustomHTTP -->
|
||||
<tbody v-if="provider.type == 'customHTTP'">
|
||||
<tr>
|
||||
<td>HTTP URL</td>
|
||||
<td class="color-border">HTTP URL</td>
|
||||
<td>{{provider.apiParams.url}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>私钥</td>
|
||||
<td class="color-border">私钥</td>
|
||||
<td>{{provider.apiParams.secret}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<td>服务商厂家 *</td>
|
||||
<td>
|
||||
{{provider.typeName}}
|
||||
<p class="comment">创建后无法修改此选项。</p>
|
||||
<p class="comment">{{typeDescription}}创建后无法修改此选项。</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -79,6 +79,19 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<!-- Edge DNS -->
|
||||
<tbody v-if="provider.type == 'localEdgeDNS'">
|
||||
<tr>
|
||||
<td>选择域名服务集群 *</td>
|
||||
<td>
|
||||
<select class="ui dropdown auto-width" name="paramLocalEdgeDNSClusterId" v-model="provider.params.clusterId">
|
||||
<option value="0">[选择域名服务集群]</option>
|
||||
<option v-for="cluster in nsClusters" :value="cluster.id">{{cluster.name}}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<!-- 自定义HTTP-->
|
||||
<tbody v-if="provider.type == 'customHTTP'">
|
||||
<tr>
|
||||
|
||||
10
web/views/@default/dns/providers/updatePopup.js
Normal file
10
web/views/@default/dns/providers/updatePopup.js
Normal file
@@ -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
|
||||
}
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user