51 lines
2.2 KiB
JavaScript
51 lines
2.2 KiB
JavaScript
/*
|
|
Crowd Discusses Alternatives is a web application for more organized discussions that help people create alternative solutions, evaluate and rank them.
|
|
|
|
Copyright 2021-2022 Stavros Kalognomos
|
|
|
|
This file is part of Crowd Discusses Alternatives.
|
|
|
|
Crowd Discusses Alternatives is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
|
|
|
Crowd Discusses Alternatives is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Affero General Public License along with Crowd Discusses Alternatives. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
function calculateGroupEvaluation()
|
|
{
|
|
let weightFactors, scores, checkForError, i, lenghtOfArray;
|
|
weightFactors = document.getElementsByClassName("input_weightfactor");
|
|
scores = document.getElementsByClassName("input_score");
|
|
displayTotalScore = document.getElementById("div_totalscoredisplay");
|
|
displayTotalScore.innerHTML = "";
|
|
lenghtOfArray = weightFactors.length;
|
|
|
|
if (lenghtOfArray != scores.length) {
|
|
displayTotalScore.innerHTML = "An error in calculations have occurred (length of array).";
|
|
return;
|
|
}
|
|
|
|
for (i = 0; i < lenghtOfArray; i++) {
|
|
if (weightFactors[i].value == "" || scores[i].value == "") {
|
|
displayTotalScore.innerHTML = "Please not that all the fields must be filled!";
|
|
return;
|
|
}
|
|
|
|
if (weightFactors[i].value < 0 || weightFactors[i].value > 1) {
|
|
displayTotalScore.innerHTML = "Weight factors must have a value between 0 and 1!";
|
|
return;
|
|
}
|
|
|
|
if (scores[i].value < 0 || scores[i].value > 10) {
|
|
displayTotalScore.innerHTML = "Scores must have a value between 0 and 10!";
|
|
return;
|
|
}
|
|
}
|
|
|
|
totalScore = 0;
|
|
for (i = 0; i < lenghtOfArray; i++) {
|
|
totalScore += weightFactors[i].value * scores[i].value;
|
|
}
|
|
|
|
displayTotalScore.innerHTML = totalScore;
|
|
} |