membres roles canaux affichage
This commit is contained in:
parent
79d65ef265
commit
7aa3b7d910
@ -43,10 +43,22 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
|||||||
$stmt->execute([$server_id, $server_id, $server_id, $server_id]);
|
$stmt->execute([$server_id, $server_id, $server_id, $server_id]);
|
||||||
$members = $stmt->fetchAll();
|
$members = $stmt->fetchAll();
|
||||||
|
|
||||||
|
$filtered_members = null;
|
||||||
|
$channel_id = $_GET['channel_id'] ?? 0;
|
||||||
|
if ($channel_id) {
|
||||||
|
$filtered_members = [];
|
||||||
|
foreach ($members as $m) {
|
||||||
|
if (Permissions::canViewChannel($m['id'], $channel_id)) {
|
||||||
|
$filtered_members[] = $m;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
echo json_encode([
|
echo json_encode([
|
||||||
'success' => true,
|
'success' => true,
|
||||||
'roles' => $roles,
|
'roles' => $roles,
|
||||||
'members' => $members,
|
'members' => $members,
|
||||||
|
'filtered_members' => $filtered_members,
|
||||||
'permissions_list' => [
|
'permissions_list' => [
|
||||||
['value' => 1, 'name' => 'View Channels'],
|
['value' => 1, 'name' => 'View Channels'],
|
||||||
['value' => 2, 'name' => 'Send Messages'],
|
['value' => 2, 'name' => 'Send Messages'],
|
||||||
|
|||||||
@ -1204,18 +1204,17 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
membersTabBtn?.addEventListener('click', loadRoles); // Both tabs need roles data
|
membersTabBtn?.addEventListener('click', loadRoles); // Both tabs need roles data
|
||||||
|
|
||||||
async function loadRoles() {
|
async function loadRoles() {
|
||||||
if (rolesList) rolesList.innerHTML = '<div class="text-center p-3 text-muted">Loading...</div>';
|
|
||||||
if (membersList) membersList.innerHTML = '<div class="text-center p-3 text-muted">Loading...</div>';
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const resp = await fetch(`api_v1_roles.php?server_id=${activeServerId}`);
|
const channelIdParam = window.activeChannelId ? `&channel_id=${window.activeChannelId}` : '';
|
||||||
|
const resp = await fetch(`api_v1_roles.php?server_id=${activeServerId}${channelIdParam}`);
|
||||||
const data = await resp.json();
|
const data = await resp.json();
|
||||||
if (data.success) {
|
if (data.success) {
|
||||||
serverRoles = data.roles;
|
serverRoles = data.roles;
|
||||||
serverPermissions = data.permissions_list;
|
serverPermissions = data.permissions_list;
|
||||||
if (rolesList) renderRoles(data.roles);
|
if (rolesList) renderRoles(data.roles);
|
||||||
if (membersList) renderMembers(data.members);
|
if (membersList) renderMembers(data.members);
|
||||||
updateGlobalUI(data.members);
|
// Use filtered members for sidebar, all members for colors
|
||||||
|
updateGlobalUI(data.filtered_members || data.members, data.members);
|
||||||
}
|
}
|
||||||
} catch (e) { console.error(e); }
|
} catch (e) { console.error(e); }
|
||||||
}
|
}
|
||||||
@ -1230,19 +1229,20 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateGlobalUI(members) {
|
function updateGlobalUI(sidebarMembers, allMembers = null) {
|
||||||
|
if (!allMembers) allMembers = sidebarMembers;
|
||||||
// Update members sidebar
|
// Update members sidebar
|
||||||
const sidebar = document.querySelector('.members-sidebar');
|
const sidebar = document.querySelector('.members-sidebar');
|
||||||
if (sidebar) {
|
if (sidebar) {
|
||||||
const countEl = sidebar.querySelector('div[style*="text-transform: uppercase"]');
|
const countEl = sidebar.querySelector('div[style*="text-transform: uppercase"]');
|
||||||
if (countEl) countEl.textContent = `Members — ${members.length}`;
|
if (countEl) countEl.textContent = `Members — ${sidebarMembers.length}`;
|
||||||
|
|
||||||
// We need to keep the "Members - X" div and replace everything else
|
// We need to keep the "Members - X" div and replace everything else
|
||||||
const header = sidebar.firstElementChild;
|
const header = sidebar.firstElementChild;
|
||||||
sidebar.innerHTML = '';
|
sidebar.innerHTML = '';
|
||||||
sidebar.appendChild(header);
|
sidebar.appendChild(header);
|
||||||
|
|
||||||
members.forEach(m => {
|
sidebarMembers.forEach(m => {
|
||||||
const item = document.createElement('div');
|
const item = document.createElement('div');
|
||||||
item.className = 'channel-item member-item';
|
item.className = 'channel-item member-item';
|
||||||
item.dataset.userId = m.id;
|
item.dataset.userId = m.id;
|
||||||
@ -1273,7 +1273,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
// Update chat colors
|
// Update chat colors
|
||||||
document.querySelectorAll('.message-author').forEach(authorEl => {
|
document.querySelectorAll('.message-author').forEach(authorEl => {
|
||||||
const username = authorEl.childNodes[0].textContent.trim();
|
const username = authorEl.childNodes[0].textContent.trim();
|
||||||
const member = members.find(m => m.username === username);
|
const member = allMembers.find(m => m.username === username);
|
||||||
if (member) {
|
if (member) {
|
||||||
authorEl.style.color = member.role_color || 'inherit';
|
authorEl.style.color = member.role_color || 'inherit';
|
||||||
// Try to update icon if it exists or add it if it doesn't
|
// Try to update icon if it exists or add it if it doesn't
|
||||||
|
|||||||
@ -200,7 +200,14 @@ if ($is_dm_view) {
|
|||||||
WHERE sm.server_id = ?
|
WHERE sm.server_id = ?
|
||||||
");
|
");
|
||||||
$stmt->execute([$active_server_id, $active_server_id, $active_server_id, $active_server_id]);
|
$stmt->execute([$active_server_id, $active_server_id, $active_server_id, $active_server_id]);
|
||||||
$members = $stmt->fetchAll();
|
$all_server_members = $stmt->fetchAll();
|
||||||
|
|
||||||
|
$members = [];
|
||||||
|
foreach($all_server_members as $m) {
|
||||||
|
if (Permissions::canViewChannel($m['id'], $active_channel_id)) {
|
||||||
|
$members[] = $m;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Fetch all server roles
|
// Fetch all server roles
|
||||||
$stmt = db()->prepare("SELECT * FROM roles WHERE server_id = ? ORDER BY position DESC");
|
$stmt = db()->prepare("SELECT * FROM roles WHERE server_id = ? ORDER BY position DESC");
|
||||||
|
|||||||
30
requests.log
30
requests.log
@ -94,3 +94,33 @@
|
|||||||
2026-02-16 00:25:16 - GET /index.php?server_id=1&channel_id=6 - POST: []
|
2026-02-16 00:25:16 - GET /index.php?server_id=1&channel_id=6 - POST: []
|
||||||
2026-02-16 00:25:18 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
2026-02-16 00:25:18 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
2026-02-16 00:25:27 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
2026-02-16 00:25:27 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
||||||
|
2026-02-16 00:28:38 - GET / - POST: []
|
||||||
|
2026-02-16 00:28:56 - GET /?fl_project=38443 - POST: []
|
||||||
|
2026-02-16 00:29:17 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
||||||
|
2026-02-16 00:29:44 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:29:47 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
||||||
|
2026-02-16 00:30:05 - GET /index.php?server_id=1&channel_id=11 - POST: []
|
||||||
|
2026-02-16 00:30:37 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:30:39 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
||||||
|
2026-02-16 00:30:55 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:30:57 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
||||||
|
2026-02-16 00:30:59 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
||||||
|
2026-02-16 00:31:02 - GET /index.php?server_id=1&channel_id=6 - POST: []
|
||||||
|
2026-02-16 00:31:04 - GET /index.php?server_id=1&channel_id=1 - POST: []
|
||||||
|
2026-02-16 00:31:06 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
||||||
|
2026-02-16 00:31:09 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:31:11 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:31:13 - GET /index.php?server_id=1&channel_id=6 - POST: []
|
||||||
|
2026-02-16 00:31:15 - GET /index.php?server_id=1&channel_id=1 - POST: []
|
||||||
|
2026-02-16 00:31:16 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:31:59 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:32:08 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:32:15 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:32:19 - GET /index.php?server_id=1&channel_id=6 - POST: []
|
||||||
|
2026-02-16 00:32:21 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
||||||
|
2026-02-16 00:32:45 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
||||||
|
2026-02-16 00:34:01 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:34:31 - GET /index.php?server_id=1&channel_id=2 - POST: []
|
||||||
|
2026-02-16 00:34:34 - GET /index.php?server_id=1&channel_id=15 - POST: []
|
||||||
|
2026-02-16 00:34:36 - GET /index.php?server_id=1&channel_id=6 - POST: []
|
||||||
|
2026-02-16 00:34:39 - GET /index.php?server_id=1&channel_id=1 - POST: []
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user