diff --git a/scoreboard/controllers/timer.js b/scoreboard/controllers/timer.js index 9016837..0ce830b 100644 --- a/scoreboard/controllers/timer.js +++ b/scoreboard/controllers/timer.js @@ -13,7 +13,7 @@ function pause() {}; function reset() {}; function end() {}; function print() {}; - +function getValues() {}; function start() { if(isPaused == true && durationLeft.asSeconds() != 0) { // Only allow start if timer ist currently paused and durationLeft is not 0 seconds @@ -61,6 +61,15 @@ function print() { return minutes + ":" + seconds } +function getValues() { + return { + isPaused: isPaused, + duration: duration, + durationLeft: durationLeft, + print: print() + }; +} + module.exports = { - duration, durationLeft, isPaused, start, pause, reset, end, print -}; \ No newline at end of file + duration, durationLeft, isPaused, start, pause, reset, end, print, getValues +} \ No newline at end of file diff --git a/scoreboard/public/javascripts/admin.js b/scoreboard/public/javascripts/admin.js index 93680e1..0e01a27 100644 --- a/scoreboard/public/javascripts/admin.js +++ b/scoreboard/public/javascripts/admin.js @@ -1,3 +1,20 @@ +let wss = "ws://" + window.location.hostname + ":3001" // Build socketio endpoint from window.location +const socket = io(wss); // Connect to socketio server + +socket.on('connected', (message) => { // Once client is connected to websocket + console.log("Connected"); + initialUpdate() // Request important values to update admin frontend +}); + +socket.on('timerDurationLeft', (message) => { + console.log(message) // Log durationLeft in client console + document.getElementById("durationLeft").innerHTML = message; // Display durationLeft in corresponding html Element +}); + +socket.on('timerEnded', (message) => { + initialUpdate(); // Update admin frontend to set correct buttonstatus +}); + function updateFrontend(values) { values.duration = moment.duration(values.duration) // Create moment object from ISO 8601 string values.durationLeft = moment.duration(values.durationLeft) // Create moment object from ISO 8601 string diff --git a/scoreboard/public/javascripts/index.js b/scoreboard/public/javascripts/index.js index bc30483..8d0cd74 100644 --- a/scoreboard/public/javascripts/index.js +++ b/scoreboard/public/javascripts/index.js @@ -11,5 +11,5 @@ socket.on('timerDurationLeft', (message) => { }); socket.on('timerEnded', (message) => { - document.getElementById("durationLeft").innerHTML = "STOP"; // Display "STOP" in same html element as the duration + document.getElementById("durationLeft").innerHTML = "ENDE"; // Display "STOP" in same html element as the duration }); \ No newline at end of file diff --git a/scoreboard/routes/admin.js b/scoreboard/routes/admin.js index 70fbbcd..b130da8 100644 --- a/scoreboard/routes/admin.js +++ b/scoreboard/routes/admin.js @@ -1,7 +1,7 @@ var express = require('express'); var router = express.Router(); -let timer = require('../controllers/timer'); +var timer = require('../controllers/timer'); // Express router entpoint to start the timer router.get('/timerStart', function(req, res, next) { @@ -36,7 +36,9 @@ router.get('/timerGetValues', function(req, res, next) { res.json(timer.getValues()); // Respond with important values for frontend }); - res.render('admin'); +// Express router endpoint to switch the score after halftime +router.get('/scoreSwitch', function(req, res, next) { + res.render('admin'); }); /* GET home page. */