byceps/byceps

View on GitHub
byceps/blueprints/admin/guest_server/templates/admin/guest_server/server_view.html

Summary

Maintainability
Test Coverage
{% 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 %}