70 lines
3.6 KiB
PHP
70 lines
3.6 KiB
PHP
|
|
<?php
|
|||
|
|
$pageTitle = 'Release Tracks';
|
|||
|
|
$release = $release ?? null;
|
|||
|
|
$tracks = $tracks ?? [];
|
|||
|
|
$tableReady = $table_ready ?? false;
|
|||
|
|
$releaseId = (int)($release_id ?? 0);
|
|||
|
|
ob_start();
|
|||
|
|
?>
|
|||
|
|
<section class="admin-card">
|
|||
|
|
<div class="badge">Releases</div>
|
|||
|
|
<div style="display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:16px;">
|
|||
|
|
<div>
|
|||
|
|
<h1 style="font-size:28px; margin:0;">Tracks</h1>
|
|||
|
|
<p style="color: var(--muted); margin-top:6px;">
|
|||
|
|
<?= $release ? htmlspecialchars((string)$release['title'], ENT_QUOTES, 'UTF-8') : 'Select a release to manage tracks.' ?>
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex; gap:10px; align-items:center;">
|
|||
|
|
<a href="/admin/releases" class="btn outline">Back</a>
|
|||
|
|
<?php if ($releaseId > 0): ?>
|
|||
|
|
<a href="/admin/releases/tracks/new?release_id=<?= $releaseId ?>" class="btn">New Track</a>
|
|||
|
|
<?php endif; ?>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<?php if (!$tableReady): ?>
|
|||
|
|
<div style="margin-top:18px; color: var(--muted); font-size:13px;">Tracks table is not available. Run Releases ? Create Tables.</div>
|
|||
|
|
<?php elseif (!$release): ?>
|
|||
|
|
<div style="margin-top:18px; color: var(--muted); font-size:13px;">Release not found.</div>
|
|||
|
|
<?php elseif (!$tracks): ?>
|
|||
|
|
<div style="margin-top:18px; color: var(--muted); font-size:13px;">No tracks yet.</div>
|
|||
|
|
<?php else: ?>
|
|||
|
|
<div style="margin-top:18px; display:grid; gap:12px;">
|
|||
|
|
<?php foreach ($tracks as $track): ?>
|
|||
|
|
<div class="admin-card" style="padding:14px; display:flex; align-items:center; justify-content:space-between; gap:16px;">
|
|||
|
|
<div style="display:flex; gap:12px; align-items:center;">
|
|||
|
|
<div style="width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,0.06); display:grid; place-items:center; font-size:12px; color:var(--muted);">
|
|||
|
|
<?= (int)($track['track_no'] ?? 0) > 0 ? (int)$track['track_no'] : '<27>' ?>
|
|||
|
|
</div>
|
|||
|
|
<div>
|
|||
|
|
<div style="font-weight:600;">
|
|||
|
|
<?= htmlspecialchars((string)$track['title'], ENT_QUOTES, 'UTF-8') ?>
|
|||
|
|
<?php if (!empty($track['mix_name'])): ?>
|
|||
|
|
<span style="color:var(--muted); font-weight:400;">(<?= htmlspecialchars((string)$track['mix_name'], ENT_QUOTES, 'UTF-8') ?>)</span>
|
|||
|
|
<?php endif; ?>
|
|||
|
|
</div>
|
|||
|
|
<div style="font-size:12px; color:var(--muted);">
|
|||
|
|
<?= htmlspecialchars((string)($track['duration'] ?? ''), ENT_QUOTES, 'UTF-8') ?>
|
|||
|
|
<?= !empty($track['bpm']) ? ' <20> ' . htmlspecialchars((string)$track['bpm'], ENT_QUOTES, 'UTF-8') . ' BPM' : '' ?>
|
|||
|
|
<?= !empty($track['key_signature']) ? ' <20> ' . htmlspecialchars((string)$track['key_signature'], ENT_QUOTES, 'UTF-8') : '' ?>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex; gap:8px; align-items:center;">
|
|||
|
|
<a href="/admin/releases/tracks/edit?release_id=<?= $releaseId ?>&id=<?= (int)$track['id'] ?>" class="btn outline small">Edit</a>
|
|||
|
|
<form method="post" action="/admin/releases/tracks/delete" onsubmit="return confirm('Delete this track?');">
|
|||
|
|
<input type="hidden" name="id" value="<?= (int)$track['id'] ?>">
|
|||
|
|
<input type="hidden" name="release_id" value="<?= $releaseId ?>">
|
|||
|
|
<button type="submit" class="btn outline small">Delete</button>
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<?php endforeach; ?>
|
|||
|
|
</div>
|
|||
|
|
<?php endif; ?>
|
|||
|
|
</section>
|
|||
|
|
<?php
|
|||
|
|
$content = ob_get_clean();
|
|||
|
|
require __DIR__ . '/../../../../modules/admin/views/layout.php';
|