From 5978ba69daf422c2c10ef15040bec46cb5960cfc Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Tue, 16 Mar 2021 18:10:00 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E8=AF=81=E4=B9=A6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=8F=AF=E4=BB=A5=E7=AD=9B=E9=80=89=E5=92=8C=E6=90=9C?= =?UTF-8?q?=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../default/servers/certs/acme/index.go | 127 +++++++++++++++--- .../actions/default/servers/certs/index.go | 2 + .../@default/servers/certs/acme/index.html | 20 +++ 3 files changed, 131 insertions(+), 18 deletions(-) diff --git a/internal/web/actions/default/servers/certs/acme/index.go b/internal/web/actions/default/servers/certs/acme/index.go index f3f92a00..d039ec03 100644 --- a/internal/web/actions/default/servers/certs/acme/index.go +++ b/internal/web/actions/default/servers/certs/acme/index.go @@ -16,30 +16,121 @@ func (this *IndexAction) Init() { this.SecondMenu("list") } -func (this *IndexAction) RunGet(params struct{}) { - countResp, err := this.RPC().ACMETaskRPC().CountAllEnabledACMETasks(this.AdminContext(), &pb.CountAllEnabledACMETasksRequest{ - AdminId: this.AdminId(), - UserId: 0, - }) - if err != nil { - this.ErrorPage(err) - return - } - count := countResp.Count - page := this.NewPage(count) - this.Data["page"] = page.AsHTML() +func (this *IndexAction) RunGet(params struct { + Type string + Keyword string +}) { + this.Data["type"] = params.Type + this.Data["keyword"] = params.Keyword - tasksResp, err := this.RPC().ACMETaskRPC().ListEnabledACMETasks(this.AdminContext(), &pb.ListEnabledACMETasksRequest{ - AdminId: this.AdminId(), - UserId: 0, - Offset: page.Offset, - Size: page.Size, - }) + countAll := int64(0) + countAvailable := int64(0) + countExpired := int64(0) + count7Days := int64(0) + count30Days := int64(0) + + // 计算数量 + { + // all + resp, err := this.RPC().ACMETaskRPC().CountAllEnabledACMETasks(this.AdminContext(), &pb.CountAllEnabledACMETasksRequest{ + Keyword: params.Keyword, + }) + if err != nil { + this.ErrorPage(err) + return + } + countAll = resp.Count + + // available + resp, err = this.RPC().ACMETaskRPC().CountAllEnabledACMETasks(this.AdminContext(), &pb.CountAllEnabledACMETasksRequest{ + IsAvailable: true, + Keyword: params.Keyword, + }) + if err != nil { + this.ErrorPage(err) + return + } + countAvailable = resp.Count + + // expired + resp, err = this.RPC().ACMETaskRPC().CountAllEnabledACMETasks(this.AdminContext(), &pb.CountAllEnabledACMETasksRequest{ + IsExpired: true, + Keyword: params.Keyword, + }) + if err != nil { + this.ErrorPage(err) + return + } + countExpired = resp.Count + + // expire in 7 days + resp, err = this.RPC().ACMETaskRPC().CountAllEnabledACMETasks(this.AdminContext(), &pb.CountAllEnabledACMETasksRequest{ + ExpiringDays: 7, + Keyword: params.Keyword, + }) + if err != nil { + this.ErrorPage(err) + return + } + count7Days = resp.Count + + // expire in 30 days + resp, err = this.RPC().ACMETaskRPC().CountAllEnabledACMETasks(this.AdminContext(), &pb.CountAllEnabledACMETasksRequest{ + ExpiringDays: 30, + Keyword: params.Keyword, + }) + if err != nil { + this.ErrorPage(err) + return + } + count30Days = resp.Count + } + + this.Data["countAll"] = countAll + this.Data["countAvailable"] = countAvailable + this.Data["countExpired"] = countExpired + this.Data["count7Days"] = count7Days + this.Data["count30Days"] = count30Days + + // 分页 + var page *actionutils.Page + var tasksResp *pb.ListEnabledACMETasksResponse + var err error + switch params.Type { + case "": + page = this.NewPage(countAll) + tasksResp, err = this.RPC().ACMETaskRPC().ListEnabledACMETasks(this.AdminContext(), &pb.ListEnabledACMETasksRequest{ + Offset: page.Offset, + Size: page.Size, + Keyword: params.Keyword, + }) + case "available": + page = this.NewPage(countAvailable) + tasksResp, err = this.RPC().ACMETaskRPC().ListEnabledACMETasks(this.AdminContext(), &pb.ListEnabledACMETasksRequest{IsAvailable: true, Offset: page.Offset, Size: page.Size, Keyword: params.Keyword}) + case "expired": + page = this.NewPage(countExpired) + tasksResp, err = this.RPC().ACMETaskRPC().ListEnabledACMETasks(this.AdminContext(), &pb.ListEnabledACMETasksRequest{IsExpired: true, Offset: page.Offset, Size: page.Size, Keyword: params.Keyword}) + case "7days": + page = this.NewPage(count7Days) + tasksResp, err = this.RPC().ACMETaskRPC().ListEnabledACMETasks(this.AdminContext(), &pb.ListEnabledACMETasksRequest{ExpiringDays: 7, Offset: page.Offset, Size: page.Size, Keyword: params.Keyword}) + case "30days": + page = this.NewPage(count30Days) + tasksResp, err = this.RPC().ACMETaskRPC().ListEnabledACMETasks(this.AdminContext(), &pb.ListEnabledACMETasksRequest{ExpiringDays: 30, Offset: page.Offset, Size: page.Size, Keyword: params.Keyword}) + default: + page = this.NewPage(countAll) + tasksResp, err = this.RPC().ACMETaskRPC().ListEnabledACMETasks(this.AdminContext(), &pb.ListEnabledACMETasksRequest{ + Keyword: params.Keyword, + Offset: page.Offset, + Size: page.Size, + }) + } if err != nil { this.ErrorPage(err) return } + this.Data["page"] = page.AsHTML() + taskMaps := []maps.Map{} for _, task := range tasksResp.AcmeTasks { if task.AcmeUser == nil { diff --git a/internal/web/actions/default/servers/certs/index.go b/internal/web/actions/default/servers/certs/index.go index 41b908dd..b53f10d7 100644 --- a/internal/web/actions/default/servers/certs/index.go +++ b/internal/web/actions/default/servers/certs/index.go @@ -138,6 +138,8 @@ func (this *IndexAction) RunGet(params struct { page = this.NewPage(countAll) listResp, err = this.RPC().SSLCertRPC().ListSSLCerts(this.AdminContext(), &pb.ListSSLCertsRequest{ Keyword: params.Keyword, + Offset: page.Offset, + Size: page.Size, }) } if err != nil { diff --git a/web/views/@default/servers/certs/acme/index.html b/web/views/@default/servers/certs/acme/index.html index 46a97247..43680c59 100644 --- a/web/views/@default/servers/certs/acme/index.html +++ b/web/views/@default/servers/certs/acme/index.html @@ -4,6 +4,26 @@
{$template "menu"} + + 所有任务({{countAll}}) + 有效证书({{countAvailable}}) + 过期证书({{countExpired}}) + 7天内过期({{count7Days}}) + 30天过期({{count30Days}}) +
+
+
+
+ +
+
+ +
+
+
+
+
+

暂时还没有证书申请任务。

有任务在执行中,可能需要的时间较长,请耐心等待。