diff --git a/internal/web/actions/default/dns/init.go b/internal/web/actions/default/dns/init.go index 00e1ad2b..a3e9e294 100644 --- a/internal/web/actions/default/dns/init.go +++ b/internal/web/actions/default/dns/init.go @@ -34,6 +34,7 @@ func init() { GetPost("/updatePopup", new(providers.UpdatePopupAction)). Post("/delete", new(providers.DeleteAction)). Get("/provider", new(providers.ProviderAction)). + Post("/syncDomains", new(providers.SyncDomainsAction)). EndData(). // 域名 @@ -56,7 +57,6 @@ func init() { GetPost("", new(issues.IndexAction)). GetPost("/updateNodePopup", new(issues.UpdateNodePopupAction)). EndData(). - EndAll() }) } diff --git a/internal/web/actions/default/dns/providers/provider.go b/internal/web/actions/default/dns/providers/provider.go index b8bafd5f..d455ca4f 100644 --- a/internal/web/actions/default/dns/providers/provider.go +++ b/internal/web/actions/default/dns/providers/provider.go @@ -82,6 +82,7 @@ func (this *ProviderAction) RunGet(params struct { "id": domain.Id, "name": domain.Name, "isOn": domain.IsOn, + "isUp": domain.IsUp, "dataUpdatedTime": dataUpdatedTime, "countRoutes": len(domain.Routes), "countServerRecords": domain.CountServerRecords, diff --git a/internal/web/actions/default/dns/providers/syncDomains.go b/internal/web/actions/default/dns/providers/syncDomains.go new file mode 100644 index 00000000..3437a07e --- /dev/null +++ b/internal/web/actions/default/dns/providers/syncDomains.go @@ -0,0 +1,25 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package providers + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" +) + +type SyncDomainsAction struct { + actionutils.ParentAction +} + +func (this *SyncDomainsAction) RunPost(params struct { + ProviderId int64 +}) { + resp, err := this.RPC().DNSDomainRPC().SyncDNSDomainsFromProvider(this.AdminContext(), &pb.SyncDNSDomainsFromProviderRequest{DnsProviderId: params.ProviderId}) + if err != nil { + this.Fail("更新域名失败:" + err.Error()) + } + + this.Data["hasChanges"] = resp.HasChanges + + this.Success() +} diff --git a/web/views/@default/dns/providers/provider.html b/web/views/@default/dns/providers/provider.html index b9276175..5884b2b6 100644 --- a/web/views/@default/dns/providers/provider.html +++ b/web/views/@default/dns/providers/provider.html @@ -93,7 +93,10 @@ -

管理的域名 [添加域名]

+

管理的域名 [添加域名]

+ +

正在检查域名状态...

+

暂时还没有可以管理的域名。

@@ -136,6 +139,9 @@ 需要同步正在同步... +
+ 已下线 +
diff --git a/web/views/@default/dns/providers/provider.js b/web/views/@default/dns/providers/provider.js index 844b0a89..e75f3100 100644 --- a/web/views/@default/dns/providers/provider.js +++ b/web/views/@default/dns/providers/provider.js @@ -1,4 +1,28 @@ Tea.context(function () { + this.isUpdatingDomains = false + + this.$delay(function () { + this.syncDomains() + }) + + this.syncDomains = function () { + this.isUpdatingDomains = true + this.$post(".syncDomains") + .params({ + providerId: this.provider.id + }) + .success(function (resp) { + if (resp.data.hasChanges) { + teaweb.reload() + } + }) + .done(function () { + this.$delay(function () { + this.isUpdatingDomains = false + }, 1000) + }) + } + this.updateProvider = function (providerId) { teaweb.popup(Tea.url(".updatePopup?providerId=" + providerId), { height: "28em", @@ -88,4 +112,8 @@ Tea.context(function () { this.viewServers = function (domainId) { teaweb.popup("/dns/domains/serversPopup?domainId=" + domainId) } + + this.alertDown = function () { + teaweb.popupTip("当前域名已从服务商下线") + } }) \ No newline at end of file