{% if mqtt_browser_config %} {% endif %} {% if use_rich_theme %} {% else %} {% endif %}
00:00:00
-- -- ----
--
--- ---
{# Denied cards are hidden in the initial HTML (qa_hidden is computed server-side from the same RBAC data /api/auth/me serves) — no more "all buttons flash, then permissions.js hides half the bar". The marker attributes are exactly what permissions.js sets, so it can still restore a card if runtime permissions disagree. #} {% set qa_hidden = qa_hidden | default([]) %} {% macro qa_hide(rid) %}{% if rid in qa_hidden %} style="display:none" data-permission-hidden="true" aria-hidden="true"{% endif %}{% endmacro %}