feat(ui): live dashboard, capture-status pill, bet/backtest UX
- Add IDashboardSummaryService/DashboardSummaryService: real event/snapshot/ anomaly counts, top-5 signals, and per-stage pipeline health from worker state. - Home: replace hard-coded zeros + placeholder feed with live data, a clickable signal feed, and a first-run empty state with a Settings CTA. - MainLayout: add an appbar capture-status pill (Capturing/Paused) bound to the poller toggles, refreshed via IOptionsMonitor.OnChange. - MyBets: success snackbar on bet submit. Backtest: surface a Cancel button while a run is in flight. - Add en/ru localization for all new strings; register IOptionsMonitor<WorkerOptions> in the bUnit test context for layout-rendering tests.
This commit is contained in:
@@ -79,6 +79,14 @@
|
||||
<data name="Home.Pipeline.Step3"><value>Flip detector</value></data>
|
||||
<data name="Home.Pipeline.Step4"><value>XLSX export</value></data>
|
||||
<data name="Home.Empty"><value>No data yet. Enable the background pollers in Settings to start the feed.</value></data>
|
||||
<data name="Home.Empty.Heading"><value>Nothing captured yet</value></data>
|
||||
<data name="Home.Empty.Cta"><value>Open Settings</value></data>
|
||||
<data name="Home.NoSignals"><value>Capturing lines — no flips flagged yet.</value></data>
|
||||
<data name="Home.ViewAll"><value>View all signals</value></data>
|
||||
<data name="Home.Stat.NewToday"><value>{0} new today</value></data>
|
||||
<data name="Scraping.On"><value>Capturing</value></data>
|
||||
<data name="Scraping.Off"><value>Paused</value></data>
|
||||
<data name="Scraping.Aria"><value>Data capture status</value></data>
|
||||
|
||||
<data name="Settings.Kicker"><value>Configuration</value></data>
|
||||
<data name="Settings.Title"><value>Settings</value></data>
|
||||
@@ -407,6 +415,7 @@
|
||||
<data name="Journal.Empty.None"><value>No bets recorded yet. Use the form above to log a wager — once the event finishes the journal will auto-grade it and compute closing-line value against the latest pre-match snapshot.</value></data>
|
||||
<data name="Journal.Empty.NotApplicable"><value>—</value></data>
|
||||
<data name="Journal.Error.Generic"><value>Failed to save bet — check the event ID and try again.</value></data>
|
||||
<data name="Journal.Submitted"><value>Bet recorded.</value></data>
|
||||
<data name="Journal.Resolve.None"><value>No pending bets needed grading.</value></data>
|
||||
<data name="Journal.Resolve.Done"><value>Graded {0} pending bet(s).</value></data>
|
||||
<data name="Journal.Confirm.Delete"><value>Delete this bet permanently?</value></data>
|
||||
@@ -432,6 +441,7 @@
|
||||
<data name="Backtest.StakeRule.Kelly"><value>Kelly</value></data>
|
||||
<data name="Backtest.Action.Run"><value>Run simulation</value></data>
|
||||
<data name="Backtest.Action.Running"><value>Simulating…</value></data>
|
||||
<data name="Backtest.Action.Cancel"><value>Cancel</value></data>
|
||||
<data name="Backtest.Stat.FinalBankroll"><value>Final bankroll</value></data>
|
||||
<data name="Backtest.Stat.NetProfit"><value>Net profit</value></data>
|
||||
<data name="Backtest.Stat.Roi"><value>ROI</value></data>
|
||||
|
||||
Reference in New Issue
Block a user