mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-04 21:50:28 +08:00
生成节点DNS解析时区分节点是否已安装
This commit is contained in:
@@ -25,7 +25,7 @@ func (this *ClusterAction) RunGet(params struct {
|
|||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
cluster := clusterResp.NodeCluster
|
var cluster = clusterResp.NodeCluster
|
||||||
if cluster == nil {
|
if cluster == nil {
|
||||||
this.NotFound("nodeCluster", params.ClusterId)
|
this.NotFound("nodeCluster", params.ClusterId)
|
||||||
return
|
return
|
||||||
@@ -42,7 +42,7 @@ func (this *ClusterAction) RunGet(params struct {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
var defaultRoute = dnsResp.DefaultRoute
|
var defaultRoute = dnsResp.DefaultRoute
|
||||||
domainName := ""
|
var domainName = ""
|
||||||
var dnsMap = maps.Map{
|
var dnsMap = maps.Map{
|
||||||
"dnsName": dnsResp.Name,
|
"dnsName": dnsResp.Name,
|
||||||
"domainId": 0,
|
"domainId": 0,
|
||||||
@@ -70,19 +70,42 @@ func (this *ClusterAction) RunGet(params struct {
|
|||||||
|
|
||||||
this.Data["dnsInfo"] = dnsMap
|
this.Data["dnsInfo"] = dnsMap
|
||||||
|
|
||||||
// 节点DNS解析记录
|
// 未安装的节点
|
||||||
nodesResp, err := this.RPC().NodeRPC().FindAllEnabledNodesDNSWithNodeClusterId(this.AdminContext(), &pb.FindAllEnabledNodesDNSWithNodeClusterIdRequest{NodeClusterId: params.ClusterId})
|
notInstalledNodesResp, err := this.RPC().NodeRPC().FindAllEnabledNodesDNSWithNodeClusterId(this.AdminContext(), &pb.FindAllEnabledNodesDNSWithNodeClusterIdRequest{
|
||||||
|
NodeClusterId: params.ClusterId,
|
||||||
|
IsInstalled: false,
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var nodeMaps = []maps.Map{}
|
var allNodes = notInstalledNodesResp.Nodes
|
||||||
|
|
||||||
|
// 节点DNS解析记录
|
||||||
|
nodesResp, err := this.RPC().NodeRPC().FindAllEnabledNodesDNSWithNodeClusterId(this.AdminContext(), &pb.FindAllEnabledNodesDNSWithNodeClusterIdRequest{
|
||||||
|
NodeClusterId: params.ClusterId,
|
||||||
|
IsInstalled: true,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
this.ErrorPage(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var installedNodeIdsMap = map[int64]bool{}
|
||||||
for _, node := range nodesResp.Nodes {
|
for _, node := range nodesResp.Nodes {
|
||||||
|
installedNodeIdsMap[node.Id] = true
|
||||||
|
}
|
||||||
|
|
||||||
|
allNodes = append(allNodes, nodesResp.Nodes...)
|
||||||
|
|
||||||
|
var nodeMaps = []maps.Map{}
|
||||||
|
for _, node := range allNodes {
|
||||||
|
var isInstalled = installedNodeIdsMap[node.Id]
|
||||||
|
|
||||||
if len(node.Routes) > 0 {
|
if len(node.Routes) > 0 {
|
||||||
for _, route := range node.Routes {
|
for _, route := range node.Routes {
|
||||||
// 检查是否已解析
|
// 检查是否已解析
|
||||||
var isResolved = false
|
var isResolved = false
|
||||||
if cluster.DnsDomainId > 0 && len(cluster.DnsName) > 0 && len(node.IpAddr) > 0 {
|
if isInstalled && cluster.DnsDomainId > 0 && len(cluster.DnsName) > 0 && len(node.IpAddr) > 0 {
|
||||||
var recordType = "A"
|
var recordType = "A"
|
||||||
if utils.IsIPv6(node.IpAddr) {
|
if utils.IsIPv6(node.IpAddr) {
|
||||||
recordType = "AAAA"
|
recordType = "AAAA"
|
||||||
@@ -110,14 +133,15 @@ func (this *ClusterAction) RunGet(params struct {
|
|||||||
"name": route.Name,
|
"name": route.Name,
|
||||||
"code": route.Code,
|
"code": route.Code,
|
||||||
},
|
},
|
||||||
"clusterId": node.NodeClusterId,
|
"clusterId": node.NodeClusterId,
|
||||||
"isResolved": isResolved,
|
"isResolved": isResolved,
|
||||||
|
"isInstalled": isInstalled,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 默认线路
|
// 默认线路
|
||||||
var isResolved = false
|
var isResolved = false
|
||||||
if len(defaultRoute) > 0 {
|
if isInstalled && len(defaultRoute) > 0 {
|
||||||
var recordType = "A"
|
var recordType = "A"
|
||||||
if utils.IsIPv6(node.IpAddr) {
|
if utils.IsIPv6(node.IpAddr) {
|
||||||
recordType = "AAAA"
|
recordType = "AAAA"
|
||||||
@@ -144,8 +168,9 @@ func (this *ClusterAction) RunGet(params struct {
|
|||||||
"name": "",
|
"name": "",
|
||||||
"code": "",
|
"code": "",
|
||||||
},
|
},
|
||||||
"clusterId": node.NodeClusterId,
|
"clusterId": node.NodeClusterId,
|
||||||
"isResolved": isResolved,
|
"isResolved": isResolved,
|
||||||
|
"isInstalled": isInstalled,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ func (this *NodesPopupAction) Init() {
|
|||||||
func (this *NodesPopupAction) RunGet(params struct {
|
func (this *NodesPopupAction) RunGet(params struct {
|
||||||
DomainId int64
|
DomainId int64
|
||||||
}) {
|
}) {
|
||||||
|
this.Data["domainId"] = params.DomainId
|
||||||
|
|
||||||
// 域名信息
|
// 域名信息
|
||||||
domainResp, err := this.RPC().DNSDomainRPC().FindBasicDNSDomain(this.AdminContext(), &pb.FindBasicDNSDomainRequest{
|
domainResp, err := this.RPC().DNSDomainRPC().FindBasicDNSDomain(this.AdminContext(), &pb.FindBasicDNSDomainRequest{
|
||||||
DnsDomainId: params.DomainId,
|
DnsDomainId: params.DomainId,
|
||||||
@@ -26,7 +28,7 @@ func (this *NodesPopupAction) RunGet(params struct {
|
|||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
domain := domainResp.DnsDomain
|
var domain = domainResp.DnsDomain
|
||||||
if domain == nil {
|
if domain == nil {
|
||||||
this.NotFound("dnsDomain", params.DomainId)
|
this.NotFound("dnsDomain", params.DomainId)
|
||||||
return
|
return
|
||||||
@@ -35,7 +37,7 @@ func (this *NodesPopupAction) RunGet(params struct {
|
|||||||
this.Data["domain"] = domain.Name
|
this.Data["domain"] = domain.Name
|
||||||
|
|
||||||
// 集群
|
// 集群
|
||||||
clusterMaps := []maps.Map{}
|
var clusterMaps = []maps.Map{}
|
||||||
clustersResp, err := this.RPC().NodeClusterRPC().FindAllEnabledNodeClustersWithDNSDomainId(this.AdminContext(), &pb.FindAllEnabledNodeClustersWithDNSDomainIdRequest{DnsDomainId: params.DomainId})
|
clustersResp, err := this.RPC().NodeClusterRPC().FindAllEnabledNodeClustersWithDNSDomainId(this.AdminContext(), &pb.FindAllEnabledNodeClustersWithDNSDomainIdRequest{DnsDomainId: params.DomainId})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
@@ -43,18 +45,24 @@ func (this *NodesPopupAction) RunGet(params struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, cluster := range clustersResp.NodeClusters {
|
for _, cluster := range clustersResp.NodeClusters {
|
||||||
|
// 默认值
|
||||||
|
var defaultRoute = cluster.DnsDefaultRoute
|
||||||
|
|
||||||
// 节点DNS解析记录
|
// 节点DNS解析记录
|
||||||
nodesResp, err := this.RPC().NodeRPC().FindAllEnabledNodesDNSWithNodeClusterId(this.AdminContext(), &pb.FindAllEnabledNodesDNSWithNodeClusterIdRequest{NodeClusterId: cluster.Id})
|
nodesResp, err := this.RPC().NodeRPC().FindAllEnabledNodesDNSWithNodeClusterId(this.AdminContext(), &pb.FindAllEnabledNodesDNSWithNodeClusterIdRequest{
|
||||||
|
NodeClusterId: cluster.Id,
|
||||||
|
IsInstalled: true,
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
nodeMaps := []maps.Map{}
|
var nodeMaps = []maps.Map{}
|
||||||
for _, node := range nodesResp.Nodes {
|
for _, node := range nodesResp.Nodes {
|
||||||
if len(node.Routes) > 0 {
|
if len(node.Routes) > 0 {
|
||||||
for _, route := range node.Routes {
|
for _, route := range node.Routes {
|
||||||
// 检查是否有域名解析记录
|
// 检查是否有域名解析记录
|
||||||
isOk := false
|
var isResolved = false
|
||||||
if len(route.Name) > 0 && len(node.IpAddr) > 0 && len(cluster.DnsName) > 0 {
|
if len(route.Name) > 0 && len(node.IpAddr) > 0 && len(cluster.DnsName) > 0 {
|
||||||
var recordType = "A"
|
var recordType = "A"
|
||||||
if utils.IsIPv6(node.IpAddr) {
|
if utils.IsIPv6(node.IpAddr) {
|
||||||
@@ -71,7 +79,7 @@ func (this *NodesPopupAction) RunGet(params struct {
|
|||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
isOk = checkResp.IsOk
|
isResolved = checkResp.IsOk
|
||||||
}
|
}
|
||||||
|
|
||||||
nodeMaps = append(nodeMaps, maps.Map{
|
nodeMaps = append(nodeMaps, maps.Map{
|
||||||
@@ -83,10 +91,30 @@ func (this *NodesPopupAction) RunGet(params struct {
|
|||||||
"code": route.Code,
|
"code": route.Code,
|
||||||
},
|
},
|
||||||
"clusterId": node.NodeClusterId,
|
"clusterId": node.NodeClusterId,
|
||||||
"isOk": isOk,
|
"isOk": isResolved,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// 默认线路
|
||||||
|
var isResolved = false
|
||||||
|
if len(defaultRoute) > 0 {
|
||||||
|
var recordType = "A"
|
||||||
|
if utils.IsIPv6(node.IpAddr) {
|
||||||
|
recordType = "AAAA"
|
||||||
|
}
|
||||||
|
checkResp, err := this.RPC().DNSDomainRPC().ExistDNSDomainRecord(this.AdminContext(), &pb.ExistDNSDomainRecordRequest{
|
||||||
|
DnsDomainId: cluster.DnsDomainId,
|
||||||
|
Name: cluster.DnsName,
|
||||||
|
Type: recordType,
|
||||||
|
Route: defaultRoute,
|
||||||
|
Value: node.IpAddr,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
this.ErrorPage(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
isResolved = checkResp.IsOk
|
||||||
|
}
|
||||||
nodeMaps = append(nodeMaps, maps.Map{
|
nodeMaps = append(nodeMaps, maps.Map{
|
||||||
"id": node.Id,
|
"id": node.Id,
|
||||||
"name": node.Name,
|
"name": node.Name,
|
||||||
@@ -96,7 +124,7 @@ func (this *NodesPopupAction) RunGet(params struct {
|
|||||||
"code": "",
|
"code": "",
|
||||||
},
|
},
|
||||||
"clusterId": node.NodeClusterId,
|
"clusterId": node.NodeClusterId,
|
||||||
"isOk": false,
|
"isOk": isResolved,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ func (this *ServersPopupAction) Init() {
|
|||||||
func (this *ServersPopupAction) RunGet(params struct {
|
func (this *ServersPopupAction) RunGet(params struct {
|
||||||
DomainId int64
|
DomainId int64
|
||||||
}) {
|
}) {
|
||||||
|
this.Data["domainId"] = params.DomainId
|
||||||
|
|
||||||
// 域名信息
|
// 域名信息
|
||||||
domainResp, err := this.RPC().DNSDomainRPC().FindBasicDNSDomain(this.AdminContext(), &pb.FindBasicDNSDomainRequest{
|
domainResp, err := this.RPC().DNSDomainRPC().FindBasicDNSDomain(this.AdminContext(), &pb.FindBasicDNSDomainRequest{
|
||||||
DnsDomainId: params.DomainId,
|
DnsDomainId: params.DomainId,
|
||||||
@@ -25,7 +27,7 @@ func (this *ServersPopupAction) RunGet(params struct {
|
|||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
domain := domainResp.DnsDomain
|
var domain = domainResp.DnsDomain
|
||||||
if domain == nil {
|
if domain == nil {
|
||||||
this.NotFound("dnsDomain", params.DomainId)
|
this.NotFound("dnsDomain", params.DomainId)
|
||||||
return
|
return
|
||||||
@@ -34,7 +36,7 @@ func (this *ServersPopupAction) RunGet(params struct {
|
|||||||
this.Data["domain"] = domain.Name
|
this.Data["domain"] = domain.Name
|
||||||
|
|
||||||
// 服务信息
|
// 服务信息
|
||||||
clusterMaps := []maps.Map{}
|
var clusterMaps = []maps.Map{}
|
||||||
clustersResp, err := this.RPC().NodeClusterRPC().FindAllEnabledNodeClustersWithDNSDomainId(this.AdminContext(), &pb.FindAllEnabledNodeClustersWithDNSDomainIdRequest{DnsDomainId: params.DomainId})
|
clustersResp, err := this.RPC().NodeClusterRPC().FindAllEnabledNodeClustersWithDNSDomainId(this.AdminContext(), &pb.FindAllEnabledNodeClustersWithDNSDomainIdRequest{DnsDomainId: params.DomainId})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
@@ -46,9 +48,9 @@ func (this *ServersPopupAction) RunGet(params struct {
|
|||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
serverMaps := []maps.Map{}
|
var serverMaps = []maps.Map{}
|
||||||
for _, server := range serversResp.Servers {
|
for _, server := range serversResp.Servers {
|
||||||
isOk := false
|
var isOk = false
|
||||||
if len(cluster.DnsName) > 0 && len(server.DnsName) > 0 {
|
if len(cluster.DnsName) > 0 && len(server.DnsName) > 0 {
|
||||||
checkResp, err := this.RPC().DNSDomainRPC().ExistDNSDomainRecord(this.AdminContext(), &pb.ExistDNSDomainRecordRequest{
|
checkResp, err := this.RPC().DNSDomainRPC().ExistDNSDomainRecord(this.AdminContext(), &pb.ExistDNSDomainRecordRequest{
|
||||||
DnsDomainId: params.DomainId,
|
DnsDomainId: params.DomainId,
|
||||||
|
|||||||
@@ -24,6 +24,10 @@ Vue.component("link-red", {
|
|||||||
methods: {
|
methods: {
|
||||||
clickPrevent: function () {
|
clickPrevent: function () {
|
||||||
emitClick(this, arguments)
|
emitClick(this, arguments)
|
||||||
|
|
||||||
|
if (this.vHref.length > 0) {
|
||||||
|
window.location = this.vHref
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
template: `<a :href="vHref" :title="title" style="border-bottom: 1px #db2828 dashed" @click.prevent="clickPrevent"><span class="red"><slot></slot></span></a>`
|
template: `<a :href="vHref" :title="title" style="border-bottom: 1px #db2828 dashed" @click.prevent="clickPrevent"><span class="red"><slot></slot></span></a>`
|
||||||
|
|||||||
@@ -77,6 +77,7 @@
|
|||||||
<p class="comment" v-if="!dnsIsExcludingLnNode">通过设置A记录可以将集群上的服务请求转发到不同线路的节点上。</p>
|
<p class="comment" v-if="!dnsIsExcludingLnNode">通过设置A记录可以将集群上的服务请求转发到不同线路的节点上。</p>
|
||||||
</div>
|
</div>
|
||||||
<p class="comment" v-if="dnsIsExcludingLnNode"><span class="red">当前集群DNS已设置不解析Ln节点,所以当前节点不会加入DNS解析;如需加入,请修改"集群设置" -- "DNS设置" -- "更多选项" -- "包含Ln节点"。</span></p>
|
<p class="comment" v-if="dnsIsExcludingLnNode"><span class="red">当前集群DNS已设置不解析Ln节点,所以当前节点不会加入DNS解析;如需加入,请修改"集群设置" -- "DNS设置" -- "更多选项" -- "包含Ln节点"。</span></p>
|
||||||
|
<p class="comment" v-if="!node.isInstalled"><span class="red">当前节点尚未完成安装,DNS解析记录将不会生效,<a :href="'/clusters/cluster/node/install?clusterId=' + clusterId + '&nodeId=' + node.id">[点此安装]</a>。</span></p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -4,6 +4,11 @@
|
|||||||
|
|
||||||
<!-- 未安装 -->
|
<!-- 未安装 -->
|
||||||
<div v-if="!node.isInstalled">
|
<div v-if="!node.isInstalled">
|
||||||
|
<div>
|
||||||
|
<span class="red">在当前节点完成安装前,相关DNS解析记录将不会生效,<link-red href="" @click.prevent="updateNodeIsInstalled(true)">已完成安装</link-red> 。</span>
|
||||||
|
<div class="ui divider"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h4>方法1:通过SSH自动安装</h4>
|
<h4>方法1:通过SSH自动安装</h4>
|
||||||
|
|
||||||
<div v-if="installStatus != null && (installStatus.isRunning || installStatus.isFinished)"
|
<div v-if="installStatus != null && (installStatus.isRunning || installStatus.isFinished)"
|
||||||
@@ -69,7 +74,8 @@ secret: "{{node.secret}}"</source-code-box>
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<a href="" @click.prevent="updateNodeIsInstalled(true)">[修改为已安装状态]</a>
|
<div class="ui divider"></div>
|
||||||
|
<a href="" @click.prevent="updateNodeIsInstalled(true)">[修改当前节点为已安装状态]</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 已安装 -->
|
<!-- 已安装 -->
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ Tea.context(function () {
|
|||||||
|
|
||||||
// 设置节点安装状态
|
// 设置节点安装状态
|
||||||
this.updateNodeIsInstalled = function (isInstalled) {
|
this.updateNodeIsInstalled = function (isInstalled) {
|
||||||
teaweb.confirm("确定要将当前节点修改为未安装状态?", function () {
|
let msg = isInstalled ? "html:确定要将当前节点修改为<strong>已安装</strong>状态?" : "html:确定要将当前节点修改为<strong>未安装</strong>状态?"
|
||||||
|
teaweb.confirm(msg, function () {
|
||||||
this.$post("/clusters/cluster/node/updateInstallStatus")
|
this.$post("/clusters/cluster/node/updateInstallStatus")
|
||||||
.params({
|
.params({
|
||||||
nodeId: this.nodeId,
|
nodeId: this.nodeId,
|
||||||
|
|||||||
@@ -164,8 +164,11 @@
|
|||||||
<link-red v-else title="点击设置" @click.prevent="updateNode(node.clusterId, node.id, node.ipAddrId)">没有设置</link-red>
|
<link-red v-else title="点击设置" @click.prevent="updateNode(node.clusterId, node.id, node.ipAddrId)">没有设置</link-red>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<span class="green" v-if="node.isResolved">已解析</span>
|
<span v-if="node.isInstalled">
|
||||||
<span v-else class="red">未解析</span>
|
<span class="green" v-if="node.isResolved">已解析</span>
|
||||||
|
<span v-else class="red">未解析</span>
|
||||||
|
</span>
|
||||||
|
<link-red :href="'/clusters/cluster/node/install?clusterId=' + cluster.id + '&nodeId=' + node.id" v-if="!node.isInstalled"><span class="red">未安装</span></link-red>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<link-popup @click.prevent="updateNode(node.clusterId, node.id, node.ipAddrId)">修改</link-popup>
|
<link-popup @click.prevent="updateNode(node.clusterId, node.id, node.ipAddrId)">修改</link-popup>
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{$layout "layout_popup"}
|
{$layout "layout_popup"}
|
||||||
|
|
||||||
<h3>使用域名"{{domain}}"的节点</h3>
|
<h3>使用域名"{{domain}}"的节点</h3>
|
||||||
<form class="ui form">
|
<form class="ui form" action="/dns/domains/nodesPopup" method="get">
|
||||||
|
<input type="hidden" name="domainId" :value="domainId"/>
|
||||||
<div class="ui fields inline">
|
<div class="ui fields inline">
|
||||||
<div class="ui field">
|
<div class="ui field">
|
||||||
<input type="text" placeholder="关键词" v-model="keyword"/>
|
<input type="text" placeholder="关键词" v-model="keyword"/>
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{$layout "layout_popup"}
|
{$layout "layout_popup"}
|
||||||
|
|
||||||
<h3>使用域名"{{domain}}"的节点</h3>
|
<h3>使用域名"{{domain}}"的服务</h3>
|
||||||
<form class="ui form">
|
<form class="ui form" action="/dns/domains/serversPopup" method="get">
|
||||||
|
<input type="hidden" name="domainId" :value="domainId"/>
|
||||||
<div class="ui fields inline">
|
<div class="ui fields inline">
|
||||||
<div class="ui field">
|
<div class="ui field">
|
||||||
<input type="text" placeholder="关键词" v-model="keyword"/>
|
<input type="text" placeholder="关键词" v-model="keyword"/>
|
||||||
|
|||||||
@@ -127,7 +127,10 @@ Tea.context(function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.viewServers = function (domainId) {
|
this.viewServers = function (domainId) {
|
||||||
teaweb.popup("/dns/domains/serversPopup?domainId=" + domainId)
|
teaweb.popup("/dns/domains/serversPopup?domainId=" + domainId, {
|
||||||
|
width: "50em",
|
||||||
|
height: "30em"
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
this.alertDown = function () {
|
this.alertDown = function () {
|
||||||
|
|||||||
Reference in New Issue
Block a user