diff --git a/app/MindWork AI Studio/Dialogs/PandocDialog.razor b/app/MindWork AI Studio/Dialogs/PandocDialog.razor index 5f2a6d24..a420667c 100644 --- a/app/MindWork AI Studio/Dialogs/PandocDialog.razor +++ b/app/MindWork AI Studio/Dialogs/PandocDialog.razor @@ -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>