{% if auto_refresh %}{% endif %} {% block title %}BackupWatch{% endblock %} {% if user %} {% set p = request.url.path if request else '/' %} {% set nav_active = 'dashboard' if p == '/' else 'clients' if (p.startswith('/clients') or p.startswith('/jobs')) else 'onboarding' if p.startswith('/onboarding') else 'review' if (p.startswith('/review') or p.startswith('/mail-audit')) else 'rules' if p.startswith('/rules') else 'settings' if (p.startswith('/settings') or p.startswith('/users') or p.startswith('/updates')) else 'help' if p.startswith('/help') else '' %} {% macro navitem(href, key, label) %}{{ label }}{% endmacro %} {% endif %} {% block subnav %}{% endblock %}{# full-width band under the navbar (e.g. Settings tabs) #} {% if user and licence_state and licence_state.mode == 'hard_stop' %} {% endif %} {# offline lease lapsed: monitoring is very much still running, only the outbound emails are off. Sticky and NOT dismissable — silence is exactly the failure this state has to shout about. #} {% if user and licence_state and licence_state.mode == 'audit_only' %} {% endif %}
{% if user and mail_banner %}{% endif %} {# licence server said no (seat taken / revoked / unknown key): the cached licence was dropped, monitoring continues on the free tier. Not dismissable — it needs an operator decision. #} {% if user and licence_notice %} {% endif %} {# the cached blob is genuinely signed but was issued to a different install (restored backup, cloned VM): monitoring continues on the free tier and re-activating here moves the seat. #} {% if user and licence_binding_notice %} {% endif %} {% if user and licence_state and (licence_state.mode == 'grace' or (licence_state.mode == 'active' and 'past due' in licence_state.reason|lower)) %} {% endif %} {# the Job onboarding page raises its own batch-scoped observation banner; two would say the same thing twice #} {% if pending_setup and user and user.role in ["admin", "tech"] and not hide_pending_banner %}{% endif %} {% block content %}{% endblock %}