Upload via GUI (275 Dateien)
This commit is contained in:
@@ -279,6 +279,16 @@ window.sessionTimerTimeout = <?= (int)$_jsTimeout ?>;
|
||||
['click','keydown','mousemove','scroll','touchstart'].forEach(function(ev) {
|
||||
document.addEventListener(ev, resetTimer, { passive: true });
|
||||
});
|
||||
|
||||
// Restzeit regelmäßig beim Server erfragen (verlängert nichts): Aktivität in einem anderen Tab verlängert die Zeit hier mit,
|
||||
// und ist die Sitzung wirklich abgelaufen, geht es sofort zur Anmeldung
|
||||
function syncTimer() {
|
||||
fetch('/staff/session_ping.php?check=1', { credentials:'same-origin', cache:'no-store' })
|
||||
.then(function(r){ if (r.status === 401) { window.location.href = '/staff/login.php'; return null; } return r.json(); })
|
||||
.then(function(d){ if (d && typeof d.remaining === 'number') remaining = d.remaining; })
|
||||
.catch(function(){});
|
||||
}
|
||||
setInterval(syncTimer, 30000);
|
||||
} // end init
|
||||
|
||||
if (document.readyState === 'loading') {
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th style="width:24px"><input type="checkbox" onclick="document.querySelectorAll('.ticket-check').forEach(c=>c.checked=this.checked)"></th>
|
||||
<th>Ticket</th><th>Betreff</th><th>Abteilung</th><th>Priorität</th><th>Status</th><th>Zugewiesen</th><th>Fällig</th>
|
||||
<th>Ticket</th><th>Betreff</th><th>Abteilung</th><th>Priorität</th><th>Status</th><th>Zugewiesen</th><th>Eingang</th><th>Fällig</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<?php foreach ($tickets as $t):
|
||||
@@ -59,6 +59,7 @@
|
||||
<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><?= $t['staff_name'] ? e($t['staff_name']) : '<span class="muted">–</span>' ?></td>
|
||||
<td class="muted" style="white-space:nowrap" title="Ticket eingegangen"><?= e(format_dt($t['created_at'] ?? null)) ?></td>
|
||||
<td class="muted"><?= time_until($t['resolution_due_at']) ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@@ -66,6 +66,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
||||
} else {
|
||||
ticket_acquire_lock((int) $ticket['id'], (int) $staff['id'], $pdo);
|
||||
$ticket['locked_by'] = $staff['id'];
|
||||
ticket_assign_on_open($pdo, $ticket, $staff); // unzugewiesenes Ticket wird dem öffnenden Mitarbeiter zugewiesen
|
||||
|
||||
// Automatische Zeiterfassung: Bearbeitung dieses Tickets beginnt (oder wird
|
||||
// aufgefrischt, falls schon eine Sitzung läuft) – jede andere noch offene
|
||||
|
||||
Reference in New Issue
Block a user