Progress Bar - Just Classes

by nevkatz

HTML

<div id="counter">
<div id="meter"></div>
</div>
<div id="output">

</div>
<div id="stats">

</div>

CSS

body {
  font-family: 'Calibri';
}
#counter {
  width: 300px;
  height: 20px;
  background-color: #ccc;
}
#meter {
  width: 100%;
  background-color: green;
  height: 20px;
}

JavaScript

function init() {
  let num_teachers = 20;
  let est_num_classes_per = 4;
  data_download_set_expected(num_teachers,est_num_classes_per);
  run_thru_progress(num_teachers,est_num_classes_per);
}

function data_download_set_expected(num_teachers,est_num_classes_per) {

    let hundred = 100;
	
  	
    
    let est_num_classes = num_teachers*est_num_classes_per;
		
    // change to 2 for assessments
    let total = num_teachers + est_num_classes;// * (1 + 1*hundred);

    status_output_counter.set_expected(total);
}
var sleep = ms => new Promise(r => setTimeout(r, ms));

async function run_thru_progress(num_teachers,est_num_classes_per) {
  
  let estimated_classes = num_teachers*est_num_classes_per;
  let portions_added = 0;
  let actual_classes = 0;
  for (var i = 0; i < num_teachers; ++i) {
  
    let added_per_teacher = 0;
      
    status_output_counter.increment_actual();
    

    
    let num_classes = Math.round(Math.random()*10);
    
    if (num_classes == 0) {
      status_output_counter.inc_actual_by(est_num_classes_per);
      console.log('ZERO -- ADDED ' + est_num_classes_per);
      continue;
    }
    data_download_storage.set_expected('classes',num_classes);
    
    actual_classes += num_classes;
    
    for (var j = 0; j < num_classes; ++j) {
        let portion_added = data_download_augment_classes(est_num_classes_per);
         
         portions_added += portion_added;
         
         added_per_teacher += portion_added;
        
      /* let num_pupils = Math.round(Math.random()*100);
        data_download_storage.set_expected('pupils',num_pupils);
        for (var k = 0; k < num_pupils; ++k) {
           //	augment_pupils();
        }*/
    } 
    console.log('actual: '+num_classes+' added per teacher: ' + added_per_teacher);
      
  }
  print_output(estimated_classes,portions_added,actual_classes);
      update_progress_bar();
}
function print_output(est,added,actual) {
let panel = document.querySelector('#stats');

let msg =...