看板增加离线节点数字

This commit is contained in:
刘祥超
2021-09-27 09:23:48 +08:00
parent 0df6b4b220
commit 788a86bdcf
7 changed files with 45 additions and 16 deletions

View File

@@ -58,10 +58,13 @@ func (this *IndexAction) RunPost(params struct{}) {
"countServers": resp.CountServers, "countServers": resp.CountServers,
"countNodeClusters": resp.CountNodeClusters, "countNodeClusters": resp.CountNodeClusters,
"countNodes": resp.CountNodes, "countNodes": resp.CountNodes,
"countOfflineNodes": resp.CountOfflineNodes,
"countUsers": resp.CountUsers, "countUsers": resp.CountUsers,
"countAPINodes": resp.CountAPINodes, "countAPINodes": resp.CountAPINodes,
"countOfflineAPINodes": resp.CountOfflineAPINodes,
"countDBNodes": resp.CountDBNodes, "countDBNodes": resp.CountDBNodes,
"countUserNodes": resp.CountUserNodes, "countUserNodes": resp.CountUserNodes,
"countOfflineUserNodes": resp.CountOfflineUserNodes,
"canGoServers": configloaders.AllowModule(this.AdminId(), configloaders.AdminModuleCodeServer), "canGoServers": configloaders.AllowModule(this.AdminId(), configloaders.AdminModuleCodeServer),
"canGoNodes": configloaders.AllowModule(this.AdminId(), configloaders.AdminModuleCodeNode), "canGoNodes": configloaders.AllowModule(this.AdminId(), configloaders.AdminModuleCodeNode),

View File

@@ -33,7 +33,9 @@ func (this *AdvancedHelper) BeforeAction(actionPtr actions.ActionWrapper) (goNex
if configloaders.AllowModule(adminId, configloaders.AdminModuleCodeSetting) { if configloaders.AllowModule(adminId, configloaders.AdminModuleCodeSetting) {
tabbar.Add("数据库", "", "/settings/database", "", this.tab == "database") tabbar.Add("数据库", "", "/settings/database", "", this.tab == "database")
tabbar.Add("API节点", "", "/api", "", this.tab == "apiNodes") tabbar.Add("API节点", "", "/api", "", this.tab == "apiNodes")
if teaconst.IsPlus {
tabbar.Add("用户节点", "", "/settings/userNodes", "", this.tab == "userNodes") tabbar.Add("用户节点", "", "/settings/userNodes", "", this.tab == "userNodes")
}
tabbar.Add("日志数据库", "", "/db", "", this.tab == "dbNodes") tabbar.Add("日志数据库", "", "/db", "", this.tab == "dbNodes")
if teaconst.IsPlus { if teaconst.IsPlus {
tabbar.Add("监控节点", "", "/settings/monitorNodes", "", this.tab == "monitorNodes") tabbar.Add("监控节点", "", "/settings/monitorNodes", "", this.tab == "monitorNodes")

View File

@@ -3,6 +3,7 @@ package usernodes
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
teaconst "github.com/TeaOSLab/EdgeAdmin/internal/const"
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
@@ -20,6 +21,11 @@ func (this *IndexAction) Init() {
} }
func (this *IndexAction) RunGet(params struct{}) { func (this *IndexAction) RunGet(params struct{}) {
if !teaconst.IsPlus {
this.RedirectURL("/")
return
}
countResp, err := this.RPC().UserNodeRPC().CountAllEnabledUserNodes(this.AdminContext(), &pb.CountAllEnabledUserNodesRequest{}) countResp, err := this.RPC().UserNodeRPC().CountAllEnabledUserNodes(this.AdminContext(), &pb.CountAllEnabledUserNodesRequest{})
if err != nil { if err != nil {
this.ErrorPage(err) this.ErrorPage(err)

View File

@@ -18,7 +18,9 @@
<div class="ui column no-border"> <div class="ui column no-border">
<h4>节点<link-icon href="/ns/clusters"></link-icon></h4> <h4>节点<link-icon href="/ns/clusters"></link-icon></h4>
<div class="value"><span>{{board.countNodes}}</span> <div class="value"><span>{{board.countNodes}}</span>
<span v-if="board.countOfflineNodes > 0" class="red" style="font-size: 1em">{{board.countOfflineNodes}}离线</span> <span v-if="board.countOfflineNodes > 0" style="font-size: 1em">
/ <a href="/ns/clusters"><span class="red" style="font-size: 1em">{{board.countOfflineNodes}}离线</span></a>
</span>
<span v-else style="font-size: 1em"></span> <span v-else style="font-size: 1em"></span>
</div> </div>
</div> </div>

View File

@@ -59,17 +59,25 @@
<div class="ui column"> <div class="ui column">
<h4>边缘节点<link-icon href="/clusters" v-if="dashboard.canGoNodes"></link-icon></h4> <h4>边缘节点<link-icon href="/clusters" v-if="dashboard.canGoNodes"></link-icon></h4>
<div class="value"><span>{{dashboard.countNodes}}</span></div> <div class="value">
<span>{{dashboard.countNodes}}</span>
<span style="font-size: 1em" v-if="dashboard.countOfflineNodes > 0">/ <a href="/clusters" v-if="dashboard.canGoNodes"><span class="red" style="font-size: 1em">{{dashboard.countOfflineNodes}}离线</span></a><span class="red" style="font-size: 1em" v-else>{{dashboard.countOfflineNodes}}离线</span></span>
</div>
</div> </div>
<div class="ui column"> <div class="ui column">
<h4>API节点<link-icon href="/api" v-if="dashboard.canGoSettings"></link-icon></h4> <h4>API节点<link-icon href="/api" v-if="dashboard.canGoSettings"></link-icon></h4>
<div class="value"><span>{{dashboard.countAPINodes}}</span></div> <div class="value">
<span>{{dashboard.countAPINodes}}</span>
<span style="font-size: 1em" v-if="dashboard.countOfflineAPINodes > 0">/ <a href="/api" v-if="dashboard.canGoSettings"><span class="red" style="font-size: 1em">{{dashboard.countOfflineAPINodes}}离线</span></a><span class="red" style="font-size: 1em" v-else>{{dashboard.countOfflineAPINodes}}离线</span></span>
</div>
</div> </div>
<div class="ui column"> <div class="ui column">
<h4>用户<link-icon href="/users" v-if="dashboard.canGoUsers"></link-icon></h4> <h4>用户<link-icon href="/users" v-if="dashboard.canGoUsers"></link-icon></h4>
<div class="value"><span>{{dashboard.countUsers}}</span></div> <div class="value"><span>{{dashboard.countUsers}}</span>
<span style="font-size: 1em" v-if="dashboard.countOfflineUserNodes > 0">/ <a href="/settings/userNodes" v-if="dashboard.canGoSettings"><span class="red" style="font-size: 1em">{{dashboard.countOfflineUserNodes}}节点离线</span></a><span class="red" style="font-size: 1em" v-else>{{dashboard.countOfflineUserNodes}}节点离线</span></span>
</div>
</div> </div>
<div class="ui column"> <div class="ui column">

View File

@@ -18,7 +18,9 @@
<div class="ui column no-border"> <div class="ui column no-border">
<h4>用户节点<link-icon href="/settings/userNodes"></link-icon></h4> <h4>用户节点<link-icon href="/settings/userNodes"></link-icon></h4>
<div class="value"><span>{{board.countUserNodes}}</span> <div class="value"><span>{{board.countUserNodes}}</span>
<span v-if="board.countOfflineUserNodes > 0" class="red" style="font-size: 1em">{{board.countOfflineUserNodes}}离线</span> <span v-if="board.countOfflineUserNodes > 0" style="font-size: 1em">
/ <a href="/settings/userNodes"><span class="red" style="font-size: 1em">{{board.countOfflineUserNodes}}离线</span></a>
</span>
<span v-else style="font-size: 1em"></span> <span v-else style="font-size: 1em"></span>
</div> </div>
</div> </div>

View File

@@ -33,17 +33,23 @@
<div class="ui column"> <div class="ui column">
<h4>边缘节点<link-icon href="/clusters" v-if="dashboard.canGoNodes"></link-icon></h4> <h4>边缘节点<link-icon href="/clusters" v-if="dashboard.canGoNodes"></link-icon></h4>
<div class="value"><span>{{dashboard.countNodes}}</span></div> <div class="value"><span>{{dashboard.countNodes}}</span>
<span style="font-size: 1em" v-if="dashboard.countOfflineNodes > 0">/ <a href="/clusters" v-if="dashboard.canGoNodes"><span class="red" style="font-size: 1em">{{dashboard.countOfflineNodes}}离线</span></a><span class="red" style="font-size: 1em" v-else>{{dashboard.countOfflineNodes}}离线</span></span>
</div>
</div> </div>
<div class="ui column no-border"> <div class="ui column no-border">
<h4>API节点<link-icon href="/api" v-if="dashboard.canGoSettings"></link-icon></h4> <h4>API节点<link-icon href="/api" v-if="dashboard.canGoSettings"></link-icon></h4>
<div class="value"><span>{{dashboard.countAPINodes}}</span></div> <div class="value"><span>{{dashboard.countAPINodes}}</span>
<span style="font-size: 1em" v-if="dashboard.countOfflineAPINodes > 0">/ <a href="/api" v-if="dashboard.canGoSettings"><span class="red" style="font-size: 1em">{{dashboard.countOfflineAPINodes}}离线</span></a><span class="red" style="font-size: 1em" v-else>{{dashboard.countOfflineAPINodes}}离线</span></span>
</div>
</div> </div>
<div class="ui column"> <div class="ui column">
<h4>用户<link-icon href="/users" v-if="dashboard.canGoUsers"></link-icon></h4> <h4>用户<link-icon href="/users" v-if="dashboard.canGoUsers"></link-icon></h4>
<div class="value"><span>{{dashboard.countUsers}}</span></div> <div class="value"><span>{{dashboard.countUsers}}</span>
<span style="font-size: 1em" v-if="dashboard.countOfflineUserNodes > 0">/ <a href="/settings/userNodes" v-if="dashboard.canGoSettings"><span class="red" style="font-size: 1em">{{dashboard.countOfflineUserNodes}}节点离线</span></a><span class="red" style="font-size: 1em" v-else>{{dashboard.countOfflineUserNodes}}节点离线</span></span>
</div>
</div> </div>
<div class="ui column"> <div class="ui column">