63 lines
3.8 KiB
PHP
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>
|