@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) @section('content') @include('layouts.navbars.auth.topnav', ['title' => '']) @include('components.search') @include('components.kanban-alert')
{{ $board->title }}
{{-- Archive Dropdown --}}
@php // Determine if image_path is a custom image or hex color $isCustomImage = $board->image_path && (str_contains($board->image_path, '/') || str_contains($board->image_path, '\\')); $isHexColor = $board->image_path && str_starts_with($board->image_path, '#'); if ($isCustomImage) { $backgroundStyle = 'background-image: url(' . asset('storage/' . $board->image_path) . '); background-size: cover; background-position: center; background-attachment: scroll;'; } elseif ($isHexColor) { $backgroundStyle = 'background-color: ' . $board->image_path . ';'; } else { $backgroundStyle = 'background-color: #1e8c94;'; // fallback to primary color } @endphp
{{-- Dynamic Lists from Database --}} @forelse($lists as $list) @php $isAdmin = in_array($current_user_role, ['owner', 'admin'], true); @endphp
{{ $list->cards_count }}

{{ $list->title }}

{{-- Dynamic Cards for this List --}} @foreach ($cards_by_list[$list->id] ?? [] as $card) @php // Determine card border color based on due date $borderColor = 'blue'; if ($card->due_date) { $dueDate = \Carbon\Carbon::parse($card->due_date); $now = \Carbon\Carbon::now(); $daysUntilDue = $now->diffInDays($dueDate, false); // If due date has passed (overdue), make it black if ($daysUntilDue < 0) { $borderColor = 'black'; } // If due date is within 7 days from now, make it red (urgent) elseif ($daysUntilDue <= 7) { $borderColor = 'red'; } // Otherwise, keep it blue (normal) } $priority = $borderColor === 'black' ? 3 : ($borderColor === 'red' ? 2 : ($borderColor === 'blue' ? 1 : 0)); $currentRole = strtolower( (string) ($current_user_role ?? 'member'), ); $isOwner = $is_admin; $isAdmin = $currentRole === 'admin'; $isMember = $currentRole === 'member'; $loginUser = Str::lower(session('username') ?? ''); $cardOwner = Str::lower($card->user_create ?? ''); // Untuk member: hanya bisa drag card yang dia buat $isOwnCard = $loginUser === $cardOwner; // Owner/Admin bebas drag semua card // Member hanya drag card miliknya sendiri $canDragThisCard = $isOwner || $isAdmin || ($isMember && $isOwnCard); $cardColor = $card->card_color ?? null; $pastelClass = $cardColor && in_array( $cardColor, [ 'task-card-white', 'task-card-pastel-1', 'task-card-pastel-2', 'task-card-pastel-3', 'task-card-pastel-4', 'task-card-pastel-5', 'task-card-pastel-6', ], true, ) ? $cardColor : 'task-card-white'; @endphp
{{ $card->user_create }}
{{ $card->title }}
@if ($card->due_date)
{{ \Carbon\Carbon::parse($card->created_at)->format('d M y') }} · {{ \Carbon\Carbon::parse($card->due_date)->format('d M y') }}
@endif
@if (isset($card->comments_count) && $card->comments_count > 0)
{{ $card->comments_count }}
@endif @if (isset($card->attachments_count) && $card->attachments_count > 0)
{{ $card->attachments_count }}
@endif
@if ($is_owner) @endif
@endforeach
{{-- Add Card Button --}}
Tambah card baru
@empty @endforelse {{-- Add New List Column (only for admins) --}} @if (($is_admin ?? false) || ($is_owner ?? false))
Tambah list baru
@endif
@include('pages.misintern.modals.add-card') @include('pages.misintern.modals.view-card') {{-- Copy Card to Another Board Modal --}} {{-- Copy Card Warning Modal --}} {{-- Add member confirmation modal --}} {{-- Remove member confirmation modal --}} @endsection @push('css') @endpush @push('js') @endpush