This commit is contained in:
2025-11-14 14:31:03 +01:00
parent ef3b1177d2
commit 77d29c3a42

View File

@@ -1649,6 +1649,21 @@
<div class="group-card-title">${group.name}</div> <div class="group-card-title">${group.name}</div>
<div class="group-card-subtitle">${group.device_count} ${group.device_count === 1 ? 'Gerät' : 'Geräte'}</div> <div class="group-card-subtitle">${group.device_count} ${group.device_count === 1 ? 'Gerät' : 'Geräte'}</div>
</div> </div>
${group.capabilities.brightness ? `
<div class="brightness-control">
<label class="brightness-label">
<span>🔆 Helligkeit</span>
<span class="brightness-value" id="group-brightness-${group.id}">50%</span>
</label>
<input type="range"
min="0"
max="100"
value="50"
class="brightness-slider"
id="slider-group-${group.id}"
oninput="updateGroupBrightnessDisplay('${group.id}', this.value)">
</div>
` : ''}
<div class="group-card-actions"> <div class="group-card-actions">
<button class="group-button on" onclick="setGroup('${group.id}', 'on', this)"> <button class="group-button on" onclick="setGroup('${group.id}', 'on', this)">
Alle An Alle An
@@ -1669,6 +1684,14 @@
} }
} }
// Update group brightness display value
function updateGroupBrightnessDisplay(groupId, value) {
const display = document.getElementById(`group-brightness-${groupId}`);
if (display) {
display.textContent = `${value}%`;
}
}
// Execute group action // Execute group action
async function setGroup(groupId, power, buttonElement) { async function setGroup(groupId, power, buttonElement) {
const allButtons = buttonElement.parentElement.querySelectorAll('button'); const allButtons = buttonElement.parentElement.querySelectorAll('button');
@@ -1677,14 +1700,23 @@
const originalHTML = buttonElement.innerHTML; const originalHTML = buttonElement.innerHTML;
buttonElement.innerHTML = '<span class="spinner"></span>'; buttonElement.innerHTML = '<span class="spinner"></span>';
// Get brightness value if slider exists
const slider = document.getElementById(`slider-group-${groupId}`);
const brightness = slider ? parseInt(slider.value) : null;
try { try {
const payload = { power };
if (brightness !== null && power === 'on') {
payload.brightness = brightness;
}
const response = await fetch(api(`/groups/${groupId}/set`), { const response = await fetch(api(`/groups/${groupId}/set`), {
method: 'POST', method: 'POST',
headers: { 'Content-Type': 'application/json' }, headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ body: JSON.stringify({
action: { action: {
type: 'power', type: 'power',
payload: { power } payload: payload
} }
}) })
}); });