script.js aktualisiert
Ein Starter-Set an Presets hinzugefügt
This commit is contained in:
parent
03f816fcff
commit
899b3e49f8
1 changed files with 38 additions and 7 deletions
39
script.js
39
script.js
|
|
@ -7,16 +7,16 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
|
||||||
const exportButton = document.getElementById('export-button');
|
const exportButton = document.getElementById('export-button');
|
||||||
const importButton = document.getElementById('import-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);
|
exportButton.addEventListener('click', exportPresets);
|
||||||
importButton.addEventListener('click', importPresets);
|
importButton.addEventListener('click', importPresets);
|
||||||
|
loadPresetsLink.addEventListener('click', loadPresetsFromFile); // Event für den Link
|
||||||
|
|
||||||
loadExistingPresets();
|
loadExistingPresets();
|
||||||
|
|
||||||
// Initialisierung von Sortable für den gesamten Container und das Verschieben mit dem Verschieben-Symbol
|
|
||||||
new Sortable(presetContainer, {
|
new Sortable(presetContainer, {
|
||||||
animation: 250,
|
animation: 250,
|
||||||
ghostClass: 'ghost',
|
ghostClass: 'ghost',
|
||||||
handle: '.move-button', // Nur das Verschieben-Symbol erlaubt das Verschieben
|
|
||||||
onEnd: () => {
|
onEnd: () => {
|
||||||
savePresetOrder();
|
savePresetOrder();
|
||||||
}
|
}
|
||||||
|
|
@ -86,6 +86,16 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
presetContainer.appendChild(presetItem);
|
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) {
|
function editPreset(item, currentName, currentUrl) {
|
||||||
|
|
@ -122,7 +132,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function playStream(url, item) {
|
function playStream(url, item) {
|
||||||
// Stoppe den aktuell laufenden Stream (falls vorhanden)
|
// Stoppe den aktuell laufenden Stream (falls vorhanden)
|
||||||
if (currentPlayingItem) {
|
if (currentPlayingItem) {
|
||||||
const currentAudio = currentPlayingItem.querySelector('audio');
|
const currentAudio = currentPlayingItem.querySelector('audio');
|
||||||
if (currentAudio) {
|
if (currentAudio) {
|
||||||
|
|
@ -143,7 +153,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
item.classList.add('playing');
|
item.classList.add('playing');
|
||||||
|
|
||||||
currentPlayingItem = item; // Aktualisiere das aktuell spielende Element
|
currentPlayingItem = item; // Aktualisiere das aktuell spielende Element
|
||||||
currentStationName.textContent = item.querySelector('h3').textContent;
|
currentStationName.textContent = item.querySelector('h3').textContent;
|
||||||
}
|
}
|
||||||
|
|
||||||
function exportPresets() {
|
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);
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue