users add username, generates list for admin

master
Matt Huntington 8 years ago
parent c5f677b1d4
commit 7a8fbc3def

@ -9,6 +9,12 @@
<dl> <dl>
<dt>Number of Current Students</dt> <dt>Number of Current Students</dt>
<dd id="num-users">0</dd> <dd id="num-users">0</dd>
<dt>Roster</dt>
<dd id="roster">
<ul>
</ul>
</dd>
<dt>Complete Count</dt> <dt>Complete Count</dt>
<dd id="current-complete">0</dd> <dd id="current-complete">0</dd>
</dl> </dl>

@ -11,6 +11,16 @@ socket.on('prompt completed', function (data) {
document.querySelector('#current-complete').innerHTML = data; document.querySelector('#current-complete').innerHTML = data;
}); });
socket.on('username list', function (usernames) {
const roster = document.querySelector('ul');
roster.innerHTML = "";
for(user of usernames){
const newLi = document.createElement('li');
newLi.innerHTML = user;
roster.appendChild(newLi);
}
});
document.querySelector('form').addEventListener('submit', (event)=>{ document.querySelector('form').addEventListener('submit', (event)=>{
event.preventDefault(); event.preventDefault();
document.querySelector('#current-complete').innerHTML = 0; document.querySelector('#current-complete').innerHTML = 0;

@ -1,16 +1,26 @@
const socket = io.connect('/'); const socket = io.connect('/');
const button = document.querySelector('button'); const button = document.querySelector('button');
let username;
while(!username){
username = prompt("Enter a username for this session");
socket.emit('user joined', username);
}
socket.on('prompt sent', function (prompt) { socket.on('prompt sent', function (prompt) {
if(prompt !== document.querySelector('dd').innerHTML){ if(prompt !== document.querySelector('dd').innerHTML){
button.removeAttribute("disabled"); button.removeAttribute("disabled");
document.querySelector('dd').innerHTML = prompt; document.querySelector('dd').innerHTML = prompt;
} }
}); });
button.addEventListener('click', (event)=>{ button.addEventListener('click', (event)=>{
button.setAttribute("disabled",true); button.setAttribute("disabled",true);
socket.emit('prompt completed'); socket.emit('prompt completed');
}); });
window.addEventListener("beforeunload", (e)=>{ window.addEventListener("beforeunload", (e)=>{
socket.emit('user dropped', username);
if(button.getAttribute("disabled")){ if(button.getAttribute("disabled")){
socket.emit('remove completed'); socket.emit('remove completed');
} }

@ -3,7 +3,7 @@ const app = express();
const PORT = process.env.PORT || 3000; const PORT = process.env.PORT || 3000;
const http = require('http').Server(app); const http = require('http').Server(app);
const socketserver = require('socket.io')(http); const socketserver = require('socket.io')(http);
const usernames = [];
app.use(express.static('public')); app.use(express.static('public'));
let connectedUsers = 0; let connectedUsers = 0;
@ -12,6 +12,7 @@ let currentPrompt = "Nothing Yet";
socketserver.on('connection', (socket)=>{ socketserver.on('connection', (socket)=>{
connectedUsers++; connectedUsers++;
socketserver.emit('users connected', connectedUsers); socketserver.emit('users connected', connectedUsers);
socketserver.emit('username list', usernames);
socketserver.emit('prompt sent', currentPrompt); socketserver.emit('prompt sent', currentPrompt);
socket.on('disconnect', ()=>{ socket.on('disconnect', ()=>{
connectedUsers--; connectedUsers--;
@ -30,6 +31,10 @@ socketserver.on('connection', (socket)=>{
currentComplete--; currentComplete--;
socketserver.emit('prompt completed', currentComplete); socketserver.emit('prompt completed', currentComplete);
}); });
socket.on('user joined', (username)=>{
usernames.push(username);
socketserver.emit('username list', usernames);
});
}); });
http.listen(PORT); http.listen(PORT);

Loading…
Cancel
Save