{% extends "base.html" %} {% block title %}Kerbside sessions{% endblock %} {% block content %} {% if not sessions %}

There are no active sessions.

{% else %} {% for session_id in sessions %} {# The id is derived from the session id, not generated, so a later polling phase can morph this stack and leave an operator's open panel open -- same discipline as the consoles page's disclosure ids. #}
{# Plain interpolation only: an orphan channel's session has no console token, so db.get_sessions() can hand back an entry with channels but no name or source. Jinja's default undefined then renders empty; a filter or method call here would raise instead. #} Session {{ session_id }} for {{ sessions[session_id]['name'] }} in {{ sessions[session_id]['source'] }}
{% for channel in sessions[session_id]['channels'] %} {% endfor %}
Node / PID Created Client Connection ID Channel Type
{{ channel.node }} pid {{ channel.pid }} {{ channel.created.strftime('%Y-%m-%d %H:%M:%S') }} {{ channel.client_ip }}:{{ channel.client_port }} {{ channel.connection_id }} {{ channel.channel_type }}
{% endfor %} {% endif %} {% endblock %} {% block scripts %} {% include 'includes/two-step-terminate.html' %} {% endblock %}