diff --git a/scoreboard/controllers/score.js b/scoreboard/controllers/score.js
index 825fc8f..870f1e4 100644
--- a/scoreboard/controllers/score.js
+++ b/scoreboard/controllers/score.js
@@ -17,8 +17,7 @@ let sideswitch = false;
// Function prototypes
function setEnabled(status) {};
-function setName(team, name) {};
-function configTeam() {};
+function configTeam(team, name, name2, isSpielgemeinschaft) {};
function setScore(team, score) {};
function alterScore(team, dir) {};
function clearScore() {};
@@ -43,15 +42,6 @@ function configTeam(team, name, name2, isSpielgemeinschaft) {
}
}
-// Set team name
-function setName(team, name) {
- if(team == "teamA") {
- teamA.name = name;
- } else if(team == "teamB") {
- teamB.name = name;
- }
-}
-
// Set score of team to passed value
function setScore(team, score) {
if(team == "teamA") {
@@ -121,5 +111,5 @@ function getValues() {
}
module.exports = {
- setEnabled, setScore, alterScore, clearScore, getEnabled, getValues
+ setEnabled, configTeam, setScore, alterScore, clearScore, toggleSideswitch, getEnabled, getValues
}
\ No newline at end of file
diff --git a/scoreboard/public/javascripts/admin.js b/scoreboard/public/javascripts/admin.js
index a66818f..6ce6bcd 100644
--- a/scoreboard/public/javascripts/admin.js
+++ b/scoreboard/public/javascripts/admin.js
@@ -48,6 +48,15 @@ function updateScoreFrontend(values) {
console.log(values); // Print received data
document.getElementById("scoreSwitchEnable").checked = values.enabled; // Set switch status to received score enabled value
document.getElementById("score").innerHTML = values.print; // Set score on admin interface
+
+ // Input current Team values into form inputs
+ document.getElementById("teamAname").value = values.teamA.name;
+ document.getElementById("teamAname2").value = values.teamA.name2;
+ document.getElementById("teamAisSpielgemeinschaft").checked = values.teamA.isSpielgemeinschaft;
+
+ document.getElementById("teamBname").value = values.teamB.name;
+ document.getElementById("teamBname2").value = values.teamB.name2;
+ document.getElementById("teamBisSpielgemeinschaft").checked = values.teamB.isSpielgemeinschaft;
}
// Initial update gets called whenever page has been loaded
@@ -162,4 +171,28 @@ async function scoreClearScore() {
const response = await fetch("/admin/scoreClearScore"); // Call API Endpoint /admin/scoreClearScore
const data = await response.json(); // Wait for asynchronous transfer to complete
updateScoreFrontend(data); // Update admin frontend
+}
+
+// Configure Teams
+async function scoreConfigTeams() {
+ teamA = {
+ name: document.getElementById("teamAname").value,
+ name2: document.getElementById("teamAname2").value,
+ isSpielgemeinschaft: document.getElementById("teamAisSpielgemeinschaft").checked
+ };
+ teamB = {
+ name: document.getElementById("teamBname").value,
+ name2: document.getElementById("teamBname2").value,
+ isSpielgemeinschaft: document.getElementById("teamBisSpielgemeinschaft").checked
+ }
+ console.log(teamA, teamB)
+
+ const response = await fetch("/admin/scoreConfigTeams", { // Call API Endpoint /admin/scoreAlterScore with the teamname to alter the score in the specified direction
+ method: 'POST',
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({teamA: teamA, teamB: teamB})
+ });
+ const data = await response.json(); // Wait for asyncronous transfer to complete
+ updateScoreFrontend(data); // Update admin frontend
+ refreshMonitor();
}
\ No newline at end of file
diff --git a/scoreboard/public/javascripts/indexScore.js b/scoreboard/public/javascripts/indexScore.js
index 5c01d9f..81ba527 100644
--- a/scoreboard/public/javascripts/indexScore.js
+++ b/scoreboard/public/javascripts/indexScore.js
@@ -39,6 +39,33 @@ function updateTimerFrontend(values) {
// Update DOM score elements from passed values
function updateScoreFrontend(values) {
document.getElementById("score").innerHTML = values.print; // Set score on admin interface
+
+ if(!values.sideswitch) {
+ if(values.teamA.isSpielgemeinschaft) {
+ document.getElementById("teamA").innerHTML = values.teamA.name + '
' + values.teamA.name2;
+ } else {
+ document.getElementById("teamA").innerHTML = values.teamA.name
+ }
+
+ if(values.teamB.isSpielgemeinschaft) {
+ document.getElementById("teamB").innerHTML = values.teamB.name + '
' + values.teamB.name2;
+ } else {
+ document.getElementById("teamB").innerHTML = values.teamB.name
+ }
+ } else {
+ if(values.teamA.isSpielgemeinschaft) {
+ document.getElementById("teamB").innerHTML = values.teamA.name + '
' + values.teamA.name2;
+ } else {
+ document.getElementById("teamB").innerHTML = values.teamA.name
+ }
+
+ if(values.teamB.isSpielgemeinschaft) {
+ document.getElementById("teamA").innerHTML = values.teamB.name + '
' + values.teamB.name2;
+ } else {
+ document.getElementById("teamA").innerHTML = values.teamB.name
+ }
+ }
+
}
async function initialUpdate() {
diff --git a/scoreboard/routes/admin.js b/scoreboard/routes/admin.js
index 215ae1e..c76bbeb 100644
--- a/scoreboard/routes/admin.js
+++ b/scoreboard/routes/admin.js
@@ -107,6 +107,13 @@ router.get('/scoreClearScore', function(req, res, next) {
res.json(score.getValues()); // Respond with important values for frontend
});
+router.post('/scoreConfigTeams', function(req, res, next) {
+ score.configTeam("teamA", req.body.teamA.name, req.body.teamA.name2, req.body.teamA.isSpielgemeinschaft);
+ score.configTeam("teamB", req.body.teamB.name, req.body.teamB.name2, req.body.teamB.isSpielgemeinschaft);
+ console.log(score.getValues());
+ res.json(score.getValues());
+});
+
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('admin');
diff --git a/scoreboard/views/admin.hbs b/scoreboard/views/admin.hbs
index cab6682..784eb0a 100644
--- a/scoreboard/views/admin.hbs
+++ b/scoreboard/views/admin.hbs
@@ -95,7 +95,7 @@