@using AIStudio.Settings.DataModel <MudDialog> <DialogContent> <MudForm @ref="@this.form" @bind-IsValid="@this.dataIsValid" @bind-Errors="@this.dataIssues"> @* ReSharper disable once CSharpWarnings::CS8974 *@ <MudTextField T="string" @bind-Text="@this.dataName" Label="Data Source Name" Class="mb-6" MaxLength="40" Counter="40" Immediate="@true" Validation="@this.dataSourceValidation.ValidatingName" Adornment="Adornment.Start" AdornmentIcon="@Icons.Material.Filled.Lightbulb" AdornmentColor="Color.Info" UserAttributes="@SPELLCHECK_ATTRIBUTES" /> <MudJustifiedText Typo="Typo.body1" Class="mb-3"> Select a root directory for this data source. All data in this directory and all its subdirectories will be processed for this data source. </MudJustifiedText> <SelectDirectory @bind-Directory="@this.dataPath" Label="Selected base directory for this data source" DirectoryDialogTitle="Select the base directory" Validation="@this.dataSourceValidation.ValidatePath" /> <MudJustifiedText Typo="Typo.body1" Class="mb-3"> In order for the AI to be able to determine the appropriate data at any time, you must choose an embedding method. </MudJustifiedText> <MudSelect @bind-Value="@this.dataEmbeddingId" Label="Embedding" Class="mb-3" OpenIcon="@Icons.Material.Filled.ExpandMore" AdornmentColor="Color.Info" Adornment="Adornment.Start" Validation="@this.dataSourceValidation.ValidateEmbeddingId"> @foreach (var embedding in this.AvailableEmbeddings) { <MudSelectItem Value="@embedding.Value">@embedding.Name</MudSelectItem> } </MudSelect> @if (!string.IsNullOrWhiteSpace(this.dataEmbeddingId)) { if (this.SelectedCloudEmbedding) { <MudJustifiedText Typo="Typo.body1" Color="Color.Error" Class="mb-3"> @if (string.IsNullOrWhiteSpace(this.dataPath)) { @: Please note: the embedding you selected runs in the cloud. All your data will be sent to the cloud. @: Please confirm that you have read and understood this. } else { @: Please note: the embedding you selected runs in the cloud. All your data from the @: folder '@this.dataPath' and all its subdirectories will be sent to the cloud. Please @: confirm that you have read and understood this. } </MudJustifiedText> <MudTextSwitch @bind-Value="@this.dataUserAcknowledgedCloudEmbedding" Label="I confirm that I have read and understood the above" LabelOn="Yes, please send my data to the cloud" LabelOff="No, I will chose another embedding" Validation="@this.dataSourceValidation.ValidateUserAcknowledgedCloudEmbedding"/> } else { <MudJustifiedText Typo="Typo.body1" Color="Color.Tertiary" Class="mb-3"> The embedding you selected runs locally or in your organization. Your data is not sent to the cloud. </MudJustifiedText> } } <MudSelect @bind-Value="@this.dataSecurityPolicy" Text="@this.dataSecurityPolicy.ToSelectionText()" Label="Your security policy" Class="mb-3" OpenIcon="@Icons.Material.Filled.ExpandMore" AdornmentColor="Color.Info" Adornment="Adornment.Start" Validation="@this.dataSourceValidation.ValidateSecurityPolicy"> @foreach (var policy in Enum.GetValues<DataSourceSecurity>()) { <MudSelectItem Value="@policy">@policy.ToSelectionText()</MudSelectItem> } </MudSelect> </MudForm> <Issues IssuesData="@this.dataIssues"/> </DialogContent> <DialogActions> <MudButton OnClick="@this.Cancel" Variant="Variant.Filled">Cancel</MudButton> <MudButton OnClick="@this.Store" Variant="Variant.Filled" Color="Color.Primary"> @if(this.IsEditing) { @:Update } else { @:Add } </MudButton> </DialogActions> </MudDialog>