106 lines
3.3 KiB
HTML
106 lines
3.3 KiB
HTML
<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>
|