v0.33.1
This commit is contained in:
1 parent
2ccc598b12
commit
b757b34a31
26 files changed
+671
-116
No files matched your search
@@ -87,3 +87,61 @@ static DASHBOARD_WIDGETS: std::sync::LazyLock<Vec<DashboardWidgetDefinition>> =
|
||||
serde_json::from_str(include_str!("web/dashboard-widgets.json"))
|
||||
.expect("invalid bundled Overview Cards registry")
|
||||
});
|
||||
|
||||
// A single operator-curated factory preset feeds both the Rust API defaults
|
||||
// and the authenticated dashboard. New registry widgets remain opt-in unless
|
||||
// explicitly added to the preset; saved user preferences are never rewritten.
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
struct DashboardDefaultPreset {
|
||||
dashboard_widgets: Vec<String>,
|
||||
dashboard_hidden_widgets: Vec<String>,
|
||||
dashboard_density: String,
|
||||
overview_samples: u16,
|
||||
}
|
||||
static DASHBOARD_DEFAULT_PRESET: std::sync::LazyLock<DashboardDefaultPreset> =
|
||||
std::sync::LazyLock::new(|| {
|
||||
let preset: DashboardDefaultPreset =
|
||||
serde_json::from_str(include_str!("web/dashboard-defaults.json"))
|
||||
.expect("invalid factory Overview layout preset");
|
||||
let registry = DASHBOARD_WIDGETS
|
||||
.iter()
|
||||
.map(|w| w.id.as_str())
|
||||
.collect::<std::collections::HashSet<_>>();
|
||||
let order = preset
|
||||
.dashboard_widgets
|
||||
.iter()
|
||||
.map(String::as_str)
|
||||
.collect::<std::collections::HashSet<_>>();
|
||||
let hidden = preset
|
||||
.dashboard_hidden_widgets
|
||||
.iter()
|
||||
.map(String::as_str)
|
||||
.collect::<std::collections::HashSet<_>>();
|
||||
assert_eq!(
|
||||
order.len(),
|
||||
preset.dashboard_widgets.len(),
|
||||
"duplicate factory widget ID"
|
||||
);
|
||||
assert_eq!(
|
||||
hidden.len(),
|
||||
preset.dashboard_hidden_widgets.len(),
|
||||
"duplicate hidden factory widget ID"
|
||||
);
|
||||
assert!(
|
||||
order.is_subset(®istry) && hidden.is_subset(&order),
|
||||
"unknown widget in factory layout"
|
||||
);
|
||||
assert!(
|
||||
matches!(
|
||||
preset.dashboard_density.as_str(),
|
||||
"normal" | "compact" | "ultra"
|
||||
),
|
||||
"invalid factory density"
|
||||
);
|
||||
assert!(
|
||||
matches!(preset.overview_samples, 60 | 120 | 300 | 600),
|
||||
"invalid factory sample count"
|
||||
);
|
||||
preset
|
||||
});
|
||||
Reference in new issue
Block a user