@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>&ndash;</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>