{{ __('users.title') }}

{{ __('users.subtitle') }}

{{ $used }} / {{ $limit }}

{{ __('users.seats_used') }}

{{ __('users.seats_note') }}

{{-- Anlegen. Ausdruecklich NICHT einladen: hier entsteht nur die Zeile, die Einladung verschickt der Knopf in der Tabelle. Ein Inhaber soll sein Team vorbereiten koennen, ohne dass jemand eine Mail bekommt. --}}
@error('inviteEmail')

{{ $message }}

@enderror
{{-- Der ehrliche Satz zu „Nur Lesen": die Rolle nimmt den eigenen Speicherplatz weg, hebt aber eine Freigabe nicht auf. --}}

{{ __('users.role_readonly_means') }}

{{ __('users.add') }}
{{-- Seats --}}
@foreach ($seats as $seat) {{-- Was der Inhaber WILL (`status`) und was in der Nextcloud WIRKLICH ist (`nc_state`) stehen in einer Zelle, und der wahre Zustand geht vor: solange der Auftrag laeuft oder gescheitert ist, waere „Eingeladen" eine Behauptung ueber etwas, das die Warteschlange noch gar nicht erledigt hat. Ohne diese Spalte drueckt der Inhaber wieder und wieder, weil nichts sichtbar geschieht. --}} @endforeach
{{ __('users.col_person') }} {{ __('users.role') }} {{ __('users.col_status') }} {{ __('users.col_actions') }}

{{ $seat->name ?: $seat->email }}

@if ($seat->name)

{{ $seat->email }}

@endif
@if ($seat->role === 'owner') {{ __('users.role_owner') }} @else @endif @if ($seat->nc_state === \App\Models\Seat::STATE_NONE) {{ __('users.state_none') }} @elseif ($seat->nc_state === \App\Models\Seat::STATE_PENDING) {{ __('users.state_pending') }} @elseif ($seat->nc_state === \App\Models\Seat::STATE_FAILED) {{ __('users.state_failed') }} {{-- Der Grund im Klartext, nicht der Code: 'guest_failed' sagt einem Inhaber nichts, und ein Fehlschlag ohne Grund ist eine Sackgasse. --}}

{{ __('users.error_'.($seat->nc_error ?: 'unexpected')) }}

@else @php $sb = ['active' => 'active', 'invited' => 'provisioning', 'revoked' => 'suspended'][$seat->status] ?? 'info'; @endphp {{ __('users.status_'.$seat->status) }} @endif
{{-- Einladen ist der zweite Vorgang und hat deshalb seinen eigenen Knopf. Er steht nur an einer Zeile, die noch nichts in der Nextcloud hat; ist der Auftrag unterwegs, gibt es nichts zu druecken, und bei einem Fehlschlag steht „Nochmal versuchen" schon in der Zustandsspalte. --}} @if ($seat->nc_state === \App\Models\Seat::STATE_NONE) @elseif ($seat->nc_state === \App\Models\Seat::STATE_SYNCED && $seat->status === 'invited') @endif {{-- Rename is offered on every row, the owner included: a row you can do nothing to reads as a broken table, not as a protected one. It opens a modal, never the row itself — see R20. --}} @if ($seat->role === 'owner') {{-- Said, not hidden. The owner keeps their own access; an empty cell would leave somebody hunting for a button that is deliberately absent. --}} {{ __('users.owner_protected') }} @else {{-- Pause first, remove second. Somebody leaving needs their access stopped today; deleting the seat also throws away who held it, which is the half an audit asks about. --}} @endif