Merge pull request #3 from natnat-mc/feat/reset
feat: add possibility to reset the entire app
This commit is contained in:
@@ -20,8 +20,33 @@ let anyObjections = false;
|
||||
const teamsList = ["Players","Chasers"]
|
||||
const teamsScore = [0,0];
|
||||
let currentTeamNumber = 0;
|
||||
let sockets = []
|
||||
|
||||
async function resetApp() {
|
||||
console.log("resetting app")
|
||||
io.emit("resetApp")
|
||||
Object.keys(options).forEach(x => delete options[x])
|
||||
userMap.clear()
|
||||
buzzInfo.splice(0, buzzInfo.length)
|
||||
idkList.splice(0, buzzInfo.length)
|
||||
Object.keys(userMap).forEach(x => delete userMap[x])
|
||||
Object.keys(userInfo).forEach(x => delete userInfo[x])
|
||||
anyObjections = false
|
||||
teamsList.splice(0, buzzInfo.length, "Players", "Chasers")
|
||||
teamsScore.splice(0, teamsScore.length, 0, 0)
|
||||
currentTeamNumber = 0
|
||||
|
||||
const oldSockets = sockets
|
||||
sockets = []
|
||||
|
||||
await new Promise(ok => setTimeout(ok, 1000))
|
||||
oldSockets.forEach(x => x.disconnect(true))
|
||||
oldSockets.splice(0, oldSockets.length)
|
||||
}
|
||||
|
||||
io.on("connection", (socket) => {
|
||||
console.log("a user connected");
|
||||
sockets.push(socket)
|
||||
|
||||
socket.on("disconnect", () => {
|
||||
console.log("user disconnected");
|
||||
@@ -135,6 +160,11 @@ app.get("/browserFunctions.js", (request, response) => {
|
||||
response.sendFile("/browserFunctions.js", {root: __dirname });
|
||||
});
|
||||
|
||||
app.post("/reset", (request, response) => {
|
||||
resetApp()
|
||||
response.redirect("/")
|
||||
});
|
||||
|
||||
//all files in these folders can be accessed with a GET request of the filename
|
||||
let assetFolders = ["styles","pages","images","images/buzzers","audio","fonts"];
|
||||
assetFolders.forEach((folderName) => {
|
||||
@@ -144,4 +174,4 @@ assetFolders.forEach((folderName) => {
|
||||
response.sendFile(folderName+"/"+fileName, {root: __dirname });
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
+8
-1
@@ -5,7 +5,7 @@
|
||||
<link rel="stylesheet" href="styleMain.css">
|
||||
<script src="browserFunctions.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<script src="https:/socket.io/socket.io.js"></script>
|
||||
<script src="/socket.io/socket.io.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var socket = io();
|
||||
@@ -59,6 +59,10 @@
|
||||
socket.on("clearObjectionToClient", () => {
|
||||
clearObjectionToClient();
|
||||
});
|
||||
|
||||
socket.on("resetApp", () => {
|
||||
location.href = "/";
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
@@ -92,5 +96,8 @@
|
||||
<ul></ul>
|
||||
</div>
|
||||
</div>
|
||||
<form action="/reset" method="POST">
|
||||
<button type="submit">Reset the whole app (disconnects everyone)</button>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+6
-1
@@ -5,7 +5,7 @@
|
||||
<link rel="stylesheet" href="styleMain.css">
|
||||
<script src="browserFunctions.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<script src="https:/socket.io/socket.io.js"></script>
|
||||
<script src="/socket.io/socket.io.js"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
@@ -265,6 +265,11 @@
|
||||
buzzerSoundsOn = !buzzerSoundsOn;
|
||||
console.log("buzzerSoundsOn: "+buzzerSoundsOn);
|
||||
}
|
||||
|
||||
socket.on("resetApp", () => {
|
||||
socket.disconnect(true);
|
||||
location.href = "/";
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
Reference in New Issue
Block a user