diff --git a/Modules/Helpdesk/Config/config.php b/Modules/Helpdesk/Config/config.php index d7d62491..3bbe234a 100644 --- a/Modules/Helpdesk/Config/config.php +++ b/Modules/Helpdesk/Config/config.php @@ -7,7 +7,7 @@ return [ 'middleware' => ['web', 'auth'], 'disk' => env('HELPDESK_ATTACHMENTS_DISK', 'helpdesk'), 'max_upload_kb' => (int) env('HELPDESK_MAX_UPLOAD_KB', 10240), - 'allowed_mimes' => ['md','pdf', 'png', 'jpg', 'jpeg', 'webp', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'csv', 'zip'], + 'allowed_mimes' => ['md', 'pdf', 'png', 'jpg', 'jpeg', 'webp', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'csv', 'zip'], 'default_status_slug' => 'new', 'closed_status_slug' => 'closed', ]; diff --git a/Modules/Helpdesk/Database/Seeders/HelpdeskDatabaseSeeder.php b/Modules/Helpdesk/Database/Seeders/HelpdeskDatabaseSeeder.php index bc40ee06..a102f108 100644 --- a/Modules/Helpdesk/Database/Seeders/HelpdeskDatabaseSeeder.php +++ b/Modules/Helpdesk/Database/Seeders/HelpdeskDatabaseSeeder.php @@ -43,7 +43,6 @@ final class HelpdeskDatabaseSeeder extends Seeder ['name' => 'Stalled', 'slug' => 'stalled', 'color' => 'rose', 'sort_order' => 30, 'is_closed' => false], ['name' => 'On-Hold', 'slug' => 'on-hold', 'color' => 'violet', 'sort_order' => 40, 'is_closed' => false], ['name' => 'Closed', 'slug' => 'closed', 'color' => 'emerald', 'sort_order' => 90, 'is_closed' => true], - ['name' => 'Testing', 'slug' => 'testing', 'color' => 'green', 'sort_order' => 30, 'is_closed' => false], ] as $row) { Status::query()->updateOrCreate(['slug' => $row['slug']], $row); } @@ -77,7 +76,6 @@ final class HelpdeskDatabaseSeeder extends Seeder ['name' => 'Systems Deployment', 'color' => 'cyan', 'description' => 'Deployment, release, infrastructure and environment requests.'], ['name' => 'Concepts', 'color' => 'purple', 'description' => 'Ideas, concepts, design discussion and future improvements.'], ['name' => 'Bug', 'color' => 'rose', 'description' => 'Defects, regressions and incorrect behaviour.'], - ['name' => 'Documentation', 'color' => 'red', 'description' => 'System Documents creation or update.'], ] as $row) { Category::query()->updateOrCreate( ['company_id' => null, 'slug' => Str::slug($row['name'])], diff --git a/Modules/Helpdesk/HelpdeskDatabaseSeeder.php b/Modules/Helpdesk/HelpdeskDatabaseSeeder.php deleted file mode 100644 index a102f108..00000000 --- a/Modules/Helpdesk/HelpdeskDatabaseSeeder.php +++ /dev/null @@ -1,137 +0,0 @@ -seedStatuses(); - $this->seedPriorities(); - $this->seedCategories(); - $this->seedTeamsAndProjects(); - $this->seedWorkflowTemplates(); - } - - /** - * Seed ticket workflow statuses. - * - * @return void - */ - private function seedStatuses(): void - { - foreach ([ - ['name' => 'New', 'slug' => 'new', 'color' => 'sky', 'sort_order' => 5, 'is_closed' => false], - ['name' => 'Open', 'slug' => 'open', 'color' => 'blue', 'sort_order' => 10, 'is_closed' => false], - ['name' => 'In Progress', 'slug' => 'in-progress', 'color' => 'amber', 'sort_order' => 20, 'is_closed' => false], - ['name' => 'Stalled', 'slug' => 'stalled', 'color' => 'rose', 'sort_order' => 30, 'is_closed' => false], - ['name' => 'On-Hold', 'slug' => 'on-hold', 'color' => 'violet', 'sort_order' => 40, 'is_closed' => false], - ['name' => 'Closed', 'slug' => 'closed', 'color' => 'emerald', 'sort_order' => 90, 'is_closed' => true], - ] as $row) { - Status::query()->updateOrCreate(['slug' => $row['slug']], $row); - } - } - - /** - * Seed ticket priorities. - * - * @return void - */ - private function seedPriorities(): void - { - foreach ([ - ['name' => 'High', 'slug' => 'high', 'color' => 'red', 'sort_order' => 10], - ['name' => 'Medium', 'slug' => 'medium', 'color' => 'amber', 'sort_order' => 20], - ['name' => 'Low', 'slug' => 'low', 'color' => 'emerald', 'sort_order' => 30], - ] as $row) { - Priority::query()->updateOrCreate(['slug' => $row['slug']], $row); - } - } - - /** - * Seed ticket categories. - * - * @return void - */ - private function seedCategories(): void - { - foreach ([ - ['name' => 'Development', 'color' => 'indigo', 'description' => 'Software changes, enhancements and development work.'], - ['name' => 'Systems Deployment', 'color' => 'cyan', 'description' => 'Deployment, release, infrastructure and environment requests.'], - ['name' => 'Concepts', 'color' => 'purple', 'description' => 'Ideas, concepts, design discussion and future improvements.'], - ['name' => 'Bug', 'color' => 'rose', 'description' => 'Defects, regressions and incorrect behaviour.'], - ] as $row) { - Category::query()->updateOrCreate( - ['company_id' => null, 'slug' => Str::slug($row['name'])], - $row + ['company_id' => null, 'slug' => Str::slug($row['name'])] - ); - } - } - - /** - * Seed the default support team and a default project. - * - * @return void - */ - private function seedTeamsAndProjects(): void - { - $team = Team::query()->updateOrCreate( - ['company_id' => null, 'slug' => 'support'], - [ - 'company_id' => null, - 'name' => 'Support', - 'slug' => 'support', - 'color' => 'blue', - 'description' => 'Default support team for triage, ownership and ticket routing.', - ] - ); - - Project::query()->updateOrCreate( - ['company_id' => null, 'slug' => 'support-desk'], - [ - 'company_id' => null, - 'team_id' => $team->id, - 'title' => 'Support Desk', - 'slug' => 'support-desk', - 'color' => 'indigo', - 'description' => 'Default project for operational helpdesk tickets.', - ] - ); - } - - /** - * Seed default professional workflow email templates. - * - * @return void - */ - private function seedWorkflowTemplates(): void - { - foreach ([ - ['name' => 'Ticket raised requester notice', 'event' => 'ticket.created', 'subject' => 'Ticket {{ ticket.reference }} has been raised', 'html_body' => '
Hello {{ requester.name }},
Your ticket {{ ticket.reference }} has been raised successfully.
Subject: {{ ticket.subject }}
Priority: {{ ticket.priority }}
', 'to_role' => 'requester'], - ['name' => 'Ticket updated requester notice', 'event' => 'ticket.updated', 'subject' => 'Ticket {{ ticket.reference }} has been updated', 'html_body' => 'Hello {{ requester.name }},
Your ticket {{ ticket.reference }} has been updated.
Status: {{ ticket.status }}
Priority: {{ ticket.priority }}
', 'to_role' => 'requester'], - ['name' => 'Ticket response requester notice', 'event' => 'ticket.commented', 'subject' => 'New response on ticket {{ ticket.reference }}', 'html_body' => 'Hello {{ requester.name }},
A new response has been added to {{ ticket.reference }}.
Subject: {{ ticket.subject }}
', 'to_role' => 'requester'], - ['name' => 'Ticket closed requester notice', 'event' => 'ticket.closed', 'subject' => 'Ticket {{ ticket.reference }} has been closed', 'html_body' => 'Hello {{ requester.name }},
Your ticket {{ ticket.reference }} has been closed.
Thank you for using the support desk.
', 'to_role' => 'requester'], - ] as $template) { - WorkflowTemplate::query()->updateOrCreate( - ['name' => $template['name'], 'event' => $template['event']], - $template + ['text_body' => null, 'cc' => null, 'bcc' => null, 'is_active' => true] - ); - } - } -} diff --git a/Modules/Helpdesk/Resources/views/livewire/kanban-board.blade.php b/Modules/Helpdesk/Resources/views/livewire/kanban-board.blade.php index 1fdd6e8d..33055a86 100644 --- a/Modules/Helpdesk/Resources/views/livewire/kanban-board.blade.php +++ b/Modules/Helpdesk/Resources/views/livewire/kanban-board.blade.php @@ -5,8 +5,9 @@Helpdesk workflow
Drag tickets between configured statuses. Add, rename and order boards from Helpdesk Settings → Statuses.
+Drag tickets between configurable status boards. Add, rename and order boards from Helpdesk Settings → Statuses.
{{ $tickets->count() }} tickets