mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-15 11:33:48 +00:00
Offer a repair for data sources with an unreadable index
This commit is contained in:
7 files changed
+163
-2
No files matched your search
@@ -59,6 +59,18 @@
|
||||
<MudTooltip Text="@T("Information")">
|
||||
<MudIconButton Color="Color.Info" Icon="@Icons.Material.Outlined.Info" OnClick="@(() => this.ShowInformation(context))"/>
|
||||
</MudTooltip>
|
||||
@*
|
||||
Outside the two branches below on purpose: an index which cannot be read is a
|
||||
matter of this machine, not of the configuration. Hiding the repair for a data
|
||||
source the organization manages would leave it locked out of every chat with no
|
||||
way back, and the selection points here for it.
|
||||
*@
|
||||
@if (this.CanRepairDataSource(context))
|
||||
{
|
||||
<MudTooltip Text="@T("Repair this data source by indexing it anew")">
|
||||
<MudIconButton Color="Color.Warning" Icon="@Icons.Material.Filled.Build" OnClick="@(() => this.RepairDataSource(context))"/>
|
||||
</MudTooltip>
|
||||
}
|
||||
@if (context.IsEnterpriseConfiguration)
|
||||
{
|
||||
<MudTooltip Text="@T("This data source is managed by your organization.")">
|
||||
|
||||
@@ -128,6 +128,25 @@ public partial class DataSourceManagement : MSGComponentBase
|
||||
return this.SettingsManager.ConfigurationData.DataSources.Any(this.CanRefreshDataSource);
|
||||
}
|
||||
|
||||
/// <remarks>
|
||||
/// Shown only while the index of this data source cannot be read. The refresh button next to it
|
||||
/// stays as it is: it would open the same store and fail the same way, but it is offered for
|
||||
/// every internal data source regardless of state, and singling this one out would say more
|
||||
/// about the state than that button ever has.
|
||||
/// </remarks>
|
||||
private bool CanRepairDataSource(IDataSource dataSource)
|
||||
{
|
||||
return this.DataSourceEmbeddingService.NeedsIndexRepair(dataSource);
|
||||
}
|
||||
|
||||
private async Task RepairDataSource(IDataSource dataSource)
|
||||
{
|
||||
if (!this.CanRepairDataSource(dataSource))
|
||||
return;
|
||||
|
||||
await DataSourceRepair.ConfirmAndRepairAsync(this.DialogService, this.DataSourceEmbeddingService, dataSource.Id, dataSource.Name);
|
||||
}
|
||||
|
||||
private async Task AutomaticRefreshChanged(bool enabled)
|
||||
{
|
||||
this.SettingsManager.ConfigurationData.App.DataSourceIndexing.AutomaticRefresh = enabled;
|
||||
|
||||
Reference in new issue
Block a user