From 7a8fbc3defd4610913d394306625b7c0cc3d9070 Mon Sep 17 00:00:00 2001 From: Matt Huntington Date: Tue, 5 Sep 2017 13:45:27 -0400 Subject: [PATCH] users add username, generates list for admin --- public/admin.html | 6 ++++++ public/js/admin.js | 10 ++++++++++ public/js/index.js | 10 ++++++++++ server.js | 7 ++++++- 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/public/admin.html b/public/admin.html index eb0f54e..31b2b98 100644 --- a/public/admin.html +++ b/public/admin.html @@ -9,6 +9,12 @@
Number of Current Students
0
+
Roster
+
+
    + +
+
Complete Count
0
diff --git a/public/js/admin.js b/public/js/admin.js index a0beaba..aebf5b0 100644 --- a/public/js/admin.js +++ b/public/js/admin.js @@ -11,6 +11,16 @@ socket.on('prompt completed', function (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)=>{ event.preventDefault(); document.querySelector('#current-complete').innerHTML = 0; diff --git a/public/js/index.js b/public/js/index.js index 004357a..192e422 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -1,16 +1,26 @@ const socket = io.connect('/'); 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) { if(prompt !== document.querySelector('dd').innerHTML){ button.removeAttribute("disabled"); document.querySelector('dd').innerHTML = prompt; } }); + button.addEventListener('click', (event)=>{ button.setAttribute("disabled",true); socket.emit('prompt completed'); }); + window.addEventListener("beforeunload", (e)=>{ + socket.emit('user dropped', username); if(button.getAttribute("disabled")){ socket.emit('remove completed'); } diff --git a/server.js b/server.js index 24959e0..9fafe4e 100644 --- a/server.js +++ b/server.js @@ -3,7 +3,7 @@ const app = express(); const PORT = process.env.PORT || 3000; const http = require('http').Server(app); const socketserver = require('socket.io')(http); - +const usernames = []; app.use(express.static('public')); let connectedUsers = 0; @@ -12,6 +12,7 @@ let currentPrompt = "Nothing Yet"; socketserver.on('connection', (socket)=>{ connectedUsers++; socketserver.emit('users connected', connectedUsers); + socketserver.emit('username list', usernames); socketserver.emit('prompt sent', currentPrompt); socket.on('disconnect', ()=>{ connectedUsers--; @@ -30,6 +31,10 @@ socketserver.on('connection', (socket)=>{ currentComplete--; socketserver.emit('prompt completed', currentComplete); }); + socket.on('user joined', (username)=>{ + usernames.push(username); + socketserver.emit('username list', usernames); + }); }); http.listen(PORT);