← Beheer

<%= t('aaud.title') %>

<%= t('aaud.tagline_pre') %> [[track:<id>]] <%= t('aaud.tagline_post') %>

<% if (success) { %>
<%= success %>
<% } %> <% if (error) { %>
<%= error %>
<% } %> <%# ── UPLOAD ──────────────────────────────────────────────── %>
<%= t('aaud.upload') %>
<%# Bulk drag-drop zone. Multiple files at once, transcoded sequentially. Title is auto-derived from each filename. Artist/album/cover are SHARED across the batch (set once, applied to every track) — same pattern as iTunes/Plex bulk-add. %>
<%# Shared metadata fields (apply to ALL files in the batch). %>
<%# The drop-zone itself. Click anywhere to open file picker. %> <%# Per-file progress list. Populated by JS as files are queued. %>
<%# ── TRACK LIST ─────────────────────────────────────────── %>
<%= t('aaud.tracks') %> <%= tracks.length %>
<% if (!tracks.length) { %>

<%= t('aaud.no_tracks') %>

<% } else { %> <% // Pre-fetch loop labels — `t` is shadowed by the loop var below. var _aaudUntitled = t('aaud.untitled'); var _aaudPlay = t('aaud.play'); var _aaudEdit = t('aaud.edit'); var _aaudDlOn = t('aaud.dl_on'); var _aaudDlOff = t('aaud.dl_off'); var _aaudFediOn = t('aaud.fedi_on'); var _aaudFediOff = t('aaud.fedi_off'); var _aaudDelete = t('aaud.delete'); var _aaudCopy = t('aaud.copy_click'); var _aaudDelConfirm = t('aaud.delete_confirm'); %> <% } %>
<% if ((typeof premiumUnlocked === 'undefined' || premiumUnlocked) && typeof embedUrl !== 'undefined') { %>

🔊 <%= t('aaud.embed_player') %>

<%= t('aaud.embed_hint') %>

▶ <%= t('aaud.preview_player') %>

<% } %>
<%# Track editor modal (exposes window.openTrackEditor) %> <%- include('../partials/track-editor', { csrfToken: (typeof csrfToken !== 'undefined' ? csrfToken : '') }) %>