Hosts page UX, draft/UI split, and managed hosts save summary

- Split effective-config session into Draft + Ui (IEffectiveConfigDraft, IEffectiveConfigUiState)
- Hosts: managed overlay, edit mode from table, validation deferred to blur/Escape/Enter
- Managed hosts save modal: line-level diff (add/remove/modify/order)
- Hosts group headers: editable/read-only badges, empty-group row, Effective names help
- hosts-ui.js for touch vs hover help; table inline bind oninput for live preview
- HostsEntryEditValidator and ManagedHostsPendingChangeDiff with tests
This commit is contained in:
2026-04-01 11:27:55 +10:00
parent 1bbab1c8c3
commit f0b4ea97a4
28 changed files with 1267 additions and 384 deletions
@@ -52,7 +52,7 @@ else
return;
}
var pending = Session?.PendingChanges.OfType<PendingOptionChange>().FirstOrDefault(c =>
var pending = Session?.Draft.PendingChanges.OfType<PendingOptionChange>().FirstOrDefault(c =>
string.Equals(c.SectionId, Descriptor.SectionId, StringComparison.OrdinalIgnoreCase) &&
string.Equals(c.OptionName, Descriptor.OptionName, StringComparison.OrdinalIgnoreCase));
if (pending?.OldValue is ExplicitToggleState previousState)