1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-10 15:20:48 -05:00

huge commit for webfront facelift

This commit is contained in:
RaidMax
2022-04-19 18:43:58 -05:00
parent 7b78e0803a
commit d5b4c60e5a
105 changed files with 2981 additions and 2545 deletions

View File

@ -1,53 +1,60 @@
@using SharedLibraryCore.Dtos.Meta.Responses
@model AdministeredPenaltyResponse
@{
string localizationKey = $"WEBFRONT_CLIENT_META_PENALIZED_{Model.PenaltyType.ToString().ToUpper()}_V2";
var localizationKey = $"WEBFRONT_CLIENT_META_PENALIZED_{Model.PenaltyType.ToString().ToUpper()}_V2";
}
<div class="d-inline">
@foreach (var match in Utilities.SplitTranslationTokens(localizationKey))
<has-permission entity="Penalty" required-permission="Read">
@if (TempData["ShowMetaHeader"] as bool? ?? false)
{
if (match.IsInterpolation)
{
if (match.MatchValue == "action")
{
<span class="penalties-color-@Model.PenaltyType.ToString().ToLower()">@match.TranslationValue</span>
}
else if (match.MatchValue == "offender")
{
<span class="text-highlight">
<a class="link-inverse" href="@Model.OffenderClientId">
<color-code value="@Model.OffenderName"></color-code>
</a>
</span>
}
else if (match.MatchValue == "reason")
{
<span class="text-white">
@if (ViewBag.Authorized && !string.IsNullOrEmpty(Model.AutomatedOffense) && Model.PenaltyType != Data.Models.EFPenalty.PenaltyType.Warning)
{
<span>@Utilities.FormatExt(ViewBag.Localization["WEBFRONT_PROFILE_ANTICHEAT_DETECTION"], Model.AutomatedOffense)</span>
<span class="oi oi-list-rich align-top text-primary automated-penalty-info-detailed" data-penalty-id="@Model.PenaltyId" style="margin-top: 0.125rem;" title="@ViewBag.Localization["WEBFRONT_CLIENT_META_AC_METRIC"]"></span>
}
else
{
<color-code value="@Model.Offense"></color-code>
}
</span>
}
else if (match.MatchValue == "time")
{
<span class="text-white">@Model.LengthText</span>
}
}
else
{
<span>@match.MatchValue</span>
}
<partial name="./_MetaHeader.cshtml" for="@Model.When"/>
}
</div>
<div class="d-inline">
@foreach (var match in Utilities.SplitTranslationTokens(localizationKey))
{
if (match.IsInterpolation)
{
if (match.MatchValue == "action")
{
<span class="penalties-color-@Model.PenaltyType.ToString().ToLower()">@match.TranslationValue</span>
}
else if (match.MatchValue == "offender")
{
<span class="text-highlight">
<a class="link-inverse" href="@Model.OffenderClientId">
<color-code value="@Model.OffenderName"></color-code>
</a>
</span>
}
else if (match.MatchValue == "reason")
{
<span class="text-light-dm text-dark-lm">
@if (ViewBag.Authorized && !string.IsNullOrEmpty(Model.AutomatedOffense) && Model.PenaltyType != Data.Models.EFPenalty.PenaltyType.Warning)
{
<span>@Utilities.FormatExt(ViewBag.Localization["WEBFRONT_PROFILE_ANTICHEAT_DETECTION"], Model.AutomatedOffense)</span>
<span class="oi oi-list-rich align-top text-primary automated-penalty-info-detailed" data-penalty-id="@Model.PenaltyId" style="margin-top: 0.125rem;" title="@ViewBag.Localization["WEBFRONT_CLIENT_META_AC_METRIC"]"></span>
}
else
{
<color-code value="@Model.Offense"></color-code>
}
</span>
}
else if (match.MatchValue == "time")
{
<span class="text-light-dm text-dark-lm">@Model.LengthText</span>
}
}
else
{
<span>@match.MatchValue</span>
}
}
</div>
</has-permission>

View File

@ -4,6 +4,11 @@
var localizationKey = $"WEBFRONT_CLIENT_META_CONNECTION_{Model.ConnectionType.ToString().ToUpper()}";
}
@if (TempData["ShowMetaHeader"] as bool? ?? false)
{
<partial name="./_MetaHeader.cshtml" for="@Model.When"/>
}
@foreach (var token in Utilities.SplitTranslationTokens(localizationKey))
{
if (token.IsInterpolation)
@ -11,10 +16,10 @@
switch (token.MatchValue)
{
case "action":
<span class="@(Model.ConnectionType == Reference.ConnectionType.Connect ? "text-light-green" : "text-warning")">@token.TranslationValue</span>
<span class="@(Model.ConnectionType == Reference.ConnectionType.Connect ? "text-light-green" : "text-secondary")">@token.TranslationValue</span>
break;
case "server":
<span class="text-white">
<span class="text-light-dm text-dark-lm">
<color-code value="@Model.ServerName"></color-code>
</span>
break;

View File

@ -1,20 +1,20 @@
@model IEnumerable<SharedLibraryCore.Dtos.Meta.Responses.InformationResponse>
@{
var informationMeta = Model
.Where(_meta => _meta.Type == SharedLibraryCore.Interfaces.MetaType.Information)
.OrderBy(_meta => _meta.Order)
.GroupBy(_meta => _meta.Column)
.OrderBy(_grouping => _grouping.Key);
.Where(meta => meta.Type == SharedLibraryCore.Interfaces.MetaType.Information)
.OrderBy(meta => meta.Order)
.Select((meta, i) => new { index = i, meta })
.GroupBy(meta => meta.index / 5);
}
@foreach (var metaColumn in informationMeta)
{
<div class="text-center text-lg-left mr-0 mr-lg-4">
<div class="mr-20">
@foreach (var meta in metaColumn)
{
<div class="profile-meta-entry" title="@meta.ToolTipText">
<div class="profile-meta-entry font-size-12" data-toggle="@(!string.IsNullOrEmpty(meta.meta.ToolTipText) ? "tooltip" : "")" data-title="@meta.meta.ToolTipText" data-placement="bottom">
@{var results = Utilities.SplitTranslationTokens(meta.Key);}
@{var results = Utilities.SplitTranslationTokens(meta.meta.Key);}
@if (results.Any(_result => _result.IsInterpolation))
{
@ -22,7 +22,7 @@
{
if (result.IsInterpolation)
{
<span class="profile-meta-value text-primary"><color-code value="@meta.Value"></color-code></span>
<span class="profile-meta-value text-primary"><color-code value="@meta.meta.Value"></color-code></span>
}
else
@ -34,8 +34,8 @@
else
{
<span class="profile-meta-value text-primary"><color-code value="@meta.Value"></color-code></span>
<span class="profile-meta-title text-muted"> @meta.Key</span>
<span class="profile-meta-value text-primary"><color-code value="@meta.meta.Value"></color-code></span>
<span class="profile-meta-title text-muted">@meta.meta.Key</span>
}
</div>
}

View File

@ -1,17 +1,24 @@
@using SharedLibraryCore.Dtos.Meta.Responses
@model MessageResponse
@if (TempData["ShowMetaHeader"] as bool? ?? false)
{
<partial name="./_MetaHeader.cshtml" for="@Model.When"/>
}
<span class="client-message" data-serverid="@Model.ServerId" data-when="@Model.When.ToFileTimeUtc()">
<span class="oi oi-chevron-right text-white-50 align-middle client-message-prefix" title="@ViewBag.Localization["WEBFRONT_PROFILE_MESSAGE_CONTEXT"]" style="font-size: 0.75rem; margin-top: -0.256rem"></span>
<span data-title="View Context" data-toggle="tooltip" data-placement="right">
<span class="oi oi-chevron-right align-middle client-message-prefix" style="font-size: 0.75rem; margin-top: -0.256rem"></span>
</span>
<span class="text-muted @(Model.IsQuickMessage ? "font-weight-bold" : "")">
@if (!Model.SentIngame)
{
<span>[<span class="text-primary">@ViewBag.Localization["WEBFRONT_PROFILE_MESSAGE_EXTERNAL"]</span>]</span>
}
@if (Model.IsHidden && !ViewBag.Authorized)
{
<color-code value="@SharedLibraryCore.Utilities.FormatExt(ViewBag.Localization["WEBFRONT_CLIENT_META_CHAT_HIDDEN"], Model.HiddenMessage)"></color-code>
<color-code value="@Utilities.FormatExt(ViewBag.Localization["WEBFRONT_CLIENT_META_CHAT_HIDDEN"], Model.HiddenMessage)"></color-code>
}
else

View File

@ -0,0 +1,6 @@
@model DateTime
@{ Layout = null;}
<div class="pt-5 text-light-dm text-dark-lm font-size-18 ">
<span>@Model.HumanizeForCurrentCulture()</span>
</div>
<hr/>

View File

@ -1,29 +1,35 @@
@model SharedLibraryCore.Dtos.Meta.Responses.PermissionLevelChangedResponse
@foreach (var token in Utilities.SplitTranslationTokens("WEBFRONT_CLIENT_META_PERMISSION_CHANGED"))
{
if (token.IsInterpolation)
<has-permission entity="ClientLevel" required-permission="Read">
@if (TempData["ShowMetaHeader"] as bool? ?? false)
{
switch (token.MatchValue)
<partial name="./_MetaHeader.cshtml" for="@Model.When"/>
}
@foreach (var token in Utilities.SplitTranslationTokens("WEBFRONT_CLIENT_META_PERMISSION_CHANGED"))
{
if (token.IsInterpolation)
{
case "permission":
<span class="level-color-@((int)Model.CurrentPermissionLevel)">@Model.CurrentPermissionLevel.ToLocalizedLevelName()</span>
break;
case "originClient":
<span class="text-highlight">
<a class="link-inverse" href="@Model.ChangedById">
<color-code value="@Model.ChangedByName"></color-code>
</a>
</span>
break;
case "type":
<span class="text-white-50">@token.TranslationValue</span>
break;
switch (token.MatchValue)
{
case "permission":
<span class="level-color-@((int)Model.CurrentPermissionLevel)">@Model.CurrentPermissionLevel.ToLocalizedLevelName()</span>
break;
case "originClient":
<span class="text-highlight">
<a asp-controller="Client" asp-action="Profile" asp-route-id="@Model.ChangedById">
<color-code value="@Model.ChangedByName"></color-code>
</a>
</span>
break;
case "type":
<span class="text-white-50">@token.TranslationValue</span>
break;
}
}
else
{
<span class="text-muted">@token.MatchValue</span>
}
}
else
{
<span class="text-muted">@token.MatchValue</span>
}
}
</has-permission>

View File

@ -2,72 +2,79 @@
@model ReceivedPenaltyResponse
@{
string localizationKey = $"WEBFRONT_CLIENT_META_WAS_PENALIZED_{Model.PenaltyType.ToString().ToUpper()}_V2";
var localizationKey = $"WEBFRONT_CLIENT_META_WAS_PENALIZED_{Model.PenaltyType.ToString().ToUpper()}_V2";
}
<div class="d-inline">
@foreach (var match in Utilities.SplitTranslationTokens(localizationKey))
<has-permission entity="ClientLevel" required-permission="Read">
@if (TempData["ShowMetaHeader"] as bool? ?? false)
{
if (match.IsInterpolation)
{
if (match.MatchValue == "action")
{
<span class="penalties-color-@Model.PenaltyType.ToString().ToLower()">@match.TranslationValue</span>
}
else if (match.MatchValue == "punisher")
{
<span class="text-highlight">
<a class="link-inverse" href="@Model.PunisherClientId">
<color-code value="@Model.PunisherName"></color-code>
</a>
</span>
}
else if (match.MatchValue == "reason")
{
<span class="text-white">
@if (ViewBag.Authorized && !string.IsNullOrEmpty(Model.AutomatedOffense) && Model.PenaltyType != Data.Models.EFPenalty.PenaltyType.Warning && Model.PenaltyType != Data.Models.EFPenalty.PenaltyType.Kick)
{
<span>@Utilities.FormatExt(ViewBag.Localization["WEBFRONT_PROFILE_ANTICHEAT_DETECTION"], Model.AutomatedOffense)</span>
<span class="oi oi-list-rich align-top text-primary automated-penalty-info-detailed" data-penalty-id="@Model.PenaltyId" style="margin-top: 0.125rem;" title="@ViewBag.Localization["WEBFRONT_CLIENT_META_AC_METRIC"]"></span>
}
else
{
<color-code value="@Model.Offense"></color-code>
}
</span>
}
else if (match.MatchValue == "time")
{
<span class="text-white">@Model.LengthText</span>
}
}
else
{
<span>@match.MatchValue</span>
}
<partial name="./_MetaHeader.cshtml" for="@Model.When"/>
}
@if (Model.ClientId != Model.OffenderClientId)
{
<span>&mdash;</span>
@foreach (var helperResult in Utilities.SplitTranslationTokens("WEBFRONT_PROFILE_LINKED_ACCOUNT"))
<div class="d-inline">
@foreach (var match in Utilities.SplitTranslationTokens(localizationKey))
{
if (!helperResult.IsInterpolation)
if (match.IsInterpolation)
{
<span>@helperResult.MatchValue</span>
if (match.MatchValue == "action")
{
<span class="penalties-color-@Model.PenaltyType.ToString().ToLower()">@match.TranslationValue</span>
}
else if (match.MatchValue == "punisher")
{
<span class="text-highlight">
<a class="link-inverse" href="@Model.PunisherClientId">
<color-code value="@Model.PunisherName"></color-code>
</a>
</span>
}
else if (match.MatchValue == "reason")
{
<span class="text-light-dm text-dark-lm">
@if (ViewBag.Authorized && !string.IsNullOrEmpty(Model.AutomatedOffense) && Model.PenaltyType != Data.Models.EFPenalty.PenaltyType.Warning && Model.PenaltyType != Data.Models.EFPenalty.PenaltyType.Kick)
{
<span>@Utilities.FormatExt(ViewBag.Localization["WEBFRONT_PROFILE_ANTICHEAT_DETECTION"], Model.AutomatedOffense)</span>
<span class="oi oi-list-rich align-top text-primary automated-penalty-info-detailed" data-penalty-id="@Model.PenaltyId" style="margin-top: 0.125rem;" title="@ViewBag.Localization["WEBFRONT_CLIENT_META_AC_METRIC"]"></span>
}
else
{
<color-code value="@Model.Offense"></color-code>
}
</span>
}
else if (match.MatchValue == "time")
{
<span class="text-light-dm text-dark-lm">@Model.LengthText</span>
}
}
else
{
<a class="link-inverse" href="@Model.OffenderClientId">
<color-code value="@Model.OffenderName"></color-code>
</a>
<span>@match.MatchValue</span>
}
}
}
</div>
@if (Model.ClientId != Model.OffenderClientId)
{
<span>&mdash;</span>
@foreach (var helperResult in Utilities.SplitTranslationTokens("WEBFRONT_PROFILE_LINKED_ACCOUNT"))
{
if (!helperResult.IsInterpolation)
{
<span>@helperResult.MatchValue</span>
}
else
{
<a class="link-inverse" href="@Model.OffenderClientId">
<color-code value="@Model.OffenderName"></color-code>
</a>
}
}
}
</div>
</has-permission>

View File

@ -1,6 +1,11 @@
@using SharedLibraryCore.Dtos.Meta.Responses
@model UpdatedAliasResponse
@if (TempData["ShowMetaHeader"] as bool? ?? false)
{
<partial name="./_MetaHeader.cshtml" for="@Model.When"/>
}
@foreach (var token in Utilities.SplitTranslationTokens("WEBFRONT_PROFILE_META_CONNECT_ALIAS"))
{
if (token.IsInterpolation)
@ -8,12 +13,14 @@
switch (token.MatchValue)
{
case "action":
<span class="text-warning">@token.TranslationValue</span>
<span class="text-secondary">@token.TranslationValue</span>
break;
case "alias":
<span class="text-white">
<span class="text-light-dm text-dark-lm">
<color-code value="@Model.Name"></color-code>
[@Model.IPAddress]
<has-permission entity="ClientIPAddress" required-permission="Read">
[@Model.IPAddress]
</has-permission>
</span>
break;
}