mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-09-13 04:52:30 +00:00
User settings, level settings, language and timezone selection and more. (#471)
* Initial work for user settings page * Finish user setting and slot setting pages * Don't show slot upload date on home page and fix team pick redirection * Fix upload image button alignment on mobile * Fix image upload on iPhone * Remove unused css and add selected button color * Fix login email check and bump ChromeDriver to 105 * Remove duplicated code and allow users to leave fields empty * Add unpublish button on level settings and move settings button position * Don't show edit button on mini card * Self review bug fixes and users can no longer use an in-use email
This commit is contained in:
parent
9073a8266f
commit
f6a7fe6283
53 changed files with 973 additions and 118 deletions
|
@ -6,6 +6,8 @@
|
|||
|
||||
@{
|
||||
string language = (string?)ViewData["Language"] ?? LocalizationManager.DefaultLang;
|
||||
string timeZone = (string?)ViewData["TimeZone"] ?? TimeZoneInfo.Local.Id;
|
||||
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timeZone);
|
||||
}
|
||||
|
||||
<div class="ui yellow segment" id="comments">
|
||||
|
@ -85,7 +87,7 @@
|
|||
<span>@decodedMessage</span>
|
||||
}
|
||||
<p>
|
||||
<i>@timestamp.ToString("MM/dd/yyyy @ h:mm tt") UTC</i>
|
||||
<i>@TimeZoneInfo.ConvertTime(timestamp, timeZoneInfo).ToString("M/d/yyyy @ h:mm:ss tt")</i>
|
||||
</p>
|
||||
@if (i != Model.Comments.Count - 1)
|
||||
{
|
||||
|
|
|
@ -3,9 +3,12 @@
|
|||
|
||||
@{
|
||||
string language = (string?)ViewData["Language"] ?? LocalizationManager.DefaultLang;
|
||||
string timeZone = (string?)ViewData["TimeZone"] ?? TimeZoneInfo.Local.Id;
|
||||
bool includeStatus = (bool?)ViewData["IncludeStatus"] ?? false;
|
||||
string userStatus = includeStatus ? Model.Status.ToTranslatedString(language, timeZone) : "";
|
||||
}
|
||||
|
||||
<a href="/user/@Model.UserId" title="@Model.Status.ToTranslatedString(language)" class="user-link">
|
||||
<a href="/user/@Model.UserId" title="@userStatus" class="user-link">
|
||||
<img src="/gameAssets/@Model.WebsiteAvatarHash" alt=""/>
|
||||
@Model.Username
|
||||
</a>
|
|
@ -1,7 +1,6 @@
|
|||
@using System.Diagnostics
|
||||
@using LBPUnion.ProjectLighthouse
|
||||
@using LBPUnion.ProjectLighthouse.Administration
|
||||
@using LBPUnion.ProjectLighthouse.Configuration
|
||||
@using LBPUnion.ProjectLighthouse.Levels
|
||||
@using LBPUnion.ProjectLighthouse.PlayerData.Profiles
|
||||
@model LBPUnion.ProjectLighthouse.Administration.ModerationCase
|
||||
|
@ -10,6 +9,9 @@
|
|||
Database database = new();
|
||||
string color = "blue";
|
||||
|
||||
string timeZone = (string?)ViewData["TimeZone"] ?? TimeZoneInfo.Local.Id;
|
||||
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timeZone);
|
||||
|
||||
if (Model.Expired) color = "yellow";
|
||||
if (Model.Dismissed) color = "green";
|
||||
}
|
||||
|
@ -23,19 +25,19 @@
|
|||
Debug.Assert(Model.DismissedAt != null);
|
||||
|
||||
<h3 class="ui @color header">
|
||||
This case was dismissed by <a href="/user/@Model.Dismisser.UserId">@Model.Dismisser.Username</a> on @Model.DismissedAt.Value.ToString("MM/dd/yyyy @ h:mm tt").
|
||||
This case was dismissed by <a href="/user/@Model.Dismisser.UserId">@Model.Dismisser.Username</a> on @TimeZoneInfo.ConvertTime(Model.DismissedAt.Value, timeZoneInfo).ToString("M/d/yyyy @ h:mm tt").
|
||||
</h3>
|
||||
}
|
||||
else if (Model.Expired)
|
||||
else if (Model.Expired && Model.ExpiresAt != null)
|
||||
{
|
||||
<h3 class="ui @color header">
|
||||
This case expired on @Model.ExpiresAt!.Value.ToString("MM/dd/yyyy @ h:mm tt").
|
||||
This case expired on @TimeZoneInfo.ConvertTime(Model.ExpiresAt.Value, timeZoneInfo).ToString("M/d/yyyy @ h:mm tt").
|
||||
</h3>
|
||||
}
|
||||
|
||||
<span>
|
||||
Case created by <a href="/user/@Model.Creator!.UserId">@Model.Creator.Username</a>
|
||||
on @Model.CreatedAt.ToString("MM/dd/yyyy @ h:mm tt")
|
||||
on @TimeZoneInfo.ConvertTime(Model.CreatedAt, timeZoneInfo).ToString("M/d/yyyy @ h:mm tt")
|
||||
</span><br>
|
||||
|
||||
@if (Model.Type.AffectsLevel())
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
|
||||
@{
|
||||
string language = (string?)ViewData["Language"] ?? LocalizationManager.DefaultLang;
|
||||
string timeZone = (string?)ViewData["TimeZone"] ?? TimeZoneInfo.Local.Id;
|
||||
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timeZone);
|
||||
}
|
||||
|
||||
<div style="position: relative">
|
||||
|
@ -26,7 +28,7 @@
|
|||
{
|
||||
<span>by</span>
|
||||
<b>
|
||||
@await Model.Creator.ToLink(Html, ViewData, language)
|
||||
@await Model.Creator.ToLink(Html, ViewData, language, timeZone)
|
||||
</b>
|
||||
}
|
||||
@if (Model.Slot != null)
|
||||
|
@ -49,7 +51,7 @@
|
|||
break;
|
||||
}
|
||||
}
|
||||
at @DateTime.UnixEpoch.AddSeconds(Model.Timestamp).ToString(CultureInfo.CurrentCulture)
|
||||
at @TimeZoneInfo.ConvertTime(DateTime.UnixEpoch.AddSeconds(Model.Timestamp), timeZoneInfo).ToString("M/d/yyyy h:mm:ss tt")
|
||||
</i>
|
||||
</p>
|
||||
|
||||
|
@ -62,7 +64,7 @@
|
|||
<div id="hover-subjects-@Model.PhotoId">
|
||||
@foreach (PhotoSubject subject in Model.Subjects)
|
||||
{
|
||||
@await subject.User.ToLink(Html, ViewData, language)
|
||||
@await subject.User.ToLink(Html, ViewData, language, timeZone)
|
||||
}
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
@using LBPUnion.ProjectLighthouse.Administration.Reports
|
||||
@model LBPUnion.ProjectLighthouse.Administration.Reports.GriefReport
|
||||
|
||||
<div class="ui segment">
|
||||
@{
|
||||
string timeZone = (string?)ViewData["TimeZone"] ?? TimeZoneInfo.Local.Id;
|
||||
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timeZone);
|
||||
}
|
||||
|
||||
<div class="ui segment">
|
||||
<div>
|
||||
<canvas class="hide-subjects" id="canvas-subjects-@Model.ReportId" width="1920" height="1080"
|
||||
style="position: absolute; transform: rotate(180deg)">
|
||||
|
@ -26,7 +31,7 @@
|
|||
|
||||
<br>
|
||||
<div>
|
||||
<b>Report time: </b>@(DateTimeOffset.FromUnixTimeMilliseconds(Model.Timestamp).ToLocalTime().ToString("R"))
|
||||
<b>Report time: </b>@(TimeZoneInfo.ConvertTime(DateTimeOffset.FromUnixTimeMilliseconds(Model.Timestamp), timeZoneInfo).ToString("M/d/yyyy h:mm:ss tt"))
|
||||
</div>
|
||||
<div>
|
||||
<b>Report reason: </b>@Model.Type
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
bool isMobile = (bool?)ViewData["IsMobile"] ?? false;
|
||||
bool mini = (bool?)ViewData["IsMini"] ?? false;
|
||||
string language = (string?)ViewData["Language"] ?? LocalizationManager.DefaultLang;
|
||||
string timeZone = (string?)ViewData["TimeZone"] ?? TimeZoneInfo.Local.Id;
|
||||
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timeZone);
|
||||
|
||||
bool isQueued = false;
|
||||
bool isHearted = false;
|
||||
|
@ -39,9 +41,9 @@
|
|||
int size = isMobile || mini ? 50 : 100;
|
||||
}
|
||||
<div>
|
||||
<img src="~/assets/slotCardOverlay.png" style="min-width: @(size)px; width: @(size)px; height: @(size)px; pointer-events: none; position: absolute">
|
||||
<img src="~/assets/slotCardBackground.png" style="min-width: @(size)px; width: @(size)px; height: @(size)px; position: absolute; z-index: -1;">
|
||||
<img class="cardIcon slotCardIcon" src="/gameAssets/@iconHash" style="min-width: @(size)px; width: @(size)px; height: @(size)px;"
|
||||
<img src="~/assets/slotCardOverlay.png" style="min-width: @(size)px; width: @(size)px; height: @(size)px; pointer-events: none; position: absolute; z-index: 3">
|
||||
<img src="~/assets/slotCardBackground.png" style="min-width: @(size)px; width: @(size)px; height: @(size)px; position: absolute; z-index: 1;">
|
||||
<img class="cardIcon slotCardIcon" src="/gameAssets/@iconHash" style="min-width: @(size)px; width: @(size)px; height: @(size)px; position: relative; z-index: 2"
|
||||
onerror="this.onerror='';this.src='/gameAssets/@ServerConfiguration.Instance.WebsiteConfiguration.MissingIconHash'">
|
||||
</div>
|
||||
<div class="cardStats">
|
||||
|
@ -90,12 +92,24 @@
|
|||
</div>
|
||||
@if (Model.Creator != null)
|
||||
{
|
||||
string date = "";
|
||||
if(!mini)
|
||||
date = " on " + TimeZoneInfo.ConvertTime(DateTimeOffset.FromUnixTimeMilliseconds(Model.FirstUploaded), timeZoneInfo).DateTime.ToShortDateString();
|
||||
<p>
|
||||
<i>Created by @await Model.Creator.ToLink(Html, ViewData, language) on @Model.GameVersion.ToPrettyString()</i>
|
||||
<i>Created by @await Model.Creator.ToLink(Html, ViewData, language) in @Model.GameVersion.ToPrettyString()@date</i>
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
<div class="cardButtons">
|
||||
<br>
|
||||
@if (user != null && !mini && (user.IsModerator || user.UserId == Model.CreatorId))
|
||||
{
|
||||
<a class="ui blue tiny button" href="/slot/@Model.SlotId/settings" title="Settings">
|
||||
<i class="cog icon" style="margin: 0"></i>
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
<div class="cardButtons" style="margin-left: 0">
|
||||
<br>
|
||||
@if (user != null && !mini)
|
||||
{
|
||||
|
|
|
@ -6,13 +6,14 @@
|
|||
bool showLink = (bool?)ViewData["ShowLink"] ?? false;
|
||||
bool isMobile = (bool?)ViewData["IsMobile"] ?? false;
|
||||
string language = (string?)ViewData["Language"] ?? LocalizationManager.DefaultLang;
|
||||
string timeZone = (string?)ViewData["TimeZone"] ?? TimeZoneInfo.Local.Id;
|
||||
}
|
||||
|
||||
<div class="card">
|
||||
@{
|
||||
int size = isMobile ? 50 : 100;
|
||||
}
|
||||
<div class="cardIcon userCardIcon" style="background-image: url('/gameAssets/@Model.WebsiteAvatarHash'); min-width: @(size)px; width: @(size)px; height: @(size)px; background-position: center center; background-size: auto @(size)px;">
|
||||
<div class="cardIcon userCardIcon" style="background-image: url('/gameAssets/@Model.WebsiteAvatarHash'); min-width: @(size)px; width: @(size)px; height: @(size)px; background-position: center center; background-size: cover; background-repeat: no-repeat">
|
||||
</div>
|
||||
<div class="cardStats">
|
||||
@if (showLink)
|
||||
|
@ -28,7 +29,7 @@
|
|||
</h1>
|
||||
}
|
||||
<span>
|
||||
<i>@Model.Status.ToTranslatedString(language)</i>
|
||||
<i>@Model.Status.ToTranslatedString(language, timeZone)</i>
|
||||
</span>
|
||||
<div class="cardStatsUnderTitle">
|
||||
<i class="pink heart icon" title="Hearts"></i> <span>@Model.Hearts</span>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue