feat: Enhance dashboard with live overview panel and control features
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
<div id="controls-panel" class="panel" style="margin-top: 16px">
|
||||
<div class="grid">
|
||||
<article class="card">
|
||||
<div class="label">Runtime Status</div>
|
||||
<div class="value">{{ execution_status }}</div>
|
||||
<div class="meta">Updated {{ updated_at }}</div>
|
||||
</article>
|
||||
<article class="card">
|
||||
<div class="label">Kill Switch</div>
|
||||
<div class="value">{{ kill_switch_status }}</div>
|
||||
<div class="meta">Reason {{ kill_switch_reason }}</div>
|
||||
</article>
|
||||
<article class="card">
|
||||
<div class="label">Config Snapshot</div>
|
||||
<div class="meta">Paper trading: {{ paper_trading_mode }}</div>
|
||||
<div class="meta">Trade capital: {{ trade_capital_usd }}</div>
|
||||
<div class="meta">Max trade capital: {{ max_trade_capital_usd }}</div>
|
||||
<div class="meta">Max concurrent trades: {{ max_concurrent_trades }}</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="grid"
|
||||
style="
|
||||
margin-top: 16px;
|
||||
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
||||
"
|
||||
>
|
||||
<article class="card">
|
||||
<div class="label">Execution Controls</div>
|
||||
<div class="control-actions">
|
||||
<form
|
||||
hx-post="{{ start_endpoint }}"
|
||||
hx-target="#controls-panel"
|
||||
hx-swap="outerHTML"
|
||||
>
|
||||
<button type="submit" class="button">Start</button>
|
||||
</form>
|
||||
<form
|
||||
hx-post="{{ stop_endpoint }}"
|
||||
hx-target="#controls-panel"
|
||||
hx-swap="outerHTML"
|
||||
>
|
||||
<button type="submit" class="button secondary">Stop</button>
|
||||
</form>
|
||||
<form
|
||||
hx-post="{{ kill_switch_endpoint }}"
|
||||
hx-target="#controls-panel"
|
||||
hx-swap="outerHTML"
|
||||
>
|
||||
<input type="hidden" name="reason" value="manual" />
|
||||
<button type="submit" class="button danger">
|
||||
Trigger Kill Switch
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</article>
|
||||
<article class="card">
|
||||
<div class="label">Edit Config</div>
|
||||
<form
|
||||
class="form-grid"
|
||||
hx-post="{{ config_endpoint }}"
|
||||
hx-target="#controls-panel"
|
||||
hx-swap="outerHTML"
|
||||
>
|
||||
<label class="field">
|
||||
<span>Trade capital USD</span>
|
||||
<input
|
||||
name="trade_capital_usd"
|
||||
type="number"
|
||||
min="0"
|
||||
step="0.01"
|
||||
value="{{ trade_capital_usd_value }}"
|
||||
/>
|
||||
</label>
|
||||
<label class="field">
|
||||
<span>Max trade capital USD</span>
|
||||
<input
|
||||
name="max_trade_capital_usd"
|
||||
type="number"
|
||||
min="0"
|
||||
step="0.01"
|
||||
value="{{ max_trade_capital_usd_value }}"
|
||||
/>
|
||||
</label>
|
||||
<label class="field">
|
||||
<span>Max concurrent trades</span>
|
||||
<input
|
||||
name="max_concurrent_trades"
|
||||
type="number"
|
||||
min="1"
|
||||
step="1"
|
||||
value="{{ max_concurrent_trades_value }}"
|
||||
/>
|
||||
</label>
|
||||
<label class="field checkbox">
|
||||
{% set check = "checked" if paper_trading_mode == "enabled" else "" %}
|
||||
<input name="paper_trading_mode" type="checkbox" {{ check }} />
|
||||
<span>Paper trading mode</span>
|
||||
</label>
|
||||
<button type="submit" class="button">Save config</button>
|
||||
</form>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user