added standard-theme function

This commit is contained in:
2026-02-19 13:44:40 +01:00
parent a027cf8c1c
commit b5f0146cc4
6 changed files with 91 additions and 9 deletions
+25
View File
@@ -84,6 +84,10 @@
class="btn btn-sm btn-primary">
<i class="bi bi-pencil"></i> Bearbeiten
</a>
<button class="btn btn-sm btn-outline-success set-default-theme-btn"
data-filename="{{ sb.filename }}">
Als Standard setzen
</button>
</td>
</tr>
{% endfor %}
@@ -252,5 +256,26 @@
alert('Fehler: ' + e.message);
}
});
// Standard-Theme setzen
document.querySelectorAll('.set-default-theme-btn').forEach(btn => {
btn.addEventListener('click', async () => {
const filename = btn.dataset.filename;
try {
const res = await fetch('/admin/set_default_theme', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ filename })
});
const text = await res.text();
let json;
try { json = JSON.parse(text); } catch (_) { throw new Error('Serverantwort ist kein JSON:\n'+text); }
if (!json.success) throw new Error(json.message || 'Fehler');
alert('Standard-Theme gesetzt: ' + filename);
} catch (e) {
alert('Fehler: ' + e.message);
}
});
});
</script>
{% endblock %}
+9 -5
View File
@@ -288,14 +288,18 @@
// Reihenfolge: Status prüfen, dann ggf. Theme laden
(async () => {
await updateAutoStatus();
// Wenn noch kein Theme aktiv ist, versuche Standard-Theme zu laden
const statusRes = await fetch('/api/soundboard/status');
const statusData = await statusRes.json();
if (!statusData.active && !statusData.current_theme) {
await fetch('/api/soundboard/load_default', { method: 'POST' });
}
if (selectEl && selectEl.value) {
// Wenn bereits ein Theme aktiv ist, nicht erneut laden (würde Auto stoppen)
const statusRes = await fetch('/api/soundboard/status');
const statusData = await statusRes.json();
if (!statusData.active || statusData.current_theme !== selectEl.value) {
const statusRes2 = await fetch('/api/soundboard/status');
const statusData2 = await statusRes2.json();
if (!statusData2.active || statusData2.current_theme !== selectEl.value) {
loadSoundboard(selectEl.value);
} else {
// Theme-Daten nachladen ohne Auto zu stoppen
const cur = await fetch('/api/soundboard/current');
const curData = await cur.json();
if (curData.soundboard) {