OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
/
groupchat
/
backup
/
backup
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/19/2025 10:07:13 AM
rwxrwxr-x
📄
bfunction.php
11.61 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
bgroup.php
14.44 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
bindex.php
26.59 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
create_group.php
1.03 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
dashboard.php
8.53 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
db_connect.php
614 bytes
05/19/2025 10:07:13 AM
rw-rw-r--
📄
delete_chat.php
369 bytes
05/19/2025 10:07:13 AM
rw-rw-r--
📄
delete_group.php
362 bytes
05/19/2025 10:07:13 AM
rw-rw-r--
📁
dump
-
05/19/2025 10:07:13 AM
rwxrwxr-x
📄
exit_group.php
404 bytes
05/19/2025 10:07:13 AM
rw-rw-r--
📄
function.php
12.33 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
group.php
19.26 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
index.php
27.94 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
memberSearch.php
1.32 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
register.php
5.08 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
sendreview.php
626 bytes
05/19/2025 10:07:13 AM
rw-rw-r--
📄
signin.php
5.52 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
signout.php
295 bytes
05/19/2025 10:07:13 AM
rw-rw-r--
📄
test.php
2 KB
05/19/2025 10:07:13 AM
rw-rw-r--
📄
test1.html
1.4 KB
11/28/2024 01:24:17 PM
rw-rw-r--
📄
test1.php
125 bytes
05/19/2025 10:07:13 AM
rw-rw-r--
📄
update_member.php
729 bytes
05/19/2025 10:07:13 AM
rw-rw-r--
📄
validate.logged.php
580 bytes
05/19/2025 10:07:13 AM
rw-rw-r--
Editing: group.php
Close
<?php include 'function.php'; include 'db_connect.php'; 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>"; ?> <meta charset="UTF-8"> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"> <style> .chat-box { flex: 1; padding: 10px; overflow-y: auto; /* Enable vertical scrollbar when content exceeds */ display: flex; flex-direction: column; } .chat-box::-webkit-scrollbar { display: none; /* Hide scrollbar for WebKit (Chrome, Safari, etc.) */ } .chat-box { -ms-overflow-style: none; /* Hide scrollbar for IE and Edge */ scrollbar-width: none; /* Hide scrollbar for Firefox */ } .incoming { max-width: 88%; margin: 10px; /* padding: 10px; */ background-color: #f0f0f0; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); font-family: Arial, sans-serif; color: #333; align-self: flex-start; padding: 6px 14px; margin-block: 5px; border-radius: 5px; } .message-input { display: flex; align-items: center; padding: 10px; border-top: 1px solid #ccc; } textarea { flex: 1; resize: none; padding: 8px; border: 1px solid #ccc; border-radius: 4px; margin-right: 10px; } .message-input button { padding: 8px 16px; background-color: #007bff; color: #fff; border: none; border-radius: 4px; cursor: pointer; transition: background-color 0.3s; } .message-input button:hover { background-color: #0056b3; } .message { border-radius: 8px; padding: 8px 12px; margin-bottom: 8px; max-width: 70%; } .group-heading { display: flex; justify-content: space-between; padding: 62px 20px 10px 20px; font-weight: 600; font-family: sans-serif; color: black; } .group-heading button { height: 30px; background-color: white; color: black; } .group-heading button:hover { height: 30px; background-color: #343a40; color: white; } .group-members-container { background-color: #fff; display: none; position: absolute; right: 0; min-width: 200px; width: fit-content; margin-top: 50px; margin-right: 40px; padding: 10px; border: 1px solid #ccc; z-index: 10; } @media screen and (max-width:540px) { .group-members-container { background-color: #fff; display: none; position: absolute; right: 0; min-width: 25px; width: 302px; margin-top: 50px; margin-right: 9px; padding: 10px; border: 1px solid #ccc; z-index: 10; } } .u-member-link { text-decoration: none; color: #333; display: block; padding: 8px; background-color: #f9f9f9; border-radius: 4px; transition: background-color 0.3s ease; } .u-member-link:hover { background-color: #e0e0e0; } .dateWithTime { font-size: 11px; color: #777; margin-top: 1px; } .nameWithTime { display: flex; column-gap: 5px; margin: 5px 0; } .Sendername { font-weight: bold; font-size: 12px; color: #555; } .incoming-text { font-size: 14px; font-weight: 300; color: #333; word-wrap: break-word; } .delete-chat button { padding: 0px 0px; background-color: #f0f0f0; color: darkgrey; border: none; } .delete-chat button:active { padding: 0px 0px; background-color: #f0f0f0; color: darkgrey; border: none; outline-color: white; } .delete-chat button:hover { width: 10px; height: auto; background-color: #f0f0f0; cursor: pointer; } /* .delete-chat button icon:hover{ color:black; } */ .btn-link:hover { color: #212529; text-decoration: underline; /* outline-color: white; */ } .btn-link:focus, .btn-link:active { outline-color: #f0f0f0; border-color: #f0f0f0; } .btn-link { color: darkgrey; outline-color: #212529; } .fa, .fas { font-weight: 700; } .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 */ } .chat-delete-option { position: absolute; top: 0; right: 0; margin: 6px 10px; } .chat-delete-option a { display: block; text-decoration: none; /* Removes default underline from link */ } .chat-delete-option .btn-link:active { /* Additional styles for the link if needed */ outline-color: red; } .chat-delete-option .fas.fa-ellipsis-v { /* Styles for the ellipsis icon */ outline-color: red; } /* Style for the delete button */ .delete-chat { position: absolute; right: -14px; top: 3px; z-index: 1; border-radius: 5px; background-color: white; border: 1px solid #ccc; padding: 4px 10px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); } /* Show delete button when hovering over chat-delete-option */ .chat-delete-option:hover+.delete-chat, .delete-chat:hover { display: block; } </style> <div class="post"> <div class="group-heading"> <h2><?php print_r($group_name); ?></h2> <button class="" id="toggleGroupButton" style="z-index:12"><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("<?= $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('<?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" oninput="toggleDivVisibility()" placeholder="Search by name..."> <div class="scrollable-list"> --> <input type="text" id="search-input1" placeholder="Search to add members..."> <div class="scrollable-list" style="display: none"> <?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" style="display:none"> <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 id="add_member_dyn" style="display:none" onclick="updateGroupDetails(<?php echo $group_id; ?>)">Add Members</button> </div> </div> <script> $(document).ready(function() { // $('#message-input').keydown(function(event){ // if (event.keyCode === 13) { // event.preventDefault(); // $('.message-input button').click(); // } // }); $('#message-input').on('keydown', function(event) { var textBox = $(this); // Check for Enter key (keyCode 13) without Shift key if (event.keyCode === 13 && !event.shiftKey) { event.preventDefault(); $('.message-input button').click(); // Trigger button click } // Check for Shift + Enter key combination else if (event.keyCode === 13 && event.shiftKey) { // Insert newline character into the text box var startPos = this.selectionStart; var endPos = this.selectionEnd; var value = textBox.val(); textBox.val(value.substring(0, startPos) + "\n" + value.substring(endPos)); this.selectionStart = this.selectionEnd = startPos + 1; event.preventDefault(); } }); $('.incoming').on('touchstart', function(e) { var message = $(this).find('.incoming-text'); console.log(message); var pressTimer = setTimeout(function() { showDeleteOption(message); }, 1000); // 2000 milliseconds = 2 seconds $(this).data('pressTimer', pressTimer); // Store timer in element data }); $('.incoming').on('touchend touchcancel', function(e) { clearTimeout($(this).data('pressTimer')); // Clear timer when touch ends or cancels }); function showDeleteOption(message) { var $message_id = message.data('message_id'); console.log($message_id); if (confirm("Delete this message?")) { // Send an AJAX request to delete the message from the server delete_chat($message_id); } } }); // jQuery equivalent of the original JavaScript $(document).ready(function() { $('.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 console.log(searchText); // 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(); }); }); </script> <script> function redirectTo(url) { window.open(url, '_blank'); } function updateGroupDetails($group_id) { var selectedMembers = $('#update-members-hidden').val(); console.log(selectedMembers); $.ajax({ type: 'POST', url: 'update_member.php', data: { selected_members: selectedMembers, group_id: $group_id }, success: function(response) { // Handle the server response if needed console.log(response); // Example: Show a success message or update UI alert('Members added successfully.'); // Optionally, reload or update the member list after addition // window.location.reload(); }, error: function(xhr, status, error) { // Handle errors console.error(error); alert('Error adding members. Please try again.'); } }); } function delete_chat($message_id) { $.ajax({ type: 'POST', url: 'delete_chat.php', data: { message_id: $message_id }, success: function(response) { // Handle the server response if needed console.log(response); // Example: Show a success message or update UI alert('Deleted message successfully.'); // Optionally, reload or update the member list after addition // window.location.reload(); }, error: function(xhr, status, error) { // Handle errors console.error(error); alert('Error adding members. Please try again.'); } }); } </script> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function() { $('.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() { $('#search-input1').on('input', function() { toggleDivVisibility(); }); function toggleDivVisibility() { var inputValue = $('#search-input1').val().trim(); var div = $('.scrollable-list'); if (inputValue === '') { div.hide(); } else { div.show(); $('.selected-options').show(); $('#add_member_dyn').show(); } } }); </script>