forked from b.peck/BAT
Phase 2: dashboard tabs + popups, chart fixes, shell relocation
Built via parallel Workflow (5 builders + adversarial verifiers), then live-rendered and fixed in a headless browser against the running gateway. Tabs (PrimeControls/Tabs/*): - Overview: priority cards, KPI status row, alarm-rate timeline, insights, top-5 - Analysis: hour x day heatmap, priority donut vs ISA 80/15/5, MTTA/MTTR, floods - BadActors: chattering/standing/fleeting tables, focus chip, AlarmDetail wiring - Journal: paginated getJournalPage table, CSV export, EventDetail wiring Popups (PrimeControls/Popups/*): HealthScore, ShiftReport, AlarmDetail, EventDetail Chart fixes (verified rendering in-browser): - Overview timeline: seeded dataSources.rate, switched to static fills, split flood bins into their own red stacked series (per-point deriveFieldsFromData fill was crashing render with React.cloneElement null). - BadActors: removed the dual-axis Pareto XY chart (scaling was unusable); replaced with a ranked "Top Sources" table (share-of-total progress bar + cumulative %). Same insight, no axis scaling to break. Structural / hygiene: - Relocated Header + FilterBar from Dashboard/ to Shell/ and updated the two embed paths. A Perspective view cannot resolve sub-views nested inside another view's folder, so both were rendering as "view does not exist" placeholders. - Set persistent:false on all view input params. persistent:true caused the gateway to bake the live bundle (with sim tag paths) into Tabs/Analysis on render; nulled that baked data and reset the session query range to 0. lint_project.py: 0 failures / 0 warnings. Verified in-browser: Overview, BadActors. NOT yet live-verified: Analysis, Journal, and the four popups (schema-verified only). Header content is next phase (renders now, but a benign cloneElement console warning remains). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,18 +2,18 @@
|
||||
"custom": {
|
||||
"PrimeControls": {
|
||||
"query": {
|
||||
"startMs": 0,
|
||||
"endMs": 0,
|
||||
"rangePreset": "8h",
|
||||
"priorities": [],
|
||||
"areas": [],
|
||||
"states": [],
|
||||
"endMs": 0,
|
||||
"priorities": [],
|
||||
"rangePreset": "8h",
|
||||
"refreshToken": 0,
|
||||
"search": "",
|
||||
"refreshToken": 0
|
||||
"startMs": 0,
|
||||
"states": []
|
||||
},
|
||||
"ui": {
|
||||
"selectedTab": 0,
|
||||
"badActorFocus": ""
|
||||
"badActorFocus": "",
|
||||
"selectedTab": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -68,15 +68,28 @@
|
||||
"props.lastActivity": {
|
||||
"access": "SYSTEM",
|
||||
"persistent": false
|
||||
},
|
||||
"props.offline.capable": {
|
||||
"access": "SYSTEM",
|
||||
"persistent": false
|
||||
},
|
||||
"props.offline.enabled": {
|
||||
"access": "SYSTEM",
|
||||
"persistent": false
|
||||
},
|
||||
"props.offline.lastSynced": {
|
||||
"access": "SYSTEM",
|
||||
"persistent": false
|
||||
}
|
||||
},
|
||||
"props": {
|
||||
"address": "172.18.0.5",
|
||||
"address": "172.23.0.1",
|
||||
"device": {},
|
||||
"geolocation": {},
|
||||
"locale": "en-US",
|
||||
"offline": {},
|
||||
"securityLevels": [],
|
||||
"theme": "light-cool",
|
||||
"timeZoneId": "America/Los_Angeles"
|
||||
"timeZoneId": "America/Chicago"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user