{% extends "base.html" %} {% block content %} {# Expose server-side crop target sizes to the JS without embedding Jinja inside JS #}
{# Cropper.js (used for image cropping) #}

Playlist: {{ playlist.name }}

Back
{# Priority + schedule indicators #} {% set has_schedule = (playlist.schedule_start is not none) or (playlist.schedule_end is not none) %} {% set schedule_active = (not playlist.schedule_start or playlist.schedule_start <= now_utc) and (not playlist.schedule_end or now_utc <= playlist.schedule_end) %}
{% if playlist.is_priority %} ❗ Priority {% else %} Not priority {% endif %} {% if has_schedule %} 📅 Scheduled (…) {% else %} Not scheduled {% endif %}
{# Priority toggle: auto-saves (no Save button) #}
{# Schedule button moved to where Save button used to be #}
{# Schedule Modal #} {# Rename Playlist Modal #}

Items

Tip: drag items to reorder. Changes save automatically.
{# Add Item Modal (multi-step) #} {# Bulk upload images modal #} {# Load Cropper.js BEFORE our inline script so window.Cropper is available #}
{% endblock %}