{% extends "tesm_core/base.html" %}
{% from "tesm_core/macros.html" import field, textarea_field, pill, alert, permission_matrix, empty_state %}

{% block page_title %}{{ group.name }}{% endblock %}
{% block page_sub %}{{ group.member_count }} Mitglied{{ '' if group.member_count == 1 else 'er' }} &middot; {{ group.permissions | length }} Rechte{% endblock %}

{% block breadcrumb %}
<nav class="breadcrumb">
  <span><a href="{{ url_for('admin.groups') }}">Gruppen</a></span>
  <span>{{ group.name }}</span>
</nav>
{% endblock %}

{% block content %}
{% set locked = group.is_system and not unlocked %}

{% if group.is_system %}
  {% if locked %}
    <div class="alert alert--warning">
      {{ icon('lock', size=18) }}
      <div class="alert__body">
        <div class="alert__title">Systemgruppe</div>
        Name und Rechte sind gesperrt. Anders als im Vorgaenger werden die Rechte
        <strong>nicht</strong> bei jedem Neustart auf die Vorlage zurueckgesetzt &ndash;
        Anpassungen bleiben erhalten.
        {% if current_user.has('groups.edit') %}
          <a class="btn btn--sm mt-2" href="{{ url_for('admin.group_detail', group_id=group.id, freischalten=1) }}">
            {{ icon('unlock', size=14) }} Rechte freischalten
          </a>
        {% endif %}
      </div>
    </div>
  {% else %}
    {{ alert('Die Rechte dieser Systemgruppe sind zur Bearbeitung freigeschaltet.', 'warning') }}
  {% endif %}
{% endif %}

<form method="post" action="{{ url_for('admin.group_update', group_id=group.id) }}">
  <input type="hidden" name="{{ csrf_field_name }}" value="{{ csrf_token() }}">
  {% if not locked %}<input type="hidden" name="permissions_submitted" value="1">{% endif %}
  {% if unlocked %}<input type="hidden" name="unlock_system" value="1">{% endif %}

  <div class="stack">
    <section class="card">
      <div class="card__header">
        <div class="flex-1">
          <div class="card__title">{{ icon('settings', size=17) }} Stammdaten</div>
        </div>
        {% if group.preset_key and current_user.is_admin %}
          <button class="btn btn--sm" type="submit"
                  formaction="{{ url_for('admin.group_apply_preset', group_id=group.id) }}"
                  data-confirm="Rechte dieser Gruppe auf die Vorlage zuruecksetzen? Bestehende Anpassungen gehen verloren."
                  data-confirm-title="Vorlage anwenden" data-confirm-ok="Zuruecksetzen" data-confirm-style="primary">
            {{ icon('refresh', size=14) }} Vorlage anwenden
          </button>
        {% endif %}
      </div>
      <div class="card__body">
        <div class="form-grid">
          {{ field('name', 'Name', value=group.name, required=True, disabled=group.is_system,
                   hint_text='Systemgruppen koennen nicht umbenannt werden.' if group.is_system else '') }}
          {{ textarea_field('description', 'Beschreibung', value=group.description, rows=2,
                            extra_class='field--full') }}
        </div>
      </div>
    </section>

    <section class="card">
      <div class="card__header">
        <div class="flex-1">
          <div class="card__title">{{ icon('shield', size=17) }} Rechtematrix</div>
          <div class="card__sub">
            Der Bereichsschalter ist ein Hauptschalter: ohne ihn greift kein Recht des Bereichs.
            Jede Aktion setzt &bdquo;Ansehen&ldquo; derselben Zeile voraus.
          </div>
        </div>
      </div>
      <div class="card__body">
        {{ permission_matrix(tree, action_meta, state, disabled=locked or not can_edit) }}
      </div>
      {% if can_edit and not locked %}
        <div class="card__footer">
          <a class="btn" href="{{ url_for('admin.groups') }}">Abbrechen</a>
          <button class="btn btn--primary" type="submit">Rechte speichern</button>
        </div>
      {% endif %}
    </section>
  </div>
</form>

<section class="card">
  <div class="card__header">
    <div class="flex-1">
      <div class="card__title">{{ icon('users', size=17) }} Mitglieder</div>
      <div class="card__sub">Zuordnung erfolgt in der Benutzerverwaltung</div>
    </div>
    {% if current_user.has('users.view') %}
      <a class="btn btn--sm" href="{{ url_for('admin.users') }}">Benutzerverwaltung</a>
    {% endif %}
  </div>
  {% if members %}
    <div class="table-wrap">
      <table class="table table--compact">
        <thead><tr><th>Benutzer</th><th>Name</th><th>Quelle</th></tr></thead>
        <tbody>
          {% for member in members %}
            <tr>
              <td class="fw-600">{{ member.username }}
                {% if member.is_admin %}{{ pill('Admin', 'accent') }}{% endif %}
              </td>
              <td>{{ (member.first_name ~ ' ' ~ member.last_name) | trim or '&ndash;' | safe }}</td>
              <td>{{ 'Verzeichnis' if member.auth_source == 'ldap' else 'Lokal' }}</td>
            </tr>
          {% endfor %}
        </tbody>
      </table>
    </div>
  {% else %}
    {{ empty_state('Keine Mitglieder', 'Diese Gruppe ist noch niemandem zugeordnet.', 'users') }}
  {% endif %}
</section>
{% endblock %}
