overlay_detail: add 'Refresh from Steam' button for workshop overlays

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
mwiegand 2026-05-11 23:10:27 +02:00
parent e1b189ad3c
commit 25b38e633d
No known key found for this signature in database
2 changed files with 33 additions and 0 deletions

View file

@ -51,6 +51,10 @@
<label>Workshop input <textarea name="input" rows="3" placeholder="123456789&#10;https://steamcommunity.com/sharedfiles/filedetails/?id=987654321"></textarea></label> <label>Workshop input <textarea name="input" rows="3" placeholder="123456789&#10;https://steamcommunity.com/sharedfiles/filedetails/?id=987654321"></textarea></label>
<button type="submit">Add</button> <button type="submit">Add</button>
</form> </form>
<form method="post" action="/overlays/{{ overlay.id }}/refresh" class="stack workshop-refresh-form">
<input type="hidden" name="csrf_token" value="{{ session.get('csrf_token', '') }}">
<button type="submit">Refresh from Steam</button>
</form>
{% endif %} {% endif %}
<div id="overlay-item-table"> <div id="overlay-item-table">

View file

@ -742,3 +742,32 @@ def test_overlay_detail_no_global_source_block(auth_client_with_server) -> None:
assert "Global source" not in text assert "Global source" not in text
assert "source_url" not in text assert "source_url" not in text
def test_workshop_overlay_detail_renders_refresh_button(auth_client_with_server) -> None:
"""The owner sees a 'Refresh from Steam' button on their workshop overlay."""
with session_scope() as s:
user_id = s.query(User).filter_by(username="alice").one().id
overlay_id = _seed_overlay("ws-refresh-button", "workshop", user_id)
response = auth_client_with_server.get(f"/overlays/{overlay_id}")
text = response.get_data(as_text=True)
assert response.status_code == 200
assert "Refresh from Steam" in text
assert f'action="/overlays/{overlay_id}/refresh"' in text
def test_workshop_overlay_refresh_button_hidden_during_build(auth_client_with_server) -> None:
"""While a build is in flight the Refresh button hides, matching the Add form."""
with session_scope() as s:
user_id = s.query(User).filter_by(username="alice").one().id
overlay_id = _seed_overlay("ws-refresh-hidden", "workshop", user_id)
with session_scope() as s:
s.add(Job(user_id=user_id, overlay_id=overlay_id, operation="build_overlay", state="running"))
response = auth_client_with_server.get(f"/overlays/{overlay_id}")
text = response.get_data(as_text=True)
assert response.status_code == 200
assert "Refresh from Steam" not in text