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'));
});