added standard-theme function
This commit is contained in:
@@ -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 %}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user