Feature 4: Implement Ticket Templates
Add ticket template system for quick ticket creation: - Created TemplateModel.php with full CRUD operations for templates - Added get_template.php API endpoint to fetch template data - Updated TicketController to load templates in create() method - Modified CreateTicketView.php to include template selector dropdown - Added loadTemplate() JavaScript function to populate form fields - Templates include: title, description, category, type, and default priority - Database already seeded with default templates (Hardware Failure, Software Installation, Network Issue, Maintenance Request) Users can now select from predefined templates when creating tickets, speeding up common ticket creation workflows. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,7 @@ require_once dirname(__DIR__) . '/models/CommentModel.php';
|
||||
require_once dirname(__DIR__) . '/models/AuditLogModel.php';
|
||||
require_once dirname(__DIR__) . '/models/UserModel.php';
|
||||
require_once dirname(__DIR__) . '/models/WorkflowModel.php';
|
||||
require_once dirname(__DIR__) . '/models/TemplateModel.php';
|
||||
|
||||
class TicketController {
|
||||
private $ticketModel;
|
||||
@@ -12,6 +13,7 @@ class TicketController {
|
||||
private $auditLogModel;
|
||||
private $userModel;
|
||||
private $workflowModel;
|
||||
private $templateModel;
|
||||
private $envVars;
|
||||
|
||||
public function __construct($conn) {
|
||||
@@ -20,6 +22,7 @@ class TicketController {
|
||||
$this->auditLogModel = new AuditLogModel($conn);
|
||||
$this->userModel = new UserModel($conn);
|
||||
$this->workflowModel = new WorkflowModel($conn);
|
||||
$this->templateModel = new TemplateModel($conn);
|
||||
|
||||
// Load environment variables for Discord webhook
|
||||
$envPath = dirname(__DIR__) . '/.env';
|
||||
@@ -95,6 +98,7 @@ class TicketController {
|
||||
// Validate input
|
||||
if (empty($ticketData['title'])) {
|
||||
$error = "Title is required";
|
||||
$templates = $this->templateModel->getAllTemplates();
|
||||
include dirname(__DIR__) . '/views/CreateTicketView.php';
|
||||
return;
|
||||
}
|
||||
@@ -116,10 +120,14 @@ class TicketController {
|
||||
exit;
|
||||
} else {
|
||||
$error = $result['error'];
|
||||
$templates = $this->templateModel->getAllTemplates();
|
||||
include dirname(__DIR__) . '/views/CreateTicketView.php';
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
// Get all templates for the template selector
|
||||
$templates = $this->templateModel->getAllTemplates();
|
||||
|
||||
// Display the create ticket form
|
||||
include dirname(__DIR__) . '/views/CreateTicketView.php';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user