script.js aktualisiert

Ein Starter-Set an Presets hinzugefügt
This commit is contained in:
simonpipe 2024-12-20 13:27:41 +00:00
parent 03f816fcff
commit 899b3e49f8

View file

@ -7,16 +7,16 @@ document.addEventListener('DOMContentLoaded', function() {
const exportButton = document.getElementById('export-button');
const importButton = document.getElementById('import-button');
const loadPresetsLink = document.getElementById('load-presets-link'); // Der neue Link zum Laden der Presets-Datei
exportButton.addEventListener('click', exportPresets);
importButton.addEventListener('click', importPresets);
loadPresetsLink.addEventListener('click', loadPresetsFromFile); // Event für den Link
loadExistingPresets();
// Initialisierung von Sortable für den gesamten Container und das Verschieben mit dem Verschieben-Symbol
new Sortable(presetContainer, {
animation: 250,
ghostClass: 'ghost',
handle: '.move-button', // Nur das Verschieben-Symbol erlaubt das Verschieben
onEnd: () => {
savePresetOrder();
}
@ -86,6 +86,16 @@ document.addEventListener('DOMContentLoaded', function() {
});
presetContainer.appendChild(presetItem);
// Sortable für das Verschieben mit dem 'move-button'
new Sortable(presetContainer, {
animation: 250,
ghostClass: 'ghost',
handle: '.move-button', // Nur das Verschieben-Symbol erlaubt das Verschieben
onEnd: () => {
savePresetOrder();
}
});
}
function editPreset(item, currentName, currentUrl) {
@ -122,7 +132,7 @@ document.addEventListener('DOMContentLoaded', function() {
}
function playStream(url, item) {
// Stoppe den aktuell laufenden Stream (falls vorhanden)
// Stoppe den aktuell laufenden Stream (falls vorhanden)
if (currentPlayingItem) {
const currentAudio = currentPlayingItem.querySelector('audio');
if (currentAudio) {
@ -143,7 +153,7 @@ document.addEventListener('DOMContentLoaded', function() {
item.classList.add('playing');
currentPlayingItem = item; // Aktualisiere das aktuell spielende Element
currentStationName.textContent = item.querySelector('h3').textContent;
currentStationName.textContent = item.querySelector('h3').textContent;
}
function exportPresets() {
@ -206,4 +216,25 @@ document.addEventListener('DOMContentLoaded', function() {
}
});
// Funktion zum Laden der Presets von der Datei
function loadPresetsFromFile(event) {
event.preventDefault(); // Verhindert, dass der Link die Seite neu lädt
fetch('/demo-presets/webradio_presets.json')
.then(response => {
if (!response.ok) {
throw new Error('Datei konnte nicht geladen werden');
}
return response.json();
})
.then(data => {
localStorage.setItem('presets', JSON.stringify(data)); // Speichern der Presets im Local Storage
presetContainer.innerHTML = ''; // Leert den Preset-Container
data.forEach(preset => addNewPreset(preset.name, preset.url)); // Fügt die Presets erneut hinzu
alert('Presets erfolgreich geladen.');
})
.catch(error => {
alert('Fehler beim Laden der Presets: ' + error.message);
});
}
});