mirror of
https://github.com/alexhopeoconnor/dnsmasq-webui.git
synced 2026-10-22 01:42:08 +10:00
Effective config: editable badge in view mode, refresh on continue/stop after save failure
- Multi-value items: EditableAsButton=true so 'editable' badge is clickable in view mode and activates the field like other editable badges. - Save modal: 'Continue editing' after ValidateFailed/ReloadFailed now discards session, refreshes config from disk, then re-enters edit mode so remove/UI work correctly. - 'Stop editing' after ValidateFailed/ReloadFailed now triggers config refresh so the invalid value on disk is shown instead of stale UI. - SaveFlow: HandleCloseAndEndEdit invokes OnSaveCompleted when in failed state; OnContinueEditing uses EventCallback.Factory.Create to fix method-group conversion warning.
This commit is contained in:
@@ -16,10 +16,11 @@
|
||||
SaveResult="@_saveResult"
|
||||
RestoreResult="@_restoreResult"
|
||||
OnClose="@OnClose"
|
||||
OnContinueEditing="@(EventCallback.Factory.Create(this, HandleContinueEditing))"
|
||||
OnSave="@HandleSave"
|
||||
OnRestore="@HandleRestore"
|
||||
OnReverted="@HandleReverted"
|
||||
OnCloseAndEndEdit="@OnCloseAndEndEdit" />
|
||||
OnCloseAndEndEdit="@HandleCloseAndEndEdit" />
|
||||
}
|
||||
|
||||
@code {
|
||||
@@ -39,6 +40,7 @@
|
||||
[Parameter] public DnsmasqServiceStatus? Status { get; set; }
|
||||
[Parameter] public EventCallback OnClose { get; set; }
|
||||
[Parameter] public EventCallback OnSaveCompleted { get; set; }
|
||||
[Parameter] public EventCallback OnContinueEditingAfterSavedFailure { get; set; }
|
||||
[Parameter] public EventCallback OnCloseAndEndEdit { get; set; }
|
||||
[Parameter] public IEffectiveConfigEditSession Session { get; set; } = null!;
|
||||
|
||||
@@ -127,4 +129,23 @@
|
||||
_saveState = SaveUiState.RestoreFailed;
|
||||
await InvokeAsync(StateHasChanged);
|
||||
}
|
||||
|
||||
private async Task HandleContinueEditing()
|
||||
{
|
||||
if (_saveState == SaveUiState.ValidateFailed || _saveState == SaveUiState.ReloadFailed)
|
||||
{
|
||||
await OnContinueEditingAfterSavedFailure.InvokeAsync();
|
||||
return;
|
||||
}
|
||||
|
||||
await OnClose.InvokeAsync();
|
||||
}
|
||||
|
||||
private async Task HandleCloseAndEndEdit()
|
||||
{
|
||||
await OnCloseAndEndEdit.InvokeAsync();
|
||||
|
||||
if (_saveState == SaveUiState.ValidateFailed || _saveState == SaveUiState.ReloadFailed)
|
||||
await OnSaveCompleted.InvokeAsync();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user