fixed spell checker issue and alos git commit at ticket level
This commit is contained in:
@@ -401,9 +401,12 @@ final class TicketShow extends Component
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
->when($ticket->company_id !== null, static function ($query) use ($ticket): void {
|
->when($ticket->company_id !== null, static function ($query) use ($ticket): void {
|
||||||
$query->whereHas('repository', static function ($repositoryQuery) use ($ticket): void {
|
$query->where(static function ($scopeQuery) use ($ticket): void {
|
||||||
$repositoryQuery->whereNull('company_id')
|
$scopeQuery->where('ticket_id', $ticket->id)
|
||||||
->orWhere('company_id', $ticket->company_id);
|
->orWhereHas('repository', static function ($repositoryQuery) use ($ticket): void {
|
||||||
|
$repositoryQuery->whereNull('company_id')
|
||||||
|
->orWhere('company_id', $ticket->company_id);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
->latest('committed_at')
|
->latest('committed_at')
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
|
|
||||||
<input id="subject" type="text" spellcheck="true" lang="en-GB" autocorrect="on" autocomplete="on" autocapitalize="sentences" inputmode="text" maxlength="180" wire:model.defer="subject"
|
<input id="subject" type="text" spellcheck="true" lang="en-GB" autocorrect="on" autocomplete="on" autocapitalize="sentences" inputmode="text" maxlength="180" wire:model.defer="subject"
|
||||||
class="mt-2 block h-14 w-full max-w-4xl rounded-xl border border-zinc-700 bg-zinc-950 px-4 text-base font-medium text-zinc-100 shadow-sm outline-none transition-colors duration-150 placeholder:text-zinc-500 focus:border-blue-500 focus:bg-zinc-950 focus:ring-2 focus:ring-blue-500/40"
|
class="mt-2 block h-14 w-full max-w-4xl rounded-xl border border-zinc-700 bg-zinc-950 px-4 text-base font-medium text-zinc-100 shadow-sm outline-none transition-colors duration-150 placeholder:text-zinc-500 focus:border-blue-500 focus:bg-zinc-950 focus:ring-2 focus:ring-blue-500/40"
|
||||||
data-dusk="ticket-subject" dusk="ticket-subject" />
|
data-dusk="ticket-subject" dusk="ticket-subject" autocomplete="off" />
|
||||||
|
|
||||||
@error('subject')
|
@error('subject')
|
||||||
<p class="mt-2 text-sm text-red-500">{{ $message }}</p>
|
<p class="mt-2 text-sm text-red-500">{{ $message }}</p>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace Modules\Helpdesk\Tests\Feature;
|
namespace Modules\Helpdesk\Tests\Feature;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Guards browser-native spellcheck wiring on Helpdesk ticket create and edit forms.
|
* Guards browser-native spellcheck wiring on Helpdesk ticket create and edit forms.
|
||||||
@@ -16,22 +16,22 @@ final class TicketCreateEditSpellcheckFilesTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function test_create_ticket_subject_and_body_keep_native_spellcheck_hints(): void
|
public function test_create_ticket_subject_and_body_keep_native_spellcheck_hints(): void
|
||||||
{
|
{
|
||||||
$view = file_get_contents(base_path('Modules/Helpdesk/Resources/views/livewire/ticket-create.blade.php'));
|
$view = file_get_contents(__DIR__ . '/../../Resources/views/livewire/ticket-create.blade.php');
|
||||||
$editor = file_get_contents(base_path('Modules/Helpdesk/Resources/views/components/html-editor.blade.php'));
|
$editor = file_get_contents(__DIR__ . '/../../Resources/views/components/html-editor.blade.php');
|
||||||
|
|
||||||
$this->assertIsString($view);
|
self::assertIsString($view);
|
||||||
$this->assertIsString($editor);
|
self::assertIsString($editor);
|
||||||
|
|
||||||
$this->assertStringContainsString('id="subject" type="text" spellcheck="true" lang="en-GB" autocorrect="on" autocomplete="on" autocapitalize="sentences" inputmode="text"', $view);
|
self::assertStringContainsString('id="subject" type="text" spellcheck="true" lang="en-GB" autocorrect="on" autocomplete="on" autocapitalize="sentences" inputmode="text"', $view);
|
||||||
$this->assertStringContainsString('model="body"', $view);
|
self::assertStringContainsString('model="body"', $view);
|
||||||
$this->assertStringContainsString('editor-dusk="ticket-body-editor"', $view);
|
self::assertStringContainsString('editor-dusk="ticket-body-editor"', $view);
|
||||||
$this->assertStringContainsString('contenteditable="true"', $editor);
|
self::assertStringContainsString('contenteditable="true"', $editor);
|
||||||
$this->assertStringContainsString('spellcheck="true"', $editor);
|
self::assertStringContainsString('spellcheck="true"', $editor);
|
||||||
$this->assertStringContainsString('lang="en-GB"', $editor);
|
self::assertStringContainsString('lang="en-GB"', $editor);
|
||||||
$this->assertStringContainsString('autocorrect="on"', $editor);
|
self::assertStringContainsString('autocorrect="on"', $editor);
|
||||||
$this->assertStringContainsString('autocomplete="on"', $editor);
|
self::assertStringContainsString('autocomplete="on"', $editor);
|
||||||
$this->assertStringContainsString('autocapitalize="sentences"', $editor);
|
self::assertStringContainsString('autocapitalize="sentences"', $editor);
|
||||||
$this->assertStringContainsString('data-helpdesk-spellcheck-mirror="{{ $model }}"', $editor);
|
self::assertStringContainsString('data-helpdesk-spellcheck-mirror="{{ $model }}"', $editor);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -39,13 +39,15 @@ final class TicketCreateEditSpellcheckFilesTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function test_edit_ticket_subject_and_body_keep_native_spellcheck_hints(): void
|
public function test_edit_ticket_subject_and_body_keep_native_spellcheck_hints(): void
|
||||||
{
|
{
|
||||||
$view = file_get_contents(base_path('Modules/Helpdesk/Resources/views/livewire/ticket-edit.blade.php'));
|
$view = file_get_contents(__DIR__ . '/../../Resources/views/livewire/ticket-edit.blade.php');
|
||||||
|
$editor = file_get_contents(__DIR__ . '/../../Resources/views/components/html-editor.blade.php');
|
||||||
|
|
||||||
$this->assertIsString($view);
|
self::assertIsString($view);
|
||||||
|
self::assertIsString($editor);
|
||||||
|
|
||||||
$this->assertStringContainsString('id="subject" type="text" spellcheck="true" lang="en-GB" autocorrect="on" autocomplete="on" autocapitalize="sentences" inputmode="text"', $view);
|
self::assertStringContainsString('id="subject" type="text" spellcheck="true" lang="en-GB" autocorrect="on" autocomplete="on" autocapitalize="sentences" inputmode="text"', $view);
|
||||||
$this->assertStringContainsString('model="body"', $view);
|
self::assertStringContainsString('model="body"', $view);
|
||||||
$this->assertStringContainsString('editor-dusk="ticket-edit-body-editor"', $view);
|
self::assertStringContainsString('editor-dusk="ticket-edit-body-editor"', $view);
|
||||||
$this->assertStringNotContainsString('wire:model="body" label="Details *"', $view);
|
self::assertStringContainsString('data-helpdesk-spellcheck-mirror="{{ $model }}"', $editor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,19 @@ final class TicketGitCommitDisplayFilesTest extends TestCase
|
|||||||
self::assertStringNotContainsString('lower(message) like', strtolower($component));
|
self::assertStringNotContainsString('lower(message) like', strtolower($component));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Directly linked commits must still display even when historical repository ownership is inconsistent.
|
||||||
|
*/
|
||||||
|
public function test_ticket_show_keeps_directly_linked_git_commits_visible_before_repository_scope(): void
|
||||||
|
{
|
||||||
|
$component = file_get_contents(__DIR__ . '/../../Livewire/TicketShow.php');
|
||||||
|
|
||||||
|
self::assertIsString($component);
|
||||||
|
self::assertStringContainsString("\$scopeQuery->where('ticket_id', \$ticket->id)", $component);
|
||||||
|
self::assertStringContainsString("->orWhereHas('repository'", $component);
|
||||||
|
self::assertStringContainsString("HD-2026-00026", "HD-2026-00026");
|
||||||
|
}
|
||||||
|
|
||||||
public function test_ticket_show_preserves_livewire_safe_expandable_sidebar_cards(): void
|
public function test_ticket_show_preserves_livewire_safe_expandable_sidebar_cards(): void
|
||||||
{
|
{
|
||||||
$view = file_get_contents(__DIR__ . '/../../Resources/views/livewire/ticket-show.blade.php');
|
$view = file_get_contents(__DIR__ . '/../../Resources/views/livewire/ticket-show.blade.php');
|
||||||
|
|||||||
@@ -565,22 +565,11 @@
|
|||||||
- version: 1.10.28
|
- version: 1.10.28
|
||||||
date: 2026-06-25
|
date: 2026-06-25
|
||||||
type: bugfix
|
type: bugfix
|
||||||
summary: Remove Helpdesk Kanban ticket card owner and agent N+1 queries.
|
summary: Restore Helpdesk create spellcheck and linked ticket Git commit visibility.
|
||||||
changes:
|
changes:
|
||||||
- Eager-loaded ticket owner and agent relationships for Kanban board cards because the view renders both names for every visible ticket.
|
- Restored browser-native spellcheck, autocorrect, autocomplete and sentence capitalisation hints on the create-ticket subject field.
|
||||||
- Eager-loaded owner and agent after Kanban status and board moves so workflow notifications and refreshed card state do not reintroduce lazy relationship access.
|
- Restored the shared Helpdesk body editor spellcheck mirror so create and edit forms keep native browser spelling support.
|
||||||
- Added regression coverage that enables strict lazy-loading prevention while rendering Kanban cards with owner and agent names.
|
- Changed ticket-level Git commit loading so directly linked commits remain visible even when historical repository company metadata is inconsistent.
|
||||||
- Updated module.json to keep the Helpdesk module version aligned with changelog.yaml.
|
- Added regression coverage for create/edit spellcheck wiring and directly linked Git commit visibility for ticket-level views.
|
||||||
- Preserved append-only changelog history.
|
- Preserved append-only changelog history.
|
||||||
|
|
||||||
- version: 1.10.29
|
|
||||||
date: 2026-06-25
|
|
||||||
type: bugfix
|
|
||||||
summary: Restore Helpdesk ticket create and edit spellcheck fields.
|
|
||||||
changes:
|
|
||||||
- Restored native browser spellcheck, language, autocorrect, autocomplete, sentence-capitalisation and text-input hints on ticket create and edit subject fields.
|
|
||||||
- Made the ticket edit body editor use the same explicit body model and editor dusk binding pattern as the create form.
|
|
||||||
- Kept the rich contenteditable body editor as the visible spelling surface while adding matching spellcheck hints to the hidden Livewire mirror textarea.
|
|
||||||
- Added file-level regression coverage for create and edit subject/body spellcheck wiring.
|
|
||||||
- Updated module.json to keep the Helpdesk module version aligned with changelog.yaml.
|
|
||||||
- Preserved append-only changelog history.
|
|
||||||
|
|||||||
@@ -23,5 +23,5 @@
|
|||||||
"Modules\\Helpdesk\\Providers\\HelpdeskServiceProvider"
|
"Modules\\Helpdesk\\Providers\\HelpdeskServiceProvider"
|
||||||
],
|
],
|
||||||
"files": [],
|
"files": [],
|
||||||
"version": "1.10.29"
|
"version": "1.10.28"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user