{% extends "admin_base.html" %} {% import "macros/map.html" as map_macros %} {% import "macros/admin_management_header.html" as mh %} {% import "macros/empty_state.html" as empty %} {% block page_title %}Interaction Map{% endblock %} {% block admin_content %}
{{ mh::management_header_open(title="Interaction Map", subtitle="Visitor connections geolocated from IP. When active on the config tenant, traffic from all tenants and unprovisioned hosts is recorded here.") }} {{ stats.total_hits | default(value=0) }} hits {{ stats.unique_locations | default(value=0) }} locations {{ mh::management_header_close() }}
Invalid only
{{ map_macros::render(map_id="interaction-map", height="480px", markers_data=markers | json_encode) }}

Interaction points

{% for point in points %} {% else %} {{ empty::empty_state(table=true, colspan=10, icon="fas fa-map-marked-alt", title="No interactions yet", description="No interactions recorded yet. Browse the site to populate the map.") }} {% endfor %}
Location IP Address Tenant Status URL Date Hits Source Last seen Actions
{% if point.city and point.country %} {{ point.city }}, {{ point.country }} {% elif point.country %} {{ point.country }} {% else %} — {% endif %} {% if point.ip_address %} {{ point.ip_address }} {% if point.is_banned %} banned {% endif %} {% else %} — {% endif %} {% if point.requested_tenant %} {{ point.requested_tenant }} {% if point.tenant_valid == 0 %} invalid {% endif %} {% else %} — {% endif %} {% if point.response_code %} {% if point.response_code >= 200 and point.response_code < 300 %} {{ point.response_code }} {% elif point.response_code >= 300 and point.response_code < 400 %} {{ point.response_code }} {% elif point.response_code >= 400 and point.response_code < 500 %} {{ point.response_code }} {% elif point.response_code >= 500 %} {{ point.response_code }} {% else %} {{ point.response_code }} {% endif %} {% else %} — {% endif %} {{ point.url_path }} {{ point.interaction_date | date_in_tz(timezone=settings.timezone) }} {{ point.hits }} {{ point.source }} {{ point.last_seen_at | date_in_tz(timezone=settings.timezone) }}
{% endblock %} {% block scripts %} {% endblock %}