mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-10 17:30:29 +08:00
看板增加离线节点数字
This commit is contained in:
@@ -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),
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
Reference in New Issue
Block a user