-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathall_users.js
100 lines (84 loc) · 3.17 KB
/
all_users.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
document.addEventListener('DOMContentLoaded', () => {
getAllUsers();
document.getElementById('dashboardButton').addEventListener('click', function() {
window.location.href = 'dashboard.html';
});
});
document.getElementById('searchButton').addEventListener('click', function() {
const searchTerm = document.getElementById('searchInput').value;
searchUsers(searchTerm);
});
function getAllUsers() {
fetch('http://127.0.0.1:5000/get_all_users')
.then(response => response.json())
.then(users => displayUsers(users))
.catch(error => console.error('Error:', error));
}
function displayUsers(users) {
const container = document.getElementById('usersContainer');
container.innerHTML = ''; // Clear existing users
users.forEach(user => {
const userDiv = document.createElement('div');
userDiv.className = 'user-div';
userDiv.innerHTML = `
<div class="user-info">
<p>Name: ${user.first_name} ${user.last_name}</p>
<p>Email: ${user.email}</p>
<p>Phone: ${user.phone_number || 'N/A'}</p>
<p>Degree: ${user.degree}</p>
<p>Major: ${user.major}</p>
<p>College: ${user.college}</p>
</div>
`;
// Add profile picture if available
if (user.profile_picture) {
const img = document.createElement('img');
img.src = `data:image/jpeg;base64,${user.profile_picture}`;
img.style.width = '100px';
img.style.height = '100px';
userDiv.appendChild(img);
}
container.appendChild(userDiv);
});
}
function searchUsers(searchTerm) {
fetch('http://127.0.0.1:5000/search_users', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ search: searchTerm })
})
.then(response => response.json())
.then(data => {
displaySearchResults(data);
})
.catch(error => {
console.error('Error:', error);
});
}
function displaySearchResults(users) {
// Clear the full user list when displaying search results
const allUsersContainer = document.getElementById('usersContainer');
allUsersContainer.innerHTML = '';
const resultsContainer = document.getElementById('searchResults');
resultsContainer.innerHTML = ''; // Clear previous results
users.forEach(user => {
const userDiv = document.createElement('div');
userDiv.innerHTML = `Name: ${user.first_name} ${user.last_name}`;
if (user.profile_picture) {
const img = document.createElement('img');
img.src = `data:image/jpeg;base64,${user.profile_picture}`;
img.style.width = '100px';
img.style.height = '100px';
userDiv.appendChild(img);
}
// Add follow button
const currentUserId = localStorage.getItem('userID');
const followButton = document.createElement('button');
followButton.innerText = 'Follow';
followButton.onclick = () => followUser(currentUserId, user.user_id);
userDiv.appendChild(followButton);
resultsContainer.appendChild(userDiv);
});
}