Upload via GUI (335 Dateien)
This commit is contained in:
@@ -414,11 +414,11 @@ require __DIR__ . '/_header.php';
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="stat-grid">
|
||||
<div class="stat-card" style="cursor:pointer" onclick="location.href='/staff/tickets.php'"><div class="num"><?= $dashOpenTickets ?></div><div class="lbl">Offene Tickets</div></div>
|
||||
<div class="stat-card" style="cursor:pointer" onclick="location.href='/staff/tickets.php?assigned=me'"><div class="num"><?= $dashMine ?></div><div class="lbl">Mir zugewiesen</div></div>
|
||||
<div class="stat-card" style="cursor:pointer" onclick="location.href='/staff/tickets.php?assigned=unassigned'"><div class="num"><?= $dashUnassigned ?></div><div class="lbl">Nicht zugewiesen</div></div>
|
||||
<div class="stat-card overdue" style="cursor:pointer" onclick="location.href='/staff/tickets.php?status=open'"><div class="num"><?= $dashOverdue ?></div><div class="lbl">Überfällig</div></div>
|
||||
<div class="stat-card" style="cursor:pointer" onclick="location.href='/staff/tickets.php?status=open'"><div class="num"><?= $dashUnanswered ?></div><div class="lbl">Unbeantwortet</div></div>
|
||||
<div class="stat-card" style="cursor:pointer" onclick="location.href='/staff/tickets.php'"><div class="num" data-live-count="open"><?= $dashOpenTickets ?></div><div class="lbl">Offene Tickets</div></div>
|
||||
<div class="stat-card" style="cursor:pointer" onclick="location.href='/staff/tickets.php?assigned=me'"><div class="num" data-live-count="mine"><?= $dashMine ?></div><div class="lbl">Mir zugewiesen</div></div>
|
||||
<div class="stat-card" style="cursor:pointer" onclick="location.href='/staff/tickets.php?assigned=unassigned'"><div class="num" data-live-count="unassigned"><?= $dashUnassigned ?></div><div class="lbl">Nicht zugewiesen</div></div>
|
||||
<div class="stat-card overdue" style="cursor:pointer" onclick="location.href='/staff/tickets.php?status=open'"><div class="num" data-live-count="overdue"><?= $dashOverdue ?></div><div class="lbl">Überfällig</div></div>
|
||||
<div class="stat-card" style="cursor:pointer" onclick="location.href='/staff/tickets.php?status=open'"><div class="num" data-live-count="unanswered"><?= $dashUnanswered ?></div><div class="lbl">Unbeantwortet</div></div>
|
||||
<?php if ($unreadMentions > 0): ?>
|
||||
<div class="stat-card" style="cursor:pointer; border-color:#f59e0b" onclick="location.href='/staff/mentions.php'"><div class="num" style="color:#f59e0b"><?= $unreadMentions ?></div><div class="lbl">🔔 Neue Erwähnungen</div></div>
|
||||
<?php endif; ?>
|
||||
@@ -524,6 +524,50 @@ setInterval(refreshDashTeam, 20000);
|
||||
<div class="stat-card"><div class="num"><?= $avgResolution !== null ? round($avgResolution, 1) . ' Std' : '–' ?></div><div class="lbl">Ø Lösungszeit</div></div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
// Zufriedenheit (CSAT): nur zeigen, wenn die Abfrage eingeschaltet ist oder es schon Antworten gibt
|
||||
$csat = null;
|
||||
try { $csat = csat_stats($pdo, $rangeFrom, $rangeTo, $myDeptIds); } catch (Throwable $e) { $csat = null; }
|
||||
if ($csat && (csat_enabled() || $csat['sent'] > 0)):
|
||||
?>
|
||||
<div class="card" style="margin-bottom:16px">
|
||||
<h3>Kundenzufriedenheit <span class="muted" style="font-weight:400; font-size:.8rem">(Bewertungen im gewählten Zeitraum)</span></h3>
|
||||
<?php if (!$csat['sent']): ?>
|
||||
<p class="muted">Im Zeitraum wurden noch keine Abfragen verschickt.</p>
|
||||
<?php else: ?>
|
||||
<div class="stat-grid" style="margin-bottom:12px">
|
||||
<div class="stat-card"><div class="num"><?= $csat['avg'] !== null ? number_format($csat['avg'], 1, ',', '') . ' ★' : '–' ?></div><div class="lbl">Ø Bewertung</div></div>
|
||||
<div class="stat-card"><div class="num"><?= $csat['answered'] ?></div><div class="lbl">Antworten von <?= $csat['sent'] ?> Abfragen</div></div>
|
||||
<div class="stat-card"><div class="num"><?= $csat['rate'] !== null ? number_format($csat['rate'], 0, ',', '') . ' %' : '–' ?></div><div class="lbl">Rücklaufquote</div></div>
|
||||
</div>
|
||||
<?php $distMax = max(1, max($csat['dist'])); ?>
|
||||
<table style="width:100%;max-width:520px">
|
||||
<?php for ($i = 5; $i >= 1; $i--): ?>
|
||||
<tr><td style="white-space:nowrap;width:1%;color:#f5b301"><?= e(csat_stars($i)) ?></td>
|
||||
<td><div style="background:#e2e8f0;border-radius:6px;height:12px"><div style="background:#f5b301;height:12px;border-radius:6px;width:<?= (int) round($csat['dist'][$i] * 100 / $distMax) ?>%"></div></div></td>
|
||||
<td style="width:1%;text-align:right"><?= $csat['dist'][$i] ?></td></tr>
|
||||
<?php endfor; ?>
|
||||
</table>
|
||||
<?php if ($csat['byStaff']): ?>
|
||||
<h4 style="margin:14px 0 6px">Nach Mitarbeiter</h4>
|
||||
<table style="width:100%;max-width:520px"><?php foreach ($csat['byStaff'] as $row): ?>
|
||||
<tr><td><?= e($row['name']) ?></td><td style="text-align:right"><?= number_format($row['avg'], 1, ',', '') ?> ★</td><td class="muted" style="text-align:right;width:1%;white-space:nowrap"><?= $row['count'] ?> Bewertung<?= $row['count'] === 1 ? '' : 'en' ?></td></tr>
|
||||
<?php endforeach; ?></table>
|
||||
<?php endif; ?>
|
||||
<?php if ($csat['recent']): ?>
|
||||
<h4 style="margin:14px 0 6px">Letzte Bewertungen</h4>
|
||||
<?php foreach ($csat['recent'] as $row): ?>
|
||||
<div style="padding:6px 0;border-top:1px solid var(--border,#e3e9ee);font-size:.88rem">
|
||||
<span style="color:#f5b301"><?= e(csat_stars($row['rating'])) ?></span>
|
||||
<a href="/staff/ticket_view.php?n=<?= e(rawurlencode($row['number'])) ?>">#<?= e($row['number']) ?></a> <?= e($row['subject']) ?>
|
||||
<?php if ($row['comment'] !== ''): ?><div class="muted" style="margin-top:2px">„<?= e($row['comment']) ?>“</div><?php endif; ?>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<form method="get" class="filters card">
|
||||
<div>
|
||||
<label>Berichtszeitraum</label>
|
||||
|
||||
Reference in New Issue
Block a user