Add inline quick parse to curation dialog
This commit is contained in:
@@ -280,11 +280,17 @@
|
||||
Model="curationModel"
|
||||
IsLoading="isCurationLoading"
|
||||
IsSaving="isCurationSaving"
|
||||
IsReparsing="isCurationReparsing"
|
||||
IsQuickParseMode="isCurationQuickParseMode"
|
||||
ErrorMessage="@curationError"
|
||||
QuickParseErrorMessage="@curationQuickParseError"
|
||||
LegendEntries="@(tableDetail?.Legend ?? Array.Empty<CriticalTableLegendEntry>())"
|
||||
OnClose="CloseCellCurationAsync"
|
||||
OnMarkCurated="MarkCellCuratedAsync"
|
||||
OnEdit="OpenEditorFromCurationAsync" />
|
||||
OnEdit="OpenEditorFromCurationAsync"
|
||||
OnEnterQuickParse="EnterCurationQuickParseMode"
|
||||
OnCancelQuickParse="CancelCurationQuickParseMode"
|
||||
OnReparse="ReparseCurationCellAsync" />
|
||||
}
|
||||
|
||||
@if (isEditorOpen)
|
||||
@@ -328,7 +334,10 @@
|
||||
private bool isCurationOpen;
|
||||
private bool isCurationLoading;
|
||||
private bool isCurationSaving;
|
||||
private bool isCurationReparsing;
|
||||
private bool isCurationQuickParseMode;
|
||||
private string? curationError;
|
||||
private string? curationQuickParseError;
|
||||
private int? curatingResultId;
|
||||
private CriticalCellEditorModel? curationModel;
|
||||
private bool isTableMenuOpen;
|
||||
@@ -487,6 +496,8 @@
|
||||
}
|
||||
|
||||
isCurationSaving = false;
|
||||
isCurationReparsing = false;
|
||||
isCurationQuickParseMode = false;
|
||||
isCurationOpen = true;
|
||||
await LoadCurationCellAsync(resultId, "The selected cell could not be loaded for curation.");
|
||||
}
|
||||
@@ -496,7 +507,10 @@
|
||||
isCurationOpen = false;
|
||||
isCurationLoading = false;
|
||||
isCurationSaving = false;
|
||||
isCurationReparsing = false;
|
||||
isCurationQuickParseMode = false;
|
||||
curationError = null;
|
||||
curationQuickParseError = null;
|
||||
curatingResultId = null;
|
||||
curationModel = null;
|
||||
await InvokeAsync(StateHasChanged);
|
||||
@@ -555,12 +569,39 @@
|
||||
await OpenCellEditorAsync(resultId);
|
||||
}
|
||||
|
||||
private Task EnterCurationQuickParseMode()
|
||||
{
|
||||
if (curationModel is null)
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
curationQuickParseError = null;
|
||||
isCurationQuickParseMode = true;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task CancelCurationQuickParseMode()
|
||||
{
|
||||
if (isCurationReparsing)
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
curationQuickParseError = null;
|
||||
isCurationQuickParseMode = false;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private async Task LoadCurationCellAsync(int resultId, string loadFailureMessage)
|
||||
{
|
||||
curationError = null;
|
||||
curationQuickParseError = null;
|
||||
curationModel = null;
|
||||
curatingResultId = resultId;
|
||||
isCurationLoading = true;
|
||||
isCurationQuickParseMode = false;
|
||||
isCurationReparsing = false;
|
||||
|
||||
try
|
||||
{
|
||||
@@ -585,6 +626,39 @@
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ReparseCurationCellAsync()
|
||||
{
|
||||
if (curationModel is null || string.IsNullOrWhiteSpace(selectedTableSlug) || curatingResultId is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
isCurationReparsing = true;
|
||||
curationQuickParseError = null;
|
||||
|
||||
try
|
||||
{
|
||||
var response = await ReparseCriticalCellAsync(curationModel, curatingResultId.Value);
|
||||
if (response is null)
|
||||
{
|
||||
curationQuickParseError = "The selected cell could not be re-parsed.";
|
||||
return;
|
||||
}
|
||||
|
||||
curationModel = CriticalCellEditorModel.FromResponse(response);
|
||||
isCurationQuickParseMode = false;
|
||||
await InvokeAsync(StateHasChanged);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
curationQuickParseError = exception.Message;
|
||||
}
|
||||
finally
|
||||
{
|
||||
isCurationReparsing = false;
|
||||
}
|
||||
}
|
||||
|
||||
private int? FindNextUncuratedResultId(int currentResultId)
|
||||
{
|
||||
if (tableDetail?.Cells is null || tableDetail.Cells.Count == 0)
|
||||
@@ -674,7 +748,7 @@
|
||||
try
|
||||
{
|
||||
var comparisonBaseline = editorModel.Clone();
|
||||
var response = await LookupService.ReparseCriticalCellAsync(selectedTableSlug, editingResultId.Value, editorModel.ToRequest());
|
||||
var response = await ReparseCriticalCellAsync(editorModel, editingResultId.Value);
|
||||
if (response is null)
|
||||
{
|
||||
editorReparseError = "The selected cell could not be re-parsed.";
|
||||
@@ -695,6 +769,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
private Task<CriticalCellEditorResponse?> ReparseCriticalCellAsync(CriticalCellEditorModel model, int resultId) =>
|
||||
LookupService.ReparseCriticalCellAsync(selectedTableSlug, resultId, model.ToRequest());
|
||||
|
||||
private async Task SaveCellEditorAsync()
|
||||
{
|
||||
if (editorModel is null || string.IsNullOrWhiteSpace(selectedTableSlug) || editingResultId is null)
|
||||
|
||||
Reference in New Issue
Block a user