v0.11.4-devices
This commit is contained in:
+15
-4
@@ -74,9 +74,8 @@ document.addEventListener('click', async event => {
|
||||
}
|
||||
const action = button.dataset.action; if (!action) return;
|
||||
const device = app.devices.find(v => v.id === button.dataset.device);
|
||||
if (device && app.currentView !== 'devices' && deviceZoneDisabled(device.id) && ['power', 'temperature', 'mode', 'fan', 'toggle'].includes(action)) {
|
||||
return toast(tr('devices.disabledZoneTechnicalOnly'), true);
|
||||
}
|
||||
if (action === 'open-ping' && device) { openDevicePing(device.id); return; }
|
||||
if (action === 'ping-toggle') { if (app.pingMonitor.running) stopPingMonitor(); else startPingMonitor(); return; }
|
||||
if (action === 'power' && device) return sendDeviceCommand(device.id, current => ({ power: !current?.power }));
|
||||
if (action === 'temperature' && device) return sendDeviceCommand(device.id, current => ({ target_temperature: clamp(Number(current?.target_temperature ?? device.target_temperature) + Number(button.dataset.delta), 8, 30) }));
|
||||
if (action === 'mode' && device) return sendDeviceCommand(device.id, { mode: button.dataset.value, power: true });
|
||||
@@ -324,11 +323,23 @@ $('#discoveryNamesForm').addEventListener('submit', async event => {
|
||||
$('#renameDeviceForm').addEventListener('submit', async event => {
|
||||
event.preventDefault(); const form = event.currentTarget, raw = Object.fromEntries(new FormData(form));
|
||||
await runFormTask(form, async () => {
|
||||
const device = await api(`/api/devices/${encodeURIComponent(raw.id)}`, { method: 'PATCH', body: { name: raw.name.trim(), protocol_version: Number(raw.protocol_version) } });
|
||||
const device = await api(`/api/devices/${encodeURIComponent(raw.id)}`, { method: 'PATCH', body: { name: raw.name.trim(), ip: raw.ip.trim(), port: Number(raw.port), protocol_version: Number(raw.protocol_version) } });
|
||||
updateDevice(device); form.closest('dialog').close(); renderAll(); toast(tr('common.saved'));
|
||||
});
|
||||
});
|
||||
|
||||
$('#pingDeviceSelect')?.addEventListener('change', event => {
|
||||
app.pingMonitor.targetId = event.target.value;
|
||||
renderPingDialog();
|
||||
if (app.pingMonitor.running) schedulePingCycle(0);
|
||||
});
|
||||
$('#pingAllDevices')?.addEventListener('change', event => {
|
||||
app.pingMonitor.all = event.target.checked;
|
||||
renderPingDialog();
|
||||
if (app.pingMonitor.running) schedulePingCycle(0);
|
||||
});
|
||||
$('#pingDialog')?.addEventListener('close', () => stopPingMonitor());
|
||||
|
||||
$('#deviceForm').addEventListener('submit', async event => {
|
||||
event.preventDefault(); const form = event.currentTarget, data = Object.fromEntries(new FormData(form));
|
||||
data.port = Number(data.port); data.protocol_version = Number(data.protocol_version); data.simulated = form.simulated.checked;
|
||||
|
||||
Reference in New Issue
Block a user