93 lines
4.4 KiB
Plaintext
93 lines
4.4 KiB
Plaintext
@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="card mt-20 mb-20 ml-0 mr-0 p-0">
|
|
<div class="p-5 pl-10 pr-10 bg-primary rounded-top d-flex flex-column flex-lg-row flex-wrap justify-content-between text-light" id="server_header_@Model.ID">
|
|
<!-- first column -->
|
|
<div class="d-flex align-self-center flex-column-reverse flex-lg-row col-12 col-lg-6">
|
|
<div class="ml-5 mr-5 text-center text-lg-left">
|
|
<color-code value="@Model.Name"></color-code>
|
|
<div class="server-header-ip-address font-weight-light" style="display:none">@(Model.ExternalIPAddress):@(Model.Port)</div>
|
|
</div>
|
|
<div class="d-flex justify-content-center">
|
|
<!-- connect button -->
|
|
<a href="@Model.ConnectProtocolUrl" class="text-light align-self-center server-join-button" title="@Utilities.CurrentLocalization.LocalizationIndex["WEBFRONT_HOME_JOIN_DESC"]">
|
|
<i class="oi oi-play-circle ml-5 mr-5"></i>
|
|
</a>
|
|
<has-permission entity="AdminMenu" required-permission="Update">
|
|
<!-- send message button -->
|
|
<a href="#actionModal" class="profile-action text-light align-self-center" data-action="chat" data-action-id="@Model.ID">
|
|
<i class="oi oi-chat ml-5 mr-5"></i>
|
|
</a>
|
|
</has-permission>
|
|
<!-- scoreboard button -->
|
|
<a asp-controller="Server" asp-action="Scoreboard" asp-route-serverId="@Model.Endpoint" title="@ViewBag.Localization["WEBFRONT_TITLE_SCOREBOARD"]"
|
|
class="text-light align-self-center">
|
|
<i class="oi oi-spreadsheet ml-5 mr-5"></i>
|
|
</a>
|
|
<span class="ml-5 mr-5 text-light badge font-weight-light" data-toggle="tooltip" data-title="@ViewBag.Localization[$"GAME_{Model.Game}"]">@Utilities.MakeAbbreviation(ViewBag.Localization[$"GAME_{Model.Game}"])</span>
|
|
</div>
|
|
</div>
|
|
<!-- second column -->
|
|
<div class="col-12 align-self-center text-center text-lg-left col-lg-4">
|
|
<span>@Model.Map</span>
|
|
@if (!string.IsNullOrEmpty(Model.GameType) && Model.GameType.Length > 1)
|
|
{
|
|
<span>–</span>
|
|
<span>@Model.GameType</span>
|
|
}
|
|
|
|
</div>
|
|
<!-- third column -->
|
|
<div class="align-self-center d-flex flex-column flex-lg-row col-12 col-lg-2 justify-content-end">
|
|
@if (Model.LobbyZScore != null)
|
|
{
|
|
<div data-toggle="tooltip" data-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" style="margin-right: 2px; margin-left: 2px"></span>
|
|
</div>
|
|
}
|
|
<div class="mr-5 ml-5 align-self-center">
|
|
<span class="server-clientcount">@Model.ClientCount</span>/<span class="server-maxclients">@Model.MaxClients</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="server_clientactivity_@Model.ID" class="bg-dark-dm bg-light-lm server-activity">
|
|
<partial name="../Server/_ClientActivity" for="@Model"/>
|
|
</div>
|
|
|
|
@if (Model.Players.Any())
|
|
{
|
|
<div class="ml-15 mr-15">
|
|
<hr/>
|
|
</div>
|
|
}
|
|
|
|
<div class="server-history">
|
|
<div class="server-history-row m-auto bg-dark-dm bg-light-lm rounded-bottom" 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" class="rounded-bottom" height="100"></canvas>
|
|
</div>
|
|
</div>
|
|
</div>
|