${img ? `

` : '
šµ
'}
@@ -2524,6 +2533,20 @@ function toggleDiscogFilter(btn) {
_updateDiscogFooterCount();
}
+function sortDiscogGrid(value) {
+ const grid = document.getElementById('discog-grid');
+ if (!grid) return;
+ const cards = Array.from(grid.querySelectorAll('.discog-card'));
+ cards.sort((a, b) => {
+ if (value === 'date-desc') return parseInt(b.dataset.year || '0') - parseInt(a.dataset.year || '0');
+ if (value === 'date-asc') return parseInt(a.dataset.year || '0') - parseInt(b.dataset.year || '0');
+ if (value === 'name-asc') return (a.dataset.name || '').localeCompare(b.dataset.name || '');
+ if (value === 'name-desc') return (b.dataset.name || '').localeCompare(a.dataset.name || '');
+ return 0;
+ });
+ cards.forEach(card => grid.appendChild(card));
+}
+
function discogSelectAll(select) {
document.querySelectorAll('.discog-card-cb').forEach(cb => {
if (cb.closest('.discog-card').style.display !== 'none') {
diff --git a/webui/static/style.css b/webui/static/style.css
index 074a4479..d97e4f85 100644
--- a/webui/static/style.css
+++ b/webui/static/style.css
@@ -46101,6 +46101,15 @@ textarea.enhanced-meta-field-input {
.discog-select-btn:hover { color: rgba(255,255,255,0.7); border-color: rgba(255,255,255,0.15); }
+.discog-sort-select {
+ padding: 4px 8px; border-radius: 6px; font-size: 11px; font-weight: 600;
+ background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
+ color: rgba(255,255,255,0.4); cursor: pointer; font-family: inherit;
+ appearance: none; -webkit-appearance: none;
+}
+.discog-sort-select:hover { color: rgba(255,255,255,0.7); border-color: rgba(255,255,255,0.15); }
+.discog-sort-select option { background: #1a1a2e; color: #fff; }
+
/* Album grid */
.discog-section-header {
grid-column: 1 / -1;