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

@@ -222,6 +222,18 @@
<ExpansionPanel HeaderIcon="@Icons.Material.Filled.EventNote" HeaderText="@T("Changelog")">
<Changelog/>
</ExpansionPanel>
@foreach (var mandatoryInfoPanel in this.mandatoryInfoPanels)
{
<ExpansionPanel HeaderIcon="@Icons.Material.Filled.Gavel" HeaderText="@mandatoryInfoPanel.HeaderText">
<MudText Typo="Typo.body2" Class="mb-3">
@string.Format(T("Provided by configuration plugin: {0}"), mandatoryInfoPanel.PluginName)
</MudText>
<MandatoryInfoDisplay Info="@mandatoryInfoPanel.Info"
Acceptance="@mandatoryInfoPanel.Acceptance"
ShowAcceptanceMetadata="@true"/>
</ExpansionPanel>
}
<ExpansionPanel HeaderIcon="@Icons.Material.Filled.Book" HeaderText="@T("Logbook")">
<MudText Typo="Typo.h4">
@@ -2,6 +2,7 @@ using System.Reflection;
using AIStudio.Components;
using AIStudio.Dialogs;
using AIStudio.Settings.DataModel;
using AIStudio.Tools.Databases;
using AIStudio.Tools.Metadata;
using AIStudio.Tools.PluginSystem;
@@ -77,9 +78,13 @@ public partial class Information : MSGComponentBase
.ToList();
private List<EnterpriseEnvironment> enterpriseEnvironments = EnterpriseEnvironmentService.CURRENT_ENVIRONMENTS.ToList();
private List<MandatoryInfoPanelData> mandatoryInfoPanels = [];
private sealed record DatabaseDisplayInfo(string Label, string Value);
private sealed record MandatoryInfoPanelData(string HeaderText, string PluginName, DataMandatoryInfo Info, DataMandatoryInfoAcceptance? Acceptance);
private readonly List<DatabaseDisplayInfo> databaseDisplayInfo = new();
private bool HasAnyActiveEnvironment => this.enterpriseEnvironments.Any(e => e.IsActive);
@@ -117,7 +122,7 @@ public partial class Information : MSGComponentBase
protected override async Task OnInitializedAsync()
{
this.ApplyFilters([], [ Event.ENTERPRISE_ENVIRONMENTS_CHANGED ]);
this.ApplyFilters([], [ Event.ENTERPRISE_ENVIRONMENTS_CHANGED, Event.CONFIGURATION_CHANGED ]);
await base.OnInitializedAsync();
this.RefreshEnterpriseConfigurationState();
@@ -145,6 +150,7 @@ public partial class Information : MSGComponentBase
{
case Event.PLUGINS_RELOADED:
case Event.ENTERPRISE_ENVIRONMENTS_CHANGED:
case Event.CONFIGURATION_CHANGED:
this.RefreshEnterpriseConfigurationState();
await this.InvokeAsync(this.StateHasChanged);
break;
@@ -163,6 +169,16 @@ public partial class Information : MSGComponentBase
.ToList();
this.enterpriseEnvironments = EnterpriseEnvironmentService.CURRENT_ENVIRONMENTS.ToList();
this.mandatoryInfoPanels = PluginFactory.GetMandatoryInfos()
.Select(info =>
{
var plugin = this.configPlugins.FirstOrDefault(item => item.Id == info.EnterpriseConfigurationPluginId);
var pluginName = plugin?.Name ?? T("Unknown configuration plugin");
var acceptance = this.SettingsManager.ConfigurationData.MandatoryInformation.FindAcceptance(info.Id);
var headerText = $"{T("Consent:")} {info.Title}";
return new MandatoryInfoPanelData(headerText, pluginName, info, acceptance);
})
.ToList();
}
private async Task DeterminePandocVersion()