Plain is headed towards 1.0! Subscribe for development updates →

 1{% if observer.is_enabled() %}
 2<form method="post" action="{{ url('observer:traces') }}" style="display: inline;">
 3    <input type="hidden" name="redirect_url" value="{{ request.get_full_path() }}">
 4    {% if observer.is_summarizing() %}
 5        {# Toggle from summary to persist #}
 6        <input type="hidden" name="observe_action" value="persist">
 7    {% else %}
 8        {# Toggle from persist to summary #}
 9        <input type="hidden" name="observe_action" value="summary">
10    {% endif %}
11    <button
12        class="inline-flex items-center cursor-pointer text-xs rounded-full px-2.5 py-px bg-white/20 text-white/80 whitespace-nowrap hover:bg-white/30"
13        type="submit"
14        data-toolbar-tab="Observer"
15        title="Toggle observer mode ({% if observer.is_summarizing() %}summary{% elif observer.is_persisting() %}persist{% else %}disabled{% endif %} mode){% if observer.get_current_trace_summary() %} - {{ observer.get_current_trace_summary() }}{% endif %} - Click to switch to {% if observer.is_summarizing() %}persist{% else %}summary{% endif %} mode">
16        {% if observer.is_persisting() %}
17            <span class="relative inline-flex size-2 mr-2.5">
18                <span class="absolute inline-flex h-full w-full animate-ping rounded-full bg-red-400 opacity-75"></span>
19                <span class="relative inline-flex size-2 rounded-full bg-red-500"></span>
20            </span>
21        {% elif observer.is_summarizing() %}
22            <span class="relative inline-flex size-2 mr-2.5">
23                <span class="relative inline-flex size-2 rounded-full bg-zinc-500"></span>
24            </span>
25        {% endif %}
26        {% if observer.get_current_trace_summary() %}
27            <span class="font-mono tracking-tight">{{ observer.get_current_trace_summary() }}</span>
28        {% else %}
29            {% if observer.is_persisting() %}Recording{% elif observer.is_summarizing() %}Summary{% else %}Observing{% endif %}
30        {% endif %}
31    </button>
32</form>
33{% else %}
34<form method="post" action="{{ url('observer:traces') }}" style="display: inline;">
35    <input type="hidden" name="redirect_url" value="{{ request.get_full_path() }}">
36    <input type="hidden" name="observe_action" value="summary">
37    <button
38        type="submit"
39        class="cursor-pointer text-xs rounded-full px-2 py-px bg-white/20 text-white/80 whitespace-nowrap hover:bg-white/30"
40        title="Enable observer">
41        <span class="rounded-full bg-zinc-500 w-2 h-2 inline-block mr-1"></span>
42        Observer disabled
43    </button>
44</form>
45{% endif %}