Changeset 0.25.0 (#160)
This commit is contained in:
@@ -77,6 +77,11 @@ type RoleSelection struct {
|
||||
}
|
||||
|
||||
// ── Page data structs ────────────────────────
|
||||
//
|
||||
// v0.25.0: Each loader function is a "data provider" keyed by surface ID.
|
||||
// The surface manifest's DataRequires field references these keys.
|
||||
// Currently 1:1 (one loader per surface). Future: composite loaders
|
||||
// that assemble data from multiple providers for dashboard-style surfaces.
|
||||
|
||||
// AdminPageData is what the admin surface templates receive.
|
||||
type AdminPageData struct {
|
||||
@@ -129,6 +134,16 @@ func (e *Engine) registerLoaders() {
|
||||
e.RegisterLoader("settings", e.settingsLoader)
|
||||
}
|
||||
|
||||
// ListDataProviders returns the keys of all registered data providers.
|
||||
// Used for manifest validation — DataRequires entries must match a key here.
|
||||
func (e *Engine) ListDataProviders() []string {
|
||||
keys := make([]string, 0, len(e.loaders))
|
||||
for k := range e.loaders {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
return keys
|
||||
}
|
||||
|
||||
// ── Admin loader ─────────────────────────────
|
||||
// Pre-loads ALL dropdown data. Fixes bugs #1 (model roles) and #2 (team scope).
|
||||
|
||||
@@ -299,7 +314,7 @@ func sectionCategory(section string) string {
|
||||
return "ai"
|
||||
case "health", "routing", "capabilities":
|
||||
return "routing"
|
||||
case "settings", "storage", "extensions":
|
||||
case "settings", "storage", "extensions", "channels", "surfaces":
|
||||
return "system"
|
||||
case "usage", "audit", "stats":
|
||||
return "monitoring"
|
||||
|
||||
Reference in New Issue
Block a user