EoQ_Supporting_Files/populateGraphics.js
2025-05-24 19:35:29 +01:00

148 lines
5.1 KiB
JavaScript

function RAGGED(average){
// This returns the correct colour red, amber or gree depending on the value presented
if (average <= -1) {
return "red";
}
if (average >= 1) {
return "green";
}
return "#ffbf00";
}
function getAverage(prefix) {
console.log("Prefix:", prefix);
const elements = Array.from(document.querySelectorAll(`svg[id^="${prefix}"] tspan.average`));
const numbers = elements.map(el => {
const text = el.textContent;
//console.log("Raw text content:", text);
const value = parseFloat(text);
//console.log("Parsed value:", value);
return value;
}).filter(n => !isNaN(n));
//console.log("Parsed numeric values:", numbers);
if (numbers.length === 0) {
console.warn("No valid numbers found!");
return NaN;
}
const avg = numbers.reduce((sum, n) => sum + n, 0) / numbers.length;
//console.log("Average of averages:", avg);
return avg;
}
function loaded(){
console.log("loaded");
let amber = '#ffbf00';
//doBigWhiteTriangle('svg1');
//drawtriangle('#svg1','Roles','#008845',[0.5,0.6,0.5],'red', { x: 0, y: 350 },-0.7);
//drawtriangle('#svg1','Actions','#b2c8c4',[0.1,0.6,0.5],'green',{ x: 370, y: 350 },2.3);
//drawtriangle('#svg1','Approach','#ed4c0c',[0.3,0.6,0.5],amber,{ x: 185, y: 30 },1.4);
//drawtriangleinverted('#svg1','Impact','#74469c',[0.7,0.6,0.8],'green',{ x: 185, y: 243},2.4);
//makeSvgRightClickable('svg1');
//doLittleWhiteTriangle('svg2');
//drawtriangle('#svg2','Roles','#008845',[0.5,0.6,0.5],'', { x: 0, y: 100 },-0.7);
//EO ROLES
//Great Employee Owners
let average = doBarData('#svg1_1','QID35_7');
//makeSvgRightClickable('svg1_1');
doBarData('#svg1_2','QID35_2');
//makeSvgRightClickable('svg1_2');
doBarData('#svg1_3','QID35_8');
//makeSvgRightClickable('svg1_3');
doBarData('#svg1_4','QID35_9');
//makeSvgRightClickable('svg1_4');
doBarData('#svg1_5','QID35_10');
//makeSvgRightClickable('svg1_5');
//Great EO Leaders
average = doBarData('#svg2_1','QID35_7');
//makeSvgRightClickable('svg1_1');
doBarData('#svg2_2','QID35_2');
//makeSvgRightClickable('svg1_2');
doBarData('#svg2_3','QID35_8');
//makeSvgRightClickable('svg1_3');
doBarData('#svg2_4','QID35_7');
//makeSvgRightClickable('svg1_4');
//doBarData('#svg2_5','QID35_10');
//makeSvgRightClickable('svg1_5');
//Great EO Governance
average = doBarData('#svg3_1','QID35_7');
//makeSvgRightClickable('svg1_1');
doBarData('#svg3_2','QID35_2');
//makeSvgRightClickable('svg1_2');
doBarData('#svg3_3','QID35_8');
//makeSvgRightClickable('svg1_3');
doBarData('#svg3_4','QID35_7');
//makeSvgRightClickable('svg1_4');
doBarData('#svg3_5','QID35_10');
//makeSvgRightClickable('svg1_5');
doBarData('#svg3_6','QID35_10');
//makeSvgRightClickable('svg1_5');
// Make sure that evreything is loaded!
setTimeout(() => {
console.log("Waited 2 seconds");
// We now have access to all of the averages, so can calculate the basic triangle.
let svg1_avg = (getAverage("svg1_")+3)/7;
let svg2_avg = (getAverage("svg2_")+3)/7;
let svg3_avg = (getAverage("svg3_")+3)/7;
let roles_avg = (7*(svg1_avg+svg2_avg+svg3_avg)/3)-3; // this converts the scales lengths to the correct value
console.log(svg1_avg,svg2_avg,svg3_avg, roles_avg);
doLittleWhiteTriangle('svg_roles');
//drawtriangle('#svg_roles','Roles','#008845',[0.25,0.5,0.75],'', { x: 0, y: 100 },roles_avg.toFixed(1));
drawtriangle('#svg_roles','Roles','#008845',[svg1_avg,svg2_avg,svg3_avg],'', { x: 0, y: 100 },roles_avg.toFixed(1));
//makeSvgRightClickable('svg_roles');
doLittleWhiteTriangle('svg_roles_RAG');
drawtriangle('#svg_roles_RAG','Roles','#008845',[svg1_avg,svg2_avg,svg3_avg],RAGGED(roles_avg), { x: 0, y: 100 },roles_avg.toFixed(1));
//makeSvgRightClickable('svg_roles_RAG');
doLittleWhiteTriangle('svg_roles_test');
drawtriangle('#svg_roles_test','Roles','#008845',[0.95,0.95,0.95],RAGGED(roles_avg), { x: 0, y: 100 },roles_avg.toFixed(1));
//makeSvgRightClickable('svg_roles_test');
}, 500);
//EO APPROACH
//drawBar('#svg1_1','QID34_7');
//makeSvgRightClickable('svg1_1');
//drawBar('#svg1_2');
//makeSvgRightClickable('svg1_2');
//drawBar('#svg1_3');
//makeSvgRightClickable('svg1_3');
//drawBar('#svg1_4');
//makeSvgRightClickable('svg1_4');
//drawBar('#svg1_5');
//makeSvgRightClickable('svg1_5');
}