Web UI: setup progress + logs folding, Finished Decks library, commander search UX (debounce, keyboard, highlights, color chips), ranking fixes (first-word priority, substring include), optional auto-select; setup start reliability (POST+GET), force runs, status with percent/ETA/timestamps; stepwise builder with added stage reporting and sidecar summaries; keyboard grid wrap-around; restrict commander search to eligible rows
2025-08-26 09:48:25 -07:00
|
|
|
<section>
|
2025-08-26 20:00:07 -07:00
|
|
|
{% set step_index = 3 %}{% set step_total = 5 %}
|
Web UI: setup progress + logs folding, Finished Decks library, commander search UX (debounce, keyboard, highlights, color chips), ranking fixes (first-word priority, substring include), optional auto-select; setup start reliability (POST+GET), force runs, status with percent/ETA/timestamps; stepwise builder with added stage reporting and sidecar summaries; keyboard grid wrap-around; restrict commander search to eligible rows
2025-08-26 09:48:25 -07:00
|
|
|
<h3>Step 3: Ideal Counts</h3>
|
|
|
|
|
<div class="two-col two-col-left-rail">
|
|
|
|
|
<aside class="card-preview" data-card-name="{{ commander|urlencode }}">
|
|
|
|
|
<a href="https://scryfall.com/search?q={{ commander|urlencode }}" target="_blank" rel="noopener">
|
Web UI polish: thumbnail-hover preview, white thumbnail selection, Themes bullet list; global Scryfall image retry (thumbs+previews) with fallbacks and cache-bust; standardized data-card-name. Deck Summary alignment overhaul (count//name/owned grid, tabular numerals, inset highlight, tooltips, starts under header). Added diagnostics (health + logs pages, error pages, request-id propagation), global HTMX error toasts, and docs updates. Update DOCKER guide and add run-web scripts. Update CHANGELOG and release notes template.
2025-08-27 11:21:46 -07:00
|
|
|
<img src="https://api.scryfall.com/cards/named?fuzzy={{ commander|urlencode }}&format=image&version=normal" alt="{{ commander }} card image" data-card-name="{{ commander }}" />
|
Web UI: setup progress + logs folding, Finished Decks library, commander search UX (debounce, keyboard, highlights, color chips), ranking fixes (first-word priority, substring include), optional auto-select; setup start reliability (POST+GET), force runs, status with percent/ETA/timestamps; stepwise builder with added stage reporting and sidecar summaries; keyboard grid wrap-around; restrict commander search to eligible rows
2025-08-26 09:48:25 -07:00
|
|
|
</a>
|
|
|
|
|
</aside>
|
2025-08-26 20:00:07 -07:00
|
|
|
<div class="grow" data-skeleton>
|
Web UI: setup progress + logs folding, Finished Decks library, commander search UX (debounce, keyboard, highlights, color chips), ranking fixes (first-word priority, substring include), optional auto-select; setup start reliability (POST+GET), force runs, status with percent/ETA/timestamps; stepwise builder with added stage reporting and sidecar summaries; keyboard grid wrap-around; restrict commander search to eligible rows
2025-08-26 09:48:25 -07:00
|
|
|
<div hx-get="/build/banner?step=Ideal%20Counts&i=3&n=5" hx-trigger="load"></div>
|
2025-08-26 20:00:07 -07:00
|
|
|
{% include "build/_stage_navigator.html" %}
|
Web UI: setup progress + logs folding, Finished Decks library, commander search UX (debounce, keyboard, highlights, color chips), ranking fixes (first-word priority, substring include), optional auto-select; setup start reliability (POST+GET), force runs, status with percent/ETA/timestamps; stepwise builder with added stage reporting and sidecar summaries; keyboard grid wrap-around; restrict commander search to eligible rows
2025-08-26 09:48:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{% if error %}
|
|
|
|
|
<div style="color:#a00; margin:.5rem 0;">{{ error }}</div>
|
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
|
|
<form hx-post="/build/step3" hx-target="#wizard" hx-swap="innerHTML">
|
|
|
|
|
<fieldset>
|
|
|
|
|
<legend>Card Type Targets</legend>
|
|
|
|
|
<div style="display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap:.75rem;">
|
|
|
|
|
{% for key, label in labels.items() %}
|
|
|
|
|
<label>
|
|
|
|
|
{{ label }}
|
|
|
|
|
<input type="number" name="{{ key }}" min="0" value="{{ (values or defaults)[key] }}" />
|
|
|
|
|
<small class="muted">Default: {{ defaults[key] }}</small>
|
|
|
|
|
</label>
|
|
|
|
|
{% endfor %}
|
|
|
|
|
</div>
|
|
|
|
|
</fieldset>
|
|
|
|
|
|
|
|
|
|
<div style="margin-top:1rem; display:flex; gap:.5rem;">
|
2025-08-26 20:00:07 -07:00
|
|
|
<button type="submit" class="btn-continue" data-action="continue">Continue to Review</button>
|
|
|
|
|
<button type="button" class="btn-back" data-action="back" hx-get="/build/step2" hx-target="#wizard" hx-swap="innerHTML">Back</button>
|
Web UI: setup progress + logs folding, Finished Decks library, commander search UX (debounce, keyboard, highlights, color chips), ranking fixes (first-word priority, substring include), optional auto-select; setup start reliability (POST+GET), force runs, status with percent/ETA/timestamps; stepwise builder with added stage reporting and sidecar summaries; keyboard grid wrap-around; restrict commander search to eligible rows
2025-08-26 09:48:25 -07:00
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
<div style="margin-top:.5rem;">
|
|
|
|
|
<form action="/build" method="get" style="display:inline; margin:0;">
|
|
|
|
|
<button type="submit">Start over</button>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|