Upload via GUI (267 Dateien)

This commit is contained in:
2026-10-19 18:05:55 +00:00
parent 1b29349219
commit f3e53e6182
9 changed files with 308 additions and 31 deletions
+20
View File
@@ -90,4 +90,24 @@ $summary['permissions'] = [];
foreach (['reply_ticket', 'post_note', 'close_ticket', 'assign_ticket', 'transfer_ticket', 'delete_ticket'] as $__perm) {
$summary['permissions'][$__perm] = has_permission($staff, $__perm, (int) $ticket['department_id']);
}
// Signaturen zur Auswahl beim Antworten (eigene / Abteilung / keine) als Klartext mit Hinweis auf Bilder
$sigOptions = reply_signature_options($pdo, $staff, (int) $ticket['department_id']);
$sigEntry = fn(string $html) => ['available' => $html !== '', 'text' => api_plain_text($html), 'html' => $html, 'hasImage' => stripos($html, '<img') !== false, 'imageUrl' => api_first_image_url($html)];
$summary['replySignatures'] = [
'default' => $sigOptions['default'],
'own' => $sigEntry($sigOptions['own']),
'department' => $sigEntry($sigOptions['dept']) + ['name' => $sigOptions['deptName']],
];
// Zusatzfelder des Tickets (vom Kunden im Formular ausgefüllt), in der Reihenfolge des Formulars
$cfStmt = $pdo->prepare(
'SELECT cf.label, cf.field_type, v.value FROM ticket_field_values v
JOIN custom_fields cf ON cf.id = v.custom_field_id
WHERE v.ticket_id = ? ORDER BY cf.sort_order, cf.label'
);
$cfStmt->execute([(int) $ticket['id']]);
$summary['customFields'] = array_map(fn($r) => [
'label' => (string) $r['label'],
'type' => (string) $r['field_type'],
'value' => $r['field_type'] === 'checkbox' ? ($r['value'] ? 'Ja' : 'Nein') : (string) $r['value'],
], $cfStmt->fetchAll());
api_json(['ticket' => $summary]);