byceps/byceps

View on GitHub
byceps/blueprints/site/guest_server/templates/site/guest_server/index.html

Summary

Maintainability
Test Coverage
{% extends 'layout/base.html' %}
{% from 'macros/icons.html' import render_icon %}
{% from 'macros/misc.html' import render_tag %}
{% set current_page = 'guest_server' %}
{% set page_title = _('Guest Servers') %}

{% block head %}
  <style>
    .server > .row {
      gap: 1rem 1.5rem;
    }

    .server-addresses {
      column-gap: 1rem;
      display: grid;
      grid-template-columns: 1;
    }

    .server-addresses--approved {
      grid-template-columns: repeat(4, 1fr);
    }
  </style>
{%- endblock %}

{% block body %}

  <div class="row row--space-between block">
    <div>
      <h1 class="title">{{ page_title }}</h1>
    </div>
    <div>
      <div class="button-row is-compact is-right-aligned">
        <a class="button" href="{{ url_for('.create_form') }}">{{ render_icon('add') }} <span>{{ _('Register guest server') }}</span></a>
      </div>
    </div>
  </div>

  {%- if servers %}

  <table class="itemlist is-wide">
    <thead>
      <tr>
        <th>{{ _('Server') }}</th>
      </tr>
    </thead>
    <tbody>
      {%- for server in servers %}
      <tr>
        <td>
          <div class="server">

            <div class="row row--space-between">
              <div>

                <div class="data-label">{{ _('Status') }}</div>
                <div class="data-value">
                  {%- if server.approved -%}
                  {{ render_tag(_('approved'), class='color-success') }}
                  {%- else -%}
                  {{ render_tag(_('pending'), class='color-warning') }}
                  {%- endif -%}
                </div>

              </div>
              <div>

                {%- if server.approved %}
                <div class="data-label">{{ render_icon('print') }} {{ _('Printable server card') }}</div>
                <div class="data-value"><a href="{{ url_for('guest_server_common.view_printable_card', server_id=server.id) }}">{{ pgettext('verb', 'View') }}</a></div>
                {%- endif %}

              </div>
            </div>{# .row #}

            <div class="data-label mt">{{ _('Description') }}</div>
            <div class="data-value">{{ server.description|fallback }}</div>

            <div class="server-addresses{% if server.approved %} server-addresses--approved{% endif %} mt">

              <div class="data-label">{{ _('Hostname') }}</div>
              {%- if server.approved %}
              <div class="data-label">{{ _('IP address') }}</div>
              <div class="data-label">{{ _('Netmask') }}</div>
              <div class="data-label">{{ _('Gateway') }}</div>
              {%- endif %}

              {%- for address in sort_addresses(server.addresses) %}

              <div class="data-value">
                {%- if address.hostname -%}
                <span class="monospace">{{ address.hostname }}{% if setting.domain %}.{{ setting.domain }}{% endif %}</span>
                {%- else -%}
                {{ _('not specified')|dim }}
                {%- endif -%}
              </div>

              {%- if server.approved %}

              <div class="data-value">
                {%- if address.ip_address -%}
                <span class="monospace">{{ address.ip_address }}</span>
                {%- else -%}
                {{ render_tag(_('none'), class='color-disabled') }}
                {%- endif -%}
              </div>

              <div class="data-value">
                {%- if address.netmask -%}
                <span class="monospace">{{ address.netmask }}</span>
                {%- elif setting.netmask -%}
                <span class="monospace">{{ setting.netmask }}</span>
                {%- else -%}
                {{ _('not specified')|dim }}
                {%- endif -%}
              </div>

              <div class="data-value">
                {%- if address.gateway -%}
                <span class="monospace">{{ address.gateway }}</span>
                {%- elif setting.gateway -%}
                <span class="monospace">{{ setting.gateway }}</span>
                {%- else -%}
                {{ _('not specified')|dim }}
                {%- endif -%}
              </div>

              {%- endif %}

              {%- endfor %}

            </div>{# .server-addresses #}

          </div>{# .server #}
        </td>
      </tr>
      {%- endfor %}
    </tbody>
  </table>

  <h2>{{ _('Further Settings') }}</h2>

  <div class="main-body-box">
    <div class="row">
      <div>

        <div class="data-label">{{ _('DNS servers') }}</div>
        <div class="data-value">
          {%- with dns_servers = [setting.dns_server1, setting.dns_server2]|reject('none')|list %}
            {%- if dns_servers %}
              {%- for dns_server in dns_servers %}
          <span class="monospace">{{ dns_server }}</span>{% if not loop.last %}, {% endif %}
              {%- endfor %}
            {%- else %}
            {{ _('not specified')|dim }}
            {%- endif %}
          {%- endwith %}
        </div>

      </div>
      <div>

        <div class="data-label">{{ _('Domain') }}</div>
        <div class="data-value">
          {%- if setting.domain -%}
          <span class="monospace">{{ setting.domain }}</span>
          {%- else -%}
          {{ _('not specified')|dim }}
          {%- endif -%}
        </div>

      </div>
    </div>
  </div>

  {%- else %}

  <p class="dimmed">{{ _('No servers registered.') }}</p>

  {%- endif %}

{%- endblock %}