45 lines
2.2 KiB
PHP
45 lines
2.2 KiB
PHP
<?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"><?= time_until($t['resolution_due_at']) ?></td>
|
||
</tr>
|
||
<?php endforeach; ?>
|
||
</tbody>
|
||
</table>
|
||
<?php endif; ?>
|
||
</div>
|
||
</div>
|