{# 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 #}
Schedule
{# Rename Playlist Modal #}
Rename playlist
Items
Tip: drag items to reorder. Changes save automatically.
{% for i in playlist.items %}
≡
#{{ i.position }}{{ i.item_type }}
{% if i.title %}
{{ i.title }}
{% else %}
.
{% endif %}
{% if i.item_type == 'image' and i.file_path %}
{% elif i.item_type == 'video' and i.file_path %}
{% elif i.item_type == 'webpage' and i.url %}
{% elif i.item_type == 'youtube' and i.url %}
{% else %}
No preview
{% endif %}
{# Intentionally do NOT show file names or URLs for privacy/clean UI #}
{% if i.item_type != 'video' %}
{% endif %}
{% else %}
No items.
{% endfor %}
{# Add Item Modal (multi-step) #}
Add item
{# Bulk upload images modal #}
Bulk upload images
Choose an aspect ratio. Images will be center-cropped automatically.
Drag & drop multiple images here
or click to select files
Uploading…
{# Load Cropper.js BEFORE our inline script so window.Cropper is available #}