updaetd to roles and permissions

This commit is contained in:
Mark Gregory
2026-08-26 10:38:38 +01:00
parent af6ebe5730
commit 7fcef01be4
10 changed files with 456 additions and 21 deletions
@@ -107,8 +107,8 @@
wire:key="kanban-dropzone-{{ $board?->id ?? 0 }}-{{ $status->id }}-{{ $refreshNonce }}">
@forelse ($tickets as $ticket)
<article
class="group rounded-2xl border border-zinc-200 bg-white p-4 shadow-sm transition hover:-translate-y-0.5 hover:shadow-md active:cursor-grabbing dark:border-zinc-800 dark:bg-zinc-900"
draggable="false" data-helpdesk-kanban-ticket data-ticket-id="{{ $ticket->id }}"
class="group cursor-grab rounded-2xl border border-zinc-200 bg-white p-4 shadow-sm transition hover:-translate-y-0.5 hover:shadow-md active:cursor-grabbing dark:border-zinc-800 dark:bg-zinc-900"
draggable="true" data-helpdesk-kanban-ticket data-ticket-id="{{ $ticket->id }}"
wire:key="kanban-ticket-{{ $ticket->id }}-{{ $ticket->status_id }}-{{ $ticket->board_id }}-{{ optional($ticket->updated_at)->timestamp }}"
dusk="kanban-ticket-{{ $ticket->id }}">
<div class="mb-2 flex justify-end">
@@ -270,12 +270,26 @@
});
};
const isInteractive = (element) => Boolean(
element?.closest?.(
'a, button, input, select, textarea, option, form, label, [contenteditable="true"], [data-no-card-drag]'
)
);
componentRoot.addEventListener('dragstart', (event) => {
const handle = event.target.closest('[data-kanban-drag-handle]');
if (!handle) { event.preventDefault(); return; }
const card = cardFor(handle);
const card = cardFor(event.target);
if (!card || isInteractive(event.target)) {
event.preventDefault();
return;
}
const column = columnFor(card);
if (!card || !column) { event.preventDefault(); return; }
if (!column) {
event.preventDefault();
return;
}
drag = {
card,
@@ -284,8 +298,10 @@
originalParent: card.parentElement,
originalNext: card.nextElementSibling,
};
event.dataTransfer.effectAllowed = 'move';
event.dataTransfer.setData('text/plain', String(drag.ticketId));
requestAnimationFrame(() => card.classList.add('hd-is-dragging'));
});
@@ -124,6 +124,19 @@
class="rounded border-zinc-300 bg-zinc-950 text-blue-600 focus:ring-blue-500">
Default status for new tickets
</label>
@error('teamForm.name')
<div class="xl:col-span-12 rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-300">{{ $message }}</div>
@enderror
@error('teamForm.slug')
<div class="xl:col-span-12 rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-300">{{ $message }}</div>
@enderror
@error('teamForm.color')
<div class="xl:col-span-12 rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-300">{{ $message }}</div>
@enderror
@error('teamForm.user_ids.*')
<div class="xl:col-span-12 rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-300">{{ $message }}</div>
@enderror
<div class="flex flex-wrap items-center gap-2 xl:col-span-12">
<flux:button size="sm" type="submit" variant="primary"
class="!h-9 !rounded-lg !px-3 !text-xs !font-semibold !bg-green-600 !text-white hover:!bg-green-700 focus:!ring-green-400/60">Save status