prepare(" SELECT s.*, u.name as creator_name FROM brainstorm_sessions s JOIN users u ON s.created_by_id = u.id WHERE s.id = ? "); $stmtSession->execute([$sessionId]); $session = $stmtSession->fetch(); if (!$session) { echo "
Brainstormsessie niet gevonden. Terug
"; require_once __DIR__ . '/includes/footer.php'; exit; } // Haal alle kaarten op van deze sessie inclusief toewijzing $stmtCards = $db->prepare(" SELECT c.*, u.name as assignee_name, u.avatar_url as assignee_avatar FROM brainstorm_cards c LEFT JOIN users u ON c.assignee_id = u.id WHERE c.session_id = ? ORDER BY c.votes DESC, c.created_at ASC "); $stmtCards->execute([$sessionId]); $cards = $stmtCards->fetchAll(); // Haal alle actieve teamleden op voor toewijzing & agendablokkades $teamMembersStmt = $db->query("SELECT id, name, email, role, avatar_url FROM users ORDER BY name ASC"); $teamMembers = $teamMembersStmt->fetchAll(); $outlookUsers = []; $intStmt = $db->query("SELECT user_id FROM integrations WHERE provider = 'OUTLOOK' AND is_enabled = 1 AND access_token IS NOT NULL"); foreach ($intStmt->fetchAll() as $row) { $outlookUsers[(int)$row['user_id']] = true; } foreach ($teamMembers as &$tm) { $tm['has_outlook'] = !empty($outlookUsers[(int)$tm['id']]); } unset($tm); $categories = [ 'Ideeën' => [ 'title' => 'Ideeën & Concepten', 'icon' => 'lightbulb', 'color' => 'amber', 'border' => 'border-amber-300 dark:border-amber-600/40', 'bg' => 'bg-[#fef9c3] dark:bg-[#713f12]/30 text-amber-950 dark:text-amber-100', 'badge' => 'bg-amber-500/20 text-amber-900 dark:text-amber-200' ], 'Knelpunten' => [ 'title' => 'Knelpunten & Uitdagingen', 'icon' => 'alert-triangle', 'color' => 'rose', 'border' => 'border-rose-300 dark:border-rose-600/40', 'bg' => 'bg-[#ffe4e6] dark:bg-[#881337]/30 text-rose-950 dark:text-rose-100', 'badge' => 'bg-rose-500/20 text-rose-900 dark:text-rose-200' ], 'Oplossingen' => [ 'title' => 'Oplossingen & Features', 'icon' => 'rocket', 'color' => 'teal', 'border' => 'border-teal-300 dark:border-teal-600/40', 'bg' => 'bg-[#ccfbf1] dark:bg-[#134e4a]/30 text-teal-950 dark:text-teal-100', 'badge' => 'bg-teal-500/20 text-teal-900 dark:text-teal-200' ], 'Quick Wins' => [ 'title' => 'Quick Wins (Direct)', 'icon' => 'zap', 'color' => 'indigo', 'border' => 'border-indigo-300 dark:border-indigo-600/40', 'bg' => 'bg-[#e0e7ff] dark:bg-[#312e81]/30 text-indigo-950 dark:text-indigo-100', 'badge' => 'bg-indigo-500/20 text-indigo-900 dark:text-indigo-200' ], ]; ?>
Gestart door

$catConfig): $catCards = array_filter($cards, fn($c) => $c['category'] === $catKey); ?>

Nog geen kaarten in deze categorie.
(int)$card['id'], 'content' => $card['content'], 'category' => $card['category'], 'color' => $card['color'], 'assignee_id' => $card['assignee_id'] ? (int)$card['assignee_id'] : null, 'assignee_name' => $card['assignee_name'] ?? null, 'scheduled_date' => $card['scheduled_date'] ?? null, 'scheduled_start_time' => $card['scheduled_start_time'] ?? null, 'scheduled_end_time' => $card['scheduled_end_time'] ?? null, ]), ENT_QUOTES, 'UTF-8'); ?>
Roadmap