templates/dashboard/dashboard.html.twig line 1
{% extends 'main.html.twig' %}{% block main %}<div class="container-fluid p-0">{% if is_granted('ROLE_ADMIN') %}<div class="row"><div class="col-md-4 col-12"><div class="card"><div class="card-body"><div class="row"><div class="col mt-0"><h5 class="card-title">Jobanzeigen insgesamt</h5></div><div class="col-auto"><div class="stat text-primary"><i class="align-middle" data-feather="users"></i></div></div></div><h1 class="mt-1 mb-3">{{ counts.job.value }}</h1><div class="mb-0"><span class="badge badge-success-light"> <iclass="mdi mdi-arrow-bottom-right"></i> {{ counts.job.prog }} </span><span class="text-muted">Seit letzter Woche</span></div></div></div></div><div class="col-md-4 col-12"><div class="card"><div class="card-body"><div class="row"><div class="col mt-0"><h5 class="card-title">Suchanfragen insgesamt</h5></div><div class="col-auto"><div class="stat text-primary"><i class="align-middle" data-feather="search"></i></div></div></div><h1 class="mt-1 mb-3">{{ counts.search.value }}</h1><div class="mb-0"><span class="badge {% if counts.search.prog starts with '+' %}badge-success-light{% else %}badge-danger-light{% endif %}"> <iclass="mdi mdi-arrow-bottom-right"></i> {{ counts.search.prog }} </span><span class="text-muted">Seit letzter Woche</span></div></div></div></div><div class="col-md-4 col-12"><div class="card"><div class="card-body"><div class="row"><div class="col mt-0"><h5 class="card-title">Benutzer insgesamt</h5></div><div class="col-auto"><div class="stat text-primary"><i class="align-middle" data-feather="user"></i></div></div></div><h1 class="mt-1 mb-3">{{ counts.user.value }}</h1><div class="mb-0"><span class="badge badge-success-light"> <iclass="mdi mdi-arrow-bottom-right"></i> {{ counts.user.prog }} </span><span class="text-muted">Seit letzter Woche</span></div></div></div></div></div><div class="row"><div class="col-md-6 col-12"><div class="card flex-fill"><div class="card-header"><div class="card-actions float-end nav-tabs" role="tablist"><button class="btn btn-sm btn-light active" id="all-tab" data-bs-toggle="tab"data-bs-target="#all" type="button" role="tab" aria-controls="all"aria-selected="true">alle</button><button class="btn btn-sm btn-light" id="day7-tab" data-bs-toggle="tab"data-bs-target="#day7" type="button" role="tab" aria-controls="day7"aria-selected="true">7 Tage</button><button class="btn btn-sm btn-light" id="day30-tab" data-bs-toggle="tab"data-bs-target="#day30" type="button" role="tab" aria-controls="day30"aria-selected="true">30 Tage</button><button class="btn btn-sm btn-light" id="day120-tab" data-bs-toggle="tab"data-bs-target="#day120" type="button" role="tab" aria-controls="day120"aria-selected="true">120 Tage</button></div><h5 class="card-title mb-0">Ergebnisse nach Ort</h5></div><div class="card-body tab-content">{% for k,c in city_stats %}<div class="tab-pane fade{% if k == 'all' %} show active{% endif %}" id="{{ k }}"role="tabpanel" aria-labelledby="{{ k }}-tab"><table class="table table-sm table-striped my-0"><tr><th>Ort</th><th>Anzahl</th></tr>{% for d in c %}<tr><td>{{ d.city }}</td><td>{{ d.count }}</td></tr>{% endfor %}</table></div>{% endfor %}</div></div></div><div class="col-md-6 col-12"><div class="card flex-fill w-100"><div class="card-header"><div class="card-actions float-end"><div class="dropdown position-relative"><a href="#" data-bs-toggle="dropdown" data-bs-display="static"><i class="align-middle" data-feather="more-horizontal"></i></a><div class="dropdown-menu dropdown-menu-end"><a class="dropdown-item" href="#">Action</a><a class="dropdown-item" href="#">Another action</a><a class="dropdown-item" href="#">Something else here</a></div></div></div><h5 class="card-title mb-0">Top User</h5></div><div class="card-body d-flex"><div class="align-self-center w-100"><div class="py-3"><div class="chart chart-xs"><canvas id="chartjs-dashboard-pie"></canvas></div></div><table class="table mb-0"><tbody>{% for u in top_users %}<tr><td><i class="fas fa-circle fa-fw" style="color:{{ u.color }}"></i> {{ u.lastname }}, {{ u.firstname }}</td><td class="text-end">{{ u.count }}</td></tr>{% endfor %}</tbody></table></div></div></div></div></div><div class="row"><div class="col-md-4 col-12"><div class="card flex-fill"><div class="card-header"><h5 class="card-title mb-0">Letzte Suchanfragen</h5></div><table class="table table-sm table-striped my-0"><thead><tr><th>Suchwort</th></tr></thead><tbody>{% for s in last_searches %}<tr><td>{{ s.search }}</td></tr>{% endfor %}</tbody></table></div></div><div class="col-md-4 col-12"><div class="card flex-fill"><div class="card-header"><h5 class="card-title mb-0">Letzte gefundene Jobs</h5></div><table class="table table-sm table-striped my-0"><thead><tr><th>Job</th></tr></thead><tbody>{% for j in last_jobs %}<tr><td>{{ j.title }}</td></tr>{% endfor %}</tbody></table></div></div><div class="col-md-4 col-12"><div class="card flex-fill"><div class="card-header"><h5 class="card-title mb-0">Top Suchbegriffe</h5></div><table class="table table-sm table-striped my-0"><thead><tr><th>Suchbegriff</th><th>Anzahl</th></tr></thead><tbody>{% for s in most_searchwords %}<tr><td>{{ s.search }}</td><td>{{ s.count }}</td></tr>{% endfor %}</tbody></table></div></div></div>{% else %}<div class="row"><div class="col-12 col-lg-8 col-xxl-9 d-flex"><div class="card flex-fill"><div class="card-header"><h5 class="card-title mb-0">Zuletzt gesucht</h5></div><table class="table table-hover my-0"><thead><tr><th>Suchbegriff</th><th>Ort</th><th>Treffer</th></tr></thead><tbody>{% for search in searches %}<tr><td>{{ search.search }}</td><td>{{ search.location }}, Umkreis: {{ search.distance }}km</td><td><span class="badge bg-success">{{ search.hits }}</span></td></tr>{% endfor %}</tbody></table></div></div></div>{% endif %}</div><script>document.addEventListener("DOMContentLoaded", function () {// Pie chartnew Chart(document.getElementById("chartjs-dashboard-pie"), {type: "pie",data: {labels: [{% for u in top_users %}"{{ u.lastname }}, {{ u.firstname }}",{% endfor %}],datasets: [{data: [{% for u in top_users %}{{ u.count|raw }},{% endfor %}],backgroundColor: [{% for u in top_users %}"{{ u.color }}",{% endfor %}],borderWidth: 5,borderColor: window.theme.white}]},options: {responsive: !window.MSInputMethodContext,maintainAspectRatio: false,legend: {display: false},cutoutPercentage: 70}});});</script>{% endblock %}