@model SharedLibraryCore.Dtos.ServerInfo @{ Layout = null; string GetMapName(string mapCode) { if (ViewBag.Maps?.Count == 0) { return mapCode; } return (ViewBag.Maps as List<Map>)?.FirstOrDefault(map => map.Name == mapCode)?.Alias ?? mapCode; } foreach (var snapshot in Model.ClientHistory.ClientCounts) { snapshot.MapAlias = GetMapName(snapshot.Map); } } <div class="row server-header pt-1 pb-1 bg-primary " id="server_header_@Model.ID"> <div class="col-md-4 text-center text-md-left d-inline-flex justify-content-center justify-content-md-start"> <color-code value="@Model.Name"></color-code> <a href="@Model.ConnectProtocolUrl" class="ml-2 mr-2 align-self-center d-none d-md-flex server-join-button" title="@Utilities.CurrentLocalization.LocalizationIndex["WEBFRONT_HOME_JOIN_DESC"]"> <span class="oi oi-play-circle mr-1 align-self-center"></span> <span class="server-header-ip-address" style="display:none;">@Model.IPAddress</span> </a> @if (ViewBag.Authorized) { <span class="oi oi-chat align-self-center profile-action d-none d-md-flex mr-2" data-action="chat" data-action-id="@Model.ID"></span> } <a asp-controller="Server" asp-action="Scoreboard" asp-fragment="server_@Model.ID" title="@ViewBag.Localization["WEBFRONT_TITLE_SCOREBOARD"]" class="align-self-center d-none d-md-flex"> <span class="oi oi-spreadsheet ml-1"></span> </a> </div> <div class="text-center col-md-4 align-self-center"> <span>@Model.Map</span> @if (!string.IsNullOrEmpty(Model.GameType) && Model.GameType.Length > 1) { <span>–</span> <span>@Model.GameType</span> } </div> <div class="text-center text-md-right col-md-4 d-flex align-self-center justify-content-center justify-content-md-end flex-column-reverse flex-sm-row"> @if (Model.LobbyZScore != null) { <div title="@ViewBag.Localization["WEBFRONT_HOME_RATING_DESC"]" class="cursor-help d-flex flex-row-reverse flex-md-row justify-content-center"> <span>@(Model.LobbyZScore ?? 0)</span> <span class="oi oi-bolt align-self-center mr-1 ml-1"></span> </div> } <div> <span class="server-clientcount">@Model.ClientCount</span>/<span class="server-maxclients">@Model.MaxClients</span> </div> </div> @if (ViewBag.Authorized) { <div class="p-1 d-flex d-md-none justify-content-center col-12"> <span class="oi oi-chat align-self-center profile-action d-flex d-md-none" data-action="chat" data-action-id="@Model.ID"></span> </div> } <a asp-controller="Server" asp-action="Scoreboard" title="@ViewBag.Localization["WEBFRONT_TITLE_SCOREBOARD"]" class="p-1 d-flex d-md-none justify-content-center col-12"> <span class="oi oi-spreadsheet ml-1"></span> </a> </div> <div id="server_clientactivity_@Model.ID" class="bg-dark row server-activity @(Model.ClientCount > 0 ? "pt-2 pb-2" : "")"> @await Html.PartialAsync("../Server/_ClientActivity", Model) </div> <div class="row server-history mb-4"> <div class="server-history-row m-auto" style="position:relative; width: 100%" id="server_history_@Model.ID" data-serverid="@Model.ID" data-clienthistory='@Html.Raw(Json.Serialize(Model.ClientHistory))' data-clienthistory-ex='@Html.Raw(Json.Serialize(Model.ClientHistory.ClientCounts))' data-online="@Model.Online"> <canvas id="server_history_canvas_@Model.ID" height="100"></canvas> </div> </div>