Merge pull request #3 from natnat-mc/feat/reset

feat: add possibility to reset the entire app
This commit is contained in:
2023-12-28 23:37:01 +01:00
committed by GitHub
3 changed files with 45 additions and 3 deletions
+31 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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>