misc webfront tweaks
This commit is contained in:
parent
540cf7489d
commit
f43f7b5040
@ -35,19 +35,19 @@
|
||||
@foreach (var social in Model.CommunityInformation.SocialAccounts ?? Array.Empty<SocialAccountConfiguration>())
|
||||
{
|
||||
<div>
|
||||
<a href="@social.Url" target="_blank" title="@social.Title">
|
||||
<a href="@social.Url" target="_blank" title="@social.Title" class="d-flex no-decoration">
|
||||
@if (!string.IsNullOrWhiteSpace(social.IconId))
|
||||
{
|
||||
<span class="oi @social.IconId"></span>
|
||||
<i class="oi @social.IconId mr-5" style="width: 1.6rem;"></i>
|
||||
}
|
||||
else if (!string.IsNullOrWhiteSpace(social.IconUrl))
|
||||
{
|
||||
var url = Uri.TryCreate(social.IconUrl, UriKind.Absolute, out var parsedUrl)
|
||||
? parsedUrl.AbsoluteUri
|
||||
: $"images/community/{social.IconUrl}";
|
||||
<img class="img-fluid" style="max-width: 1rem; fill: white" src="@url" alt="@social.Title"/>
|
||||
<img class="img-fluid mr-5" style="width: 1.6rem; fill: white" src="@url" alt="@social.Title"/>
|
||||
}
|
||||
<span class="ml-1">@social.Title</span>
|
||||
<div class="ml-1">@social.Title</div>
|
||||
</a>
|
||||
</div>
|
||||
}
|
||||
|
@ -30,67 +30,74 @@
|
||||
}
|
||||
|
||||
<h4 class="content-title mb-0">
|
||||
@ViewBag.Localization["WEBFRONT_TITLE_SCOREBOARD"]
|
||||
@ViewBag.Localization["WEBFRONT_TITLE_SCOREBOARD"]
|
||||
</h4>
|
||||
<span class="text-muted">
|
||||
<color-code value="@Model.ServerName"></color-code>
|
||||
</span>
|
||||
|
||||
<table class="table table-sort mt-15"
|
||||
data-sort-column="@(Model.OrderByKey ?? nameof(ClientScoreboardInfo.Score))"
|
||||
data-sort-down="@Model.ShouldOrderDescending.ToString().ToLower()">
|
||||
<tr class="bg-dark-dm bg-white-lm d-none d-lg-table-row">
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.ClientName)">@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_PLAYER"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.ClientName)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.Score)">@ViewBag.Localization["WEBFRONT_ADV_STATS_SCORE"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.Score)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.Kills)">@ViewBag.Localization["WEBFRONT_ADV_STATS_KILLS"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.Kills)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.Deaths)">@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_DEATHS"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.Deaths)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.Kdr)">@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_RATIO"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.Kdr)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.ScorePerMinute)">@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_SPM"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.ScorePerMinute)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.ZScore)">@ViewBag.Localization["WEBFRONT_ADV_STATS_ZSCORE"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.ZScore)))</th>
|
||||
<th class="text-right table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.Ping)">@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_PING"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.Ping)))</th>
|
||||
</tr>
|
||||
@foreach (var client in Model.ShouldOrderDescending ? Model.ClientInfo.OrderByDescending(OrderByFunc) : Model.ClientInfo.OrderBy(OrderByFunc))
|
||||
{
|
||||
<!-- desktop -->
|
||||
<tr class="@GetTeamBackgroundColorClass(client) d-none d-lg-table-row">
|
||||
<td>
|
||||
<a asp-controller="Client" asp-action="Profile" asp-route-id="@client.ClientId" class="no-decoration text-light-dm text-dark-lm">
|
||||
<color-code value="@client.ClientName"></color-code>
|
||||
</a>
|
||||
</td>
|
||||
<td>@client.Score</td>
|
||||
<td>@(client.Kills ?? 0)</td>
|
||||
<td>@(client.Deaths ?? 0)</td>
|
||||
<td>@Math.Round(client.Kdr ?? 0, 2)</td>
|
||||
<td>@Math.Round(client.ScorePerMinute ?? 0)</td>
|
||||
<td>@(client.ZScore is null or 0 ? "--" : Math.Round(client.ZScore.Value, 2).ToString(CultureInfo.CurrentCulture))</td>
|
||||
<td class="text-right">@client.Ping</td>
|
||||
@if (!Model.ClientInfo.Any())
|
||||
{
|
||||
<div class="mt-20">@ViewBag.Localization["WEBFRONT_SCOREBOARD_NO_PLAYERS"]</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<table class="table table-sort mt-15"
|
||||
data-sort-column="@(Model.OrderByKey ?? nameof(ClientScoreboardInfo.Score))"
|
||||
data-sort-down="@Model.ShouldOrderDescending.ToString().ToLower()">
|
||||
<tr class="bg-dark-dm bg-white-lm d-none d-lg-table-row">
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.ClientName)">@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_PLAYER"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.ClientName)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.Score)">@ViewBag.Localization["WEBFRONT_ADV_STATS_SCORE"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.Score)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.Kills)">@ViewBag.Localization["WEBFRONT_ADV_STATS_KILLS"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.Kills)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.Deaths)">@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_DEATHS"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.Deaths)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.Kdr)">@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_RATIO"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.Kdr)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.ScorePerMinute)">@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_SPM"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.ScorePerMinute)))</th>
|
||||
<th class="table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.ZScore)">@ViewBag.Localization["WEBFRONT_ADV_STATS_ZSCORE"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.ZScore)))</th>
|
||||
<th class="text-right table-sort-column" data-column-name="@nameof(ClientScoreboardInfo.Ping)">@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_PING"]@Html.Raw(GetColumnSortDisplay(nameof(ClientScoreboardInfo.Ping)))</th>
|
||||
</tr>
|
||||
@foreach (var client in Model.ShouldOrderDescending ? Model.ClientInfo.OrderByDescending(OrderByFunc) : Model.ClientInfo.OrderBy(OrderByFunc))
|
||||
{
|
||||
<!-- desktop -->
|
||||
<tr class="@GetTeamBackgroundColorClass(client) d-none d-lg-table-row">
|
||||
<td>
|
||||
<a asp-controller="Client" asp-action="Profile" asp-route-id="@client.ClientId" class="no-decoration text-light-dm text-dark-lm">
|
||||
<color-code value="@client.ClientName"></color-code>
|
||||
</a>
|
||||
</td>
|
||||
<td>@client.Score</td>
|
||||
<td>@(client.Kills ?? 0)</td>
|
||||
<td>@(client.Deaths ?? 0)</td>
|
||||
<td>@Math.Round(client.Kdr ?? 0, 2)</td>
|
||||
<td>@Math.Round(client.ScorePerMinute ?? 0)</td>
|
||||
<td>@(client.ZScore is null or 0 ? "--" : Math.Round(client.ZScore.Value, 2).ToString(CultureInfo.CurrentCulture))</td>
|
||||
<td class="text-right">@client.Ping</td>
|
||||
</tr>
|
||||
|
||||
<tr class="d-table-row d-lg-none d-flex">
|
||||
<td class="text-right bg-primary text-light flex-grow-0">
|
||||
<div>@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_PLAYER"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_ADV_STATS_SCORE"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_ADV_STATS_KILLS"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_DEATHS"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_RATIO"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_SPM"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_ADV_STATS_ZSCORE"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_PING"]</div>
|
||||
</td>
|
||||
<tr class="d-table-row d-lg-none d-flex">
|
||||
<td class="text-right bg-primary text-light flex-grow-0">
|
||||
<div>@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_PLAYER"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_ADV_STATS_SCORE"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_ADV_STATS_KILLS"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_DEATHS"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_RATIO"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_SPM"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_ADV_STATS_ZSCORE"]</div>
|
||||
<div>@ViewBag.Localization["WEBFRONT_SCOREBOARD_TABLE_PING"]</div>
|
||||
</td>
|
||||
|
||||
<td class="@GetTeamBackgroundColorClass(client) flex-fill">
|
||||
<a asp-controller="Client" asp-action="Profile" asp-route-id="@client.ClientId" class="no-decoration text-light-dm text-dark-lm">
|
||||
<color-code value="@client.ClientName"></color-code>
|
||||
</a>
|
||||
<div>@client.Score</div>
|
||||
<div>@(client.Kills ?? 0)</div>
|
||||
<div>@(client.Deaths ?? 0)</div>
|
||||
<div>@Math.Round(client.Kdr ?? 0, 2)</div>
|
||||
<div>@Math.Round(client.ScorePerMinute ?? 0)</div>
|
||||
<div>@(client.ZScore is null or 0 ? "--" : Math.Round(client.ZScore.Value, 2).ToString(CultureInfo.CurrentCulture))</div>
|
||||
<div>@client.Ping</div>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<td class="@GetTeamBackgroundColorClass(client) flex-fill">
|
||||
<a asp-controller="Client" asp-action="Profile" asp-route-id="@client.ClientId" class="no-decoration text-light-dm text-dark-lm">
|
||||
<color-code value="@client.ClientName"></color-code>
|
||||
</a>
|
||||
<div>@client.Score</div>
|
||||
<div>@(client.Kills ?? 0)</div>
|
||||
<div>@(client.Deaths ?? 0)</div>
|
||||
<div>@Math.Round(client.Kdr ?? 0, 2)</div>
|
||||
<div>@Math.Round(client.ScorePerMinute ?? 0)</div>
|
||||
<div>@(client.ZScore is null or 0 ? "--" : Math.Round(client.ZScore.Value, 2).ToString(CultureInfo.CurrentCulture))</div>
|
||||
<div>@client.Ping</div>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
}
|
||||
|
@ -42,7 +42,7 @@
|
||||
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>
|
||||
<span class="ml-5 mr-5 text-light-dm text-primary-lm 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 -->
|
||||
|
@ -62,7 +62,7 @@
|
||||
{
|
||||
if (match.IsInterpolation && match.MatchValue == "event")
|
||||
{
|
||||
<span class="text-light">@meta.When.ToStandardFormat()</span>
|
||||
<span class="text-light-dm text-dark-lm">@meta.When.ToStandardFormat()</span>
|
||||
}
|
||||
|
||||
else
|
||||
|
@ -393,6 +393,8 @@ function renderPerformanceChart() {
|
||||
|
||||
position: 'right',
|
||||
ticks: {
|
||||
precision: 0,
|
||||
stepSize: 3,
|
||||
callback: function (value, index, values) {
|
||||
if (index === values.length - 1) {
|
||||
return min;
|
||||
|
@ -47,7 +47,7 @@ function getStatsChart(id) {
|
||||
};
|
||||
|
||||
const options = {
|
||||
defaultFontFamily: '-apple-system, BlinkMacSystemFont, "Open Sans", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
|
||||
defaultFontFamily: "-apple-system, BlinkMacSystemFont, 'Open Sans', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'",
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
legend: false,
|
||||
@ -69,7 +69,7 @@ function getStatsChart(id) {
|
||||
elements: {
|
||||
line: {
|
||||
fill: false,
|
||||
borderColor: halfmoon.getPreferredMode() === "light-mode" ? 'rgba(0, 0, 0, 0.85)' : 'rgba(255, 255, 255, 0.75)',
|
||||
borderColor: halfmoon.getPreferredMode() === 'light-mode' ? 'rgba(0, 0, 0, 0.85)' : 'rgba(255, 255, 255, 0.75)',
|
||||
borderWidth: 2
|
||||
},
|
||||
point: {
|
||||
@ -87,6 +87,8 @@ function getStatsChart(id) {
|
||||
|
||||
position: 'right',
|
||||
ticks: {
|
||||
precision: 0,
|
||||
stepSize: 3,
|
||||
callback: function (value, index, values) {
|
||||
if (index === values.length - 1) {
|
||||
return min;
|
||||
@ -127,9 +129,9 @@ $(document).ready(function () {
|
||||
});
|
||||
});
|
||||
|
||||
$(document).on("loaderFinished", function (event, response) {
|
||||
const ids = $.map($(response).find('.client-rating-graph'), function (elem) { return $(elem).attr('id'); });
|
||||
$(document).on('loaderFinished', function (event, response) {
|
||||
const ids = $.map($(response).find('.client-rating-graph'), function (elem) { return $(elem).children('canvas').attr('id'); });
|
||||
ids.forEach(function (item, index) {
|
||||
getStatsChart($(item).children('canvas').attr('id'));
|
||||
getStatsChart(item);
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user