129 lines
5.7 KiB
PHP
Executable File
129 lines
5.7 KiB
PHP
Executable File
@extends('layouts.app')
|
|
|
|
@section('title', 'Statistiken - NeoNail DB')
|
|
|
|
@section('content')
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<h1 class="h3 mb-4">
|
|
<i class="fas fa-chart-bar me-2"></i>Statistiken
|
|
</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Übersichtsstatistiken -->
|
|
<div class="row mb-4">
|
|
<div class="col-md-3 mb-3">
|
|
<div class="card text-center">
|
|
<div class="card-body">
|
|
<i class="fas fa-users fa-2x text-primary mb-2"></i>
|
|
<h3 class="fw-bold">{{ $totalUsers }}</h3>
|
|
<p class="text-muted mb-0">Gesamte Benutzer</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3 mb-3">
|
|
<div class="card text-center">
|
|
<div class="card-body">
|
|
<i class="fas fa-palette fa-2x text-success mb-2"></i>
|
|
<h3 class="fw-bold">{{ $totalNailPolishes }}</h3>
|
|
<p class="text-muted mb-0">Gesamte Nagellacke</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3 mb-3">
|
|
<div class="card text-center">
|
|
<div class="card-body">
|
|
<i class="fas fa-user-check fa-2x text-info mb-2"></i>
|
|
<h3 class="fw-bold">{{ $usersWithCollections }}</h3>
|
|
<p class="text-muted mb-0">Benutzer mit Sammlung</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3 mb-3">
|
|
<div class="card text-center">
|
|
<div class="card-body">
|
|
<i class="fas fa-chart-line fa-2x text-warning mb-2"></i>
|
|
<h3 class="fw-bold">{{ round($averageCollectionSize, 1) }}</h3>
|
|
<p class="text-muted mb-0">Ø Sammlungsgröße</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Top-Benutzer -->
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0"><i class="fas fa-trophy me-2"></i>Top 10 Benutzer nach Sammlungsgröße</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
@if($topUsers->count() > 0)
|
|
<div class="table-responsive">
|
|
<table class="table table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>Rang</th>
|
|
<th>Benutzer</th>
|
|
<th>E-Mail</th>
|
|
<th>Sammlung</th>
|
|
<th>Registriert</th>
|
|
<th>Aktionen</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach($topUsers as $index => $user)
|
|
<tr>
|
|
<td>
|
|
@if($index === 0)
|
|
<i class="fas fa-trophy text-warning"></i>
|
|
@elseif($index === 1)
|
|
<i class="fas fa-medal text-secondary"></i>
|
|
@elseif($index === 2)
|
|
<i class="fas fa-award text-bronze"></i>
|
|
@else
|
|
<span class="badge bg-light text-dark">{{ $index + 1 }}</span>
|
|
@endif
|
|
</td>
|
|
<td>
|
|
<div class="d-flex align-items-center">
|
|
<i class="fas fa-user-circle fa-2x text-primary me-2"></i>
|
|
<div>
|
|
<strong>{{ $user->name }}</strong>
|
|
@if($user->email === 'admin@neonail.com')
|
|
<span class="badge bg-warning ms-2">Admin</span>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td>{{ $user->email }}</td>
|
|
<td>
|
|
<span class="badge bg-success fs-6">
|
|
{{ $user->nail_polishes_count }} Lacke
|
|
</span>
|
|
</td>
|
|
<td>{{ $user->created_at->format('d.m.Y') }}</td>
|
|
<td>
|
|
<a href="{{ route('admin.users.collection', $user) }}"
|
|
class="btn btn-outline-info btn-sm">
|
|
<i class="fas fa-palette me-1"></i>Sammlung
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
@else
|
|
<div class="text-center py-4">
|
|
<i class="fas fa-chart-bar fa-3x text-muted mb-3"></i>
|
|
<p class="text-muted">Noch keine Daten verfügbar</p>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endsection
|