Progress Bar - Classes and Pupils
by nevkatz
HTML
<div id="counter">
<div id="meter"></div>
</div>
<div id="output">
</div>
<div id="pupil_stats">
</div>
<div id="class_stats">
</div>
CSS
body {
font-family: 'Calibri';
}
#counter {
width: 300px;
height: 20px;
background-color: #ccc;
}
#meter {
width: 100%;
background-color: green;
height: 20px;
}
JavaScript
var sleep = ms => new Promise(r => setTimeout(r, ms));
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 pupils_per_class = 100;
let est_num_classes = num_teachers*est_num_classes_per;
let est_num_pupils = est_num_classes * pupils_per_class;
// change to 2 for assessments
let total = num_teachers + est_num_classes + est_num_pupils;
status_output_counter.set_expected(total);
}
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;
let total_pupils_added = 0;
for (var i = 0; i < num_teachers; ++i) {
// let z = await sleep(1);
// update_progress_bar();
let classes_added_per_teacher = 0;
let pupils_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);
status_output_counter.inc_actual_by(est_num_classes_per*100);
console.log('no classes');
}
data_download_storage.set_expected('classes',num_classes);
actual_classes += num_classes;
for (var j = 0; j < num_classes; ++j) {
// let z = await sleep(1);
// update_progress_bar();
let portion_added = data_download_augment_classes(est_num_classes_per);
portions_added += portion_added;
classes_added_per_teacher += portion_added;
let added_per_class = 0;
let num_pupils = Math.round(Math.random()*100);
data_download_storage.set_expected('pupils',num_pupils);
if (num_pupils == 0) {
...