add top albums and top tracks widgets to profile

This commit is contained in:
2026-03-02 22:50:30 -08:00
parent 6e0e53eb64
commit 56475df1a0
7 changed files with 600 additions and 3 deletions

View File

@@ -32,18 +32,89 @@ function updateLimitOptions() {
for (let option of limitSelect.options) {
const value = parseInt(option.value);
if (value > maxLimit) {
if (value > maxLimit || (view === 'grid' && value === 7)) {
option.style.display = 'none';
} else {
option.style.display = '';
}
}
if (parseInt(limitSelect.value) > maxLimit) {
if (parseInt(limitSelect.value) > maxLimit || (view === 'grid' && parseInt(limitSelect.value) === 7)) {
limitSelect.value = maxLimit;
}
}
function updateTopAlbums() {
const period = document.getElementById('album-period-select').value;
const limit = document.getElementById('album-limit-select').value;
const view = document.getElementById('album-view-select').value;
const customDates = document.getElementById('album-custom-dates');
if (period === 'custom') {
customDates.style.display = 'inline-block';
} else {
customDates.style.display = 'none';
}
const params = new URLSearchParams(window.location.search);
params.set('album_period', period);
params.set('album_limit', limit);
params.set('album_view', view);
if (period === 'custom') {
const startDate = document.getElementById('album-start-date').value;
const endDate = document.getElementById('album-end-date').value;
if (startDate) params.set('album_start', startDate);
if (endDate) params.set('album_end', endDate);
}
window.location.search = params.toString();
}
function updateTopAlbumsLimitOptions() {
const view = document.getElementById('album-view-select').value;
const limitSelect = document.getElementById('album-limit-select');
const maxLimit = view === 'grid' ? 8 : 30;
for (let option of limitSelect.options) {
const value = parseInt(option.value);
if (value > maxLimit || (view === 'grid' && value === 7)) {
option.style.display = 'none';
} else {
option.style.display = '';
}
}
if (parseInt(limitSelect.value) > maxLimit || (view === 'grid' && parseInt(limitSelect.value) === 7)) {
limitSelect.value = maxLimit;
}
}
function updateTopTracks() {
const period = document.getElementById('track-period-select').value;
const limit = document.getElementById('track-limit-select').value;
const customDates = document.getElementById('track-custom-dates');
if (period === 'custom') {
customDates.style.display = 'inline-block';
} else {
customDates.style.display = 'none';
}
const params = new URLSearchParams(window.location.search);
params.set('track_period', period);
params.set('track_limit', limit);
if (period === 'custom') {
const startDate = document.getElementById('track-start-date').value;
const endDate = document.getElementById('track-end-date').value;
if (startDate) params.set('track_start', startDate);
if (endDate) params.set('track_end', endDate);
}
window.location.search = params.toString();
}
function syncGridHeights() {}
document.addEventListener('DOMContentLoaded', function() {
@@ -57,4 +128,6 @@ document.addEventListener('DOMContentLoaded', function() {
}
updateLimitOptions();
updateTopAlbumsLimitOptions();
});