Skip to content

Commit 7785159

Browse files
committed
Merge branch 'main' into docker
2 parents ffcbf5e + 7504bbd commit 7785159

File tree

23 files changed

+178
-67
lines changed

23 files changed

+178
-67
lines changed

scripts/linux/deploy.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
4040
yes|sudo apt install ./google-chrome-stable_current_amd64.deb
4141

4242
echo "*********************** install support font ***********************"
43-
sudo apt install fonts-wqy-microhei
43+
yes|sudo apt install fonts-wqy-microhei
4444

4545
echo "*********************** install DOTNET ***********************"
4646
wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

src/BootstrapBlazor.Server/Components/App.razor

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@
4242

4343
<BlazorReconnector @rendermode="new InteractiveServerRenderMode(false)" />
4444

45-
<script src="_content/BootstrapBlazor.SummerNote/js/jquery-3.6.0.min.js"></script>
46-
<script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"></script>
47-
<script src="_framework/blazor.web.js"></script>
45+
<script src="@Assets["_content/BootstrapBlazor.SummerNote/js/jquery-3.6.0.min.js"]"></script>
46+
<script src="@Assets["_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"]"></script>
47+
<script src="@Assets["_framework/blazor.web.js"]"></script>
4848
@if (Env.IsProduction())
4949
{
5050
<script type="text/javascript" src="https://cdn.wwads.cn/js/makemoney.js"></script>

src/BootstrapBlazor.Server/Components/Components/FooterCounter.razor

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
@inject ICacheManager Cache
22
@inject IConnectionService ConnectionService
3+
@inherits WebSiteModuleComponentBase
4+
@attribute [JSModuleAutoLoader("Components/FooterCounter.razor.js")]
35

4-
<div class="d-none d-sm-block ms-2">Run @Runtime</div>
6+
<div id="@Id" class="d-none d-sm-block ms-2" style="width: 110px;">Run @Runtime</div>
57
@if (_options.Enable)
68
{
79
<div class="footer-online ms-2">

src/BootstrapBlazor.Server/Components/Components/FooterCounter.razor.cs

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ namespace BootstrapBlazor.Server.Components.Components;
1010
/// <summary>
1111
/// FooterCounter 组件
1212
/// </summary>
13-
public partial class FooterCounter : IDisposable
13+
public partial class FooterCounter
1414
{
1515
private string? Runtime { get; set; }
1616

17-
private CancellationTokenSource _disposeTokenSource = new();
17+
private readonly CancellationTokenSource _disposeTokenSource = new();
1818

1919
private ConnectionHubOptions _options = default!;
2020

@@ -30,7 +30,9 @@ protected override void OnInitialized()
3030
base.OnInitialized();
3131

3232
_options = BootstrapBlazorOptions.Value.ConnectionHubOptions;
33-
UpdateRuntime();
33+
34+
var ts = DateTimeOffset.Now - Cache.GetStartTime();
35+
Runtime = ts.ToString("dd\\.hh\\:mm\\:ss");
3436
}
3537

3638
/// <summary>
@@ -41,36 +43,44 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
4143
{
4244
await base.OnAfterRenderAsync(firstRender);
4345

44-
try
46+
if (firstRender)
4547
{
46-
await Task.Delay(1000, _disposeTokenSource.Token);
47-
UpdateRuntime();
48-
StateHasChanged();
48+
try
49+
{
50+
while (_disposeTokenSource is { IsCancellationRequested: false })
51+
{
52+
await Task.Delay(30000, _disposeTokenSource.Token);
53+
var ts = DateTimeOffset.Now - Cache.GetStartTime();
54+
await InvokeVoidAsync("updateFooterCounter", Id, ts.TotalSeconds);
55+
}
56+
}
57+
catch { }
4958
}
50-
catch { }
5159
}
5260

53-
private void UpdateRuntime()
61+
/// <summary>
62+
/// <inheritdoc/>
63+
/// </summary>
64+
/// <returns></returns>
65+
protected override Task InvokeInitAsync()
5466
{
5567
var ts = DateTimeOffset.Now - Cache.GetStartTime();
56-
Runtime = ts.ToString("dd\\.hh\\:mm\\:ss");
68+
return InvokeVoidAsync("init", Id, ts.TotalSeconds);
5769
}
5870

59-
private void Dispose(bool disposing)
71+
/// <summary>
72+
/// <inheritdoc/>
73+
/// </summary>
74+
/// <param name="disposing"></param>
75+
/// <returns></returns>
76+
protected override async ValueTask DisposeAsync(bool disposing)
6077
{
78+
await base.DisposeAsync(true);
79+
6180
if (disposing)
6281
{
6382
_disposeTokenSource.Cancel();
6483
_disposeTokenSource.Dispose();
6584
}
6685
}
67-
68-
/// <summary>
69-
/// <inheritdoc/>
70-
/// </summary>
71-
public void Dispose()
72-
{
73-
Dispose(true);
74-
GC.SuppressFinalize(this);
75-
}
7686
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import Data from "../../_content/BootstrapBlazor/modules/data.js"
2+
3+
export function init(id, totalSeconds) {
4+
const el = document.getElementById(id);
5+
if (el === null) {
6+
return;
7+
}
8+
9+
const tick = () => {
10+
const counter = Data.get(id);
11+
12+
counter.totalSeconds = (counter.totalSeconds || 0) + 1;
13+
const now = Math.round(counter.totalSeconds, 0);
14+
15+
const days = Math.floor(now / (24 * 3600));
16+
const hours = Math.floor((now % (24 * 3600)) / 3600);
17+
const minutes = Math.floor((now % 3600) / 60);
18+
const seconds = now % 60;
19+
20+
const pad = num => num.toString().padStart(2, '0');
21+
el.innerHTML = `Run ${pad(days)}.${pad(hours)}:${pad(minutes)}:${pad(seconds)}`;
22+
}
23+
24+
const handler = setInterval(tick, 1000);
25+
Data.set(id, {
26+
el,
27+
handler,
28+
totalSeconds
29+
});
30+
}
31+
32+
export function updateFooterCounter(id, totalSeconds) {
33+
const counter = Data.get(id);
34+
if (counter) {
35+
counter.totalSeconds = totalSeconds;
36+
console.log(`FooterCounter updated: ${id}, totalSeconds: ${totalSeconds}`);
37+
}
38+
}
39+
40+
export function dispose(id) {
41+
const counter = Data.get(id);
42+
if (counter) {
43+
clearInterval(counter.handler);
44+
Data.remove(id);
45+
}
46+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<div class="mask-dialog-demo row">
2+
<div class="col-12">
3+
<h3>MaskDemo</h3>
4+
</div>
5+
<div class="col-12">
6+
<DialogCloseButton></DialogCloseButton>
7+
</div>
8+
</div>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.mask-dialog-demo {
2+
background-color: var(--bs-body-bg);
3+
border-radius: var(--bs-border-radius);
4+
padding: 1rem;
5+
}

src/BootstrapBlazor.Server/Components/Components/Video.razor

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
<p><b>@Localizer["H1"]</b></p>
55

6-
@if (VideoUrl.Any())
6+
@if (VideoUrl.Count > 0)
77
{
88
foreach (var url in VideoUrl)
99
{
1010
<div class="mb-3">
11-
<a class="fa-solid fa-video" href="@url" target="_blank"><span class="ms-2">@Localizer["L1"]</span></a>
11+
<a href="@url" target="_blank"><i class="fa-solid fa-video"></i><span class="ms-2">@Localizer["L1"]</span></a>
1212
</div>
1313
}
1414
}

src/BootstrapBlazor.Server/Components/Layout/MainLayout.razor

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,21 @@
2929
<ThemeMode></ThemeMode>
3030
</DialButtonItem>
3131
<DialButtonItem>
32-
<LinkButton TooltipPlacement="Placement.Left" ButtonStyle="ButtonStyle.Circle" Color="Color.None" TooltipText="@ChatTooltip" class="btn-fade btn-chat" Url="./ai-chat" Icon="fa-solid fa-comments"></LinkButton>
32+
<Tooltip Title="@ChatTooltip" Placement="Placement.Left" class="btn btn-circle btn-fade btn-dial-item d-flex">
33+
<a href="./ai-chat">
34+
<i class="fa-solid fa-comments"></i>
35+
</a>
36+
</Tooltip>
3337
</DialButtonItem>
3438
<DialButtonItem>
3539
<ThemeChooser></ThemeChooser>
3640
</DialButtonItem>
3741
<DialButtonItem>
38-
<LinkButton TooltipPlacement="Placement.Left" ButtonStyle="ButtonStyle.Circle" Color="Color.None" TooltipText="@Title" class="btn-fade btn-update" Url="@WebsiteOption.Value.WikiUrl" Target="_blank" ImageUrl="@WebsiteOption.Value.GetAssetUrl("images/log.svg")"></LinkButton>
42+
<Tooltip Title="@ChatTooltip" Placement="Placement.Left" class="btn btn-circle btn-fade btn-dial-item d-flex">
43+
<a href="@WebsiteOption.Value.WikiUrl" target="_blank">
44+
<i class="fa-solid fa-file-circle-check"></i>
45+
</a>
46+
</Tooltip>
3947
</DialButtonItem>
4048
</ChildContent>
4149
</DialButton>

src/BootstrapBlazor.Server/Components/Layout/MainLayout.razor.css

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -96,31 +96,20 @@
9696
opacity: 1;
9797
}
9898

99-
::deep .btn-update {
100-
--bs-btn-bg: var(--bb-layout-button-update-bg);
101-
--bs-btn-hover-bg: var(--bs-btn-bg);
102-
--bs-btn-active-bg: var(--bs-btn-bg);
103-
display: flex;
104-
justify-content: center;
105-
align-items: center;
106-
}
107-
108-
::deep .btn-update img {
109-
width: 55%;
110-
margin-inline-start: 2px;
111-
}
112-
113-
::deep .btn-chat {
99+
::deep .btn-dial-item {
114100
--bs-btn-bg: var(--bb-layout-button-bg);
115101
--bs-btn-hover-bg: var(--bb-layout-button-hover-bg);
116102
--bs-btn-active-bg: var(--bb-layout-button-active-bg);
117103
box-shadow: var(--bb-layout-button-shadow);
118104
display: flex;
119105
align-items: center;
120106
justify-content: center;
121-
color: var(--bb-button-chat-color);
122107
}
123108

109+
::deep .btn-dial-item a {
110+
color: var(--bb-button-chat-color);
111+
}
112+
124113
::deep .btn-theme-mode {
125114
--bs-btn-bg: var(--bb-layout-button-bg);
126115
--bs-btn-hover-bg: var(--bb-layout-button-hover-bg);

0 commit comments

Comments
 (0)