Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
2 changes: 1 addition & 1 deletion src/Aspire.Dashboard/Components/Controls/LogViewer.razor
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
@implements IAsyncDisposable

<div class="log-overflow console-overflow continuous-scroll-overflow">
<div class="log-container console-container" id="logContainer">
<div class="@($"log-container console-container {(NoWrapLogs ? "wrap-log-container" : null)}")" id="logContainer">
@if (LogEntries is { } logEntries)
{
<Virtualize Items="@logEntries.GetEntries()" ItemSize="20" OverscanCount="200" TItem="LogEntry">
Expand Down
3 changes: 3 additions & 0 deletions src/Aspire.Dashboard/Components/Controls/LogViewer.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ public sealed partial class LogViewer
[Parameter]
public bool IsTimestampUtc { get; set; }

[Parameter]
public bool NoWrapLogs { get; set; }

[Parameter]
public string? ApplicationName { get; set; }

Expand Down
1 change: 1 addition & 0 deletions src/Aspire.Dashboard/Components/Pages/ConsoleLogs.razor
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@
LogEntries="@_logEntries"
ShowTimestamp="@_showTimestamp"
IsTimestampUtc="@_isTimestampUtc"
NoWrapLogs="@_noWrapLogs"
ApplicationName="@PageViewModel.SelectedResource?.Name"/>
</MainSection>
</AspirePageContentLayout>
Expand Down
23 changes: 21 additions & 2 deletions src/Aspire.Dashboard/Components/Pages/ConsoleLogs.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ private sealed class ConsoleLogsSubscription
private bool _showHiddenResources;
private bool _showTimestamp;
private bool _isTimestampUtc;
private bool _noWrapLogs;
public ConsoleLogsViewModel PageViewModel { get; set; } = null!;
private IDisposable? _consoleLogsFiltersChangedSubscription;
private ConsoleLogsFilters _consoleLogFilters = new();
Expand Down Expand Up @@ -149,6 +150,7 @@ protected override async Task OnInitializedAsync()
{
_showTimestamp = consoleSettings.ShowTimestamp;
_isTimestampUtc = consoleSettings.IsTimestampUtc;
_noWrapLogs = consoleSettings.NoWrapLogs;
}

var showHiddenResources = await SessionStorage.GetAsync<bool>(BrowserStorageKeys.ResourcesShowHiddenResources);
Expand Down Expand Up @@ -370,6 +372,13 @@ private void UpdateMenuButtons()
IsDisabled = !_showTimestamp
});

_logsMenuItems.Add(new()
{
OnClick = () => ToggleWrapLogsAsync(noWrapLogs: !_noWrapLogs),
Text = _noWrapLogs ? Loc[nameof(Dashboard.Resources.ConsoleLogs.ConsoleLogsWrapLogs)] : Loc[nameof(Dashboard.Resources.ConsoleLogs.ConsoleLogsNoWrapLogs)],
Icon = _noWrapLogs ? new Icons.Regular.Size16.TextWrap() : new Icons.Regular.Size16.TextWrapOff()
});

if (PageViewModel.SelectedResource != null)
{
if (ViewportInformation.IsDesktop)
Expand Down Expand Up @@ -400,10 +409,20 @@ private void UpdateMenuButtons()

private async Task ToggleTimestampAsync(bool showTimestamp, bool isTimestampUtc)
{
await LocalStorage.SetUnprotectedAsync(BrowserStorageKeys.ConsoleLogConsoleSettings, new ConsoleLogConsoleSettings(showTimestamp, isTimestampUtc));
_showTimestamp = showTimestamp;
_isTimestampUtc = isTimestampUtc;
await UpdateConsoleLogSettingsAsync();
}

private async Task ToggleWrapLogsAsync(bool noWrapLogs)
{
_noWrapLogs = noWrapLogs;
await UpdateConsoleLogSettingsAsync();
}

private async Task UpdateConsoleLogSettingsAsync()
{
await LocalStorage.SetUnprotectedAsync(BrowserStorageKeys.ConsoleLogConsoleSettings, new ConsoleLogConsoleSettings(_showTimestamp, _isTimestampUtc, _noWrapLogs));
UpdateMenuButtons();
StateHasChanged();
}
Expand Down Expand Up @@ -749,7 +768,7 @@ public class ConsoleLogsViewModel

public record ConsoleLogsPageState(string? SelectedResource);

public record ConsoleLogConsoleSettings(bool ShowTimestamp, bool IsTimestampUtc);
public record ConsoleLogConsoleSettings(bool ShowTimestamp, bool IsTimestampUtc, bool NoWrapLogs);

public Task UpdateViewModelFromQueryAsync(ConsoleLogsViewModel viewModel)
{
Expand Down
18 changes: 18 additions & 0 deletions src/Aspire.Dashboard/Resources/ConsoleLogs.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions src/Aspire.Dashboard/Resources/ConsoleLogs.resx
Original file line number Diff line number Diff line change
Expand Up @@ -177,4 +177,10 @@
<data name="ConsoleLogsErrorWatchingLogs" xml:space="preserve">
<value>Error watching logs</value>
</data>
<data name="ConsoleLogsWrapLogs" xml:space="preserve">
<value>Wrap log lines</value>
</data>
<data name="ConsoleLogsNoWrapLogs" xml:space="preserve">
<value>No wrap log lines</value>
</data>
</root>
10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.cs.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.de.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.es.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.fr.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.it.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.ja.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.ko.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.pl.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.pt-BR.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.ru.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.tr.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading