94 lines
3.2 KiB
JavaScript
94 lines
3.2 KiB
JavaScript
// Check for hash on load.
|
|
|
|
window.addEventListener('load', (event) => {
|
|
const preclicked = window.location.hash.slice(1);
|
|
if (! preclicked) return;
|
|
const albumheader = document.getElementById(preclicked);
|
|
if (albumheader){
|
|
albumheader.classList.add('open');
|
|
}
|
|
});
|
|
|
|
// Scroll to search result album
|
|
|
|
function albumselect(code){
|
|
const albumheader = document.getElementById(code);
|
|
const searchbar = document.getElementById('search-input');
|
|
for (const other of document.querySelectorAll('.sort-header.album.open')){
|
|
other.classList.remove('open');
|
|
}
|
|
albumheader.classList.add('open');
|
|
searchbar.value = '';
|
|
searchbar.dispatchEvent(new Event('input'));
|
|
document.getElementById('search-results-header').replaceChildren();
|
|
}
|
|
|
|
// Toggle header when clicked
|
|
|
|
function albumHeaderClick(clickevent){
|
|
const albumheader = clickevent.target;
|
|
if (albumheader.classList.contains('open')){
|
|
albumheader.classList.remove('open');
|
|
history.replaceState(null, document.title, `${window.location.origin}${window.location.pathname}${window.location.search}`);
|
|
}
|
|
else{
|
|
for (const other of document.querySelectorAll('.sort-header.album.open')){
|
|
other.classList.remove('open');
|
|
}
|
|
albumheader.classList.add('open');
|
|
window.location.hash = albumheader.id;
|
|
}
|
|
}
|
|
|
|
// Fill out form with suggest search result
|
|
function suggestform(id, desc, clickevent){
|
|
const searchresults = clickevent.target.parentElement.parentElement;
|
|
const form = searchresults.dataset.form;
|
|
const searchbar = document.getElementById(`search-input-suggest-${form}`)
|
|
document.getElementById(`connection-${form}`).innerHTML = clickevent.target.innerHTML;
|
|
document.getElementById(`connection-${form}-id`).value = id;
|
|
document.getElementById(`connection-${form}-desc`).value = desc;
|
|
searchbar.value = '';
|
|
searchbar.dispatchEvent(new Event('input'));
|
|
searchresults.replaceChildren();
|
|
}
|
|
|
|
// Mutually exclusive audio playback
|
|
function onlyPlayOneIn(container) {
|
|
container.addEventListener("play", function(event) {
|
|
audio_elements = container.getElementsByTagName("audio")
|
|
for(i=0; i < audio_elements.length; i++) {
|
|
audio_element = audio_elements[i];
|
|
if (audio_element !== event.target) {
|
|
audio_element.pause();
|
|
}
|
|
}
|
|
}, true);
|
|
}
|
|
|
|
document.addEventListener("DOMContentLoaded", function() {
|
|
onlyPlayOneIn(document.body);
|
|
});
|
|
|
|
// Search clear button
|
|
function searchIconChange(event, buttonid, barid) {
|
|
const searchbutton = document.getElementById(buttonid);
|
|
const searchicon = document.getElementById(barid);
|
|
|
|
if (event.target.value.length !== 0) {
|
|
searchbutton.classList.remove('hidden');
|
|
searchicon.classList.remove('search-empty');
|
|
}
|
|
else {
|
|
searchbutton.classList.add('hidden');
|
|
searchicon.classList.add('search-empty');
|
|
}
|
|
}
|
|
|
|
function clearSearch(searchid, resultid) {
|
|
const searchbar = document.getElementById(searchid);
|
|
const searchresults = document.getElementById(resultid);
|
|
searchbar.value = '';
|
|
searchresults.replaceChildren();
|
|
searchbar.dispatchEvent(new Event('input'));
|
|
} |