M3 Integration fixes

This commit is contained in:
Mark Gregory
2026-09-21 14:27:26 +01:00
parent bcbdd24f15
commit 4108354935
25 changed files with 182 additions and 162 deletions
@@ -14,12 +14,12 @@
<div {{ $attributes->class('rounded-xl border border-zinc-200 bg-white p-3 shadow-sm dark:border-zinc-700 dark:bg-zinc-950/50') }}>
<div class="grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-end">
<div class="min-w-0 space-y-2">
<label for="colour-select-{{ md5($model) }}" class="block text-xs font-bold uppercase tracking-wide text-zinc-600 dark:text-zinc-300">
<label class="block text-xs font-bold uppercase tracking-wide text-zinc-600 dark:text-zinc-300">
{{ $label }}
</label>
<div class="grid gap-2 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center">
<select id="colour-select-{{ md5($model) }}"
<select aria-label="Form Field"
wire:model.live="{{ $model }}"
class="h-9 w-full rounded-lg border border-zinc-300 bg-white px-3 text-sm font-semibold text-zinc-900 shadow-sm outline-none transition-colors duration-150 focus:border-blue-500 focus:ring-2 focus:ring-blue-500/30 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100"
>
@@ -38,7 +38,7 @@
</span>
</div>
<div class="flex flex-wrap items-center gap-1.5">
<div class="flex flex-wrap items-center gap-1.5" aria-label="Available Helpdesk colours">
@foreach ($options as $key => $option)
<button
type="button"
@@ -54,18 +54,24 @@
</div>
<div class="grid grid-cols-[2.75rem_minmax(0,11rem)] items-center gap-2 lg:justify-end">
<label class="sr-only" for="custom-colour-picker">Choose a custom hex colour</label>
<input
id="custom-colour-picker"
type="color"
value="{{ $currentHex }}"
wire:change="$set('{{ $model }}', $event.target.value)"
class="h-9 w-11 cursor-pointer rounded-lg border border-zinc-300 bg-white p-1 shadow-sm dark:border-zinc-700 dark:bg-zinc-900"
aria-label="Choose a custom hex colour"
/>
<label class="sr-only" for="custom-colour-text">Custom hex colour</label>
<input
id="custom-colour-text"
type="text"
wire:model.live.debounce.500ms="{{ $model }}"
class="h-9 w-full rounded-lg border border-zinc-300 bg-white px-3 text-xs font-semibold text-zinc-900 placeholder:text-zinc-400 shadow-sm outline-none transition-colors duration-150 focus:border-blue-500 focus:ring-2 focus:ring-blue-500/30 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100 dark:placeholder:text-zinc-500"
placeholder="#ffffff"
aria-label="Custom hex colour"
/>
</div>
</div>
@@ -59,6 +59,7 @@
<div class="hd-select-wrap shrink-0 md:w-72">
<select
class="hd-select"
aria-label="Select Kanban board"
onchange="window.location.href = '{{ route('helpdesk.kanban') }}?board_id=' + encodeURIComponent(this.value)"
>
@foreach ($boards as $availableBoard)
@@ -153,18 +154,23 @@
<form method="POST" action="{{ route('helpdesk.tickets.board.update', $ticket) }}"
class="mt-3 rounded-xl border border-emerald-500/20 bg-emerald-950/20 p-2">
class="mt-3 rounded-xl border border-emerald-500/20 bg-emerald-950/20 p-2"
onclick="event.stopPropagation()"
onmousedown="event.stopPropagation()"
ondragstart="event.preventDefault(); event.stopPropagation();">
@csrf
<input type="hidden" name="return_to_board_id" value="{{ $board?->id }}">
<label
for="ticket-board-{{ $ticket->id }}" class="mb-1 block text-[11px] font-bold uppercase tracking-wide text-emerald-200/80">Board</label>
for="board_id_{{ $ticket->id }}" class="mb-1 block text-[11px] font-bold uppercase tracking-wide text-emerald-200/80">Board</label>
<div class="hd-ticket-board-select-wrap">
<select id="ticket-board-{{ $ticket->id }}" name="board_id"
<select id="board_id_{{ $ticket->id }}" name="board_id"
class="hd-ticket-board-select"
draggable="false"
onchange="this.form.requestSubmit ? this.form.requestSubmit() : this.form.submit()"
onclick="event.stopPropagation()"
onmousedown="event.stopPropagation()">
onkeydown="event.stopPropagation()"
onmousedown="event.stopPropagation()"
aria-label="Move {{ $ticket->reference }} to another board">
@foreach ($boards as $ticketBoard)
<option value="{{ $ticketBoard->id }}"
@selected((int) $ticket->board_id === (int) $ticketBoard->id)>{{ $ticketBoard->name }}</option>
@@ -211,11 +211,8 @@
<div class="lg:col-span-3 xl:col-span-6">
<fieldset class="rounded-2xl border border-zinc-700 bg-zinc-950/70 p-4">
<legend class="text-sm font-semibold text-zinc-200">Tags</legend>
<div class="flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between">
<legend class="text-sm font-semibold text-zinc-200">
Tags
</legend>
<span class="text-xs text-zinc-500">
Optional · select all that apply
</span>
@@ -241,11 +241,8 @@
<div class="lg:col-span-3 xl:col-span-6">
<fieldset class="rounded-2xl border border-zinc-700 bg-zinc-950/70 p-4">
<legend class="text-sm font-semibold text-zinc-200">Tags</legend>
<div class="flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between">
<legend class="text-sm font-semibold text-zinc-200">
Tags
</legend>
<span class="text-xs text-zinc-500">
Optional · select all that apply
</span>
@@ -482,7 +482,7 @@
<div id="ticket-comment-body-editor" dusk="comment-body" data-dusk="comment-body"
data-helpdesk-rich-editor data-helpdesk-sync-target="ticket-comment-body"
contenteditable="true" aria-label="Write a public reply or internal note" spellcheck="true" lang="en-GB" autocorrect="on" autocomplete="on" autocapitalize="sentences" inputmode="text"
contenteditable="true" aria-label="Write a public reply or internal note." spellcheck="true" lang="en-GB" autocorrect="on" autocomplete="on" autocapitalize="sentences" inputmode="text"
class="prose prose-sm min-h-[12rem] max-w-none bg-white p-4 text-sm leading-6 text-zinc-900 outline-none dark:prose-invert dark:bg-zinc-950 dark:text-zinc-100"
data-placeholder="Write a public reply or internal note. Right-click or Ctrl-click underlined words for spelling suggestions.">{!! $oldCommentBody !!}</div>
@@ -18,7 +18,8 @@
</button>
</div>
<textarea spellcheck="true" lang="en-GB" name="description" rows="2" placeholder="Optional work note"
<label class="sr-only" for="time_log_description">Description</label>
<textarea id="time_log_description" aria-label="Description" spellcheck="true" lang="en-GB" name="description" rows="2" placeholder="Optional work note"
class="block w-full rounded-lg border border-zinc-300 bg-white p-2 text-xs font-semibold text-zinc-900 shadow-sm focus:border-emerald-500 focus:ring-emerald-500 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100"
data-dusk="ticket-time-description">{{ old('description') }}</textarea>