OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
/
groupchat
/
backup
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/19/2025 10:07:13 AM
rwxrwxr-x
📄
b_group.php
13.6 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
b_index.php
25.62 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📁
backup
-
05/19/2025 10:07:13 AM
rwxrwxr-x
📄
broadcast.php
13.62 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
create_broadcast.php
9.83 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
create_group.php
8.11 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📁
dump
-
05/19/2025 10:07:13 AM
rwxrwxr-x
📄
group.php
12.96 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📁
inc
-
05/19/2025 10:07:13 AM
rwxrwxr-x
📄
index.php
4.38 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📁
trash
-
05/19/2025 10:07:13 AM
rwxrwxr-x
Editing: group.php
Close
<?php include '../inc/validate.logged.php'; include 'inc/function.php'; include 'inc/db_connect.php'; $user_id = $gUserId; $user_name = $gUserName; $groups = []; // Fetching the group name from the database $groups = display_groups($conn, $user_id); if (isset($_POST['user_id'])) { $user_id = $_POST['user_id']; } else { $user_id = "9001"; } if (isset($_POST['group_id'])) { $group_id = $_POST['group_id']; } else { $group_id = "1001"; } if (isset($_POST['user_name'])) { $user_name = $_POST['user_name']; } else { $user_name = find_user($conn, $user_id); } $chat = []; $chat = display_messages($conn, $group_id); $group_name = display_group_name($conn, $group_id); // echo $user_id . "<br>" . $user_name . "<br>" . $group_id . "<br>"; ?> <!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="../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"> <h2><?php print_r($group_name); ?></h2> <button class="" id="toggleGroupButton"><i class="fas fa-ellipsis-v"></i></button> </div> <!-- <img src="https://knoblycream.com/grfx/logo.png" alt="Knobly Cream"> --> </div> <div class="chat-box" id="chat-box"> <?php // Sample messages array (could be fetched from database or API) 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']); // echo "<div class='incoming'>$messageText<br>$user<br>$time</div>"; ?> <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','<?php echo $group_id; ?>', '<?php echo $user_id; ?>', '<?php echo $user_name; ?>')">Send</button> </div> <div id="groupMembersContainer" class="group-members-container"> <!-- Group members content here --> <p>Group members:</p> <?php $group_members = display_group_members($conn, $group_id); if ($group_members) { ?> <ul> <?php foreach ($group_members as $member) : ?> <li><?php echo $member['user_name']; ?>, <?php echo $member['user_email']; ?></li> <?php endforeach; } else { ?> <li>No Group Members</li> <?php } ?> </ul> <div> <input type="text" id="search-input1" placeholder="Search by name..."> <div class="scrollable-list"> <?php // List of members (you can fetch from database dynamically if needed) $members = members_to_add($conn, $group_id); foreach ($members as $member) { echo '<div class="scrollable-list-item">'; echo '<a href="#" class="u-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>'; echo '</div>'; } ?> </div> <div class="selected-options"> <h3>Selected Members:</h3> <div id="update-members-info"> <p>No members selected.</p> </div> <input type="hidden" name="selected_members" id="update-members-hidden" value=""> </div> <button onclick="updateGroupDetails(<?php echo $group_id; ?>)">Add Members</button> </div> </div> </div> </main> </div> </div> </body> <script> // jQuery equivalent of the original JavaScript $(document).ready(function() { $('.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.u-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 } }); } }); function updateSelectedMembersInfo() { const selectedMemberNames = $('.u-member-link.selected').map(function() { return $(this).data('user_name'); }).get(); $('#update-members-info').html(selectedMemberNames.length > 0 ? selectedMemberNames.map(member => '<p>' + member + '</p>').join('') : '<p>No members selected.</p>' ); // Update hidden input with selected member IDs const selectedMembersIds = $('.u-member-link.selected').map(function() { return $(this).data('user_id'); }).get(); $('#update-members-hidden').val(selectedMembersIds.join(',')); } // Click handler for member links $('.u-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 = $('#update-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) $('#update-members-info').on('click', 'p', function(event) { event.preventDefault(); const selectedMember = $(this).text().trim(); $('.u-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(); }); $('.chat-delete-option').hover( function() { $(this).next('.delete-chat').fadeIn(); }, function() { $(this).next('.delete-chat').stop(true, true).fadeOut(); } ); $('.delete-chat').hover( function() { $(this).stop(true, true).fadeIn(); }, function() { $(this).stop(true, true).fadeOut(); } ); }); </script> <script> $(document).ready(function() { // Add CSS styles using jQuery $('#group-btn-<?= $group_id ?>').css({ 'color': '#eee' }); }); </script> </html>