WIP: Included expressive dialog for automatic and manual installation

This commit is contained in:
krut_ni 2025-04-15 21:39:24 +02:00
parent 09c9834c04
commit 08c1a54e51

View File

@ -1,38 +1,93 @@
<MudDialog>
@using ReverseMarkdown.Converters
<MudDialog>
<TitleContent>
Install Pandoc
</TitleContent>
<DialogContent>
@if (this.showInstallPage)
{
<MudItem Class="pa-6" Style="height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center;">
<p>Installationpage</p>
</MudItem>
<div class="mb-4">
<MudText Class="mb-2">
AI Studio relies on the third-party app <strong>Pandoc</strong> to process and retrieve data from local
Office files (ex. <strong>Word</strong>) and later other text formats like LaTeX.
</MudText>
<MudText>
Unfortunately Pandocs GPL license is not compatible with AI Studios licences.
Therefore you have to accept Pandocs GPL license before we can download and install Pandoc automatically for you (recommended).
However you can download it yourself manually with the instructions below.
</MudText>
</div>
<MudExpansionPanels Class="mb-3" MultiExpansion="@false">
<ExpansionPanel HeaderIcon="@Icons.Material.Filled.AutoFixHigh" HeaderText="Automatic Installation">
<MudText Typo="Typo.caption">
Pandoc is distributed under the <MudLink Typo="Typo.caption" Href="https://github.com/jgm/pandoc/blob/main/COPYRIGHT" Target="_blank">GNU General Public License v2 (GPL)</MudLink>.
By clicking "Accept GPL and Install", you agree to the terms of the GPL license <br/> and Pandoc will be installed automatically for you.<br/>
</MudText>
<MudButton Color="Color.Primary" Class="mt-4" Variant="Variant.Filled" Size="Size.Small" StartIcon="@Icons.Material.Filled.InstallDesktop">Accept GPL and Install</MudButton>
</ExpansionPanel>
<ExpansionPanel HeaderIcon="@Icons.Material.Filled.Build" HeaderText="Manual Installation">
<MudText>
If you prefer to install Pandoc yourself, please follow these steps:
</MudText>
<MudList T="string">
<MudListItem T="string">
Accept the terms of the GPL license and download the latest archive with the button below.
</MudListItem>
<MudListItem T="string">
Extract the archive to a folder of your choice.
(ex. <code>C:\Users\%USERNAME%\pandoc</code>)
</MudListItem>
<MudListItem T="string">
Open the folder and copy the path to the <code>pandoc.exe</code> file into you clipboard.
(ex. <code>C:\Users\%USERNAME%\pandoc\pandoc-3.6.4</code>)
</MudListItem>
<MudListItem T="string">
Add the copied path to your systems environment variables and check the installation by typing
<code>pandoc --version</code> into your command line interface.
</MudListItem>
</MudList>
<MudText Class="mb-3" Typo="Typo.caption">
Pandoc is distributed under the <MudLink Typo="Typo.caption" Href="https://github.com/jgm/pandoc/blob/main/COPYRIGHT" Target="_blank">GNU General Public License v2 (GPL)</MudLink>.
By clicking "Accept GPL and Download", you agree to the terms of the GPL license.
</MudText>
<MudButton Color="Color.Secondary" Class="mt-4" Variant="Variant.Filled" Size="Size.Small" StartIcon="@Icons.Material.Filled.Downloading">Accept GPL and Download</MudButton>
</ExpansionPanel>
</MudExpansionPanels>
<div class="mt-2">
<MudButton Variant="Variant.Text" Color="Color.Default">Reject GPL licence</MudButton>
</div>
}
else
{
<MudItem Class="pa-6" Style="height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center;">
@if (showSkeleton)
{
<MudSkeleton SkeletonType="SkeletonType.Circle" Animation="Animation.Pulse" Class="mb-4" Style="width: 4em; height: 4em;"/>
<MudSkeleton SkeletonType="SkeletonType.Rectangle" Animation="Animation.Pulse" Width="230px" Height="35px"/>
}
else if (isPandocAvailable)
{
<MudIcon Class="mb-2" Style="width: 2.5em; height: 2.5em;" Icon="@Icons.Material.Filled.Check" Color="Color.Success"/>
<MudText Typo="Typo.subtitle1" Align="Align.Center">
Pandoc ist auf Ihrem System verfügbar
</MudText>
}
else
{
<MudIcon Class="mb-2" Style="width: 2.5em; height: 2.5em;" Icon="@Icons.Material.Filled.Error" Color="Color.Error"/>
<MudText Class="mb-2" Typo="Typo.subtitle1" Align="Align.Center">
Pandoc ist auf Ihrem System nicht verfügbar
</MudText>
<MudButton Color="Color.Primary" OnClick="@this.ProceedToInstallation" Variant="Variant.Filled">Proceed to installation</MudButton>
}
</MudItem>
<MudItem Class="pa-6"
Style="height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center;">
@if (showSkeleton)
{
<MudSkeleton SkeletonType="SkeletonType.Circle" Animation="Animation.Pulse" Class="mb-4"
Style="width: 4em; height: 4em;"/>
<MudSkeleton SkeletonType="SkeletonType.Rectangle" Animation="Animation.Pulse" Width="230px"
Height="35px"/>
}
else if (isPandocAvailable)
{
<MudIcon Class="mb-2" Style="width: 2.5em; height: 2.5em;" Icon="@Icons.Material.Filled.Check"
Color="Color.Success"/>
<MudText Typo="Typo.subtitle1" Align="Align.Center">
Pandoc ist auf Ihrem System verfügbar
</MudText>
}
else
{
<MudIcon Class="mb-2" Style="width: 2.5em; height: 2.5em;" Icon="@Icons.Material.Filled.Error"
Color="Color.Error"/>
<MudText Class="mb-2" Typo="Typo.subtitle1" Align="Align.Center">
Pandoc ist auf Ihrem System nicht verfügbar
</MudText>
<MudButton Color="Color.Primary" OnClick="@this.ProceedToInstallation" Variant="Variant.Filled">Proceed
to installation
</MudButton>
}
</MudItem>
}
</DialogContent>
<DialogActions>