OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
groupchat
/
backup
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/31/2024 11:08:59 AM
rwxr-xr-x
📄
b_group.php
13.6 KB
08/31/2024 11:08:18 AM
rw-r--r--
📄
b_index.php
25.62 KB
08/31/2024 11:08:19 AM
rw-r--r--
📁
backup
-
08/31/2024 11:08:48 AM
rwxr-xr-x
📄
broadcast.php
13.62 KB
08/31/2024 11:08:19 AM
rw-r--r--
📄
create_broadcast.php
9.83 KB
08/31/2024 11:08:19 AM
rw-r--r--
📄
create_group.php
8.11 KB
08/31/2024 11:08:19 AM
rw-r--r--
📁
dump
-
08/31/2024 11:08:40 AM
rwxr-xr-x
📄
group.php
12.96 KB
08/31/2024 11:08:19 AM
rw-r--r--
📁
inc
-
08/31/2024 11:08:46 AM
rwxr-xr-x
📄
index.php
4.38 KB
08/31/2024 11:08:19 AM
rw-r--r--
📁
trash
-
08/31/2024 11:08:48 AM
rwxr-xr-x
Editing: broadcast.php
Close
<?php include '../inc/validate.logged.php'; include 'inc/function.php'; include 'inc/db_connect.php'; $user_id = $gUserId; $user_name = $gUserName; if (isset($_POST['user_id'])) { $user_id = $_POST['user_id']; } else { $user_id = "9001"; } if (isset($_POST['broadcast_id'])) { $broadcast_id = $_POST['broadcast_id']; } else { $broadcast_id = "1001"; } if (isset($_POST['user_name'])) { $user_name = $_POST['user_name']; } else { $user_name = find_user($conn, $user_id); } $chat = []; $chat = display_broadcast_messages($conn, $broadcast_id); $broadcast_name = display_broadcast_name($conn, $broadcast_id); $admin_access = verify_admin($conn, $broadcast_id, $user_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><?= $broadcast_name ?> | Broadcast • 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><?= $broadcast_name ?></h2> <button class="" id="toggleGroupButton"><i class="fas fa-ellipsis-v"></i></button> </div> </div> <div class="chat-box" id="chat-box"> <?php 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> <? if ($admin_access) { ?> <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("broadcast","<?= $message_id ?>")'> <i class="fas fa-trash-alt"></i> </button> </div> <? } ?> </div> <? } ?> </div> <? if ($admin_access) { ?> <div class="message-input"> <textarea id="message-input" placeholder="Type your message..."></textarea> <!-- <button onclick="sendBroadcast('<?= $broadcast_id; ?>', '<?= $user_id; ?>', '<?= $user_name; ?>')">Send</button> --> <button onclick="sendMessage('broadcast', '<?= $broadcast_id; ?>', '<?= $user_id; ?>', '<?= $user_name; ?>')">Send</button> </div> <? } else { ?> <div class="alert alert-info mx-5" role="alert"> Only <b>Admin</b> of the broadcast can send the messages </div> <? } ?> <div id="groupMembersContainer" class="group-members-container"> <p> <h5>Broadcast members:</h5> </p> <?php $broadcast_members = display_broadcast_members($conn, $broadcast_id); if ($broadcast_members) { ?> <ul> <?php foreach ($broadcast_members as $member) : ?> <li><?php echo $member['user_name']; ?>, <?php echo $member['user_email']; ?></li> <?php endforeach; } else { ?> <li>No Broadcast Members</li> <?php } ?> </ul> <? if ($admin_access) { ?> <p> <h5>Add members:</h5> </p> <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 = broadcast_members_to_add($conn, $broadcast_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"> <h5>Selected Members:</h5> <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="updateBroadcastDetails(<?php echo $broadcast_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 $toggleBroadcastButton = $('#toggleGroupButton'); const $broadcastMembersContainer = $('#groupMembersContainer'); // Add click event listener to the button $toggleBroadcastButton.on('click', function() { // Toggle the visibility of the group members div $broadcastMembersContainer.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 $('#broadcast-btn-<?= $broadcast_id ?>').css({ 'color': '#eee' }); }); </script> </html>