OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
groupchat
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
11/28/2024 11:03:35 AM
rwxrwxr-x
📄
b_group.php
13.6 KB
09/02/2024 12:32:22 PM
rw-r--r--
📄
b_index.php
25.62 KB
09/02/2024 12:32:22 PM
rw-r--r--
📁
backup
-
08/31/2024 11:08:47 AM
rwxr-xr-x
📄
broadcast.php
15.87 KB
09/02/2024 12:32:22 PM
rw-r--r--
📄
create_broadcast.php
9.65 KB
09/02/2024 12:32:22 PM
rw-r--r--
📄
create_group.php
7.94 KB
09/02/2024 12:32:22 PM
rw-r--r--
📁
dump
-
08/31/2024 11:08:57 AM
rwxr-xr-x
📄
group.php
13.21 KB
09/02/2024 12:32:22 PM
rw-r--r--
📁
inc
-
09/02/2024 12:32:22 PM
rwxr-xr-x
📄
index.php
4.21 KB
09/02/2024 12:32:22 PM
rw-r--r--
📄
join_now.php
7.77 KB
09/02/2024 12:32:22 PM
rw-r--r--
📄
testing.php
3.32 KB
09/02/2024 12:32:22 PM
rw-r--r--
📁
trash
-
08/31/2024 11:09:01 AM
rwxr-xr-x
Editing: group.php
Close
<? include '../inc/validate.logged.php'; include 'inc/function.php'; include 'inc/db_connect.php'; if (isset($_POST['group_id'])) { $group_id = $_POST['group_id']; } $chat = []; $chat = display_messages($conn, $group_id); $group_name = display_group_name($conn, $group_id); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title><?= $group_name ?> | Groups • Knobly Cream</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <!-- Font Awesome CSS --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.0.0/animate.min.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css"> <link rel="stylesheet" href="../inc/fontawesome/css/all.min.css" /> <link rel="stylesheet" href="../inc/magnific-popup.css" /> <link rel="stylesheet" href="../inc/style.css" /> <link rel="stylesheet" href="../inc/genai_style.css" /> <link rel="stylesheet" href="inc/style.css"> <link rel="icon" type="image/x-icon" href="/img/logo.ico"> <script src="../inc/jquery.magnific-popup.min.js"></script> <script src="../inc/common.js"></script> <script src="../inc/genai_func.js"></script> <script src="inc/script.js"></script> <style> .incoming { position: relative; /* Ensure the parent div is positioned */ padding-right: 30px; /* Space for the fixed icon */ margin-bottom: 10px; /* Optional: Adjust spacing between incoming messages */ } </style> </head> <body class="sb-nav-fixed"> <? include 'inc/navbar.php' ?> <div id="layoutSidenav"> <? include 'inc/sidebar.php' ?> <div id="layoutSidenav_content"> <main> <div id="panelContent" class="container-fluid"></div> <div class="chat-message"> <div class="post"> <div class="group-heading"> <div style="display: flex;"> <img id='image_icon' src="<?= display_image($conn, 'group', $group_id) ?>" alt=""> <h2><?= $group_name ?></h2> </div> <button id="toggleGroupButton"><i class="fas fa-ellipsis-v"></i></button> <button id="scroll-chat-up" style="right: 20px; top: 50px; position: absolute; "> <i class="fa-solid fa-arrow-up"></i> </button> <button id="scroll-chat-down" style="right: 20px;position: absolute;bottom: 100px;"> <i class="fa-solid fa-arrow-down"></i> </button> </div> <!-- <img src="https://knoblycream.com/grfx/logo.png" alt="Knobly Cream"> --> </div> <div class="chat-box" id="chat-box"> <? foreach ($chat as $message) { $messageText = replace_urls_with_links(htmlspecialchars($message['message'])); $time = htmlspecialchars($message['time']); $user = htmlspecialchars_decode($message['user_name']); $message_id = htmlspecialchars_decode($message['message_id']); ?> <div class="incoming"> <div class="incoming-text" data-message_id="<?= $message_id ?>"> <?= $messageText ?> </div> <div class="nameWithTime" style="display: flex; column-gap: 5px;"> <div class="Sendername"><?= $user ?></div> <div class="dateWithTime"><?= $time ?></div> </div> <div class="chat-delete-option"> <span class="btn-link"><i class="fas fa-ellipsis-v"></i></span> </div> <div class="delete-chat" style="display: none;"> <button class="btn-link" onclick='delete_chat("group", <?= $message_id ?>)'> <i class="fas fa-trash-alt"></i> </button> </div> </div> <? } ?> </div> <div class="message-input"> <textarea id="message-input" placeholder="Type your message..."></textarea> <button onclick="sendMessage('group','<?= $group_id ?>', '<?= $gUserId ?>', '<?= $gUserName ?>')">Send</button> </div> <div id="groupMembersContainer" class="group-members-container"> <div> <h5><b>Group Description:</b></h5> <p style="padding-left: 3vw; padding-right: 3vw; max-width: 40vw;"><?= display_description($conn, 'group', $group_id) ?></p> </div> <!-- Group members content here --> <p> <h5><b>Group members:</b></h5> </p> <? $group_members = display_group_members($conn, $group_id); if ($group_members) { ?> <ul> <? foreach ($group_members as $member) : ?> <li><?= $member['user_name'] ?>, <?= $member['user_email'] ?></li> <? endforeach; } else { ?> <li>No Group Members</li> <? } ?> </ul> <div> <input type="text" id="search-input1" placeholder="Search by name..."> <div class="scrollable-list"> <? // List of members (you can fetch from database dynamically if needed) $members = members_to_add($conn, $group_id); foreach ($members as $member) { ?> <div class="scrollable-list-item"> <a href="#" class="member-link" data-user_id="<?= htmlspecialchars($member['user_id']) ?>" data-user_name="<?= htmlspecialchars($member['user_name']) ?>"><?= htmlspecialchars($member['user_name']) ?>, <?= htmlspecialchars($member['user_email']) ?></a> </div> <? } ?> </div> <div class="selected-options"> <h5><b>Selected Members:</b></h5> <div id="selected-members-info"> <p>No members selected.</p> </div> <input type="hidden" name="selected_members" id="selected-members-hidden" value=""> </div> <button onclick="updateGroupDetails(<?= $group_id; ?>)">Add Members</button> <button onclick="copyInviteLink('group',<?= $group_id ?>)">Invite link</button> </div> </div> </div> </main> </div> </div> </body> <script> // jQuery equivalent of the original JavaScript $(document).ready(function() { var $chatBox = $('#chat-box'); $chatBox.scrollTop($chatBox[0].scrollHeight); $('.scrollable-list').hide(); $('.dateWithTime').each(function() { var utcTimeString = $(this).text().trim(); // Get UTC time string var utcDate = new Date(utcTimeString + ' UTC'); // Create Date object from UTC time var localDate = utcDate.toLocaleString(); // Convert to local time // Update the text content of the element to show local time $(this).text(localDate); }); $('#search-input1').on('input', function() { var searchText = $(this).val().trim().toLowerCase(); // Get input value and normalize // Check if the search text is empty if (searchText === '') { $('.scrollable-list').hide(); // Hide the div if search text is empty } else { $('.scrollable-list').show(); // Show the div if search text is not empty // Iterate over each div with class scrollable-list-item $('div.scrollable-list-item').each(function() { var memberName = $(this).find('a.member-link').text().trim().toLowerCase(); // Get member name // Check if member name contains the search text if (memberName.includes(searchText)) { $(this).show(); // Show the div if it matches } else { $(this).hide(); // Hide the div if it does not match } }); } }); // Click handler for member links $('.member-link').on('click', function(event) { event.preventDefault(); $(this).toggleClass('selected'); updateSelectedMembersInfo(); }); // Submit handler for create group form $('#create-group-form').on('submit', function(event) { var json_data = $('#selected-members-hidden').val(); event.preventDefault(); // Prevent default form submission // Submit the form programmatically this.submit(); // This refers to the form element }); // Click handler for selected members info (to remove selection) $('#selected-members-info').on('click', 'p', function(event) { event.preventDefault(); const selectedMember = $(this).text().trim(); $('.member-link').each(function() { if ($(this).data('user_name') === selectedMember) { $(this).removeClass('selected'); return false; // Exit the loop once found } }); updateSelectedMembersInfo(); // Update display and hidden input }); // Get references to the button and the div const $toggleGroupButton = $('#toggleGroupButton'); const $groupMembersContainer = $('#groupMembersContainer'); // Add click event listener to the button $toggleGroupButton.on('click', function() { // Toggle the visibility of the group members div $groupMembersContainer.toggle(); }); // Event delegation for hover effect on .chat-delete-option $(document).on('mouseenter', '.chat-delete-option', function() { $(this).next('.delete-chat').stop(true, true).fadeIn(); }).on('mouseleave', '.chat-delete-option', function() { $(this).next('.delete-chat').stop(true, true).fadeOut(); }); // Event delegation for hover effect on .delete-chat $(document).on('mouseenter', '.delete-chat', function() { $(this).stop(true, true).fadeIn(); }).on('mouseleave', '.delete-chat', function() { $(this).stop(true, true).fadeOut(); }); // Add CSS styles using jQuery $('#group-btn-<?= $group_id ?>').css({ 'color': '#eee' }); $('#scroll-chat-up').click(function() { $('#chat-box').animate({ scrollTop: 0 }, 500); // 500ms for smooth scroll to top }); $('#scroll-chat-down').click(function() { var $chatBox = $('#chat-box'); $('#chat-box').animate({ scrollTop: $chatBox[0].scrollHeight }, 500); // 500ms for smooth scroll to bottom }); }); </script> </html>