From 29851ed81050ebd0826ea66b302a49de56b45f5f Mon Sep 17 00:00:00 2001 From: Frank Tovar Date: Sat, 14 Mar 2026 15:37:20 +0100 Subject: [PATCH] Separate critical editor load and save errors --- .../Components/Pages/Tables.razor | 22 +- .../Shared/CriticalCellEditorDialog.razor | 323 +++++++++--------- 2 files changed, 181 insertions(+), 164 deletions(-) diff --git a/src/RolemasterDb.App/Components/Pages/Tables.razor b/src/RolemasterDb.App/Components/Pages/Tables.razor index e22cc8d..e42857f 100644 --- a/src/RolemasterDb.App/Components/Pages/Tables.razor +++ b/src/RolemasterDb.App/Components/Pages/Tables.razor @@ -204,7 +204,8 @@ Model="editorModel" IsLoading="isEditorLoading" IsSaving="isEditorSaving" - ErrorMessage="editorError" + LoadErrorMessage="editorLoadError" + SaveErrorMessage="editorSaveError" OnClose="CloseCellEditorAsync" OnSave="SaveCellEditorAsync" /> } @@ -223,7 +224,8 @@ private bool isEditorOpen; private bool isEditorLoading; private bool isEditorSaving; - private string? editorError; + private string? editorLoadError; + private string? editorSaveError; private int? editingResultId; private CriticalCellEditorModel? editorModel; @@ -321,7 +323,8 @@ return; } - editorError = null; + editorLoadError = null; + editorSaveError = null; editorModel = null; editingResultId = resultId; isEditorSaving = false; @@ -333,7 +336,7 @@ var response = await LookupService.GetCriticalCellEditorAsync(selectedTableSlug, resultId); if (response is null) { - editorError = "The selected cell could not be loaded for editing."; + editorLoadError = "The selected cell could not be loaded for editing."; editorModel = null; return; } @@ -342,7 +345,7 @@ } catch (Exception exception) { - editorError = exception.Message; + editorLoadError = exception.Message; editorModel = null; } finally @@ -356,7 +359,8 @@ isEditorOpen = false; isEditorLoading = false; isEditorSaving = false; - editorError = null; + editorLoadError = null; + editorSaveError = null; editingResultId = null; editorModel = null; await InvokeAsync(StateHasChanged); @@ -370,14 +374,14 @@ } isEditorSaving = true; - editorError = null; + editorSaveError = null; try { var response = await LookupService.UpdateCriticalCellAsync(selectedTableSlug, editingResultId.Value, editorModel.ToRequest()); if (response is null) { - editorError = "The selected cell could not be saved."; + editorSaveError = "The selected cell could not be saved."; return; } @@ -386,7 +390,7 @@ } catch (Exception exception) { - editorError = exception.Message; + editorSaveError = exception.Message; } finally { diff --git a/src/RolemasterDb.App/Components/Shared/CriticalCellEditorDialog.razor b/src/RolemasterDb.App/Components/Shared/CriticalCellEditorDialog.razor index e882202..109069a 100644 --- a/src/RolemasterDb.App/Components/Shared/CriticalCellEditorDialog.razor +++ b/src/RolemasterDb.App/Components/Shared/CriticalCellEditorDialog.razor @@ -1,10 +1,10 @@ -@if (Model is not null) -{ -
-
-
-
- @Model.SourceDocument +
+
+
+
+ Manual Curation + @if (Model is not null) + {

Edit @Model.TableName

Roll band @Model.RollBand, column @Model.ColumnLabel @@ -13,177 +13,187 @@ , group @Model.GroupLabel }

-
- -
+ } + else + { +

Critical Cell Editor

+ } +
+ +
- @if (IsLoading) - { + @if (IsLoading) + { +
+

Loading editor...

+
+ } + else if (!string.IsNullOrWhiteSpace(LoadErrorMessage)) + { +
+

@LoadErrorMessage

+
+ } + else if (Model is not null) + { +
-

Loading editor...

-
- } - else - { - -
- @if (!string.IsNullOrWhiteSpace(ErrorMessage)) + @if (!string.IsNullOrWhiteSpace(SaveErrorMessage)) + { +

@SaveErrorMessage

+ } + +
+

Base Cell

+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ +
+
+

Base Effects

+ +
+ @if (Model.Effects.Count == 0) { -

@ErrorMessage

+

No normalized base effects for this cell.

} - -
-

Base Cell

-
- - -
-
- - -
-
- - -
-
-
- - -
-
- - -
-
-
- -
-
-

Base Effects

- -
- @if (Model.Effects.Count == 0) + else + { + @for (var index = 0; index < Model.Effects.Count; index++) { -

No normalized base effects for this cell.

- } - else - { - @for (var index = 0; index < Model.Effects.Count; index++) - { - var effect = Model.Effects[index]; -
-
- Effect @(index + 1) - -
- @EffectFields(effect) + var effect = Model.Effects[index]; +
+
+ Effect @(index + 1) +
- } + @EffectFields(effect) +
} -
+ } +
-
-
-

Branches

- -
- @if (Model.Branches.Count == 0) +
+
+

Branches

+ +
+ @if (Model.Branches.Count == 0) + { +

No branch records on this cell.

+ } + else + { + @for (var index = 0; index < Model.Branches.Count; index++) { -

No branch records on this cell.

- } - else - { - @for (var index = 0; index < Model.Branches.Count; index++) - { - var branch = Model.Branches[index]; -
-
- Branch @(index + 1) - -
-
-
- - -
-
- - -
-
- - -
+ var branch = Model.Branches[index]; +
+
+ Branch @(index + 1) + +
+
+
+ +
- - + +
- - + + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
- - -
-
- - -
-
-
- - -
-
- - -
+ +
+
-
-
-
Branch Effects
- -
- @if (branch.Effects.Count == 0) +
+
+
Branch Effects
+ +
+ @if (branch.Effects.Count == 0) + { +

No normalized branch effects.

+ } + else + { + @for (var effectIndex = 0; effectIndex < branch.Effects.Count; effectIndex++) { -

No normalized branch effects.

- } - else - { - @for (var effectIndex = 0; effectIndex < branch.Effects.Count; effectIndex++) - { - var effect = branch.Effects[effectIndex]; -
-
- Branch Effect @(effectIndex + 1) - -
- @EffectFields(effect) + var effect = branch.Effects[effectIndex]; +
+
+ Branch Effect @(effectIndex + 1) +
- } + @EffectFields(effect) +
} -
+ }
- } +
} -
-
+ } + +
-
- - -
- - } -
+ + + } -} + @code { [Parameter, EditorRequired] @@ -196,7 +206,10 @@ public bool IsSaving { get; set; } [Parameter] - public string? ErrorMessage { get; set; } + public string? LoadErrorMessage { get; set; } + + [Parameter] + public string? SaveErrorMessage { get; set; } [Parameter, EditorRequired] public EventCallback OnClose { get; set; }