{% extends "base.html" %} {% block title %}{{ dashboard.name if dashboard else 'Dashboard' }} - Analytics{% endblock %} {% block head %} {% endblock %} {% block content %}
{% include "plugins/bi/partials/bi_sidebar.html" %}
{% if dashboard %}
{# ── Header ─────────────────────────────────────────────── #}

{{ dashboard.name }}

{% if dashboard.description %}

{{ dashboard.description }}

{% endif %}
Updated just now {% if dashboard.refresh_interval_seconds and dashboard.refresh_interval_seconds > 0 %} · Live · {{ dashboard.refresh_interval_seconds }}s {% endif %} {% if dashboard.is_public %} · Public {% endif %}
{# Time range filter #} {# Manual refresh control kept for users who want a beat in addition to the dashboard.refresh_interval_seconds. #} Edit
{# Variables bar #} {% if variables %}
Variables {% for v in variables %}
{% if v.var_type == 'select' and v.options %} {% else %} {% endif %}
{% endfor %}
{% endif %} {# Tabs bar #} {% if tabs and tabs | length > 0 %}
All {% for tab in tabs %} {{ tab.name }} {% endfor %}
{% endif %} {# ── Widget grid (CSS grid, no GridStack on viewer) ───── #} {% if widgets %}
{% for w in widgets %} {% set span = w.col_span or 6 %} {% if span < 1 %}{% set span = 1 %}{% elif span > 12 %}{% set span = 12 %}{% endif %}
{{ w.title or w.widget_type }}
{% if w.query_id %} {% endif %} {% if w.widget_type == 'chart' %} {% endif %}
{% endfor %}
{% else %}

No widgets yet

Add Widgets
{% endif %} {# Embed modal #}

Embed Dashboard

Generate an embed token to display this dashboard inside an iframe in external applications.

Row-level security filters. Only rows matching column=value pairs will be visible.

{# Footer status bar #}
Connected
BI Engine v{{ bi_version }} Last refresh: just now
{% else %}

Dashboard not found

Back to dashboards
{% endif %}
{% endblock %} {% block scripts %} {% endblock %}