Add Ticket Assignment feature (Feature 2)
- Add assigned_to column support in TicketModel with assignTicket() and unassignTicket() methods - Create assign_ticket.php API endpoint for assignment operations - Update TicketController to load user list from UserModel - Add assignment dropdown UI in TicketView - Add JavaScript handler for assignment changes - Integrate with audit log for assignment tracking Users can now assign tickets to team members via dropdown selector. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -213,7 +213,7 @@ function toggleMarkdownMode() {
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// Show description tab by default
|
||||
showTab('description');
|
||||
|
||||
|
||||
// Auto-resize the description textarea to fit content
|
||||
const descriptionTextarea = document.querySelector('textarea[data-field="description"]');
|
||||
if (descriptionTextarea) {
|
||||
@@ -223,15 +223,50 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
// Set the height to match the scrollHeight
|
||||
descriptionTextarea.style.height = descriptionTextarea.scrollHeight + 'px';
|
||||
}
|
||||
|
||||
|
||||
// Initial resize
|
||||
autoResizeTextarea();
|
||||
|
||||
|
||||
// Resize on input when in edit mode
|
||||
descriptionTextarea.addEventListener('input', autoResizeTextarea);
|
||||
}
|
||||
|
||||
// Initialize assignment handling
|
||||
handleAssignmentChange();
|
||||
});
|
||||
|
||||
/**
|
||||
* Handle ticket assignment dropdown changes
|
||||
*/
|
||||
function handleAssignmentChange() {
|
||||
const assignedToSelect = document.getElementById('assignedToSelect');
|
||||
if (!assignedToSelect) return;
|
||||
|
||||
assignedToSelect.addEventListener('change', function() {
|
||||
const ticketId = window.ticketData.id;
|
||||
const assignedTo = this.value || null;
|
||||
|
||||
fetch('/api/assign_ticket.php', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ ticket_id: ticketId, assigned_to: assignedTo })
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (!data.success) {
|
||||
alert('Error updating assignment');
|
||||
console.error(data.error);
|
||||
} else {
|
||||
console.log('Assignment updated successfully');
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error updating assignment:', error);
|
||||
alert('Error updating assignment: ' + error.message);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function showTab(tabName) {
|
||||
// Hide all tab contents
|
||||
const descriptionTab = document.getElementById('description-tab');
|
||||
|
||||
Reference in New Issue
Block a user