MMCT TEAM
Server IP : 217.21.85.138  /  Your IP : 216.73.216.103
Web Server : LiteSpeed
System : Linux in-mum-web906.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64
User : u915722082 ( 915722082)
PHP Version : 7.4.33
Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF
Directory (0755) :  /home/u915722082/public_html/rasi/../projects/config/../admin/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/u915722082/public_html/rasi/../projects/config/../admin/chat.php
<?php
session_start();

if (!isset($_SESSION['admin_id'])) {
    header("Location: login.php");
    exit;
}

require_once '../config/config.php';
require_once '../config/db.php';

$current_user_id = $_SESSION['admin_id'];
$current_user_name = $_SESSION['user_name'] ?? 'User';
$current_user_role = $_SESSION['role'] ?? 'Employee';

// Get all active users for chat list
$users_query = "SELECT uid, fname, role FROM tbl_user WHERE status = 'active' AND uid != ? ORDER BY fname ASC";
$users_stmt = mysqli_prepare($con, $users_query);
mysqli_stmt_bind_param($users_stmt, "i", $current_user_id);
mysqli_stmt_execute($users_stmt);
$users_result = mysqli_stmt_get_result($users_stmt);

// Get chat rooms
$rooms_query = "SELECT * FROM tbl_chat_rooms ORDER BY created_at DESC";
$rooms_result = mysqli_query($con, $rooms_query);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <base href="../" />
    <title>Live Chat - TDS Admin Hub</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700" />
    <link href="assets/plugins/global/plugins.bundle.css" rel="stylesheet" type="text/css" />
    <link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
    
    <style>
    .chat-container {
        height: calc(100vh - 300px);
        min-height: 500px;
    }
    .chat-messages {
        height: calc(100% - 80px);
        overflow-y: auto;
        padding: 20px;
        background: #f8f9fa;
    }
    .chat-input-area {
        padding: 15px;
        background: white;
        border-top: 1px solid #e4e6ef;
    }
    .message-bubble {
        max-width: 70%;
        margin-bottom: 15px;
        clear: both;
    }
    .message-bubble.sent {
        float: right;
    }
    .message-bubble.received {
        float: left;
    }
    .message-content {
        padding: 10px 15px;
        border-radius: 10px;
        word-wrap: break-word;
    }
    .message-bubble.sent .message-content {
        background: #3699ff;
        color: white;
    }
    .message-bubble.received .message-content {
        background: white;
        color: #3f4254;
    }
    .message-time {
        font-size: 11px;
        color: #a1a5b7;
        margin-top: 5px;
    }
    .message-sender {
        font-size: 12px;
        font-weight: 600;
        margin-bottom: 5px;
        color: #181c32;
    }
    .online-indicator {
        width: 8px;
        height: 8px;
        background: #50cd89;
        border-radius: 50%;
        display: inline-block;
        margin-right: 5px;
    }
    .user-list-item {
        padding: 10px 15px;
        cursor: pointer;
        border-bottom: 1px solid #e4e6ef;
        transition: background 0.2s;
    }
    .user-list-item:hover {
        background: #f1faff;
    }
    .user-list-item.active {
        background: #f1faff;
        border-left: 3px solid #3699ff;
    }
    </style>
</head>

