Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Helper/ConfigHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,8 @@ public UserConfig GetUserConfig(ClaimsPrincipal user)
DefaultTab = (ImportMode)int.Parse(CheckString(nameof(UserConfig.DefaultTab), "8")),
DefaultReminderEmail = CheckString(nameof(UserConfig.DefaultReminderEmail)),
DisableRegistration = CheckBool(CheckString(nameof(UserConfig.DisableRegistration))),
ShowVehicleThumbnail = CheckBool(CheckString(nameof(UserConfig.ShowVehicleThumbnail)))
ShowVehicleThumbnail = CheckBool(CheckString(nameof(UserConfig.ShowVehicleThumbnail))),
ThemeVariant = CheckString(nameof(UserConfig.ThemeVariant))
};
int userId = 0;
if (user != null)
Expand Down
9 changes: 9 additions & 0 deletions Helper/StaticHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,15 @@ public static string DefaultTabSelected(UserConfig userConfig, ImportMode tab)
}
return "";
}
public static string ThemeSelected(UserConfig userConfig, string theme)
{
var selectedTheme = userConfig.ThemeVariant;
if (theme == selectedTheme)
{
return "selected";
}
return "";
}
public static List<CostForVehicleByMonth> GetBaseLineCosts()
{
return new List<CostForVehicleByMonth>()
Expand Down
1 change: 1 addition & 0 deletions Models/UserConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public class UserConfig
public bool UseUnitForFuelCost { get; set; }
public bool ShowCalendar { get; set; }
public bool ShowVehicleThumbnail { get; set; }
public string ThemeVariant { get; set; } = string.Empty;
public List<UserColumnPreference> UserColumnPreferences { get; set; } = new List<UserColumnPreference>();
public ReminderUrgencyConfig ReminderUrgencyConfig { get; set; } = new ReminderUrgencyConfig();
public string UserNameHash { get; set; }
Expand Down
2 changes: 1 addition & 1 deletion Views/Home/_GarageDisplay.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
{
<div class="col-xl-2 col-lg-3 col-md-4 col-sm-4 col-6 user-select-none garage-item" ondragover="dragOver(event)" ondrop="dropBox(event, @vehicle.Id)" draggable="true" ondragstart="dragStart(event, @vehicle.Id)" data-tags='@string.Join(" ", vehicle.Tags)' id="gridVehicle_@vehicle.Id" data-bs-toggle="tooltip" data-bs-html="true" data-bs-title="@await Html.PartialAsync("_VehicleExtraFields", vehicle.ExtraFields)" data-bs-placement="bottom" data-bs-trigger="manual" onmouseenter="loadPinnedNotes(@vehicle.Id)" ontouchstart="loadPinnedNotes(@vehicle.Id)" ontouchcancel="hidePinnedNotes(@vehicle.Id)" ontouchend="hidePinnedNotes(@vehicle.Id)" onmouseleave="hidePinnedNotes(@vehicle.Id)">
<div class="card" onclick="viewVehicle(@vehicle.Id)">
<img src="@vehicle.ImageLocation" style="height:145px; object-fit:scale-down; pointer-events:none; @(string.IsNullOrWhiteSpace(vehicle.SoldDate) ? "" : "filter: grayscale(100%);")" />
<img src="@vehicle.ImageLocation" class="object-fit-cover" style="height:145px; pointer-events:none; @(string.IsNullOrWhiteSpace(vehicle.SoldDate) ? "" : "filter: grayscale(100%);")" />
@if (!string.IsNullOrWhiteSpace(vehicle.SoldDate))
{
<div class="vehicle-sold-banner"><p class='display-6 mb-0'>@translator.Translate(userLanguage, "SOLD")</p></div>
Expand Down
32 changes: 32 additions & 0 deletions Views/Home/_Settings.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,38 @@
<!option @(StaticHelper.DefaultTabSelected(Model.UserConfig, ImportMode.OdometerRecord)) value="OdometerRecord">@translator.Translate(userLanguage, "Odometer")</!option>
</select>
</div>


<div class="col-12 col-md-6">
<span class="lead">@translator.Translate(userLanguage, "Theme")</span>
<select class="form-select" onchange="updateSettings()" id="themeVariant">
<!option value="">@translator.Translate(userLanguage, "Default")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "mint")) value="mint">@translator.Translate(userLanguage, "Mint")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "slate")) value="slate">@translator.Translate(userLanguage, "Slate")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "zinc")) value="zinc">@translator.Translate(userLanguage, "Zinc")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "neutral")) value="neutral">@translator.Translate(userLanguage, "Neutral")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "stone")) value="stone">@translator.Translate(userLanguage, "Stone")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "orange")) value="orange">@translator.Translate(userLanguage, "Orange")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "yellow")) value="yellow">@translator.Translate(userLanguage, "Yellow")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "lime")) value="lime">@translator.Translate(userLanguage, "Lime")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "green")) value="green">@translator.Translate(userLanguage, "Green")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "emerald")) value="emerald">@translator.Translate(userLanguage, "Emerald")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "teal")) value="teal">@translator.Translate(userLanguage, "Teal")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "cyan")) value="cyan">@translator.Translate(userLanguage, "Cyan")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "sky")) value="sky">@translator.Translate(userLanguage, "Sky")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "blue")) value="blue">@translator.Translate(userLanguage, "Blue")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "indigo")) value="indigo">@translator.Translate(userLanguage, "Indigo")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "violet")) value="violet">@translator.Translate(userLanguage, "Violet")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "purple")) value="purple">@translator.Translate(userLanguage, "Purple")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "fuchsia")) value="fuchsia">@translator.Translate(userLanguage, "Fuchsia")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "pink")) value="pink">@translator.Translate(userLanguage, "Pink")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "rose")) value="rose">@translator.Translate(userLanguage, "Rose")</!option>
<!option @(StaticHelper.ThemeSelected(Model.UserConfig, "red")) value="red">@translator.Translate(userLanguage, "Red")</!option>
</select>
</div>
</<div>

