Files
Helpddesk/resources/themes/backend/views/modules/helpdesk/livewire/ticket-show.blade.php
T
2026-08-25 17:12:22 +01:00

63 lines
3.8 KiB
PHP

<div class="space-y-6">
<div class="flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between">
<div>
<div class="text-sm font-semibold text-zinc-500">{{ $ticket->reference }}</div>
<flux:heading size="xl">{{ $ticket->subject }}</flux:heading>
<flux:text class="mt-1">{{ __('Opened by :name', ['name' => $ticket->user?->name ?? __('Unknown')]) }}</flux:text>
</div>
<div class="flex gap-2">
<flux:button :href="route('helpdesk.tickets.index')" wire:navigate>{{ __('Tickets') }}</flux:button>
@can('update', $ticket)
<flux:button variant="primary" :href="route('helpdesk.tickets.edit', $ticket)" wire:navigate>{{ __('Edit') }}</flux:button>
@endcan
</div>
</div>
<div class="grid gap-6 xl:grid-cols-[minmax(0,1fr)_20rem]">
<div class="space-y-6">
<section class="rounded-2xl border border-zinc-200 bg-white p-6 dark:border-zinc-700 dark:bg-zinc-900">
<div class="whitespace-pre-wrap text-sm leading-6 text-zinc-700 dark:text-zinc-300">{{ $ticket->body }}</div>
</section>
<section class="rounded-2xl border border-zinc-200 bg-white p-6 dark:border-zinc-700 dark:bg-zinc-900">
<flux:heading size="lg">{{ __('Comments') }}</flux:heading>
<div class="mt-4 space-y-4">
@forelse ($ticket->comments as $comment)
<article class="rounded-xl bg-zinc-50 p-4 dark:bg-zinc-800">
<div class="flex justify-between gap-3 text-xs text-zinc-500">
<span>{{ $comment->user?->name ?? __('System') }}</span>
<span>{{ $comment->created_at?->diffForHumans() }}</span>
</div>
@if ($comment->subject)<div class="mt-2 font-semibold">{{ $comment->subject }}</div>@endif
<div class="mt-2 whitespace-pre-wrap text-sm">{{ $comment->body }}</div>
</article>
@empty
<flux:text>{{ __('No comments yet.') }}</flux:text>
@endforelse
</div>
<div class="mt-6 space-y-3">
<flux:textarea wire:model="commentBody" rows="5" :label="__('Add comment')" />
<label class="flex items-center gap-2 text-sm"><input type="checkbox" wire:model="internal"> {{ __('Internal note') }}</label>
<flux:button wire:click="addComment" variant="primary">{{ __('Add comment') }}</flux:button>
</div>
</section>
<livewire:helpdesk.ticket-timer :ticket="$ticket" :key="'timer-'.$ticket->id" />
</div>
<aside class="space-y-4">
<section class="rounded-2xl border border-zinc-200 bg-white p-5 dark:border-zinc-700 dark:bg-zinc-900">
<flux:heading size="sm">{{ __('Ticket details') }}</flux:heading>
<dl class="mt-4 space-y-3 text-sm">
<div><dt class="text-zinc-500">{{ __('Status') }}</dt><dd class="font-medium">{{ $ticket->status?->name ?? '—' }}</dd></div>
<div><dt class="text-zinc-500">{{ __('Priority') }}</dt><dd class="font-medium">{{ $ticket->priority?->name ?? '—' }}</dd></div>
<div><dt class="text-zinc-500">{{ __('Agent') }}</dt><dd class="font-medium">{{ $ticket->agent?->name ?? __('Unassigned') }}</dd></div>
<div><dt class="text-zinc-500">{{ __('Category') }}</dt><dd class="font-medium">{{ $ticket->category?->name ?? '—' }}</dd></div>
<div><dt class="text-zinc-500">{{ __('Project') }}</dt><dd class="font-medium">{{ $ticket->project?->title ?? '—' }}</dd></div>
</dl>
</section>
</aside>
</div>
</div>