byceps/blueprints/admin/guest_server/templates/admin/guest_server/server_view.html
{% extends 'layout/admin/guest_server.html' %}
{% from 'macros/admin/guest_server.html' import get_server_status_color_name, render_gateway, render_hostname, render_ip_address, render_netmask, render_server_status %}
{% from 'macros/admin/user.html' import render_user_microcard %}
{% from 'macros/icons.html' import render_icon %}
{% from 'macros/user.html' import render_user_avatar_and_name %}
{% set current_page_party = party %}
{% set current_tab = 'servers' %}
{% set page_title = _('Guest Servers') %}
{% block body %}
<h1 class="title">{{ page_title }}</h1>
<div class="box box--marked {{ get_server_status_color_name(server) }}">
<div class="row">
<div style="flex-basis: 33%;">
<div class="data-label">{{ _('Owner') }}</div>
<div class="data-value">{{ render_user_microcard(owners_by_id[server.owner.id]) }}</div>
</div>
<div style="flex-basis: 33%;">
<div class="data-label">{{ _('Description') }}</div>
<div class="data-value">{{ server.description|fallback }}</div>
</div>
<div class="row row--space-between" style="flex-basis: 33%;">
<div>
<div class="data-label">{{ _('Status') }}</div>
<div class="data-value">{{ render_server_status(server) }}</div>
</div>
{%- if has_current_user_permission('guest_server.administrate') %}
<div>
<div class="button-row is-compact button-row--nowrap is-right-aligned">
<a class="button is-compact" href="{{ url_for('guest_server_common.view_printable_card', server_id=server.id) }}" title="{{ _('View printable server card') }}">{{ render_icon('print') }}</a>
<a class="button is-compact" href="{{ url_for('.server_update_form', server_id=server.id) }}" title="{{ _('Update server') }}">{{ render_icon('edit') }} <span>{{ _('Edit') }}</span></a>
{%- if server.checked_out %}
{%- elif server.checked_in %}
<a class="button is-compact" href="{{ url_for('.server_check_out', server_id=server.id) }}" data-action="check-out-server">{{ render_icon('log-out') }} <span>{{ _('Check out') }}</span></a>
{%- elif server.approved %}
<a class="button is-compact" href="{{ url_for('.server_check_in', server_id=server.id) }}" data-action="check-in-server">{{ render_icon('log-in') }} <span>{{ _('Check in') }}</a>
{%- else %}
<a class="button is-compact" href="{{ url_for('.server_approve', server_id=server.id) }}" data-action="approve-server">{{ render_icon('success') }} <span>{{ _('Approve') }}</span></a>
<a class="button is-compact color-danger" href="{{ url_for('.server_delete', server_id=server.id) }}" data-action="delete-server">{{ render_icon('delete') }} <span>{{ _('Delete') }}</span></a>
{%- endif -%}
</div>
</div>
{%- endif %}
</div>
</div>
<div class="mt">
<div class="row">
<div style="flex-basis: 33%;">
<div class="data-label">{{ _('Created by') }}</div>
<div class="data-value">{{ render_user_avatar_and_name(server.creator, size=20) }}</div>
</div>
<div style="flex-basis: 33%;">
<div class="data-label">{{ _('Created at') }}</div>
<div class="data-value">{{ server.created_at|datetimeformat }}</div>
</div>
<div style="flex-basis: 33%;">
</div>
</div>
</div>
<table class="index mt">
<thead>
<tr>
<th class="data-label">{{ _('IP address') }}</th>
<th class="data-label">{{ _('Hostname') }}</th>
<th class="data-label">{{ _('Netmask') }}</th>
<th class="data-label">{{ _('Gateway') }}</th>
{%- if has_current_user_permission('guest_server.administrate') %}
<td><a class="button is-compact" href="{{ url_for('.address_create_form', server_id=server.id) }}" title="{{ _('Add server address') }}">{{ render_icon('add') }}</a></th>
{%- endif %}
</tr>
</thead>
<tbody>
{%- for address in sort_addresses(server.addresses) %}
<tr>
<td>{{ render_ip_address(address) }}</td>
<td>{{ render_hostname(address, setting) }}</td>
<td>{{ render_netmask(address, setting) }}</td>
<td>{{ render_gateway(address, setting) }}</td>
{%- if has_current_user_permission('guest_server.administrate') %}
<td><a class="button is-compact" href="{{ url_for('.address_update_form', address_id=address.id) }}" title="{{ _('Update server address') }}">{{ render_icon('edit') }}</a></td>
{%- endif %}
</tr>
{%- endfor %}
</tbody>
</table>
<div class="row mt">
<div style="flex-basis: 50%;">
<div class="data-label">{{ _('Notes by owner') }}</div>
<div class="data-value">{{ server.notes_owner|fallback(_('none')) }}</div>
</div>
<div style="flex-basis: 50%;">
<div class="data-label">{{ _('Notes by admin') }}</div>
<div class="data-value">{{ server.notes_admin|fallback(_('none')) }}</div>
</div>
</div>
</div>
{%- endblock %}
{% block scripts %}
<script>
onDomReady(() => {
confirmed_post_on_click_then_reload('[data-action="approve-server"]', '{{ _('Approve server?') }}');
confirmed_post_on_click_then_reload('[data-action="check-in-server"]', '{{ _('Check in server?') }}');
confirmed_post_on_click_then_reload('[data-action="check-out-server"]', '{{ _('Check out server?') }}');
confirmed_delete_on_click('[data-action="delete-server"]', '{{ _('Delete server?') }}');
});
</script>
{% endblock %}