Skip to content
Merged
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
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 @@ -19,7 +19,7 @@
@{
var hasPrefix = false;
}
@if (context.Timestamp is { } timestamp)
@if (!HideTimestamp && context.Timestamp is { } timestamp)
{
hasPrefix = true;
<span class="timestamp" title="@FormatHelpers.FormatDateTime(TimeProvider, timestamp, MillisecondsDisplay.Full, CultureInfo.CurrentCulture)">@GetDisplayTimestamp(timestamp)</span>
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 @@ -31,6 +31,9 @@ public sealed partial class LogViewer
[Parameter]
public LogEntries? LogEntries { get; set; } = null!;

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

protected override void OnParametersSet()
{
if (_logEntries != LogEntries)
Expand Down
2 changes: 1 addition & 1 deletion src/Aspire.Dashboard/Components/Pages/ConsoleLogs.razor
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
</MobilePageTitleToolbarSection>

<MainSection>
<LogViewer LogEntries="@_logEntries" />
<LogViewer LogEntries="@_logEntries" HideTimestamp="@PageViewModel.HideTimestamp" />
</MainSection>
</AspirePageContentLayout>
</div>
44 changes: 41 additions & 3 deletions src/Aspire.Dashboard/Components/Pages/ConsoleLogs.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ private sealed class ConsoleLogsSubscription
[Parameter]
public string? ResourceName { get; set; }

[Parameter]
[SupplyParameterFromQuery(Name = "hideTimestamp")]
public bool? HideTimestamp { get; set; }

private readonly CancellationTokenSource _resourceSubscriptionCts = new();
private readonly ConcurrentDictionary<string, ResourceViewModel> _resourceByName = new(StringComparers.ResourceName);
private ImmutableList<SelectViewModel<ResourceTypeDetails>>? _resources;
Expand All @@ -99,7 +103,7 @@ protected override async Task OnInitializedAsync()
_resourceSubscriptionToken = _resourceSubscriptionCts.Token;
_logEntries = new(Options.Value.Frontend.MaxConsoleLogCount);
_noSelection = new() { Id = null, Name = ControlsStringsLoc[nameof(ControlsStrings.LabelNone)] };
PageViewModel = new ConsoleLogsViewModel { SelectedOption = _noSelection, SelectedResource = null, Status = Loc[nameof(Dashboard.Resources.ConsoleLogs.ConsoleLogsLoadingResources)] };
PageViewModel = new ConsoleLogsViewModel { SelectedOption = _noSelection, SelectedResource = null, Status = Loc[nameof(Dashboard.Resources.ConsoleLogs.ConsoleLogsLoadingResources)], HideTimestamp = false };

var loadingTcs = new TaskCompletionSource();

Expand Down Expand Up @@ -258,6 +262,25 @@ private void UpdateMenuButtons()
Icon = new Icons.Regular.Size16.ArrowDownload()
});

if (PageViewModel.HideTimestamp)
{
_logsMenuItems.Add(new()
{
OnClick = () => ToggleTimestamp(hideTimestamp: false),
Text = Loc[nameof(Dashboard.Resources.ConsoleLogs.ConsoleLogsTimestampShow)],
Icon = new Icons.Regular.Size16.CalendarClock()
});
}
else
{
_logsMenuItems.Add(new()
{
OnClick = () => ToggleTimestamp(hideTimestamp: true),
Text = Loc[nameof(Dashboard.Resources.ConsoleLogs.ConsoleLogsTimestampHide)],
Icon = new Icons.Regular.Size16.DismissSquareMultiple()
});
}

if (PageViewModel.SelectedResource != null)
{
if (ViewportInformation.IsDesktop)
Expand Down Expand Up @@ -285,6 +308,12 @@ private void UpdateMenuButtons()
}
}

private async Task ToggleTimestamp(bool hideTimestamp)
{
PageViewModel.HideTimestamp = hideTimestamp;
await this.AfterViewModelChangedAsync(_contentLayout, waitToApplyMobileChange: false);
}

private async Task ExecuteResourceCommandAsync(CommandViewModel command)
{
await DashboardCommandExecutor.ExecuteAsync(PageViewModel.SelectedResource!, command, GetResourceName);
Expand Down Expand Up @@ -507,11 +536,13 @@ public class ConsoleLogsViewModel
public required string Status { get; set; }
public required SelectViewModel<ResourceTypeDetails> SelectedOption { get; set; }
public required ResourceViewModel? SelectedResource { get; set; }
public required bool HideTimestamp { get; set; }
}

public class ConsoleLogsPageState
{
public string? SelectedResource { get; set; }
public bool HideTimestamp { get; set; }
}

public Task UpdateViewModelFromQueryAsync(ConsoleLogsViewModel viewModel)
Expand All @@ -530,19 +561,26 @@ public Task UpdateViewModelFromQueryAsync(ConsoleLogsViewModel viewModel)
viewModel.SelectedResource = null;
viewModel.Status = Loc[nameof(Dashboard.Resources.ConsoleLogs.ConsoleLogsNoResourceSelected)];
}

if (HideTimestamp is { } hideTimestamp)
{
viewModel.HideTimestamp = hideTimestamp;
}

return Task.CompletedTask;
}

public string GetUrlFromSerializableViewModel(ConsoleLogsPageState serializable)
{
return DashboardUrls.ConsoleLogsUrl(serializable.SelectedResource);
return DashboardUrls.ConsoleLogsUrl(serializable.SelectedResource, serializable.HideTimestamp);
}

public ConsoleLogsPageState ConvertViewModelToSerializable()
{
return new ConsoleLogsPageState
{
SelectedResource = PageViewModel.SelectedResource?.Name
SelectedResource = PageViewModel.SelectedResource?.Name,
HideTimestamp = PageViewModel.HideTimestamp
};
}
}
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 @@ -163,4 +163,10 @@
<data name="ConsoleLogsResourceCommands" xml:space="preserve">
<value>Resource commands</value>
</data>
<data name="ConsoleLogsTimestampShow" xml:space="preserve">
<value>Show timestamps</value>
</data>
<data name="ConsoleLogsTimestampHide" xml:space="preserve">
<value>Hide timestamps</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.

10 changes: 10 additions & 0 deletions src/Aspire.Dashboard/Resources/xlf/ConsoleLogs.zh-Hans.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.zh-Hant.xlf

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

Loading
Loading