{% extends "gateways/base.html" %}{% load i18n %} {% block title %}{{ gateway.name }} – Rivet{% endblock %} {% block breadcrumbs %}{% include "gateways/_crumbs_gateway.html" %}{% endblock %} {% block content %} {% with gw=gateway %}

{{ gw.name }}

{% translate "Address" %}
https://{{ gw.fqdn }}
{% translate "Status" %}
{% include "gateways/_gw_status.html" %} {% if gw.online %}
{% blocktranslate trimmed with when=gw.last_seen|date:"SHORT_DATETIME_FORMAT" %}last heartbeat {{ when }}{% endblocktranslate %}{% endif %} {% if not gw.zone.enabled %}
{% translate "The organisation is blocked." %}{% endif %}
{% translate "Customer" %}
{{ gw.organisation.name }}
{% translate "Version" %}
{{ gw.version|default:"–" }}
{% translate "Operating mode" %}
{{ gw.get_uplink_mode_display }}
{% translate "Tunnel to the server" %}
{% include "gateways/_uplink_status.html" %}
{% translate "Forwards" %}
{% for r in gw.effective_forwards %}{{ r.name }} ({{ r.port }} → {{ r.ip }}:{{ r.target_port }}{% if r.access == "service" %}, {% translate "Service" %}{% endif %}){% if not forloop.last %}
{% endif %}{% empty %}{% translate "none" %}{% endfor %} {% if gw.can_manage %}
{% translate "Manage forwards" %}{% endif %}
{% translate "Phones" %}
{% blocktranslate trimmed with total=gw.phones_total enabled=gw.phones_enabled %}{{ total }} total · {{ enabled }} allowed{% endblocktranslate %} {% if gw.phones_active is not None %}· {% blocktranslate trimmed with active=gw.phones_active %}{{ active }} active (last heartbeat){% endblocktranslate %}{% endif %} {% if gw.can_phones %}
{% translate "Show phones" %}{% endif %}
{% translate "Certificate" %}
{% if gw.cert_version_deployed %}{% blocktranslate trimmed with v=gw.cert_version_deployed %}Version {{ v }}{% endblocktranslate %}{% if gw.cert_not_after_deployed %}, {% blocktranslate trimmed with until=gw.cert_not_after_deployed|date:"SHORT_DATE_FORMAT" %}valid until {{ until }}{% endblocktranslate %}{% endif %} {% if cert_current %}{% translate "current" %} {% else %}
{% blocktranslate trimmed with v=zone_cert_version %}Current for the customer: version {{ v }}. The gateway fetches it with the next heartbeat.{% endblocktranslate %}{% endif %} {% else %}{% translate "none delivered yet (self-signed)" %}{% if zone_cert_version %}
{% blocktranslate trimmed with v=zone_cert_version %}Current for the customer: version {{ v }}{% endblocktranslate %}{% endif %}{% endif %}
{% translate "Phone port" %}
UDP {{ gw.phone_endpoint_port }}
{% translate "Registered" %}
{{ gw.created|date:"SHORT_DATETIME_FORMAT" }}
{% if gw.can_manage %}

{% translate "Manage" %}

{% translate "Rename" %} {% translate "Only the display name; the address stays." %}

{% if gw.is_active and gw.uplink_mode != "rivet" %}

{% translate "Generate router configuration …" %} {% translate "For a router with its own WireGuard (e.g. Teltonika RUT241) that holds the tunnel to the server." %}

{% endif %} {% if not gw.revoked %}

{% translate "Block …" %} {% translate "All phones lose access immediately." %}

{% translate "Remove …" %} {% translate "Blocks and deletes the gateway permanently." %}

{% else %}
{% csrf_token %}

{% translate "Gateway and phones may connect again." %}

{% translate "Remove …" %}

{% endif %}
{% endif %} {% if gw.can_manage and gw.rivet_bound %}{% include "gateways/_services.html" %}{% endif %} {% if gw.rivet_bound %}{% include "gateways/_firewall.html" %}{% endif %} {% endwith %} {% endblock %}