Added an option for mandatory terms of use dialogs (#725)
Build and Release / Determine run mode (push) Has been cancelled
Build and Release / Read metadata (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg,updater, dmg) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis,updater, nsis) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage,deb,updater, appimage,deb) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg,updater, dmg) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis,updater, nsis) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage,deb,updater, appimage,deb) (push) Has been cancelled
Build and Release / Prepare & create release (push) Has been cancelled
Build and Release / Publish release (push) Has been cancelled

This commit is contained in:
Thorsten Sommer authored and GitHub committed 2026-04-10 17:11:05 +02:00
1 parent 09258c7548
commit 8b11e2317b
29 files changed
+836 -21

No files matched your search

@@ -0,0 +1,47 @@
@inherits MSGComponentBase
<MudStack Spacing="2">
<MudText Typo="Typo.body2">
@T("Version"): @this.Info.VersionText
</MudText>
@if (this.ShowAcceptanceMetadata)
{
@if (this.AcceptanceStatus is MandatoryInfoAcceptanceStatus.MISSING)
{
<MudAlert Severity="Severity.Warning" Variant="Variant.Outlined" Dense="@true">
@T("This mandatory info has not been accepted yet.")
</MudAlert>
}
else if (this.AcceptanceStatus is MandatoryInfoAcceptanceStatus.VERSION_CHANGED)
{
<MudAlert Severity="Severity.Warning" Variant="Variant.Outlined" Dense="@true">
@T("A new version of the terms is available. Please review it again.")
<br />
@T("Last accepted version"): @this.Acceptance!.AcceptedVersion
<br />
@T("Accepted at (UTC)"): @this.Acceptance.AcceptedAtUtc.UtcDateTime.ToString("u")
</MudAlert>
}
else if (this.AcceptanceStatus is MandatoryInfoAcceptanceStatus.CONTENT_CHANGED)
{
<MudAlert Severity="Severity.Warning" Variant="Variant.Outlined" Dense="@true">
@T("Please review this text again. The content was changed.")
<br />
@T("Last accepted version"): @this.Acceptance!.AcceptedVersion
<br />
@T("Accepted at (UTC)"): @this.Acceptance.AcceptedAtUtc.UtcDateTime.ToString("u")
</MudAlert>
}
else
{
<MudAlert Severity="Severity.Success" Variant="Variant.Outlined" Dense="@true">
@T("Accepted version"): @this.Acceptance!.AcceptedVersion
<br />
@T("Accepted at (UTC)"): @this.Acceptance.AcceptedAtUtc.UtcDateTime.ToString("u")
</MudAlert>
}
}
<MudJustifiedMarkdown Value="@this.Info.Markdown" />
</MudStack>
@@ -0,0 +1,42 @@
using AIStudio.Settings.DataModel;
using Microsoft.AspNetCore.Components;
namespace AIStudio.Components;
public partial class MandatoryInfoDisplay
{
private enum MandatoryInfoAcceptanceStatus
{
MISSING,
VERSION_CHANGED,
CONTENT_CHANGED,
ACCEPTED,
}
[Parameter]
public DataMandatoryInfo Info { get; set; } = new();
[Parameter]
public DataMandatoryInfoAcceptance? Acceptance { get; set; }
[Parameter]
public bool ShowAcceptanceMetadata { get; set; }
private MandatoryInfoAcceptanceStatus AcceptanceStatus
{
get
{
if (this.Acceptance is null)
return MandatoryInfoAcceptanceStatus.MISSING;
if (!string.Equals(this.Acceptance.AcceptedVersion, this.Info.VersionText, StringComparison.Ordinal))
return MandatoryInfoAcceptanceStatus.VERSION_CHANGED;
if (!string.Equals(this.Acceptance.AcceptedHash, this.Info.AcceptanceHash, StringComparison.Ordinal))
return MandatoryInfoAcceptanceStatus.CONTENT_CHANGED;
return MandatoryInfoAcceptanceStatus.ACCEPTED;
}
}
}
@@ -0,0 +1,3 @@
<div class="justified-markdown">
<MudMarkdown Value="@this.Value" Props="Markdown.DefaultConfig" MarkdownPipeline="Markdown.SAFE_MARKDOWN_PIPELINE" />
</div>
@@ -0,0 +1,9 @@
using Microsoft.AspNetCore.Components;
namespace AIStudio.Components;
public partial class MudJustifiedMarkdown
{
[Parameter]
public string Value { get; set; } = string.Empty;
}