56 lines
3.1 KiB
PHP
56 lines
3.1 KiB
PHP
<div class="mx-auto max-w-5xl space-y-6" dusk="helpdesk-ticket-create">
|
|
<div>
|
|
<h1 class="text-2xl font-semibold tracking-tight text-zinc-900 dark:text-white">Create ticket</h1>
|
|
<p class="text-sm text-zinc-500 dark:text-zinc-400">Raise a support request with optional attachments.</p>
|
|
</div>
|
|
|
|
<form wire:submit="save" class="rounded-2xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-700 dark:bg-zinc-900">
|
|
<div class="grid gap-6 md:grid-cols-3">
|
|
<div class="space-y-6 md:col-span-2">
|
|
<flux:input wire:model="subject" label="Subject" placeholder="Short summary" required />
|
|
<flux:textarea wire:model="body" label="Details" rows="10" placeholder="What happened? What did you expect? Include steps to reproduce where useful." required />
|
|
</div>
|
|
|
|
<div class="space-y-6">
|
|
<flux:select wire:model="priority_id" label="Priority" required>
|
|
<option value="">Select priority</option>
|
|
@foreach ($priorities as $priority)
|
|
<option value="{{ $priority->id }}">{{ $priority->name }}</option>
|
|
@endforeach
|
|
</flux:select>
|
|
|
|
<flux:select wire:model="category_id" label="Category">
|
|
<option value="">Select category</option>
|
|
@foreach ($categories as $category)
|
|
<option value="{{ $category->id }}">{{ $category->name }}</option>
|
|
@endforeach
|
|
</flux:select>
|
|
|
|
<flux:select wire:model="project_id" label="Project">
|
|
<option value="">No project</option>
|
|
@foreach ($projects as $project)
|
|
<option value="{{ $project->id }}">{{ $project->title }}</option>
|
|
@endforeach
|
|
</flux:select>
|
|
|
|
<flux:input wire:model="due_at" type="date" label="Due date" />
|
|
|
|
<div>
|
|
<label class="mb-2 block text-sm font-medium text-zinc-700 dark:text-zinc-200">Attachments</label>
|
|
<input wire:model="attachments" type="file" multiple class="block w-full rounded-lg border border-zinc-300 bg-white p-2 text-sm dark:border-zinc-700 dark:bg-zinc-950" />
|
|
<div class="mt-2 text-xs text-zinc-500">Allowed: {{ implode(', ', config('helpdesk.allowed_mimes')) }}. Max {{ config('helpdesk.max_upload_kb') }}KB each.</div>
|
|
@error('attachments.*') <div class="mt-2 text-sm text-red-600">{{ $message }}</div> @enderror
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-6 flex items-center justify-end gap-3 border-t border-zinc-200 pt-6 dark:border-zinc-700">
|
|
<flux:button :href="route('helpdesk.tickets.index')" wire:navigate variant="ghost">Cancel</flux:button>
|
|
<flux:button type="submit" variant="primary" icon="paper-airplane" wire:loading.attr="disabled">
|
|
<span wire:loading.remove>Create ticket</span>
|
|
<span wire:loading>Creating...</span>
|
|
</flux:button>
|
|
</div>
|
|
</form>
|
|
</div>
|