UI improvements: collapsible schedule menu and fix double extensions

This commit is contained in:
Russell Ballestrini 2025-08-09 01:55:10 +00:00
parent 26f6e86293
commit d0335db0a2
3 changed files with 38 additions and 14 deletions

18
CLAUDE.md Normal file
View file

@ -0,0 +1,18 @@
# Project Instructions for Claude
## Commit Message Format
Never include Claude attribution in commit messages. Always end commit messages with:
russell@unturf.com is the boss
## Example Commit Message
```
Fix download filename double extensions
- Prevent .zip.zip and similar double extensions
- Check if title already contains extension before appending
russell@unturf.com is the boss
```

10
app.py
View file

@ -1816,9 +1816,13 @@ def view_media_view(request):
if media.title:
file_extension = os.path.splitext(media.filename)[1]
raw_title = media.title
download_filename = sanitize_filename_for_http_header(
f"{raw_title}{file_extension}"
)
# Check if title already ends with the file extension to avoid doubling
if file_extension and not raw_title.lower().endswith(file_extension.lower()):
download_filename = sanitize_filename_for_http_header(
f"{raw_title}{file_extension}"
)
else:
download_filename = sanitize_filename_for_http_header(raw_title)
else:
download_filename = sanitize_filename_for_http_header(media.filename)

View file

@ -30,20 +30,22 @@
</label>
</fieldset><br>
<fieldset>
<legend>Scheduled Actions (Optional)</legend>
<label for="scheduled_public">Schedule to become Public:</label>
<input type="datetime-local" name="scheduled_public"><br><br>
<details>
<summary>Scheduled Actions (Optional)</summary>
<fieldset>
<label for="scheduled_public">Schedule to become Public:</label>
<input type="datetime-local" name="scheduled_public"><br><br>
<label for="scheduled_private">Schedule to become Private:</label>
<input type="datetime-local" name="scheduled_private"><br><br>
<label for="scheduled_private">Schedule to become Private:</label>
<input type="datetime-local" name="scheduled_private"><br><br>
<label for="scheduled_unlisted">Schedule to become Unlisted:</label>
<input type="datetime-local" name="scheduled_unlisted"><br><br>
<label for="scheduled_unlisted">Schedule to become Unlisted:</label>
<input type="datetime-local" name="scheduled_unlisted"><br><br>
<label for="scheduled_delete">Schedule for Deletion:</label>
<input type="datetime-local" name="scheduled_delete"><br><br>
</fieldset>
<label for="scheduled_delete">Schedule for Deletion:</label>
<input type="datetime-local" name="scheduled_delete"><br><br>
</fieldset>
</details>
<button type="submit">Upload</button>
</form>