{# All the numbers around the orb and their details (the report and refreshes use it; the
welcome screen loads each widget on its own, see widget.html). #}
{% set count = items | length %}
{% for item in items %}
{% with angle = (360 / count * loop.index0) | round(2), index = loop.index, total = count %}
{% include "welcome/widget.html" %}
{% endwith %}
{% endfor %}
{% set loaded = items | selectattr("data.value", "ne", none) | list %}
{% set needs = items | selectattr("data.message_tone", "in", ["fail", "warn"]) | list %}
Online · {{ loaded | length }}/{{ items | length }} sources
{% if not loaded %}Connect a service to get started{% elif needs %}{{ needs | length }} {{ "source needs" if needs | length == 1 else "sources need" }} attention{% else %}All systems nominal{% endif %}