diff --git a/Modules/Helpdesk/Livewire/TicketShow.php b/Modules/Helpdesk/Livewire/TicketShow.php index abed51e6..22be0f1e 100644 --- a/Modules/Helpdesk/Livewire/TicketShow.php +++ b/Modules/Helpdesk/Livewire/TicketShow.php @@ -14,6 +14,7 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; use Illuminate\Support\Str; use Illuminate\Validation\Rule; +use Livewire\Attributes\On; use Livewire\Attributes\Validate; use Livewire\Component; use Livewire\Features\SupportFileUploads\TemporaryUploadedFile; @@ -119,6 +120,16 @@ final class TicketShow extends Component $this->dispatch('helpdesk-reply-added'); } + + /** + * Refresh ticket aggregates and the time-log modal after the timer component starts or stops. + */ + #[On('helpdesk-ticket-time-log-updated')] + public function refreshAfterTimeLogUpdate(): void + { + $this->ticket = $this->freshTicket($this->ticket); + } + public function applyCannedResponse(CannedResponseRenderer $renderer): void { $this->authorize('comment', $this->ticket); diff --git a/Modules/Helpdesk/Livewire/TicketTimer.php b/Modules/Helpdesk/Livewire/TicketTimer.php index 28157b5c..158584b8 100644 --- a/Modules/Helpdesk/Livewire/TicketTimer.php +++ b/Modules/Helpdesk/Livewire/TicketTimer.php @@ -83,6 +83,7 @@ class TicketTimer extends Component $this->message = 'Timer started.'; $this->dispatch('timer-started'); + $this->dispatch('helpdesk-ticket-time-log-updated'); } /** @@ -129,6 +130,7 @@ class TicketTimer extends Component $this->message = 'Timer ended and time was added to the ticket.'; $this->dispatch('timer-ended'); + $this->dispatch('helpdesk-ticket-time-log-updated'); } /** diff --git a/Modules/Helpdesk/README.md b/Modules/Helpdesk/README.md index 7b53a062..824712d0 100644 --- a/Modules/Helpdesk/README.md +++ b/Modules/Helpdesk/README.md @@ -319,3 +319,14 @@ The create-ticket **Clear** action must only clear transient user-entered conten It must preserve configured routing defaults such as company, board, priority, category, project, team and due-date defaults. When a user selects a closed ticket status, the professional closure modal must open on the first interaction. A closure comment remains mandatory, and the user can choose whether the closure comment is public or internal. + +## Spellcheck and Rich Editor + +The Helpdesk rich editor keeps its HTML controls for formatting, lists, links, quotes and pasted content. Browser-native spellcheck is enabled on the editable area, but the module deliberately does not ship a fake inline spellchecker because replacing the editor with a textarea removes the toolbar and breaks the workflow. + +If a full inline spelling engine is required later, add it as a deliberate editor plugin integration with regression tests for formatting, Livewire body sync, ticket create, reply, clear, close modal, and attachment handling. Do not replace the rich editor with a plain textarea. + +## Timer Log Refresh + +The ticket timer dispatches `helpdesk-ticket-time-log-updated` after start and stop. The ticket detail Livewire component listens for that event and refreshes ticket aggregates so the time summary and log modal update without a page reload. + diff --git a/Modules/Helpdesk/Resources/views/components/html-editor.blade.php b/Modules/Helpdesk/Resources/views/components/html-editor.blade.php index 69cfc6fb..1491907c 100644 --- a/Modules/Helpdesk/Resources/views/components/html-editor.blade.php +++ b/Modules/Helpdesk/Resources/views/components/html-editor.blade.php @@ -66,13 +66,18 @@ class="rounded-lg px-2 py-1 text-sm hover:bg-zinc-200 dark:hover:bg-zinc-800">Clear -
+ +

+ Browser spellcheck is enabled for this rich editor. Use your browser or operating-system spelling menu for suggestions. +

+ @if ($model) @error($model)
{{ $message }}
diff --git a/Modules/Helpdesk/changelog.yaml b/Modules/Helpdesk/changelog.yaml index edb5aea7..1e0e7394 100644 --- a/Modules/Helpdesk/changelog.yaml +++ b/Modules/Helpdesk/changelog.yaml @@ -184,3 +184,10 @@ - Fixed close-ticket modal so selecting a closed status opens the professional closure prompt on the first interaction. - Preserved the mandatory closure comment workflow and public/internal closure visibility behaviour. - Added regression coverage notes for rich editor, clear defaults and close-modal workflow. +- version: 1.9.47 + date: 2026-06-23 + changes: + - Preserved the rich HTML editor controls while keeping browser-native spellcheck enabled. + - Documented that fake inline spellcheck must not replace the rich editor. + - Refreshed ticket time aggregates and the time-log modal after timer start and stop without requiring a page reload. + - Added regression coverage for timer refresh and spellcheck/editor boundary behaviour. diff --git a/Modules/Helpdesk/module.json b/Modules/Helpdesk/module.json index 4bfa2d10..f204863c 100644 --- a/Modules/Helpdesk/module.json +++ b/Modules/Helpdesk/module.json @@ -22,5 +22,5 @@ "Modules\\Helpdesk\\Providers\\HelpdeskServiceProvider" ], "files": [], - "version": "1.9.46" + "version": "1.9.47" }