{% extends "simple_service.html" %}
{% comment %}
#
# This file is part of FreedomBox.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
{% endcomment %}

{% load i18n %}

{% block configuration %}

  <p>{% trans "Current status:" %}</p>

  {% if firewall_status == 'not_running' %}

    <p>
      {% blocktrans trimmed %}
        Firewall daemon is not running. Please run it. Firewall comes
        enabled by default on {{ box_name }}. On any Debian based
        system (such as {{ box_name }}) you may run it using the
        command 'service firewalld start' or in case of a system with
        systemd 'systemctl start firewalld'.
      {% endblocktrans %}
    </p>

  {% else %}

    <div class="row">
      <div class="col-lg-8">
        <table class='table table-autowidth'>
          <thead>
            <th><center>{% trans "Show Ports" %}</center></th>
            <th>{% trans "Service/Port" %}</th>
            <th>{% trans "Status" %}</th>
          </thead>

          <tbody>
            {% for service in services|dictsort:"name" %}
              {% if service.ports %}
                <tr>
                  <td>
                    <center>
                      <button data-toggle="collapse"
                              data-target=".{{service.service_id}}"
                              class="btn btn-info btn-xs">+</button>
                    </center>
                  </td>
                  <td><strong>{{ service.name }}</strong></td>
                  <td>
                    {% if service.is_enabled %}
                      <span class='label label-success'>
                        {% trans "Enabled" %}</span>
                    {% else %}
                      <span class='label label-warning'>
                        {% trans "Disabled" %}</span>
                    {% endif %}
                  </td>
                </tr>
                {% for port in service.ports %}
                  <tr class="collapse out {{service.service_id}}"
                      style="background-color: #f9f9f9" >
                    <td></td>
                    <td class='cell-indented'><em>{{ port }}</em></td>
                    <td>
                      {% if port in internal_enabled_services and port in external_enabled_services %}
                        <span class='label label-success'>
                          {% trans "Permitted" %}</span>
                      {% elif port in internal_enabled_services %}
                        <span class='label label-warning'>
                          {% trans "Permitted (internal only)" %}</span>
                      {% elif port in external_enabled_services %}
                        <span class='label label-warning'>
                          {% trans "Permitted (external only)" %}</span>
                      {% else %}
                        <span class='label label-danger'>
                          {% trans "Blocked" %}</span>
                      {% endif %}
                    </td>
                  </tr>
                {% endfor %}
              {% endif %}
            {% endfor %}
          </tbody>
        </table>
      </div>
    </div>

    <p>
      <em>
        {% blocktrans trimmed %}
          The operation of the firewall is automatic. When you enable
          a service it is also permitted in the firewall and when you
          disable a service it is also disabled in the firewall.
        {% endblocktrans %}
      </em>
    </p>

  {% endif %}

{% endblock %}
