Commit 02d90b1c authored by Savorboard's avatar Savorboard

add current node name to layout page if user enabled node discovery

parent bbe09e42
...@@ -16,64 +16,68 @@ ...@@ -16,64 +16,68 @@
<link rel="stylesheet" href="@Url.To($"/css{version.Major}{version.Minor}{version.Build}")"> <link rel="stylesheet" href="@Url.To($"/css{version.Major}{version.Minor}{version.Build}")">
</head> </head>
<body> <body>
<!-- Wrap all page content here --> <!-- Wrap all page content here -->
<div id="wrap"> <div id="wrap">
<!-- Fixed navbar --> <!-- Fixed navbar -->
<div class="navbar navbar-default navbar-fixed-top"> <div class="navbar navbar-default navbar-fixed-top">
<div class="container"> <div class="container">
<div class="navbar-header"> <div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button> </button>
<a class="navbar-brand" href="@Url.Home()">CAP Dashboard</a> <a class="navbar-brand" href="@Url.Home()">CAP Dashboard</a>
</div> </div>
<div class="collapse navbar-collapse"> <div class="collapse navbar-collapse">
@Html.RenderPartial(new Navigation()) @Html.RenderPartial(new Navigation())
@if (AppPath != null) @if (AppPath != null)
{ {
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="@AppPath"> <a href="@AppPath">
<span class="glyphicon glyphicon-log-out"></span> <span class="glyphicon glyphicon-log-out"></span>
@Strings.LayoutPage_Back @Strings.LayoutPage_Back
</a> </a>
</li> </li>
</ul> </ul>
} }
</div>
<!--/.nav-collapse -->
</div> </div>
<!--/.nav-collapse -->
</div> </div>
</div>
<!-- Begin page content --> <!-- Begin page content -->
<div class="container" style="margin-bottom: 20px;"> <div class="container" style="margin-bottom: 20px;">
@RenderBody() @RenderBody()
</div>
</div> </div>
</div>
<div id="footer"> <div id="footer">
<div class="container"> <div class="container">
<ul class="list-inline credit"> <ul class="list-inline credit">
<li> <li>
<a href="https://github.com/dotnetcore/cap/" target="_blank"> <a href="https://github.com/dotnetcore/cap/" target="_blank">
CAP @($"{version.Major}.{version.Minor}.{version.Build}") CAP @($"{version.Major}.{version.Minor}.{version.Build}")
</a> </a>
</li> </li>
<li>@Storage</li> <li>@Storage</li>
<li>@Strings.LayoutPage_Footer_Time @Html.LocalTime(DateTime.UtcNow)</li> <li>@Strings.LayoutPage_Footer_Time @Html.LocalTime(DateTime.UtcNow)</li>
<li>@string.Format(Strings.LayoutPage_Footer_Generatedms, GenerationTime.Elapsed.TotalMilliseconds.ToString("N"))</li> <li>@string.Format(Strings.LayoutPage_Footer_Generatedms, GenerationTime.Elapsed.TotalMilliseconds.ToString("N"))</li>
</ul> @if (NodeName != null)
{
<li>@string.Format(Strings.LayoutPage_Footer_NodeCurrent, NodeName)</li>
}
</ul>
</div>
</div> </div>
</div>
<div id="capConfig" <div id="capConfig"
data-pollinterval="@StatsPollingInterval" data-pollinterval="@StatsPollingInterval"
data-pollurl="@(Url.To("/stats"))"> data-pollurl="@(Url.To("/stats"))">
</div> </div>
<script src="@Url.To($"/js{version.Major}{version.Minor}{version.Build}")"></script> <script src="@Url.To($"/js{version.Major}{version.Minor}{version.Build}")"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -26,6 +26,8 @@ namespace DotNetCore.CAP.Dashboard ...@@ -26,6 +26,8 @@ namespace DotNetCore.CAP.Dashboard
public IStorage Storage { get; internal set; } public IStorage Storage { get; internal set; }
public string AppPath { get; internal set; } public string AppPath { get; internal set; }
public string NodeName { get; internal set; }
public int StatsPollingInterval { get; internal set; } public int StatsPollingInterval { get; internal set; }
public Stopwatch GenerationTime { get; private set; } public Stopwatch GenerationTime { get; private set; }
...@@ -64,10 +66,10 @@ namespace DotNetCore.CAP.Dashboard ...@@ -64,10 +66,10 @@ namespace DotNetCore.CAP.Dashboard
Response = parentPage.Response; Response = parentPage.Response;
Storage = parentPage.Storage; Storage = parentPage.Storage;
AppPath = parentPage.AppPath; AppPath = parentPage.AppPath;
NodeName = parentPage.NodeName;
StatsPollingInterval = parentPage.StatsPollingInterval; StatsPollingInterval = parentPage.StatsPollingInterval;
Url = parentPage.Url; Url = parentPage.Url;
RequestServices = parentPage.RequestServices; RequestServices = parentPage.RequestServices;
GenerationTime = parentPage.GenerationTime; GenerationTime = parentPage.GenerationTime;
_statisticsLazy = parentPage._statisticsLazy; _statisticsLazy = parentPage._statisticsLazy;
} }
...@@ -79,6 +81,7 @@ namespace DotNetCore.CAP.Dashboard ...@@ -79,6 +81,7 @@ namespace DotNetCore.CAP.Dashboard
RequestServices = context.RequestServices; RequestServices = context.RequestServices;
Storage = context.Storage; Storage = context.Storage;
AppPath = context.Options.AppPath; AppPath = context.Options.AppPath;
NodeName = GetNodeName();
StatsPollingInterval = context.Options.StatsPollingInterval; StatsPollingInterval = context.Options.StatsPollingInterval;
Url = new UrlHelper(context); Url = new UrlHelper(context);
...@@ -93,11 +96,21 @@ namespace DotNetCore.CAP.Dashboard ...@@ -93,11 +96,21 @@ namespace DotNetCore.CAP.Dashboard
}); });
} }
private string GetNodeName()
{
var discoveryOptions = RequestServices.GetService<DiscoveryOptions>();
if (discoveryOptions != null)
{
return $"{discoveryOptions.NodeName}({discoveryOptions.NodeId})";
}
return null;
}
private void SetServersCount(StatisticsDto dto) private void SetServersCount(StatisticsDto dto)
{ {
if (CapCache.Global.TryGet("cap.nodes.count", out var count)) if (CapCache.Global.TryGet("cap.nodes.count", out var count))
{ {
dto.Servers = (int) count; dto.Servers = (int)count;
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment