Files
deskhub/DeskHub-Webseite/staff/_dashboard_recent_partial.php
T
2026-10-26 21:19:14 +00:00

45 lines
2.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* staff/_dashboard_recent_partial.php
*
* Rendert NUR die "Priorisiert"-Tabelle des Dashboards. Wird von staff/dashboard.php an
* zwei Stellen genutzt: normal beim vollständigen Seitenaufbau, und bei ?recent_partial=1
* als einziger Output für den Live-Refresh per JS (siehe <script> weiter unten in
* dashboard.php) – ohne das wäre z.B. ein Ticket, das per App geschlossen wurde, hier erst
* nach einem manuellen Reload verschwunden (siehe Nutzerrückmeldung: App zeigte
* "Geschlossen", das Dashboard hier noch "Offen", bis neu geladen wurde).
* Erwartet die von dashboard.php bereits berechnete Variable $recent.
*/
?>
<div id="dashboard-recent-region">
<h3>Priorisiert (mir zugewiesen oder unbearbeitet)</h3>
<div class="card">
<?php if (!$recent): ?>
<div class="empty-state">Keine offenen Tickets – gute Arbeit!</div>
<?php else: ?>
<table>
<thead><tr><th>Ticket</th><th>Betreff</th><th>Abteilung</th><th>Priorität</th><th>Status</th><th>Fällig</th></tr></thead>
<tbody>
<?php foreach ($recent as $t):
[$label, $color] = status_label($t['status']);
$isOverdue = $t['resolution_due_at'] && strtotime($t['resolution_due_at']) < time();
?>
<tr class="<?= $isOverdue ? 'is-overdue' : '' ?>">
<td><a href="/staff/ticket_view.php?n=<?= urlencode($t['ticket_number']) ?>" class="ticket-no">#<?= e($t['ticket_number']) ?></a></td>
<td>
<a href="/staff/ticket_view.php?n=<?= urlencode($t['ticket_number']) ?>"><?= e($t['subject']) ?></a><br>
<span class="muted" style="font-size:.78rem"><?= e($t['requester_name']) ?></span>
<span class="muted" style="font-size:.75rem; color:var(--muted-lt)"> · <?= e($t['requester_email']) ?></span>
</td>
<td><?= e($t['department_name']) ?></td>
<td><span class="badge" style="background:<?= e($t['priority_color']) ?>"><?= e($t['priority_name']) ?></span></td>
<td><span class="badge" style="background:<?= $color ?>"><?= e($label) ?></span></td>
<td class="muted"><?= !empty($t['sla_paused_at']) && ticket_sla_is_paused_status((string) $t['status']) ? 'Pausiert' : time_until($t['resolution_due_at']) ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
</div>
</div>