Fix delete-song checkbox alignment on admin request page

- Wrapped each Version A/B row in a flex .song-row container so the
  checkbox sits inline with the label instead of floating above it.
- Added generous gaps/margins since this page is desktop-only.

Bumps version to 0.5.2.
This commit is contained in:
Troll (Hermes Agent) 2026-08-05 20:08:22 +00:00
parent 7eb72e511d
commit 96b6470c25
3 changed files with 24 additions and 6 deletions

View file

@ -1,6 +1,6 @@
# Theme Song Booth # Theme Song Booth
**Version:** `v0.5.1` **Version:** `v0.5.2`
A Flask web application for running a convention booth where visitors request a custom AI-generated theme song. Operators manage the queue from an admin dashboard, generate Suno prompts, upload MP3 previews, collect payment, and deliver final songs by email. A Flask web application for running a convention booth where visitors request a custom AI-generated theme song. Operators manage the queue from an admin dashboard, generate Suno prompts, upload MP3 previews, collect payment, and deliver final songs by email.

View file

@ -1 +1 @@
0.5.1 0.5.2

View file

@ -104,6 +104,24 @@
margin:0; margin:0;
font-weight:400; font-weight:400;
} }
.song-row{
display:flex;
align-items:flex-start;
gap:.75rem;
margin:.6rem 0;
padding:.4rem 0;
}
.song-row input[type="checkbox"]{
width:auto;
margin:.2rem 0 0 0;
flex-shrink:0;
}
.song-row label{
display:block;
margin:0;
font-weight:400;
line-height:1.4;
}
.old-rev{ .old-rev{
font-size:.85rem; font-size:.85rem;
color:#9ca3af; color:#9ca3af;
@ -327,7 +345,7 @@
<h2>2. Upload Songs</h2> <h2>2. Upload Songs</h2>
<form method="POST"> <form method="POST">
<input type="hidden" name="action" value="delete_songs"> <input type="hidden" name="action" value="delete_songs">
<p> <div class="song-row">
<input type="checkbox" id="delete_a" name="delete_song" value="a" <input type="checkbox" id="delete_a" name="delete_song" value="a"
{% if not (req.song_a_path and file_exists(req.song_a_path)) %}disabled{% endif %}> {% if not (req.song_a_path and file_exists(req.song_a_path)) %}disabled{% endif %}>
<label for="delete_a">Version A: <label for="delete_a">Version A:
@ -337,8 +355,8 @@
<span class="status-badge missing">❌ Not uploaded</span> <span class="status-badge missing">❌ Not uploaded</span>
{% endif %} {% endif %}
</label> </label>
</p> </div>
<p> <div class="song-row">
<input type="checkbox" id="delete_b" name="delete_song" value="b" <input type="checkbox" id="delete_b" name="delete_song" value="b"
{% if not (req.song_b_path and file_exists(req.song_b_path)) %}disabled{% endif %}> {% if not (req.song_b_path and file_exists(req.song_b_path)) %}disabled{% endif %}>
<label for="delete_b">Version B: <label for="delete_b">Version B:
@ -348,7 +366,7 @@
<span class="status-badge missing">❌ Not uploaded</span> <span class="status-badge missing">❌ Not uploaded</span>
{% endif %} {% endif %}
</label> </label>
</p> </div>
<div class="actions"> <div class="actions">
<button type="submit" class="danger" onclick="return confirm('Delete selected song files? This will reset the request to Prompt Ready.')">Delete Selected Songs</button> <button type="submit" class="danger" onclick="return confirm('Delete selected song files? This will reset the request to Prompt Ready.')">Delete Selected Songs</button>
</div> </div>