<div class="row">
<div class="col-12 col-md-6">
<span class="lead">@translator.Translate(userLanguage, "Language")</span>
@if (User.IsInRole(nameof(UserData.IsRootUser)))
Expand Down
8 changes: 5 additions & 3 deletions Views/Shared/_Layout.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
var firstDayOfWeek = (int)CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
var numberFormat = CultureInfo.CurrentCulture.NumberFormat;
var userLanguage = userConfig.UserLanguage;
var themeVariant = userConfig.ThemeVariant;
shortDatePattern = shortDatePattern.ToLower();
if (!shortDatePattern.Contains("dd"))
{
Expand All @@ -26,7 +27,7 @@
shortDatePattern = shortDatePattern.Replace("m", "mm");
}
}
<html lang="en" data-bs-theme="@(useDarkMode ? "dark" : "light")">
<html lang="en" data-bs-theme="@(useDarkMode ? "dark" : "light")" @(string.IsNullOrEmpty(themeVariant) ? "" : $"data-theme-variant={themeVariant}")>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
Expand All @@ -39,8 +40,9 @@
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap-icons.css" />
<link rel="stylesheet" href="~/lib/bootstrap-datepicker/css/bootstrap-datepicker.min.css" />
<link rel="stylesheet" href="~/lib/bootstrap-tagsinput/bootstrap-tagsinput.css" />
<link rel="stylesheet" href="~/css/site.css"/>
<link rel="stylesheet" href="~/css/loader.css"/>
<link rel="stylesheet" href="~/css/site.css" />
<link rel="stylesheet" href="~/css/loader.css" />
<link rel="stylesheet" href="~/css/themes.css" media="screen" />
<link rel="stylesheet" href="~/sweetalert/sweetalert2.min.css"/>
<link rel="icon" sizes="192x192" href="~/defaults/lubelogger_icon_192.png" />
<link rel="icon" sizes="128x128" href="~/defaults/lubelogger_icon_128.png" />
Expand Down
3 changes: 2 additions & 1 deletion appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,6 @@
"DefaultTab": 8,
"UserNameHash": "",
"UserPasswordHash": "",
"DefaultReminderEmail": ""
"DefaultReminderEmail": "",
"ThemeVariant": ""
}
15 changes: 4 additions & 11 deletions wwwroot/css/site.css
Original file line number Diff line number Diff line change
Expand Up @@ -325,21 +325,14 @@ html {
position: absolute;
}

.table-context-menu > li > .dropdown-item:hover {
background-color: rgba(var(--bs-primary-rgb)) !important;
color: #fff !important;
}

html[data-bs-theme="dark"] .table-context-menu {
background-color: rgba(33, 37, 41, 0.7);
.table-context-menu {
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}

html[data-bs-theme="light"] .table-context-menu {
background-color: rgba(255, 255, 255, 0.7);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
.table-context-menu > li > .dropdown-item:hover {
background-color: rgba(var(--bs-primary-rgb));
color: #fff;
}

input[type="file"] {
Expand Down
Loading