<body id="kt_app_body" data-kt-app-layout="dark-sidebar" data-kt-app-header-fixed="true" 
      data-kt-app-sidebar-enabled="true" data-kt-app-sidebar-fixed="true" 
      data-kt-app-sidebar-hoverable="true" data-kt-app-sidebar-push-header="true" 
      data-kt-app-sidebar-push-toolbar="true" data-kt-app-sidebar-push-footer="true" 
      data-kt-app-toolbar-enabled="true" class="app-default">
    
    <script>
        var defaultThemeMode = "light"; 
        var themeMode; 
        if (document.documentElement) { 
            if (document.documentElement.hasAttribute("data-bs-theme-mode")) { 
                themeMode = document.documentElement.getAttribute("data-bs-theme-mode"); 
            } else { 
                if (localStorage.getItem("data-bs-theme") !== null) { 
                    themeMode = localStorage.getItem("data-bs-theme"); 
                } else { 
                    themeMode = defaultThemeMode; 
                } 
            } 
            if (themeMode === "system") { 
                themeMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; 
            } 
            document.documentElement.setAttribute("data-bs-theme", themeMode); 
        }
    </script>
    
    <div class="d-flex flex-column flex-root app-root" id="kt_app_root">
        <div class="app-page flex-column flex-column-fluid" id="kt_app_page">
            
            <?php include 'header.php'; ?>
            
            <div class="app-wrapper flex-column flex-row-fluid" id="kt_app_wrapper">
                
                <!-- Sidebar -->
                <div id="kt_app_sidebar" class="app-sidebar flex-column">
                    
                    <div class="app-sidebar-logo px-6" id="kt_app_sidebar_logo">
                        <a href="admin/dashboard.php">
                            <img alt="Logo" src="assets/media/logos/LOGO.png" class="h-25px app-sidebar-logo-default" />
                        </a>
                        
                        <div id="kt_app_sidebar_toggle" class="app-sidebar-toggle btn btn-icon btn-shadow btn-sm btn-color-muted btn-active-color-primary h-30px w-30px position-absolute top-50 start-100 translate-middle rotate">
                            <i class="ki-duotone ki-black-left-line fs-3 rotate-180">
                                <span class="path1"></span>
                                <span class="path2"></span>
                            </i>
                        </div>
                    </div>
                    
                    <div class="app-sidebar-menu overflow-hidden flex-column-fluid">
                        <div class="app-sidebar-wrapper hover-scroll-overlay-y my-5">
                            <div class="menu menu-column menu-rounded menu-sub-indention px-3">

                                <div class="menu-item">
                                    <div class="menu-content">
                                        <span class="menu-heading fw-bold text-uppercase fs-7">TDS Admin Hub</span>
                                    </div>
                                </div>

                                <div class="menu-item">
                                    <a class="menu-link" href="admin/dashboard.php">
                                        <span class="menu-icon">
                                            <i class="ki-duotone ki-element-11 fs-2">
                                                <span class="path1"></span>
                                                <span class="path2"></span>
                                                <span class="path3"></span>
                                                <span class="path4"></span>
                                            </i>
                                        </span>
                                        <span class="menu-title">Dashboard</span>
                                    </a>
                                </div>

                                <?php if ($current_user_role !== 'Employee'): ?>
                                <div class="menu-item">
                                    <a class="menu-link" href="admin/users.php">
                                        <span class="menu-icon">
                                            <i class="ki-duotone ki-address-book fs-2">
                                                <span class="path1"></span>
                                                <span class="path2"></span>
                                                <span class="path3"></span>
                                            </i>
                                        </span>
                                        <span class="menu-title">User Management</span>
                                    </a>
                                </div>

                                <div class="menu-item">
                                    <a class="menu-link" href="admin/tasks.php">
                                        <span class="menu-icon">
                                            <i class="ki-duotone ki-calendar-tick fs-2">
                                                <span class="path1"></span>
                                                <span class="path2"></span>
                                                <span class="path3"></span>
                                                <span class="path4"></span>
                                                <span class="path5"></span>
                                                <span class="path6"></span>
                                            </i>
                                        </span>
                                        <span class="menu-title">Task Assignment</span>
                                    </a>
                                </div>

                                <div class="menu-item">
                                    <a class="menu-link" href="admin/meetings.php">
                                        <span class="menu-icon">
                                            <i class="ki-duotone ki-calendar-8 fs-2">
                                                <span class="path1"></span>
                                                <span class="path2"></span>
                                                <span class="path3"></span>
                                                <span class="path4"></span>
                                                <span class="path5"></span>
                                                <span class="path6"></span>
                                            </i>
                                        </span>
                                        <span class="menu-title">Meetings</span>
                                    </a>
                                </div>

                                <div class="menu-item">
                                    <a class="menu-link" href="admin/team_report.php">
                                        <span class="menu-icon">
                                            <i class="ki-duotone ki-chart-simple fs-2">
                                                <span class="path1"></span>
                                                <span class="path2"></span>
                                                <span class="path3"></span>
                                                <span class="path4"></span>
                                            </i>
                                        </span>
                                        <span class="menu-title">Team Report</span>
                                    </a>
                                </div>

                                <div class="menu-item">
                                    <a class="menu-link" href="admin/project_summary.php">
                                        <span class="menu-icon">
                                            <i class="ki-duotone ki-abstract-26 fs-2">
                                                <span class="path1"></span>
                                                <span class="path2"></span>
                                            </i>
                                        </span>
                                        <span class="menu-title">Project Summary</span>
                                    </a>
                                </div>
                                <?php endif; ?>

                                <!-- Chat - ACTIVE -->
                                <div class="menu-item">
                                    <a class="menu-link active" href="admin/chat.php">
                                        <span class="menu-icon">
                                            <i class="ki-duotone ki-message-text-2 fs-2">
                                                <span class="path1"></span>
                                                <span class="path2"></span>
                                                <span class="path3"></span>
                                            </i>
                                        </span>
                                        <span class="menu-title">Live Chat</span>
                                    </a>
                                </div>

                                <?php if ($current_user_role === 'Employee'): ?>
                                <div class="menu-item">
                                    <a class="menu-link" href="admin/logout.php">
                                        <span class="menu-icon">
                                            <i class="ki-duotone ki-entrance-left fs-2 text-danger">
                                                <span class="path1"></span>
                                                <span class="path2"></span>
                                            </i>
                                        </span>
                                        <span class="menu-title text-danger">Logout</span>
                                    </a>
                                </div>
                                <?php endif; ?>

                            </div>
                        </div>
                    </div>
                    
                </div>
                
                <!-- Main Content -->
                <div class="app-main flex-column flex-row-fluid" id="kt_app_main">
                    <div class="d-flex flex-column flex-column-fluid">
                        
                        <div id="kt_app_toolbar" class="app-toolbar py-3 py-lg-6">
                            <div id="kt_app_toolbar_container" class="app-container container-xxl d-flex flex-stack">
                                <div class="page-title d-flex flex-column justify-content-center flex-wrap me-3">
                                    <h1 class="page-heading d-flex text-gray-900 fw-bold fs-3 flex-column my-0">
                                        Live Chat
                                    </h1>
                                    <ul class="breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0 pt-1">
                                        <li class="breadcrumb-item text-muted">
                                            <a href="admin/dashboard.php" class="text-muted text-hover-primary">Home</a>
                                        </li>
                                        <li class="breadcrumb-item">
                                            <span class="bullet bg-gray-500 w-5px h-2px"></span>
                                        </li>
                                        <li class="breadcrumb-item text-muted">Chat</li>
                                    </ul>
                                </div>
                            </div>
                        </div>
                        
                        <div id="kt_app_content" class="app-content flex-column-fluid">
                            <div id="kt_app_content_container" class="app-container container-xxl">
                                
                                <div class="card">
                                    <div class="card-body p-0">
                                        <div class="row g-0">
                                            
                                            <!-- Chat Rooms & Users List -->
                                            <div class="col-md-3 border-end">
                                                <div class="p-5 border-bottom">
                                                    <h3 class="mb-0">Chats</h3>
                                                </div>
                                                
                                                <div class="p-3">
                                                    <h6 class="text-muted text-uppercase fs-8 mb-3">Chat Rooms</h6>
                                                    <div id="roomsList">
                                                        <div class="user-list-item active" onclick="selectRoom('general', 'General Chat')">
                                                            <div class="d-flex align-items-center">
                                                                <div class="symbol symbol-35px me-3">
                                                                    <span class="symbol-label bg-light-primary">
                                                                        <i class="ki-duotone ki-message-text-2 fs-3 text-primary">
                                                                            <span class="path1"></span>
                                                                            <span class="path2"></span>
                                                                            <span class="path3"></span>
                                                                        </i>
                                                                    </span>
                                                                </div>
                                                                <div>
                                                                    <div class="fw-bold">General Chat</div>
                                                                    <div class="text-muted fs-7">All team members</div>
                                                                </div>
                                                            </div>
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>
                                            
                                            <!-- Chat Messages Area -->
                                            <div class="col-md-9">
                                                <div class="chat-container">
                                                    <!-- Chat Header -->
                                                    <div class="p-5 border-bottom">
                                                        <div class="d-flex align-items-center">
                                                            <div class="symbol symbol-40px me-3">
                                                                <span class="symbol-label bg-light-primary">
                                                                    <i class="ki-duotone ki-message-text-2 fs-3 text-primary">
                                                                        <span class="path1"></span>
                                                                        <span class="path2"></span>
                                                                        <span class="path3"></span>
                                                                    </i>
                                                                </span>
                                                            </div>
                                                            <div>
                                                                <h4 class="mb-0" id="chatRoomName">General Chat</h4>
                                                                <div class="text-muted fs-7">
                                                                    <span class="online-indicator"></span>
                                                                    <span id="onlineCount">Loading...</span>
                                                                </div>
                                                            </div>
                                                        </div>
                                                    </div>
                                                    
                                                    <!-- Messages -->
                                                    <div class="chat-messages" id="chatMessages">
                                                        <div class="text-center text-muted py-10">
                                                            <i class="ki-duotone ki-message-text-2 fs-3x mb-3">
                                                                <span class="path1"></span>
                                                                <span class="path2"></span>
                                                                <span class="path3"></span>
                                                            </i>
                                                            <p>Loading messages...</p>
                                                        </div>
                                                    </div>
                                                    
                                                    <!-- Input Area -->
                                                    <div class="chat-input-area">
                                                        <form id="chatForm" class="d-flex">
                                                            <input type="text" 
                                                                   class="form-control form-control-solid me-3" 
                                                                   id="messageInput" 
                                                                   placeholder="Type your message..." 
                                                                   autocomplete="off"
                                                                   required />
                                                            <button type="submit" class="btn btn-primary">
                                                                <i class="ki-duotone ki-send fs-2">
                                                                    <span class="path1"></span>
                                                                    <span class="path2"></span>
                                                                </i>
                                                                Send
                                                            </button>
                                                        </form>
                                                    </div>
                                                </div>
                                            </div>
                                            
                                        </div>
                                    </div>
                                </div>
                                
                            </div>
                        </div>
                        
                    </div>
                    
                    <div id="kt_app_footer" class="app-footer">
                        <div class="app-container container-fluid d-flex flex-column flex-md-row flex-center flex-md-stack py-3">
                            <div class="text-gray-900 order-2 order-md-1">
                                <span class="text-muted fw-semibold me-1">2024&copy;</span>
                                <a href="https://thedotstudios.com/" target="_blank" class="text-gray-800 text-hover-primary">
                                    Copyright All rights reserved | Made with <span class="fa fa-heart text-danger"></span> 
                                    <b>by TheDotStudios.</b>
                                </a>
                            </div>
                        </div>
                    </div>
                    
                </div>
            </div>
        </div>
    </div>
    
    <!-- Scripts -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="assets/plugins/global/plugins.bundle.js"></script>
    <script src="assets/js/scripts.bundle.js"></script>
    
    <!-- Firebase SDK -->
    <script src="https://www.gstatic.com/firebasejs/10.7.1/firebase-app-compat.js"></script>
    <script src="https://www.gstatic.com/firebasejs/10.7.1/firebase-database-compat.js"></script>
    
    <script>
    // ✅ Firebase Configuration (Replace with your own config)
const firebaseConfig = {
  apiKey: "AIzaSyDfycMOFrE5-z-yTyFiNA1cLKCgn6G3hEY",
  authDomain: "projects-aa300.firebaseapp.com",
  databaseURL: "https://projects-aa300-default-rtdb.firebaseio.com",  // ✅ ADD THIS LINE!
  projectId: "projects-aa300",
  storageBucket: "projects-aa300.firebasestorage.app",
  messagingSenderId: "1018429343204",
  appId: "1:1018429343204:web:e8801e0726af72662333f1",
  measurementId: "G-7Z67HPKRVH"
};
    
    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);
    const database = firebase.database();
    
    // Current user info
    const currentUserId = <?php echo $current_user_id; ?>;
    const currentUserName = "<?php echo $current_user_name; ?>";
    const currentUserRole = "<?php echo $current_user_role; ?>";
    
    let currentRoom = 'general';
    
    // Select chat room
    function selectRoom(roomId, roomName) {
        currentRoom = roomId;
        document.getElementById('chatRoomName').textContent = roomName;
        loadMessages();
        
        // Update active state
        document.querySelectorAll('.user-list-item').forEach(item => {
            item.classList.remove('active');
        });
        event.currentTarget.classList.add('active');
    }
    
    // Load messages
    function loadMessages() {
        const messagesRef = database.ref('messages/' + currentRoom);
        
        document.getElementById('chatMessages').innerHTML = '';
        
        messagesRef.on('value', (snapshot) => {
            const messages = snapshot.val();
            const messagesDiv = document.getElementById('chatMessages');
            messagesDiv.innerHTML = '';
            
            if (messages) {
                Object.keys(messages).forEach(key => {
                    const msg = messages[key];
                    displayMessage(msg);
                });
                
                // Scroll to bottom
                messagesDiv.scrollTop = messagesDiv.scrollHeight;
            } else {
                messagesDiv.innerHTML = `
                    <div class="text-center text-muted py-10">
                        <i class="ki-duotone ki-message-text-2 fs-3x mb-3">
                            <span class="path1"></span>
                            <span class="path2"></span>
                            <span class="path3"></span>
                        </i>
                        <p>No messages yet. Start the conversation!</p>
                    </div>`;
            }
        });
        
        // Update online count
        updateOnlineCount();
    }
    
    // Display message
    function displayMessage(msg) {
        const messagesDiv = document.getElementById('chatMessages');
        const isSent = msg.userId == currentUserId;
        
        const messageHtml = `
            <div class="message-bubble ${isSent ? 'sent' : 'received'}">
                ${!isSent ? `<div class="message-sender">${msg.userName} <span class="badge badge-light-${msg.userRole === 'CEO' ? 'danger' : (msg.userRole === 'Manager' ? 'warning' : 'info')}">${msg.userRole}</span></div>` : ''}
                <div class="message-content">${escapeHtml(msg.message)}</div>
                <div class="message-time ${isSent ? 'text-end' : ''}">${formatTime(msg.timestamp)}</div>
            </div>
        `;
        
        messagesDiv.insertAdjacentHTML('beforeend', messageHtml);
    }
    
    // Send message
    document.getElementById('chatForm').addEventListener('submit', function(e) {
        e.preventDefault();
        
        const messageInput = document.getElementById('messageInput');
        const message = messageInput.value.trim();
        
        if (message) {
            const messagesRef = database.ref('messages/' + currentRoom);
            const newMessageRef = messagesRef.push();
            
            newMessageRef.set({
                userId: currentUserId,
                userName: currentUserName,
                userRole: currentUserRole,
                message: message,
                timestamp: firebase.database.ServerValue.TIMESTAMP
            });
            
            messageInput.value = '';
        }
    });
    
    // Update online presence
    function updateOnlineCount() {
        const presenceRef = database.ref('presence/' + currentRoom + '/' + currentUserId);
        
        presenceRef.set({
            userId: currentUserId,
            userName: currentUserName,
            timestamp: firebase.database.ServerValue.TIMESTAMP
        });
        
        presenceRef.onDisconnect().remove();
        
        // Count online users
        database.ref('presence/' + currentRoom).on('value', (snapshot) => {
            const count = snapshot.numChildren();
            document.getElementById('onlineCount').textContent = count + ' online';
        });
    }
    
    // Format timestamp
    function formatTime(timestamp) {
        const date = new Date(timestamp);
        const now = new Date();
        const diffMs = now - date;
        const diffMins = Math.floor(diffMs / 60000);
        
        if (diffMins < 1) return 'Just now';
        if (diffMins < 60) return diffMins + ' mins ago';
        if (diffMins < 1440) return Math.floor(diffMins / 60) + ' hours ago';
        
        return date.toLocaleDateString() + ' ' + date.toLocaleTimeString();
    }
    
    // Escape HTML
    function escapeHtml(text) {
        const div = document.createElement('div');
        div.textContent = text;
        return div.innerHTML;
    }
    
    // Initialize
    loadMessages();
    </script>
    
</body>
</html>

MMCT - 2023