Skip to content

Commit e665fa7

Browse files
simonhampclaude
andcommitted
Show user email in admin support tickets when name is missing
Use user.email as the source field for the User column/entry so Filament always renders it, even when the user has no name set. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 659d063 commit e665fa7

File tree

2 files changed

+36
-4
lines changed

2 files changed

+36
-4
lines changed

app/Filament/Resources/SupportTicketResource.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ public static function infolist(Schema $schema): Schema
5151
Infolists\Components\TextEntry::make('issue_type')
5252
->label('Issue Type')
5353
->placeholder('N/A'),
54-
Infolists\Components\TextEntry::make('user.name')
54+
Infolists\Components\TextEntry::make('user.email')
5555
->label('User')
56-
->formatStateUsing(fn (SupportTicket $record): string => ($record->user->name ?? '').' ('.$record->user->email.')')
56+
->formatStateUsing(fn (SupportTicket $record): string => trim(($record->user->name ?? '').' ('.$record->user->email.')'))
5757
->url(fn (SupportTicket $record): string => UserResource::getUrl('edit', ['record' => $record->user_id])),
5858
Infolists\Components\TextEntry::make('created_at')
5959
->label('Created')
@@ -97,9 +97,9 @@ public static function table(Table $table): Table
9797
->sortable()
9898
->limit(50),
9999

100-
Tables\Columns\TextColumn::make('user.name')
100+
Tables\Columns\TextColumn::make('user.email')
101101
->label('User')
102-
->formatStateUsing(fn (SupportTicket $record): string => ($record->user->name ?? '').' ('.$record->user->email.')')
102+
->formatStateUsing(fn (SupportTicket $record): string => trim(($record->user->name ?? '').' ('.$record->user->email.')'))
103103
->searchable(query: fn ($query, string $search) => $query->whereHas('user', fn ($q) => $q->where('name', 'like', "%{$search}%")->orWhere('email', 'like', "%{$search}%")))
104104
->sortable(),
105105

tests/Feature/SupportTicketTest.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Tests\Feature;
44

5+
use App\Filament\Resources\SupportTicketResource\Pages\ViewSupportTicket;
56
use App\Filament\Resources\SupportTicketResource\Widgets\TicketRepliesWidget;
67
use App\Livewire\Customer\Support\Create;
78
use App\Livewire\Customer\Support\Index;
@@ -1138,6 +1139,37 @@ public function only_internal_notes_can_be_pinned(): void
11381139
->call('togglePin', $reply->id);
11391140
}
11401141

1142+
#[Test]
1143+
public function admin_view_page_shows_user_email_when_name_is_null(): void
1144+
{
1145+
$admin = User::factory()->create(['email' => 'admin@test.com']);
1146+
config(['filament.users' => ['admin@test.com']]);
1147+
1148+
$namelessUser = User::factory()->create(['name' => null]);
1149+
$ticket = SupportTicket::factory()->create(['user_id' => $namelessUser->id]);
1150+
1151+
Livewire::actingAs($admin)
1152+
->test(ViewSupportTicket::class, ['record' => $ticket->getRouteKey()])
1153+
->assertOk()
1154+
->assertSee($namelessUser->email);
1155+
}
1156+
1157+
#[Test]
1158+
public function admin_view_page_shows_name_and_email_when_user_has_name(): void
1159+
{
1160+
$admin = User::factory()->create(['email' => 'admin@test.com']);
1161+
config(['filament.users' => ['admin@test.com']]);
1162+
1163+
$namedUser = User::factory()->create(['name' => 'Jane Doe']);
1164+
$ticket = SupportTicket::factory()->create(['user_id' => $namedUser->id]);
1165+
1166+
Livewire::actingAs($admin)
1167+
->test(ViewSupportTicket::class, ['record' => $ticket->getRouteKey()])
1168+
->assertOk()
1169+
->assertSee('Jane Doe')
1170+
->assertSee($namedUser->email);
1171+
}
1172+
11411173
#[Test]
11421174
public function guests_cannot_access_ticket_index(): void
11431175
{

0 commit comments

Comments
 (0)