Templates: - mission_timeline_preview: client-side rendering with lane stacking, wheel zoom, drag pan, percentage-based layout, event dedup, scale labels - asset_detail: dock/undock modals with time selection, future event warning, Mission Label column replacing Location/State - asset_entry_form: all_locations expanded to 72 items (draft board hierarchy), all_states dynamic from DB, event point dropdown uses same list - Remove sim_time from all template url_for links - base.html: remove Today button JS: - app.js: sim_time controls use POST /api/v1/sim-time API instead of URL param Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
46 lines
1.6 KiB
HTML
46 lines
1.6 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block content %}
|
|
<div class="ph fi">
|
|
<div class="ey">Mission Operations</div>
|
|
<h1>任务总览</h1>
|
|
<p>Simulation: <strong>{{ simulation_time_display }}</strong> · All metrics derived from asset logs</p>
|
|
</div>
|
|
|
|
<div class="mg fi">
|
|
<div class="mc ac"><div class="l">Tracked Assets</div><div class="v">{{ total_assets }}</div><div class="s">{{ mothership_count }} Motherships · {{ station_count }} Stations</div></div>
|
|
<div class="mc gn"><div class="l">Active Missions</div><div class="v">{{ active_missions }}</div></div>
|
|
<div class="mc am"><div class="l">Upcoming (30d)</div><div class="v">{{ upcoming_count }}</div><div class="s">{{ upcoming_summary }}</div></div>
|
|
</div>
|
|
|
|
<div class="stl fi">Status Board</div>
|
|
<div class="sgr fi">
|
|
{% for group in status_groups %}
|
|
<div class="sgi">
|
|
<div class="sgh">
|
|
<span class="sdt {{ group.css_class }}"></span>{{ group.label }}
|
|
<span class="scc">{{ group.assets|length }}</span>
|
|
</div>
|
|
{% for asset in group.assets %}
|
|
<div class="srw">
|
|
<a class="an" href="{{ url_for('web.asset_detail', asset_id=asset.id
|
|
) }}">{{ asset.name }}</a>
|
|
<span class="am">{{ asset.mission }}</span>
|
|
<span class="al">{{ asset.location }}</span>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<div class="stl fi">Upcoming Events</div>
|
|
<div class="evl fi">
|
|
{% for ev in upcoming_events %}
|
|
<div class="evr">
|
|
<span class="ed">{{ ev.date }}</span>{{ ev.title }}
|
|
{% if ev.within_30d %}<span class="eb">30d</span>{% endif %}
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% endblock %}
|