byceps/blueprints/site/guest_server/templates/site/guest_server/index.html
{% 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 %}