Path : /home/vishqocm/pcib.in/admin/
File Upload :
Current File : //home/vishqocm/pcib.in/admin/team_management.php

<?php
session_start();
require_once 'database/db_config.php';

// Check if user has admin privileges
require_admin_privileges('login.php');

// Process form submissions
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Handle team member updates, additions, or deletions
    if (isset($_POST['action'])) {
        $action = $_POST['action'];
        
        // Add new team member
        if ($action === 'add') {
            $first_name = mysqli_real_escape_string($conn, $_POST['first_name']);
            $last_name = mysqli_real_escape_string($conn, $_POST['last_name']);
            $email = mysqli_real_escape_string($conn, $_POST['email']);
            $role = mysqli_real_escape_string($conn, $_POST['role']);
            $designation = mysqli_real_escape_string($conn, $_POST['designation']);
            $expertise = mysqli_real_escape_string($conn, $_POST['expertise']);
            $bio = mysqli_real_escape_string($conn, $_POST['bio']);
            $facebook = mysqli_real_escape_string($conn, isset($_POST['facebook']) ? $_POST['facebook'] : '');
            $twitter = mysqli_real_escape_string($conn, isset($_POST['twitter']) ? $_POST['twitter'] : '');
            $linkedin = mysqli_real_escape_string($conn, isset($_POST['linkedin']) ? $_POST['linkedin'] : '');
            $instagram = mysqli_real_escape_string($conn, isset($_POST['instagram']) ? $_POST['instagram'] : '');
            $username = strtolower(str_replace(' ', '', $first_name)) . rand(100, 999);
            $password = password_hash('password123', PASSWORD_DEFAULT); // Default password
            
            // Check which columns exist in the users table
            $columns = ["first_name", "last_name", "email", "username", "password", "role", "is_team_member"];
            $values = [$first_name, $last_name, $email, $username, $password, $role, 1];
            $types = "ssssssi";
            
            // Add optional columns if they exist
            $column_checks = [
                'designation' => $conn->query("SHOW COLUMNS FROM users LIKE 'designation'")->num_rows > 0,
                'expertise' => $conn->query("SHOW COLUMNS FROM users LIKE 'expertise'")->num_rows > 0,
                'bio' => $conn->query("SHOW COLUMNS FROM users LIKE 'bio'")->num_rows > 0,
                'facebook' => $conn->query("SHOW COLUMNS FROM users LIKE 'facebook'")->num_rows > 0,
                'twitter' => $conn->query("SHOW COLUMNS FROM users LIKE 'twitter'")->num_rows > 0,
                'linkedin' => $conn->query("SHOW COLUMNS FROM users LIKE 'linkedin'")->num_rows > 0,
                'instagram' => $conn->query("SHOW COLUMNS FROM users LIKE 'instagram'")->num_rows > 0
            ];
            
            if ($column_checks['designation']) {
                $columns[] = "designation";
                $values[] = $designation;
                $types .= "s";
            }
            
            if ($column_checks['expertise']) {
                $columns[] = "expertise";
                $values[] = $expertise;
                $types .= "s";
            }
            
            if ($column_checks['bio']) {
                $columns[] = "bio";
                $values[] = $bio;
                $types .= "s";
            }
            
            if ($column_checks['facebook']) {
                $columns[] = "facebook";
                $values[] = $facebook;
                $types .= "s";
            }
            
            if ($column_checks['twitter']) {
                $columns[] = "twitter";
                $values[] = $twitter;
                $types .= "s";
            }
            
            if ($column_checks['linkedin']) {
                $columns[] = "linkedin";
                $values[] = $linkedin;
                $types .= "s";
            }
            
            if ($column_checks['instagram']) {
                $columns[] = "instagram";
                $values[] = $instagram;
                $types .= "s";
            }
            
            // Add status and created_at
            $columns[] = "status";
            $values[] = "active";
            $types .= "s";
            
            $columns[] = "created_at";
            
            // Build the query
            $add_query = "INSERT INTO users (" . implode(", ", $columns) . ") 
                        VALUES (";
            
            $placeholders = array_fill(0, count($columns)-1, "?");
            $placeholders[] = "NOW()";
            $add_query .= implode(", ", $placeholders) . ")";
            
            $stmt = $conn->prepare($add_query);
            // Trim the last element (NOW()) from the values array since it's directly in the query
            array_pop($values);
            $stmt->bind_param($types, ...$values);
            
            if ($stmt->execute()) {
                $new_user_id = $stmt->insert_id;
                
                // Handle profile image upload
                if (isset($_FILES['profile_image']) && $_FILES['profile_image']['size'] > 0) {
                    $upload_dir = '../assets/img/team/';
                    
                    // Create directory if it doesn't exist
                    if (!file_exists($upload_dir)) {
                        mkdir($upload_dir, 0755, true);
                    }
                    
                    $file_name = $username . '_' . time() . '.' . pathinfo($_FILES['profile_image']['name'], PATHINFO_EXTENSION);
                    $target_file = $upload_dir . $file_name;
                    
                    if (move_uploaded_file($_FILES['profile_image']['tmp_name'], $target_file)) {
                        // Update the user with the profile image path
                        $update_query = "UPDATE users SET profile_image = ? WHERE id = ?";
                        $stmt = $conn->prepare($update_query);
                        $image_path = 'assets/img/team/' . $file_name;
                        $stmt->bind_param("si", $image_path, $new_user_id);
                        $stmt->execute();
                    }
                }
                
                $_SESSION['success_message'] = "New team member added successfully! Default username: $username";
            } else {
                $_SESSION['error_message'] = "Failed to add team member: " . $conn->error;
            }
        }
        
        // Convert existing user to team member
        else if ($action === 'convert_existing' && isset($_POST['existing_user_id'])) {
            $user_id = (int)$_POST['existing_user_id'];
            $role = mysqli_real_escape_string($conn, $_POST['role']);
            $designation = mysqli_real_escape_string($conn, $_POST['designation']);
            $expertise = mysqli_real_escape_string($conn, $_POST['expertise']);
            $bio = mysqli_real_escape_string($conn, $_POST['bio']);
            $facebook = mysqli_real_escape_string($conn, isset($_POST['facebook']) ? $_POST['facebook'] : '');
            $twitter = mysqli_real_escape_string($conn, isset($_POST['twitter']) ? $_POST['twitter'] : '');
            $linkedin = mysqli_real_escape_string($conn, isset($_POST['linkedin']) ? $_POST['linkedin'] : '');
            $instagram = mysqli_real_escape_string($conn, isset($_POST['instagram']) ? $_POST['instagram'] : '');
            
            // Check which columns exist in the users table
            $column_checks = [
                'designation' => $conn->query("SHOW COLUMNS FROM users LIKE 'designation'")->num_rows > 0,
                'expertise' => $conn->query("SHOW COLUMNS FROM users LIKE 'expertise'")->num_rows > 0,
                'bio' => $conn->query("SHOW COLUMNS FROM users LIKE 'bio'")->num_rows > 0,
                'facebook' => $conn->query("SHOW COLUMNS FROM users LIKE 'facebook'")->num_rows > 0,
                'twitter' => $conn->query("SHOW COLUMNS FROM users LIKE 'twitter'")->num_rows > 0,
                'linkedin' => $conn->query("SHOW COLUMNS FROM users LIKE 'linkedin'")->num_rows > 0,
                'instagram' => $conn->query("SHOW COLUMNS FROM users LIKE 'instagram'")->num_rows > 0
            ];
            
            // Build the SET part of the update query
            $set_clauses = [
                "role = ?",
                "is_team_member = 1"
            ];
            
            $values = [$role];
            $types = "s";
            
            if ($column_checks['designation']) {
                $set_clauses[] = "designation = ?";
                $values[] = $designation;
                $types .= "s";
            }
            
            if ($column_checks['expertise']) {
                $set_clauses[] = "expertise = ?";
                $values[] = $expertise;
                $types .= "s";
            }
            
            if ($column_checks['bio']) {
                $set_clauses[] = "bio = ?";
                $values[] = $bio;
                $types .= "s";
            }
            
            if ($column_checks['facebook']) {
                $set_clauses[] = "facebook = ?";
                $values[] = $facebook;
                $types .= "s";
            }
            
            if ($column_checks['twitter']) {
                $set_clauses[] = "twitter = ?";
                $values[] = $twitter;
                $types .= "s";
            }
            
            if ($column_checks['linkedin']) {
                $set_clauses[] = "linkedin = ?";
                $values[] = $linkedin;
                $types .= "s";
            }
            
            if ($column_checks['instagram']) {
                $set_clauses[] = "instagram = ?";
                $values[] = $instagram;
                $types .= "s";
            }
            
            // Add user_id for WHERE clause
            $values[] = $user_id;
            $types .= "i";
            
            // Build the complete query
            $update_query = "UPDATE users SET " . implode(", ", $set_clauses) . " WHERE id = ?";
            
            $stmt = $conn->prepare($update_query);
            $stmt->bind_param($types, ...$values);
            
            if ($stmt->execute()) {
                $_SESSION['success_message'] = "User successfully converted to team member!";
            } else {
                $_SESSION['error_message'] = "Failed to convert user to team member: " . $conn->error;
            }
        }
        
        // Update existing team member
        else if ($action === 'update' && isset($_POST['user_id'])) {
            $user_id = (int)$_POST['user_id'];
            $first_name = mysqli_real_escape_string($conn, $_POST['first_name']);
            $last_name = mysqli_real_escape_string($conn, $_POST['last_name']);
            $email = mysqli_real_escape_string($conn, $_POST['email']);
            $role = mysqli_real_escape_string($conn, $_POST['role']);
            $designation = mysqli_real_escape_string($conn, $_POST['designation']);
            $expertise = mysqli_real_escape_string($conn, $_POST['expertise']);
            $bio = mysqli_real_escape_string($conn, $_POST['bio']);
            $facebook = mysqli_real_escape_string($conn, isset($_POST['facebook']) ? $_POST['facebook'] : '');
            $twitter = mysqli_real_escape_string($conn, isset($_POST['twitter']) ? $_POST['twitter'] : '');
            $linkedin = mysqli_real_escape_string($conn, isset($_POST['linkedin']) ? $_POST['linkedin'] : '');
            $instagram = mysqli_real_escape_string($conn, isset($_POST['instagram']) ? $_POST['instagram'] : '');
            $status = mysqli_real_escape_string($conn, $_POST['status']);
            
            // Check which columns exist in the users table
            $column_checks = [
                'designation' => $conn->query("SHOW COLUMNS FROM users LIKE 'designation'")->num_rows > 0,
                'expertise' => $conn->query("SHOW COLUMNS FROM users LIKE 'expertise'")->num_rows > 0,
                'bio' => $conn->query("SHOW COLUMNS FROM users LIKE 'bio'")->num_rows > 0,
                'facebook' => $conn->query("SHOW COLUMNS FROM users LIKE 'facebook'")->num_rows > 0,
                'twitter' => $conn->query("SHOW COLUMNS FROM users LIKE 'twitter'")->num_rows > 0,
                'linkedin' => $conn->query("SHOW COLUMNS FROM users LIKE 'linkedin'")->num_rows > 0,
                'instagram' => $conn->query("SHOW COLUMNS FROM users LIKE 'instagram'")->num_rows > 0
            ];
            
            // Build the SET part of the update query
            $set_clauses = [
                "first_name = ?",
                "last_name = ?",
                "email = ?",
                "role = ?",
                "status = ?",
                "is_team_member = ?"
            ];
            
            $values = [$first_name, $last_name, $email, $role, $status, 1];
            $types = "sssssi";
            
            if ($column_checks['designation']) {
                $set_clauses[] = "designation = ?";
                $values[] = $designation;
                $types .= "s";
            }
            
            if ($column_checks['expertise']) {
                $set_clauses[] = "expertise = ?";
                $values[] = $expertise;
                $types .= "s";
            }
            
            if ($column_checks['bio']) {
                $set_clauses[] = "bio = ?";
                $values[] = $bio;
                $types .= "s";
            }
            
            if ($column_checks['facebook']) {
                $set_clauses[] = "facebook = ?";
                $values[] = $facebook;
                $types .= "s";
            }
            
            if ($column_checks['twitter']) {
                $set_clauses[] = "twitter = ?";
                $values[] = $twitter;
                $types .= "s";
            }
            
            if ($column_checks['linkedin']) {
                $set_clauses[] = "linkedin = ?";
                $values[] = $linkedin;
                $types .= "s";
            }
            
            if ($column_checks['instagram']) {
                $set_clauses[] = "instagram = ?";
                $values[] = $instagram;
                $types .= "s";
            }
            
            // Add user_id for WHERE clause
            $values[] = $user_id;
            $types .= "i";
            
            // Build the complete query
            $update_query = "UPDATE users SET " . implode(", ", $set_clauses) . " WHERE id = ?";
            
            $stmt = $conn->prepare($update_query);
            $stmt->bind_param($types, ...$values);
            
            if ($stmt->execute()) {
                // Handle profile image upload if a file was selected
                if (isset($_FILES['profile_image']) && $_FILES['profile_image']['size'] > 0) {
                    // Get user username for the filename
                    $username_query = "SELECT username FROM users WHERE id = ?";
                    $stmt = $conn->prepare($username_query);
                    $stmt->bind_param("i", $user_id);
                    $stmt->execute();
                    $result = $stmt->get_result();
                    $user_data = $result->fetch_assoc();
                    $username = $user_data['username'];
                    
                    $upload_dir = '../assets/img/team/';
                    
                    // Create directory if it doesn't exist
                    if (!file_exists($upload_dir)) {
                        mkdir($upload_dir, 0755, true);
                    }
                    
                    $file_name = $username . '_' . time() . '.' . pathinfo($_FILES['profile_image']['name'], PATHINFO_EXTENSION);
                    $target_file = $upload_dir . $file_name;
                    
                    if (move_uploaded_file($_FILES['profile_image']['tmp_name'], $target_file)) {
                        // Update the user with the profile image path
                        $update_query = "UPDATE users SET profile_image = ? WHERE id = ?";
                        $stmt = $conn->prepare($update_query);
                        $image_path = 'assets/img/team/' . $file_name;
                        $stmt->bind_param("si", $image_path, $user_id);
                        $stmt->execute();
                    }
                }
                
                $_SESSION['success_message'] = "Team member updated successfully!";
            } else {
                $_SESSION['error_message'] = "Failed to update team member: " . $conn->error;
            }
        }
        
        // Delete team member
        else if ($action === 'delete' && isset($_POST['user_id'])) {
            $user_id = (int)$_POST['user_id'];
            
            // Check if user exists
            $check_query = "SELECT id, role FROM users WHERE id = ?";
            $stmt = $conn->prepare($check_query);
            $stmt->bind_param("i", $user_id);
            $stmt->execute();
            $result = $stmt->get_result();
            
            if ($result->num_rows > 0) {
                // Set is_team_member to 0 instead of changing role
                $update_query = "UPDATE users SET is_team_member = 0 WHERE id = ?";
                
                $stmt = $conn->prepare($update_query);
                $stmt->bind_param("i", $user_id);
                
                if ($stmt->execute()) {
                    $_SESSION['success_message'] = "Team member removed successfully. They will no longer appear in the team list, but their role and permissions remain unchanged.";
                } else {
                    $_SESSION['error_message'] = "Failed to remove team member: " . $conn->error;
                }
            } else {
                $_SESSION['error_message'] = "Team member not found!";
            }
        }
    }
    
    // Redirect to prevent form resubmission
    header('Location: team_management.php');
    exit();
}

// Get team members
// Check which columns exist in the users table
$column_checks = [
    'designation' => $conn->query("SHOW COLUMNS FROM users LIKE 'designation'")->num_rows > 0,
    'expertise' => $conn->query("SHOW COLUMNS FROM users LIKE 'expertise'")->num_rows > 0,
    'bio' => $conn->query("SHOW COLUMNS FROM users LIKE 'bio'")->num_rows > 0,
    'facebook' => $conn->query("SHOW COLUMNS FROM users LIKE 'facebook'")->num_rows > 0, 
    'twitter' => $conn->query("SHOW COLUMNS FROM users LIKE 'twitter'")->num_rows > 0,
    'linkedin' => $conn->query("SHOW COLUMNS FROM users LIKE 'linkedin'")->num_rows > 0,
    'instagram' => $conn->query("SHOW COLUMNS FROM users LIKE 'instagram'")->num_rows > 0
];

// Check if is_team_member column exists, if not create it
if ($conn->query("SHOW COLUMNS FROM users LIKE 'is_team_member'")->num_rows === 0) {
    $conn->query("ALTER TABLE users ADD COLUMN is_team_member TINYINT(1) DEFAULT 1");
    // Update existing team members
    $conn->query("UPDATE users SET is_team_member = 1 WHERE role IN ('instructor', 'director', 'developer')");
}

// Build the query dynamically based on which columns exist
$query = "SELECT id, first_name, last_name, email, username, role, profile_image";

if ($column_checks['designation']) {
    $query .= ", designation";
}

if ($column_checks['expertise']) {
    $query .= ", expertise";
}

if ($column_checks['bio']) {
    $query .= ", bio";
}

if ($column_checks['facebook']) {
    $query .= ", facebook";
}

if ($column_checks['twitter']) {
    $query .= ", twitter";
}

if ($column_checks['linkedin']) {
    $query .= ", linkedin";
}

if ($column_checks['instagram']) {
    $query .= ", instagram";
}

$query .= ", status, created_at 
          FROM users 
          WHERE role IN ('instructor', 'director', 'developer') AND is_team_member = 1
          ORDER BY CASE 
             WHEN role = 'director' THEN 1
             WHEN role = 'developer' THEN 2
             ELSE 3
          END, first_name";
$result = $conn->query($query);

$team_members = [];
if ($result && $result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $team_members[] = $row;
    }
}

// Get existing users who are not already team members for the user selection dropdown
$existing_users_query = "SELECT id, CONCAT(first_name, ' ', last_name) as name, email, username
                        FROM users 
                        WHERE is_team_member = 0 OR is_team_member IS NULL
                        ORDER BY first_name";
$existing_users_result = $conn->query($existing_users_query);

$existing_users = [];
if ($existing_users_result && $existing_users_result->num_rows > 0) {
    while ($row = $existing_users_result->fetch_assoc()) {
        $existing_users[] = $row;
    }
}

// Include header
include 'includes/header.php';
?>

<div class="container-fluid">
    <h1 class="h3 mb-4 text-gray-800">Team Management</h1>
    
    <?php if (isset($_SESSION['success_message'])): ?>
        <div class="alert alert-success alert-dismissible fade show" role="alert">
            <?php 
                echo $_SESSION['success_message'];
                unset($_SESSION['success_message']);
            ?>
            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
        </div>
    <?php endif; ?>
    
    <?php if (isset($_SESSION['error_message'])): ?>
        <div class="alert alert-danger alert-dismissible fade show" role="alert">
            <?php 
                echo $_SESSION['error_message'];
                unset($_SESSION['error_message']);
            ?>
            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
        </div>
    <?php endif; ?>
    
    <!-- Add Team Member Button -->
    <div class="d-flex justify-content-end mb-3">
        <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addTeamMemberModal">
            <i class="fas fa-plus me-1"></i> Add Team Member
        </button>
    </div>
    
    <!-- Team Members Table -->
    <div class="card shadow mb-4">
        <div class="card-header py-3 d-flex justify-content-between align-items-center">
            <h6 class="m-0 font-weight-bold text-primary">Team Members</h6>
            
            <!-- Filter Buttons -->
            <div class="btn-group" role="group">
                <button type="button" class="btn btn-outline-primary active filter-btn" data-filter="all">All</button>
                <button type="button" class="btn btn-outline-primary filter-btn" data-filter="director">Directors</button>
                <button type="button" class="btn btn-outline-primary filter-btn" data-filter="developer">Developers</button>
                <button type="button" class="btn btn-outline-primary filter-btn" data-filter="instructor">Instructors</button>
            </div>
        </div>
        <div class="card-body">
            <div class="row" id="teamGrid">
                <?php foreach ($team_members as $member): ?>
                    <div class="col-md-4 mb-4 team-card" data-role="<?php echo $member['role']; ?>">
                        <div class="card h-100">
                            <div class="card-img-top team-member-img-container">
                                <?php 
                                $profile_image = isset($member['profile_image']) && !empty($member['profile_image']) 
                                    ? '../' . $member['profile_image'] 
                                    : '../assets/img/defaults/default-avatar.png';
                                ?>
                                <img src="<?php echo $profile_image; ?>" class="card-img-top team-member-img" alt="<?php echo htmlspecialchars($member['first_name'] . ' ' . $member['last_name']); ?>">
                            </div>
                            <div class="card-body">
                                <h5 class="card-title"><?php echo htmlspecialchars($member['first_name'] . ' ' . $member['last_name']); ?></h5>
                                <?php
                                $role_badge_class = '';
                                $role_display = ucfirst($member['role']);
                                
                                if ($member['role'] === 'director') {
                                    $role_badge_class = 'bg-orange';
                                } elseif ($member['role'] === 'developer') {
                                    $role_badge_class = 'bg-blue';
                                } else {
                                    $role_badge_class = 'bg-purple';
                                }
                                ?>
                                <span class="badge <?php echo $role_badge_class; ?> mb-2"><?php echo $role_display; ?></span>
                                
                                <?php if (isset($member['designation']) && !empty($member['designation'])): ?>
                                    <p class="card-text"><strong>Title:</strong> <?php echo htmlspecialchars($member['designation']); ?></p>
                                <?php endif; ?>
                                
                                <p class="card-text"><strong>Email:</strong> <?php echo htmlspecialchars($member['email']); ?></p>
                                
                                <?php if (isset($member['expertise']) && !empty($member['expertise'])): ?>
                                    <p class="card-text"><strong>Expertise:</strong> <?php echo htmlspecialchars($member['expertise']); ?></p>
                                <?php endif; ?>
                                
                                <?php if (isset($member['bio']) && !empty($member['bio'])): ?>
                                    <p class="card-text"><strong>Bio:</strong> <?php echo nl2br(htmlspecialchars($member['bio'])); ?></p>
                                <?php endif; ?>
                                
                                <p class="card-text">
                                    <strong>Status:</strong>
                                    <?php if ($member['status'] === 'active'): ?>
                                        <span class="badge bg-success">Active</span>
                                    <?php else: ?>
                                        <span class="badge bg-danger">Inactive</span>
                                    <?php endif; ?>
                                </p>
                                
                                <?php
                                // Show social media links if any exist
                                $has_social = false;
                                if (
                                    (isset($member['facebook']) && !empty($member['facebook'])) ||
                                    (isset($member['twitter']) && !empty($member['twitter'])) ||
                                    (isset($member['linkedin']) && !empty($member['linkedin'])) ||
                                    (isset($member['instagram']) && !empty($member['instagram']))
                                ) {
                                    $has_social = true;
                                }
                                
                                if ($has_social): ?>
                                <div class="social-links mt-3">
                                    <?php if (isset($member['facebook']) && !empty($member['facebook'])): ?>
                                        <a href="<?php echo htmlspecialchars($member['facebook']); ?>" class="social-icon" target="_blank">
                                            <i class="fab fa-facebook-f"></i>
                                        </a>
                                    <?php endif; ?>
                                    
                                    <?php if (isset($member['twitter']) && !empty($member['twitter'])): ?>
                                        <a href="<?php echo htmlspecialchars($member['twitter']); ?>" class="social-icon" target="_blank">
                                            <i class="fab fa-twitter"></i>
                                        </a>
                                    <?php endif; ?>
                                    
                                    <?php if (isset($member['linkedin']) && !empty($member['linkedin'])): ?>
                                        <a href="<?php echo htmlspecialchars($member['linkedin']); ?>" class="social-icon" target="_blank">
                                            <i class="fab fa-linkedin-in"></i>
                                        </a>
                                    <?php endif; ?>
                                    
                                    <?php if (isset($member['instagram']) && !empty($member['instagram'])): ?>
                                        <a href="<?php echo htmlspecialchars($member['instagram']); ?>" class="social-icon" target="_blank">
                                            <i class="fab fa-instagram"></i>
                                        </a>
                                    <?php endif; ?>
                                </div>
                                <?php endif; ?>
                            </div>
                            <div class="card-footer">
                                <button class="btn btn-sm btn-primary edit-btn" 
                                        data-id="<?php echo $member['id']; ?>"
                                        data-firstname="<?php echo htmlspecialchars($member['first_name']); ?>"
                                        data-lastname="<?php echo htmlspecialchars($member['last_name']); ?>"
                                        data-email="<?php echo htmlspecialchars($member['email']); ?>"
                                        data-role="<?php echo $member['role']; ?>"
                                        <?php if (isset($member['designation'])): ?>
                                        data-designation="<?php echo htmlspecialchars($member['designation']); ?>"
                                        <?php endif; ?>
                                        <?php if (isset($member['expertise'])): ?>
                                        data-expertise="<?php echo htmlspecialchars($member['expertise']); ?>"
                                        <?php endif; ?>
                                        <?php if (isset($member['bio'])): ?>
                                        data-bio="<?php echo htmlspecialchars($member['bio']); ?>"
                                        <?php endif; ?>
                                        <?php if (isset($member['facebook'])): ?>
                                        data-facebook="<?php echo htmlspecialchars($member['facebook']); ?>"
                                        <?php endif; ?>
                                        <?php if (isset($member['twitter'])): ?>
                                        data-twitter="<?php echo htmlspecialchars($member['twitter']); ?>"
                                        <?php endif; ?>
                                        <?php if (isset($member['linkedin'])): ?>
                                        data-linkedin="<?php echo htmlspecialchars($member['linkedin']); ?>"
                                        <?php endif; ?>
                                        <?php if (isset($member['instagram'])): ?>
                                        data-instagram="<?php echo htmlspecialchars($member['instagram']); ?>"
                                        <?php endif; ?>
                                        <?php
                                        $profile_image = isset($member['profile_image']) && !empty($member['profile_image']) 
                                            ? '../' . $member['profile_image'] 
                                            : '../assets/img/defaults/default-avatar.png';
                                        ?>
                                        data-profileimage="<?php echo $profile_image; ?>"
                                        data-status="<?php echo $member['status']; ?>"
                                        data-bs-toggle="modal" data-bs-target="#editTeamMemberModal">
                                    <i class="fas fa-edit"></i> Edit
                                </button>
                                <button class="btn btn-sm btn-danger delete-btn" 
                                        data-id="<?php echo $member['id']; ?>"
                                        data-name="<?php echo htmlspecialchars($member['first_name'] . ' ' . $member['last_name']); ?>"
                                        data-bs-toggle="modal" data-bs-target="#deleteTeamMemberModal">
                                    <i class="fas fa-trash"></i> Delete
                                </button>
                            </div>
                        </div>
                    </div>
                <?php endforeach; ?>
            </div>
        </div>
    </div>
</div>

<!-- Add Team Member Modal -->
<div class="modal fade" id="addTeamMemberModal" tabindex="-1" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Add Team Member</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            
            <!-- Tab Navigation -->
            <ul class="nav nav-tabs nav-fill" id="addTeamMemberTabs" role="tablist">
                <li class="nav-item" role="presentation">
                    <button class="nav-link active" id="new-user-tab" data-bs-toggle="tab" data-bs-target="#new-user-pane" type="button" role="tab" aria-controls="new-user-pane" aria-selected="true">Create New User</button>
                </li>
                <li class="nav-item" role="presentation">
                    <button class="nav-link" id="existing-user-tab" data-bs-toggle="tab" data-bs-target="#existing-user-pane" type="button" role="tab" aria-controls="existing-user-pane" aria-selected="false">Select Existing User</button>
                </li>
            </ul>
            
            <!-- Tab Content -->
            <div class="tab-content p-3" id="addTeamMemberTabContent">
                <!-- Create New User Tab -->
                <div class="tab-pane fade show active" id="new-user-pane" role="tabpanel" aria-labelledby="new-user-tab">
                    <form action="team_management.php" method="post">
                        <input type="hidden" name="action" value="add">
                        <div class="modal-body">
                            <div class="row">
                                <div class="col-md-6 mb-3">
                                    <label for="first_name" class="form-label">First Name</label>
                                    <input type="text" class="form-control" id="first_name" name="first_name" required>
                                </div>
                                <div class="col-md-6 mb-3">
                                    <label for="last_name" class="form-label">Last Name</label>
                                    <input type="text" class="form-control" id="last_name" name="last_name" required>
                                </div>
                            </div>
                            
                            <div class="row">
                                <div class="col-md-6 mb-3">
                                    <label for="email" class="form-label">Email</label>
                                    <input type="email" class="form-control" id="email" name="email" required>
                                </div>
                                <div class="col-md-6 mb-3">
                                    <label for="role" class="form-label">Role</label>
                                    <select class="form-select" id="role" name="role" required>
                                        <option value="">Select Role</option>
                                        <option value="director">Director</option>
                                        <option value="developer">Developer</option>
                                        <option value="instructor">Instructor</option>
                                    </select>
                                </div>
                            </div>
                            
                            <div class="mb-3">
                                <label for="designation" class="form-label">Designation/Title</label>
                                <input type="text" class="form-control" id="designation" name="designation" placeholder="e.g. Senior Web Developer">
                            </div>
                            
                            <div class="mb-3">
                                <label for="expertise" class="form-label">Areas of Expertise</label>
                                <input type="text" class="form-control" id="expertise" name="expertise" placeholder="e.g. HTML, CSS, JavaScript, PHP">
                                <small class="text-muted">Separate with commas</small>
                            </div>
                            
                            <div class="mb-3">
                                <label for="bio" class="form-label">Bio</label>
                                <textarea class="form-control" id="bio" name="bio" rows="4"></textarea>
                            </div>
                            
                            <div class="mb-3">
                                <label for="profile_image" class="form-label">Profile Image</label>
                                <input type="file" class="form-control" id="profile_image" name="profile_image">
                            </div>
                            
                            <div class="mb-3">
                                <label class="form-label">Social Media Links</label>
                                <div class="input-group mb-2">
                                    <span class="input-group-text"><i class="fab fa-facebook-f"></i></span>
                                    <input type="url" class="form-control" id="facebook" name="facebook" placeholder="Facebook Profile URL">
                                </div>
                                <div class="input-group mb-2">
                                    <span class="input-group-text"><i class="fab fa-twitter"></i></span>
                                    <input type="url" class="form-control" id="twitter" name="twitter" placeholder="Twitter Profile URL">
                                </div>
                                <div class="input-group mb-2">
                                    <span class="input-group-text"><i class="fab fa-linkedin-in"></i></span>
                                    <input type="url" class="form-control" id="linkedin" name="linkedin" placeholder="LinkedIn Profile URL">
                                </div>
                                <div class="input-group">
                                    <span class="input-group-text"><i class="fab fa-instagram"></i></span>
                                    <input type="url" class="form-control" id="instagram" name="instagram" placeholder="Instagram Profile URL">
                                </div>
                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
                            <button type="submit" class="btn btn-primary">Add Team Member</button>
                        </div>
                    </form>
                </div>
                
                <!-- Select Existing User Tab -->
                <div class="tab-pane fade" id="existing-user-pane" role="tabpanel" aria-labelledby="existing-user-tab">
                    <form action="team_management.php" method="post">
                        <input type="hidden" name="action" value="convert_existing">
                        <div class="modal-body">
                            <div class="mb-4">
                                <label for="existing_user_id" class="form-label">Select User</label>
                                <select class="form-select" id="existing_user_id" name="existing_user_id" required>
                                    <option value="">Select Existing User</option>
                                    <?php foreach ($existing_users as $user): ?>
                                    <option value="<?php echo $user['id']; ?>" 
                                            data-email="<?php echo htmlspecialchars($user['email']); ?>"
                                            data-username="<?php echo htmlspecialchars($user['username']); ?>">
                                        <?php echo htmlspecialchars($user['name']); ?> (<?php echo htmlspecialchars($user['email']); ?>)
                                    </option>
                                    <?php endforeach; ?>
                                </select>
                            </div>
                            
                            <div class="mb-3">
                                <label for="existing_role" class="form-label">Assign Role</label>
                                <select class="form-select" id="existing_role" name="role" required>
                                    <option value="">Select Role</option>
                                    <option value="director">Director</option>
                                    <option value="developer">Developer</option>
                                    <option value="instructor">Instructor</option>
                                </select>
                            </div>
                            
                            <div class="mb-3">
                                <label for="existing_designation" class="form-label">Designation/Title</label>
                                <input type="text" class="form-control" id="existing_designation" name="designation" placeholder="e.g. Senior Web Developer">
                            </div>
                            
                            <div class="mb-3">
                                <label for="existing_expertise" class="form-label">Areas of Expertise</label>
                                <input type="text" class="form-control" id="existing_expertise" name="expertise" placeholder="e.g. HTML, CSS, JavaScript, PHP">
                                <small class="text-muted">Separate with commas</small>
                            </div>
                            
                            <div class="mb-3">
                                <label for="existing_bio" class="form-label">Bio</label>
                                <textarea class="form-control" id="existing_bio" name="bio" rows="4"></textarea>
                            </div>
                            
                            <div class="mb-3">
                                <label class="form-label">Social Media Links</label>
                                <div class="input-group mb-2">
                                    <span class="input-group-text"><i class="fab fa-facebook-f"></i></span>
                                    <input type="url" class="form-control" id="existing_facebook" name="facebook" placeholder="Facebook Profile URL">
                                </div>
                                <div class="input-group mb-2">
                                    <span class="input-group-text"><i class="fab fa-twitter"></i></span>
                                    <input type="url" class="form-control" id="existing_twitter" name="twitter" placeholder="Twitter Profile URL">
                                </div>
                                <div class="input-group mb-2">
                                    <span class="input-group-text"><i class="fab fa-linkedin-in"></i></span>
                                    <input type="url" class="form-control" id="existing_linkedin" name="linkedin" placeholder="LinkedIn Profile URL">
                                </div>
                                <div class="input-group">
                                    <span class="input-group-text"><i class="fab fa-instagram"></i></span>
                                    <input type="url" class="form-control" id="existing_instagram" name="instagram" placeholder="Instagram Profile URL">
                                </div>
                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
                            <button type="submit" class="btn btn-primary">Assign as Team Member</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- Edit Team Member Modal -->
<div class="modal fade" id="editTeamMemberModal" tabindex="-1" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Edit Team Member</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <form action="team_management.php" method="post" enctype="multipart/form-data">
                <input type="hidden" name="action" value="update">
                <input type="hidden" name="user_id" id="edit_user_id">
                <div class="modal-body">
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label for="edit_first_name" class="form-label">First Name</label>
                            <input type="text" class="form-control" id="edit_first_name" name="first_name" required>
                        </div>
                        <div class="col-md-6 mb-3">
                            <label for="edit_last_name" class="form-label">Last Name</label>
                            <input type="text" class="form-control" id="edit_last_name" name="last_name" required>
                        </div>
                    </div>
                    
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label for="edit_email" class="form-label">Email</label>
                            <input type="email" class="form-control" id="edit_email" name="email" required>
                        </div>
                        <div class="col-md-6 mb-3">
                            <label for="edit_role" class="form-label">Role</label>
                            <select class="form-select" id="edit_role" name="role" required>
                                <option value="">Select Role</option>
                                <option value="director">Director</option>
                                <option value="developer">Developer</option>
                                <option value="instructor">Instructor</option>
                            </select>
                        </div>
                    </div>
                    
                    <div class="mb-3">
                        <label for="edit_designation" class="form-label">Designation/Title</label>
                        <input type="text" class="form-control" id="edit_designation" name="designation" placeholder="e.g. Senior Web Developer">
                    </div>
                    
                    <div class="mb-3">
                        <label for="edit_expertise" class="form-label">Areas of Expertise</label>
                        <input type="text" class="form-control" id="edit_expertise" name="expertise" placeholder="e.g. HTML, CSS, JavaScript, PHP">
                        <small class="text-muted">Separate with commas</small>
                    </div>
                    
                    <div class="mb-3">
                        <label for="edit_bio" class="form-label">Bio</label>
                        <textarea class="form-control" id="edit_bio" name="bio" rows="4"></textarea>
                    </div>
                    
                    <div class="mb-3">
                        <label for="edit_profile_image" class="form-label">Profile Image</label>
                        <input type="file" class="form-control" id="edit_profile_image" name="profile_image">
                        <div id="current_image_preview" class="mt-2"></div>
                    </div>
                    
                    <div class="mb-3">
                        <label class="form-label">Social Media Links</label>
                        <div class="input-group mb-2">
                            <span class="input-group-text"><i class="fab fa-facebook-f"></i></span>
                            <input type="url" class="form-control" id="edit_facebook" name="facebook" placeholder="Facebook Profile URL">
                        </div>
                        <div class="input-group mb-2">
                            <span class="input-group-text"><i class="fab fa-twitter"></i></span>
                            <input type="url" class="form-control" id="edit_twitter" name="twitter" placeholder="Twitter Profile URL">
                        </div>
                        <div class="input-group mb-2">
                            <span class="input-group-text"><i class="fab fa-linkedin-in"></i></span>
                            <input type="url" class="form-control" id="edit_linkedin" name="linkedin" placeholder="LinkedIn Profile URL">
                        </div>
                        <div class="input-group mb-2">
                            <span class="input-group-text"><i class="fab fa-instagram"></i></span>
                            <input type="url" class="form-control" id="edit_instagram" name="instagram" placeholder="Instagram Profile URL">
                        </div>
                    </div>
                    
                    <div class="mb-3">
                        <label for="edit_status" class="form-label">Status</label>
                        <select class="form-select" id="edit_status" name="status" required>
                            <option value="active">Active</option>
                            <option value="inactive">Inactive</option>
                        </select>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
                    <button type="submit" class="btn btn-primary">Update Team Member</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- Delete Team Member Modal -->
<div class="modal fade" id="deleteTeamMemberModal" tabindex="-1" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Confirm Team Member Removal</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <p>Are you sure you want to remove <span id="delete_member_name"></span> from the team?</p>
                <p class="text-info"><i class="fas fa-info-circle"></i> Their user account will remain intact with the same role and permissions, but they will no longer be shown in the team listing.</p>
            </div>
            <div class="modal-footer">
                <form action="team_management.php" method="post">
                    <input type="hidden" name="action" value="delete">
                    <input type="hidden" name="user_id" id="delete_user_id">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
                    <button type="submit" class="btn btn-warning">Remove from Team</button>
                </form>
            </div>
        </div>
    </div>
</div>

<style>
    .bg-orange {
        background: linear-gradient(135deg, #ff9500, #ff5e3a);
        color: white;
    }
    
    .bg-blue {
        background: linear-gradient(135deg, #3a7bd5, #00d2ff);
        color: white;
    }
    
    .bg-purple {
        background: linear-gradient(135deg, #6a11cb, #2575fc);
        color: white;
    }
    
    .team-member-img-container {
        height: 250px;
        overflow: hidden;
        position: relative;
        background-color: #f8f9fc;
    }
    
    .team-member-img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        transition: transform 0.3s ease;
    }
    
    .card:hover .team-member-img {
        transform: scale(1.05);
    }
    
    .card {
        transition: box-shadow 0.3s ease, transform 0.3s ease;
        border-radius: 10px;
        overflow: hidden;
    }
    
    .card:hover {
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
        transform: translateY(-5px);
    }
    
    .card-footer {
        background-color: rgba(0, 0, 0, 0.03);
        display: flex;
        justify-content: space-between;
        padding: 0.75rem 1.25rem;
    }
    
    .social-links {
        display: flex;
        gap: 10px;
    }
    
    .social-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        background-color: #f8f9fc;
        color: #666;
        transition: all 0.3s ease;
    }
    
    .social-icon:hover {
        transform: translateY(-3px);
    }
    
    .social-icon i.fa-facebook-f:hover {
        color: #3b5998;
    }
    
    .social-icon i.fa-twitter:hover {
        color: #1da1f2;
    }
    
    .social-icon i.fa-linkedin-in:hover {
        color: #0077b5;
    }
    
    .social-icon i.fa-instagram:hover {
        color: #e1306c;
    }
</style>

<script>
    document.addEventListener('DOMContentLoaded', function() {
        // File upload preview for new user
        if (document.getElementById('profile_image')) {
            document.getElementById('profile_image').addEventListener('change', function(e) {
                const file = e.target.files[0];
                if (file) {
                    const reader = new FileReader();
                    reader.onload = function(event) {
                        const imgPreview = document.createElement('img');
                        imgPreview.src = event.target.result;
                        imgPreview.style.maxWidth = '100%';
                        imgPreview.style.marginTop = '10px';
                        imgPreview.style.borderRadius = '5px';
                        
                        const previewContainer = document.getElementById('profile_image').parentNode;
                        const existingPreview = previewContainer.querySelector('img');
                        if (existingPreview) {
                            previewContainer.removeChild(existingPreview);
                        }
                        
                        previewContainer.appendChild(imgPreview);
                    };
                    reader.readAsDataURL(file);
                }
            });
        }
        
        // File upload preview for edit user
        if (document.getElementById('edit_profile_image')) {
            document.getElementById('edit_profile_image').addEventListener('change', function(e) {
                const file = e.target.files[0];
                if (file) {
                    const reader = new FileReader();
                    reader.onload = function(event) {
                        const imgPreview = document.createElement('img');
                        imgPreview.src = event.target.result;
                        imgPreview.style.maxWidth = '100%';
                        imgPreview.style.height = '150px';
                        imgPreview.style.objectFit = 'cover';
                        imgPreview.style.borderRadius = '5px';
                        
                        const previewContainer = document.getElementById('current_image_preview');
                        previewContainer.innerHTML = '';
                        previewContainer.appendChild(imgPreview);
                    };
                    reader.readAsDataURL(file);
                }
            });
        }
        
        // Fix for modal backdrop not being removed
        const fixBackdropIssue = () => {
            const modals = document.querySelectorAll('.modal');
            modals.forEach(modal => {
                modal.addEventListener('hidden.bs.modal', function() {
                    // Remove any lingering backdrops
                    const backdrops = document.querySelectorAll('.modal-backdrop');
                    backdrops.forEach(backdrop => {
                        backdrop.remove();
                    });
                    // Ensure body doesn't have modal-open class
                    document.body.classList.remove('modal-open');
                    document.body.style.overflow = '';
                    document.body.style.paddingRight = '';
                });
            });
            
            // Also add click handler to close buttons
            const closeButtons = document.querySelectorAll('[data-bs-dismiss="modal"]');
            closeButtons.forEach(button => {
                button.addEventListener('click', function() {
                    setTimeout(() => {
                        if (!document.querySelector('.modal.show')) {
                            // No visible modals, so clean up
                            const backdrops = document.querySelectorAll('.modal-backdrop');
                            backdrops.forEach(backdrop => {
                                backdrop.remove();
                            });
                            document.body.classList.remove('modal-open');
                            document.body.style.overflow = '';
                            document.body.style.paddingRight = '';
                        }
                    }, 300); // Wait for animation to complete
                });
            });
        };
        
        // Run the fix
        fixBackdropIssue();
        
        // Existing users dropdown handler
        if (document.getElementById('existing_user_id')) {
            document.getElementById('existing_user_id').addEventListener('change', function() {
                const selectedOption = this.options[this.selectedIndex];
                if (selectedOption.value) {
                    const email = selectedOption.getAttribute('data-email');
                    const username = selectedOption.getAttribute('data-username');
                    
                    // You can use this data if needed
                    console.log('Selected User Email:', email);
                    console.log('Selected User Username:', username);
                }
            });
        }
        
        // Make sure form enctype is set for file uploads
        const newUserForm = document.querySelector('#new-user-pane form');
        if (newUserForm) {
            newUserForm.setAttribute('enctype', 'multipart/form-data');
        }
        
        // Edit button click handler
        const editButtons = document.querySelectorAll('.edit-btn');
        editButtons.forEach(button => {
            button.addEventListener('click', function() {
                const id = this.getAttribute('data-id');
                const firstName = this.getAttribute('data-firstname');
                const lastName = this.getAttribute('data-lastname');
                const email = this.getAttribute('data-email');
                const role = this.getAttribute('data-role');
                const designation = this.getAttribute('data-designation');
                const expertise = this.getAttribute('data-expertise');
                const bio = this.getAttribute('data-bio');
                const facebook = this.getAttribute('data-facebook');
                const twitter = this.getAttribute('data-twitter');
                const linkedin = this.getAttribute('data-linkedin');
                const instagram = this.getAttribute('data-instagram');
                const status = this.getAttribute('data-status');
                const profileImage = this.getAttribute('data-profileimage');
                
                document.getElementById('edit_user_id').value = id;
                document.getElementById('edit_first_name').value = firstName;
                document.getElementById('edit_last_name').value = lastName;
                document.getElementById('edit_email').value = email;
                document.getElementById('edit_role').value = role;
                document.getElementById('edit_designation').value = designation || '';
                document.getElementById('edit_expertise').value = expertise || '';
                document.getElementById('edit_bio').value = bio || '';
                document.getElementById('edit_facebook').value = facebook || '';
                document.getElementById('edit_twitter').value = twitter || '';
                document.getElementById('edit_linkedin').value = linkedin || '';
                document.getElementById('edit_instagram').value = instagram || '';
                document.getElementById('edit_status').value = status;
                
                // Show current profile image preview if available
                if (profileImage) {
                    const imgPreview = document.createElement('img');
                    imgPreview.src = profileImage;
                    imgPreview.style.maxWidth = '100%';
                    imgPreview.style.height = '150px';
                    imgPreview.style.objectFit = 'cover';
                    imgPreview.style.borderRadius = '5px';
                    
                    const previewContainer = document.getElementById('current_image_preview');
                    previewContainer.innerHTML = '';
                    previewContainer.appendChild(imgPreview);
                }
            });
        });
        
        // Delete button click handler
        const deleteButtons = document.querySelectorAll('.delete-btn');
        deleteButtons.forEach(button => {
            button.addEventListener('click', function() {
                const id = this.getAttribute('data-id');
                const name = this.getAttribute('data-name');
                
                document.getElementById('delete_user_id').value = id;
                document.getElementById('delete_member_name').textContent = name;
            });
        });
        
        // Filter buttons click handler
        const filterButtons = document.querySelectorAll('.filter-btn');
        const teamCards = document.querySelectorAll('.team-card');
        
        filterButtons.forEach(button => {
            button.addEventListener('click', function() {
                const filter = this.getAttribute('data-filter');
                
                // Update active button
                filterButtons.forEach(btn => btn.classList.remove('active'));
                this.classList.add('active');
                
                // Filter cards
                teamCards.forEach(card => {
                    const role = card.getAttribute('data-role');
                    if (filter === 'all' || filter === role) {
                        card.style.display = '';
                    } else {
                        card.style.display = 'none';
                    }
                });
            });
        });
    });
</script>

<?php include 'includes/footer.php'; ?>