Skip to content

Commit 301d02f

Browse files
Change theme (#40)
* change Radzen theme * move code * Cleanup * clean up * update nugets
1 parent 709c7d5 commit 301d02f

File tree

10 files changed

+652
-36
lines changed

10 files changed

+652
-36
lines changed

Client/Modules/FileHub/Category.razor

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
@namespace ICTAce.FileHub
22
@inherits ModuleBase
33

4-
<h3>Categories</h3>
5-
6-
<RadzenTheme Theme="material" />
74
<RadzenComponents />
85

6+
<h3>Categories</h3>
7+
98
@if (IsLoading)
109
{
1110
<p><em>Loading...</em></p>

Client/Modules/FileHub/RadzenThemeChanger.razor

Lines changed: 510 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
// Licensed to ICTAce under the MIT license.
2+
3+
namespace ICTAce.FileHub;
4+
5+
public partial class RadzenThemeChanger
6+
{
7+
[Inject]
8+
protected ISettingService SettingService { get; set; } = default!;
9+
10+
[Inject]
11+
private Radzen.ThemeService ThemeService { get; set; } = default!;
12+
13+
private string RadzenTheme { get; set; } = "default";
14+
15+
// Preview component state
16+
private bool _switchValue = true;
17+
private int _radioValue = 1;
18+
private int _sliderValue = 50;
19+
private int _stepsIndex = 1;
20+
private int _ratingValue = 4;
21+
private double _gaugeValue = 72;
22+
private bool _toggleValue = true;
23+
24+
// Sample data for DataGrid
25+
private List<SampleData> _sampleData =
26+
[
27+
new(1, "Product A", "Electronics", 299.99m, DateTime.Now.AddDays(-5), true),
28+
new(2, "Product B", "Clothing", 49.99m, DateTime.Now.AddDays(-3), true),
29+
new(3, "Product C", "Electronics", 199.99m, DateTime.Now.AddDays(-1), false),
30+
new(4, "Product D", "Home", 89.99m, DateTime.Now.AddDays(-7), true),
31+
new(5, "Product E", "Clothing", 29.99m, DateTime.Now.AddDays(-2), true),
32+
new(6, "Product F", "Home", 149.99m, DateTime.Now.AddDays(-10), false),
33+
new(7, "Product G", "Electronics", 599.99m, DateTime.Now.AddDays(-4), true),
34+
new(8, "Product H", "Clothing", 79.99m, DateTime.Now.AddDays(-6), true),
35+
];
36+
37+
private record SampleData(int Id, string Name, string Category, decimal Price, DateTime Date, bool IsActive);
38+
39+
private record ThemeOption(
40+
string Name,
41+
string Value,
42+
string Background,
43+
string Card,
44+
string Primary,
45+
string Accent,
46+
string Text,
47+
string ChartColor1,
48+
string ChartColor2,
49+
string ChartColor3,
50+
string BorderRadius);
51+
52+
private List<ThemeOption> AvailableThemes { get; } =
53+
[
54+
new("Default", "default", "#f5f5f5", "#ffffff", "#007bff", "#dc3545", "#212529", "#3700b3", "#ba68c8", "#f06292", "4"),
55+
new("Dark", "dark", "#121212", "#1e1e1e", "#90caf9", "#f48fb1", "#e0e0e0", "#3700b3", "#ba68c8", "#f06292", "4"),
56+
new("Material", "material", "#f5f5f5", "#ffffff", "#4340d2", "#e31c65", "#212121", "#3700b3", "#ba68c8", "#f06292", "4"),
57+
new("Material Dark", "material-dark", "#121212", "#1e1e1e", "#90caf9", "#f48fb1", "#e0e0e0", "#3700b3", "#ba68c8", "#f06292", "4"),
58+
new("Standard", "standard", "#f4f5f9", "#ffffff", "#1776d1", "#c3002f", "#212121", "#3d7cf4", "#64dfdf", "#f68769", "4"),
59+
new("Standard Dark", "standard-dark", "#19191a", "#242527", "#90caf9", "#f48fb1", "#e0e0e0", "#3d7cf4", "#64dfdf", "#f68769", "4"),
60+
new("Humanistic", "humanistic", "#f6f7fa", "#ffffff", "#376df5", "#e91e63", "#212121", "#376df5", "#64dfdf", "#f68769", "4"),
61+
new("Humanistic Dark", "humanistic-dark", "#28363c", "#38474e", "#90caf9", "#f48fb1", "#e0e0e0", "#376df5", "#64dfdf", "#f68769", "4"),
62+
new("Software", "software", "#f6f7fa", "#ffffff", "#4a5568", "#ed8936", "#2d3748", "#376df5", "#64dfdf", "#f68769", "4"),
63+
new("Software Dark", "software-dark", "#28363c", "#3a474d", "#63b3ed", "#f6ad55", "#e2e8f0", "#376df5", "#64dfdf", "#f68769", "4"),
64+
];
65+
66+
private Dictionary<string, string> _settings = new();
67+
68+
protected override async Task OnInitializedAsync()
69+
{
70+
await base.OnInitializedAsync();
71+
if (PageState.User != null)
72+
{
73+
_settings = await SettingService.GetUserSettingsAsync(PageState.User.UserId);
74+
RadzenTheme = SettingService.GetSetting(_settings, "RadzenTheme", "default");
75+
ThemeService.SetTheme(RadzenTheme);
76+
}
77+
}
78+
79+
private async Task OnThemeSelectedAsync(string theme)
80+
{
81+
RadzenTheme = theme;
82+
83+
// Apply theme immediately
84+
ThemeService.SetTheme(theme);
85+
86+
// Save to user settings
87+
if (PageState.User != null)
88+
{
89+
SettingService.SetSetting(_settings, "RadzenTheme", theme);
90+
await SettingService.UpdateUserSettingsAsync(_settings, PageState.User.UserId);
91+
}
92+
}
93+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@namespace ICTAce.FileHub
2+
@inherits ModuleBase
3+
4+
<RadzenComponents />
5+
<RadzenTheme Theme="default" />
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Licensed to ICTAce under the MIT license.
2+
3+
namespace ICTAce.FileHub;
4+
5+
public partial class RadzenThemeManager
6+
{
7+
[Inject]
8+
protected ISettingService SettingService { get; set; } = default!;
9+
10+
[Inject]
11+
private Radzen.ThemeService ThemeService { get; set; } = default!;
12+
13+
protected override async Task OnInitializedAsync()
14+
{
15+
await base.OnInitializedAsync();
16+
if (PageState.User != null)
17+
{
18+
var settings = await SettingService.GetUserSettingsAsync(PageState.User.UserId);
19+
var radzenTheme = SettingService.GetSetting(settings, "RadzenTheme", "default");
20+
ThemeService.SetTheme(radzenTheme);
21+
}
22+
}
23+
}
Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
@namespace ICTAce.FileHub
22
@inherits ModuleBase
33

4+
<RadzenThemeManager />
5+
46
<div class="container">
57
<div class="row">
68
<div class="col">
7-
<ICTAce.FileHub.Category ModuleId="@(ModuleState.ModuleId)" />
9+
<ICTAce.FileHub.Category ModuleId="@(ModuleState.ModuleId)"/>
10+
</div>
11+
</div>
12+
</div>
13+
14+
<div class="container mt-3">
15+
<div class="row">
16+
<div class="col">
17+
<RadzenThemeChanger />
818
</div>
919
</div>
1020
</div>

Client/Modules/FileHub/Settings.razor.cs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@ namespace ICTAce.FileHub;
44

55
public partial class Settings : ModuleBase
66
{
7-
[Inject]
8-
protected ISettingService SettingService { get; set; } = default!;
9-
10-
[Inject]
11-
protected IStringLocalizer<Settings> Localizer { get; set; } = default!;
12-
13-
private const string ResourceType = "ICTAce.FileHub.Settings, ICTAce.FileHub.Client.Oqtane";
14-
157
public override string Title => "FileHub Settings";
168

179
public override List<Resource> Resources =>
@@ -20,10 +12,4 @@ public partial class Settings : ModuleBase
2012
new Script(ModulePath() + "Module.js"),
2113
new Script("_content/Radzen.Blazor/Radzen.Blazor.js"),
2214
];
23-
24-
private async Task HandleErrorAsync(Exception ex)
25-
{
26-
AddModuleMessage(ex.Message, MessageType.Error);
27-
await Task.CompletedTask;
28-
}
2915
}

Directory.Packages.props

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,23 @@
1313
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(AspNetCoreVersion)" />
1414
<PackageVersion Include="Microsoft.Extensions.Http" Version="$(AspNetCoreVersion)" />
1515
<PackageVersion Include="Microsoft.Extensions.Localization" Version="$(AspNetCoreVersion)" />
16-
<PackageVersion Include="Radzen.Blazor" Version="8.4.1" />
16+
<PackageVersion Include="Radzen.Blazor" Version="8.4.2" />
1717
<PackageVersion Include="Microsoft.Playwright" Version="1.57.0" />
18-
<PackageVersion Include="Riok.Mapperly" Version="4.3.0" />
18+
<PackageVersion Include="Riok.Mapperly" Version="4.3.1" />
1919
<PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" />
2020
<PackageVersion Include="System.Net.Http.Json" Version="10.0.1" />
2121
<PackageVersion Include="Oqtane.Client" Version="$(OqtaneVersion)" />
2222
<PackageVersion Include="Oqtane.Server" Version="$(OqtaneVersion)" />
2323
<PackageVersion Include="Oqtane.Shared" Version="$(OqtaneVersion)" />
24-
<PackageVersion Include="TUnit" Version="1.5.70" />
25-
<PackageVersion Include="TUnit.Playwright" Version="1.5.70" />
26-
<PackageVersion Include="bunit" Version="2.3.4" />
24+
<PackageVersion Include="TUnit" Version="1.9.2" />
25+
<PackageVersion Include="TUnit.Playwright" Version="1.9.2" />
26+
<PackageVersion Include="bunit" Version="2.4.2" />
2727
<PackageVersion Include="Bogus" Version="35.6.1" />
2828
<PackageVersion Include="NSubstitute" Version="5.3.0" />
2929
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
3030
<PackageVersion Include="SonarAnalyzer.CSharp" Version="10.17.0.131074" />
31-
<PackageVersion Include="Meziantou.Analyzer" Version="2.0.263" />
32-
<PackageVersion Include="AsyncFixer" Version="1.6.0" />
31+
<PackageVersion Include="Meziantou.Analyzer" Version="2.0.267" />
32+
<PackageVersion Include="AsyncFixer" Version="2.1.0" />
3333
<PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" />
3434
<PackageVersion Include="TUnit.Analyzers" Version="0.1.984" />
3535
<PackageVersion Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" Version="4.14.0" />
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* Module Custom Styles */
22

33
/* Ensure Radzen overlays appear above Oqtane modals */
4-
div.rz-tooltip.rz-open.rz-popup {
4+
.rz-popup {
55
z-index: 99999 !important;
66
}

Solution ItemsError2025-11-15.log

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)