112 lines
5.0 KiB
PHP
112 lines
5.0 KiB
PHP
@props(['user'])
|
|
|
|
@php
|
|
$locale = app()->getLocale();
|
|
$roles = $user->roles ?? collect();
|
|
$flags = $user->getRegisteredFlags() ?? [];
|
|
@endphp
|
|
|
|
<div class="card mb-4">
|
|
<div class="card-body">
|
|
|
|
{{-- SECCIÓN: DATOS PERSONALES --}}
|
|
<small class="text-uppercase text-muted">Información</small>
|
|
<ul class="list-unstyled my-3 py-1">
|
|
<li class="d-flex align-items-center mb-3">
|
|
<i class="ti ti-user ti-lg me-2 text-muted"></i>
|
|
<span class="fw-medium me-1">Nombre:</span>
|
|
<span>{{ $user->full_name ?? 'N/A' }}</span>
|
|
</li>
|
|
<li class="d-flex align-items-center mb-3">
|
|
<i class="ti ti-check ti-lg me-2 text-muted"></i>
|
|
<span class="fw-medium me-1">Estado:</span>
|
|
<span>{{ $user->status_label ?? 'Sin estado' }}</span>
|
|
</li>
|
|
<li class="d-flex align-items-start mb-3">
|
|
<i class="ti ti-shield ti-lg me-2 text-muted"></i>
|
|
<div>
|
|
<small class="card-text text-uppercase text-muted small">Roles</small>
|
|
<ul class="list-unstyled my-3 py-1 d-flex flex-wrap gap-2">
|
|
@foreach($user->roles as $role)
|
|
@php
|
|
$meta = json_decode($role->ui_metadata, true) ?? [];
|
|
$icon = $meta['icon'] ?? 'ti ti-user';
|
|
$style = $meta['style'] ?? 'primary'; // default badge style
|
|
$description = $meta['description'][app()->getLocale()] ?? $role->name;
|
|
@endphp
|
|
<li>
|
|
<span class="badge bg-label-{{ $style }} d-inline-flex align-items-center gap-1"
|
|
data-bs-toggle="tooltip"
|
|
data-bs-placement="top"
|
|
title="{{ $description }}">
|
|
<i class="{{ $icon }} mr-1"></i> {{ $role->name }}
|
|
</span>
|
|
</li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
@if(!empty($flags))
|
|
<li class="d-flex align-items-start mb-3">
|
|
<i class="ti ti-flag ti-lg me-2 text-muted"></i>
|
|
<div>
|
|
<div class="fw-medium">Flags:</div>
|
|
<span class="text-muted">{{ implode(', ', array_keys($flags)) }}</span>
|
|
</div>
|
|
</li>
|
|
@endif
|
|
</ul>
|
|
|
|
{{-- SECCIÓN: CONTACTO --}}
|
|
<small class="text-uppercase text-muted">Contacto</small>
|
|
<ul class="list-unstyled my-3 py-1">
|
|
<li class="d-flex align-items-center mb-3">
|
|
<i class="ti ti-mail ti-lg me-2 text-muted"></i>
|
|
<span class="fw-medium me-1">Email:</span>
|
|
<span>{{ $user->email }}</span>
|
|
</li>
|
|
<li class="d-flex align-items-center mb-3">
|
|
<i class="ti ti-phone ti-lg me-2 text-muted"></i>
|
|
<span class="fw-medium me-1">Teléfono:</span>
|
|
<span>{{ $user->phone ?? 'No registrado' }}</span>
|
|
</li>
|
|
<li class="d-flex align-items-center mb-3">
|
|
<i class="ti ti-brand-skype ti-lg me-2 text-muted"></i>
|
|
<span class="fw-medium me-1">Skype:</span>
|
|
<span>{{ $user->skype ?? 'No registrado' }}</span>
|
|
</li>
|
|
</ul>
|
|
|
|
{{-- SECCIÓN: OTROS --}}
|
|
<small class="text-uppercase text-muted">Otros</small>
|
|
<ul class="list-unstyled mt-3 pt-1">
|
|
<li class="d-flex align-items-center mb-3">
|
|
<i class="ti ti-world ti-lg me-2 text-muted"></i>
|
|
<span class="fw-medium me-1">País:</span>
|
|
<span>{{ $user->country ?? 'No disponible' }}</span>
|
|
</li>
|
|
<li class="d-flex align-items-center mb-3">
|
|
<i class="ti ti-language ti-lg me-2 text-muted"></i>
|
|
<span class="fw-medium me-1">Idioma(s):</span>
|
|
<span>{{ $user->languages ?? 'Español' }}</span>
|
|
</li>
|
|
</ul>
|
|
|
|
{{-- SECCIÓN: EQUIPOS --}}
|
|
@if(!empty($user->teams))
|
|
<small class="text-uppercase text-muted">Equipos</small>
|
|
<ul class="list-unstyled mt-3 pt-1">
|
|
@forelse($user->teams as $team)
|
|
<li class="d-flex align-items-center mb-2">
|
|
<i class="ti ti-users me-2 text-muted"></i>
|
|
<span class="fw-medium me-1">{{ $team['name'] }}</span>
|
|
<span class="text-muted">({{ $team['members'] }} miembros)</span>
|
|
</li>
|
|
@empty
|
|
<li class="text-muted">Sin equipos asignados</li>
|
|
@endforelse
|
|
</ul>
|
|
@endif
|
|
</div>
|
|
</div>
|