'✨', 'update' => '📝', 'comment' => '💬', 'view' => '👁️', 'assign' => '👤', 'status_change' => '🔄' ]; return $icons[$actionType] ?? '•'; } function formatAction($event) { $actions = [ 'create' => 'created this ticket', 'update' => 'updated this ticket', 'comment' => 'added a comment', 'view' => 'viewed this ticket', 'assign' => 'assigned this ticket', 'status_change' => 'changed the status' ]; return $actions[$event['action_type']] ?? $event['action_type']; } function formatDetails($details, $actionType) { if ($actionType === 'update' && is_array($details)) { $changes = []; foreach ($details as $field => $value) { if ($field === 'old_value' || $field === 'new_value') continue; $changes[] = "" . htmlspecialchars($field) . ": " . htmlspecialchars($value); } return implode(', ', $changes); } return ''; } require_once __DIR__ . '/../middleware/SecurityHeadersMiddleware.php'; require_once __DIR__ . '/../middleware/CsrfMiddleware.php'; $nonce = SecurityHeadersMiddleware::getNonce(); ?> Ticket #<?php echo $ticket['ticket_id']; ?>
← Dashboard
👤 Admin
">
Ticket Information

Content Sections
Content Display
Description
Comments Section

Add Comment

Enable Markdown
Preview Markdown

Comment History

"; echo "
"; echo "" . htmlspecialchars($displayName) . ""; $dateStr = date('M d, Y H:i', strtotime($comment['created_at'])); $editedIndicator = !empty($comment['updated_at']) ? ' (edited)' : ''; echo "{$dateStr}{$editedIndicator}"; // Edit/Delete buttons for owner or admin if ($canModify) { echo "
"; echo ""; echo ""; echo "
"; } echo "
"; echo "
"; if ($comment['markdown_enabled']) { // Markdown will be rendered by JavaScript echo htmlspecialchars($comment['comment_text']); } else { // For non-markdown comments, convert line breaks to
and escape HTML echo nl2br(htmlspecialchars($comment['comment_text'])); } echo "
"; // Hidden raw text for editing echo ""; echo "
"; } ?>
File Attachments

Upload Files

📁

Drag and drop files here or click to browse

Max file size:

Attached Files

Loading attachments...

Ticket Dependencies

Add Dependency

Current Dependencies

Loading dependencies...

Tickets That Depend On This

Loading dependents...

Activity Timeline

No activity recorded yet.