feat(centralui): Topology pre-loads and expands the first layer (sites -> top-level areas) (Gitea #39)

This commit is contained in:
Joseph Doherty
2026-10-22 14:04:07 -04:00
parent 1d38fb6c90
commit d71f61e71b
3 changed files with 57 additions and 9 deletions
@@ -113,6 +113,7 @@
HasChildrenSelector="n => n.Children.Count > 0"
KeySelector="n => (object)n.Key"
StorageKey="topology-tree"
InitiallyExpanded="n => n.Kind == TopoNodeKind.Site"
Selectable="true"
SelectedKey="_selectedKey"
SelectedKeyChanged="OnTreeNodeSelected">
@@ -361,8 +362,13 @@
// the cleared lists.
var areas = new List<Area>();
var instances = new List<Instance>();
foreach (var siteId in _loadedSites.ToArray())
// First layer (Gitea #39): areas are pre-loaded for EVERY permitted site so the
// tree opens on sites → top-level areas. Instances stay lazy (_loadedPages).
foreach (var siteId in permittedSiteIds)
{
areas.AddRange(await TemplateEngineRepository.GetAreasBySiteIdAsync(siteId));
_loadedSites.Add(siteId);
}
foreach (var (key, offset) in _loadedPages.ToArray())
instances.AddRange(await TemplateEngineRepository.GetTopologyInstancesAsync(key.Site, key.Area, offset, InstancePageSize));
_allAreas = areas;