42 lines
4.2 KiB
HTML
42 lines
4.2 KiB
HTML
<section class="panel analysis-workspace">
|
||
<div class="section-head"><div><span class="eyebrow">ACCOUNT LIBRARY</span><h2>Investigations</h2></div><button type="button" class="button secondary" id="new-analysis">New analysis</button></div>
|
||
<div id="analysis-library" class="analysis-library" aria-live="polite"><p class="field-help">Loading your saved analyses…</p></div>
|
||
</section>
|
||
<dialog id="save-analysis-dialog" class="analysis-dialog">
|
||
<form id="save-analysis-form">
|
||
<div class="studio-row"><h2 id="save-analysis-title">Save analysis</h2><button type="button" class="text-button" id="close-analysis-dialog" aria-label="Close">×</button></div>
|
||
<label>Name<input name="name" maxlength="100" required placeholder="HR at easy pace"></label>
|
||
<label>Investigation<input name="collection" maxlength="80" required value="My analyses" placeholder="Easy-run effort"></label>
|
||
<label>Notes<textarea name="notes" maxlength="4000" rows="3" placeholder="What are you investigating? What should you check next?"></textarea></label>
|
||
<div class="analysis-settings"><label>Dashboard display<select name="view"><option value="chart">Plot</option><option value="value">Summary values</option><option value="table">Grouped table</option></select></label><label>Widget width<select name="width"><option value="half">Half width</option><option value="full">Full width</option></select></label></div>
|
||
<label class="analysis-check"><input name="pinned" type="checkbox"> Pin to live dashboard</label>
|
||
<p id="save-analysis-error" class="studio-error" role="alert"></p>
|
||
<div class="studio-row bottom"><button type="button" class="button secondary" id="save-analysis-copy">Save as new</button><button class="button primary" type="submit" id="save-analysis-submit">Save analysis</button></div>
|
||
</form>
|
||
</dialog>
|
||
<details class="panel analysis-builder">
|
||
<summary>Build a comparable-effort investigation</summary>
|
||
<form id="matched-effort-form">
|
||
<div class="analysis-settings">
|
||
<label>Compare inputs<select name="source"><option value="intervals">Matched continuous windows · one point per run</option><option value="runs">Whole runs</option></select></label>
|
||
<label>Pace from · min/km<input name="pace_low" value="5:20" pattern="[0-9]+:[0-5][0-9]" required></label>
|
||
<label>Pace to · min/km<input name="pace_high" value="5:40" pattern="[0-9]+:[0-5][0-9]" required></label>
|
||
<label>Whole-run max ascent · m/km<input name="hills" type="number" min="0" max="1000" value="10" required></label>
|
||
<label>Window max absolute grade · %<input name="grade" type="number" min="0" max="15" value="2" required></label>
|
||
<label>Exclude first elapsed minutes<input name="warmup" type="number" min="0" max="60" value="10" required></label>
|
||
<label>Matched minutes per run<input name="matched" type="number" min="1" max="180" value="3" required></label>
|
||
<label>Current window · weeks<input name="weeks" type="number" min="1" max="104" value="12" required></label>
|
||
<label>Earlier baseline · days<input name="baseline" type="number" min="7" max="732" value="90" required></label>
|
||
<label>Minimum independent runs per week<input name="minimum" type="number" min="2" max="1000" value="3" required></label>
|
||
<label><input name="use_baseline" type="checkbox"> Add an earlier baseline and persistent weekly deviation rule</label>
|
||
</div>
|
||
<p class="field-help">Continuous windows require ≤15% speed variation, ≤2 percentage points of grade variation, ≥90% HR coverage and ≥25 seconds. Each qualifying run contributes one observation after matching. An earlier baseline needs at least ten independent runs; it may be unavailable for a short history.</p>
|
||
<button class="button primary" type="submit">Explore matched heart rate</button>
|
||
</form>
|
||
</details>
|
||
<details class="panel analysis-preset-gallery">
|
||
<summary>Start with a question</summary>
|
||
<div class="analysis-presets">{% for preset in presets %}<a class="analysis-preset" href="{{ url_for('web.stats', query=preset.query) }}"><span class="eyebrow">{{ preset.category }}</span><h3>{{ preset.name }}</h3><p>{{ preset.description }}</p></a>{% endfor %}</div>
|
||
</details>
|
||
<script id="selected-analysis" type="application/json">{{ selected_analysis|tojson }}</script>
|