mirror of
https://github.com/myronblair/jarvis
synced 2026-06-30 17:50:23 -05:00
HA tab: remove toggle buttons, read-only view only
This commit is contained in:
@@ -1144,32 +1144,18 @@ function renderHATable(entities) {
|
|||||||
let rows = entities.map(e => {
|
let rows = entities.map(e => {
|
||||||
const on = ['on','home','open','playing','mowing','active'].includes(e.state);
|
const on = ['on','home','open','playing','mowing','active'].includes(e.state);
|
||||||
const dc = domainColors[e.domain] || 'var(--dim)';
|
const dc = domainColors[e.domain] || 'var(--dim)';
|
||||||
const toggleable = ['light','switch','input_boolean','fan'].includes(e.domain);
|
|
||||||
return `<tr>
|
return `<tr>
|
||||||
<td><span style="color:${dc};font-size:0.6rem">${esc(e.domain)}</span></td>
|
<td><span style="color:${dc};font-size:0.6rem">${esc(e.domain)}</span></td>
|
||||||
<td>${esc(e.name||e.entity_id)}</td>
|
<td>${esc(e.name||e.entity_id)}</td>
|
||||||
<td style="font-size:0.65rem;color:var(--dim)">${esc(e.entity_id)}</td>
|
<td style="font-size:0.65rem;color:var(--dim)">${esc(e.entity_id)}</td>
|
||||||
<td><span class="badge ${on?'badge-green':'badge-dim'}">${esc(e.state)}</span></td>
|
<td><span class="badge ${on?'badge-green':'badge-dim'}">${esc(e.state)}</span></td>
|
||||||
<td>${toggleable?`<button class="btn btn-xs" onclick="haToggle('${esc(e.entity_id)}','${esc(e.state)}',this)">${on?'TURN OFF':'TURN ON'}</button>`:''}</td>
|
|
||||||
</tr>`;
|
</tr>`;
|
||||||
}).join('');
|
}).join('');
|
||||||
document.getElementById('ha-tbl').innerHTML = `<table>
|
document.getElementById('ha-tbl').innerHTML = `<table>
|
||||||
<thead><tr><th>DOMAIN</th><th>NAME</th><th>ENTITY ID</th><th>STATE</th><th>ACTION</th></tr></thead>
|
<thead><tr><th>DOMAIN</th><th>NAME</th><th>ENTITY ID</th><th>STATE</th></tr></thead>
|
||||||
<tbody>${rows}</tbody></table>`;
|
<tbody>${rows}</tbody></table>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function haToggle(eid, state, btn) {
|
|
||||||
btn.disabled=true; btn.textContent='...';
|
|
||||||
const fd=new FormData(); fd.append('action','ha_toggle'); fd.append('entity_id',eid); fd.append('state',state);
|
|
||||||
try {
|
|
||||||
const r=await fetch(location.href,{method:'POST',body:fd});
|
|
||||||
const d=await r.json();
|
|
||||||
if(d.ok) { toast('Toggled '+eid,'ok'); setTimeout(loadHA,1500); }
|
|
||||||
else toast('Toggle failed','err');
|
|
||||||
} catch(e){ toast('Failed','err'); }
|
|
||||||
btn.disabled=false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ── NEWS ──────────────────────────────────────────────────────────────────────
|
// ── NEWS ──────────────────────────────────────────────────────────────────────
|
||||||
async function loadNews() {
|
async function loadNews() {
|
||||||
document.getElementById('news-custom').innerHTML='<div class="loading">LOADING...</div>';
|
document.getElementById('news-custom').innerHTML='<div class="loading">LOADING...</div>';
|
||||||
|
|||||||
Reference in New Issue
Block a user