1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-21 12:40:19 -05:00

zombie stats code

This commit is contained in:
RaidMax
2024-07-02 16:09:30 -05:00
parent 962abcf833
commit 79bd6ca8e1
44 changed files with 2354 additions and 4264 deletions

View File

@ -248,7 +248,7 @@
<div class="col-12 col-lg-9 mt-0">
<h2 class="content-title mb-0">@ViewBag.Title</h2>
<span class="text-muted">
<color-code value="@(Model.Servers.FirstOrDefault(server => server.Endpoint == Model.ServerEndpoint)?.Name ?? ViewBag.Localization["WEBFRONT_STATS_INDEX_ALL_SERVERS"])"></color-code>
<color-code value="@(Model.PerformanceBucket ?? Model.Servers.FirstOrDefault(server => server.Endpoint == Model.ServerEndpoint)?.Name ?? ViewBag.Localization["WEBFRONT_STATS_INDEX_ALL_SERVERS"])"></color-code>
</span>
<!-- top card -->
@ -390,7 +390,15 @@
var menuItems = new SideContextMenuItems
{
MenuTitle = ViewBag.Localization["WEBFRONT_CONTEXT_MENU_GLOBAL_GAME"],
Items = Model.Servers.Select(server => new SideContextMenuItem
Items = Model.Servers.GroupBy(server => server.PerformanceBucket).Where(grp => grp.Key is not null).Select(server => new SideContextMenuItem
{
IsLink = true,
Reference = Url.Action("Advanced", "ClientStatistics", new { performanceBucket = server.First().PerformanceBucket }),
Title = server.First().PerformanceBucket.StripColors(),
IsActive = ViewBag.SelectedPerformanceBucket == server.First().PerformanceBucket,
Meta = server.First().Game.ToString(),
IsCollapse = false
}).Concat(Model.Servers.Select(server => new SideContextMenuItem
{
IsLink = true,
Reference = Url.Action("Advanced", "ClientStatistics", new { serverId = server.Endpoint }),
@ -398,7 +406,7 @@
IsActive = Model.ServerEndpoint == server.Endpoint,
IsCollapse = true,
Meta = server.Game.ToString()
}).Prepend(new SideContextMenuItem
})).Prepend(new SideContextMenuItem
{
IsLink = true,
Reference = Url.Action("Advanced", "ClientStatistics"),

View File

@ -5,12 +5,12 @@
<div class="col-12 col-lg-9 mt-0">
<h2 class="content-title mb-0">@ViewBag.Localization["WEBFRONT_TOP_PLAYERS_TITLE"]</h2>
<span class="text-muted">
<color-code value="@(Model.FirstOrDefault(m => m.Endpoint == ViewBag.SelectedServerId)?.Name ?? ViewBag.Localization["WEBFRONT_STATS_INDEX_ALL_SERVERS"])"></color-code>
<color-code value="@(ViewBag.SelectedPerformanceBucket ?? Model.FirstOrDefault(m => m.Endpoint == ViewBag.SelectedServerId)?.Name ?? ViewBag.Localization["WEBFRONT_STATS_INDEX_ALL_SERVERS"])"></color-code>
&mdash; <span class="text-primary">@ViewBag.TotalRankedClients.ToString("#,##0")</span> @ViewBag.Localization["WEBFRONT_TOP_PLAYERS_SUBTITLE"]
</span>
<div id="topPlayersContainer">
@await Component.InvokeAsync("TopPlayers", new { count = 25, offset = 0, serverEndpoint = ViewBag.SelectedServerId })
@await Component.InvokeAsync("TopPlayers", new { count = 25, offset = 0, serverEndpoint = ViewBag.SelectedServerId, performanceBucket = ViewBag.SelectedPerformanceBucket })
</div>
<div class="text-center">
<i id="loaderLoad" class="oi oi-chevron-bottom loader-load-more text-primary mt-5" aria-hidden="true"></i>
@ -22,7 +22,21 @@
var menuItems = new SideContextMenuItems
{
MenuTitle = ViewBag.Localization["WEBFRONT_CONTEXT_MENU_GLOBAL_GAME"],
Items = Model.Select(server => new SideContextMenuItem
Items = Model.GroupBy(server => server.PerformanceBucket).Where(grp => grp.Key is not null).Select(server => new SideContextMenuItem
{
IsLink = true,
Reference = Url.Action("TopPlayers", "Stats", new { performanceBucket = server.First().PerformanceBucket }),
Title = server.First().PerformanceBucket.StripColors(),
IsActive = ViewBag.SelectedPerformanceBucket == server.First().PerformanceBucket,
Meta = server.First().Game.ToString(),
IsCollapse = false
}).Prepend(new SideContextMenuItem
{
IsLink = true,
Reference = Url.Action("TopPlayers", "Stats"),
Title = ViewBag.Localization["WEBFRONT_STATS_INDEX_ALL_SERVERS"],
IsActive = ViewBag.SelectedServerId is null
}).Concat(Model.Select(server => new SideContextMenuItem
{
IsLink = true,
Reference = Url.Action("TopPlayers", "Stats", new { serverId = server.Endpoint }),
@ -30,13 +44,7 @@
IsActive = ViewBag.SelectedServerId == server.Endpoint,
Meta = server.Game.ToString(),
IsCollapse = true
}).Prepend(new SideContextMenuItem
{
IsLink = true,
Reference = Url.Action("TopPlayers", "Stats"),
Title = ViewBag.Localization["WEBFRONT_STATS_INDEX_ALL_SERVERS"],
IsActive = ViewBag.SelectedServerId is null
}).ToList()
})).ToList()
};
}
<partial name="_SideContextMenu" for="@menuItems"></partial>
@ -48,5 +56,5 @@
<script type="text/javascript" src="~/js/stats.js"></script>
<script type="text/javascript" src="~/lib/canvas.js/canvasjs.js"></script>
</environment>
<script>initLoader('/Stats/GetTopPlayersAsync', '#topPlayersContainer', 25, 25, [{ 'name': 'serverId', 'value' : () => @(ViewBag.ServerId ?? 0) }]);</script>
<script>initLoader('/Stats/GetTopPlayersAsync', '#topPlayersContainer', 25, 25, [{ 'name': 'serverId', 'value' : () => @(ViewBag.ServerId ?? 0) }, { 'name': 'performanceBucket', 'value' : () => '@ViewBag.SelectedPerformanceBucket' }]);</script>
}