You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.01-QCM_MuscuMaths/Website/js/progressBar.js

149 lines
4.7 KiB

import { tempsExport } from "./scriptChrono.js";
$(document).ready(async function() {
var timerId, percent1, percent2;
percent1 = 0;
percent2 = 0;
var isPaused = false;
await fetch('js/updateProgressBar.php?idplayer=1&playertime='+percent1);
await fetch('js/updateProgressBar.php?idplayer=54&playertime='+percent2);
// reset progress bars
percent1 = 0;
percent2 = 0;
initProgressBar('#load1', '#rocket1');
initProgressBar('#load2', '#rocket2');
function initProgressBar(loadId, rocketId){
$(loadId).css('width', '0px');
$(loadId).addClass('progress-bar-striped active');
$(rocketId).show();
}
function updateProgressBar(percent, loadId, rocketId) {
$(loadId).css('width', percent + '%');
$(loadId).html(percent + '%');
$(rocketId).css('left', 'calc('+percent+'% - 19px');
}
function resetProgressBar(loadId) {
$(loadId).css('width', '0px');
$(loadId).addClass('progress-bar-striped active');
$(loadId).removeClass('bg-danger');
}
function finishBar(loadId, rocketId, buttonId) {
$(loadId).addClass('bg-danger');
$(buttonId).attr('disabled', true);
$(loadId).html('Finish');
$(rocketId).hide();
}
async function fetchDataAndUpdate() {
if (!isPaused) {
// increment progress bars
let response = (await fetch('js/progressBar.php'));
let result = await response.text();
let jsonData = JSON.parse(result);
let idplayer1 = jsonData[0].idplayer;
percent1 = parseInt(jsonData[0].playertime) + 2;
await fetch('js/updateProgressBar.php?idplayer='+idplayer1+'&playertime='+percent1);
console.log('js/updateProgressBar.php?idplayer='+idplayer1+'&playertime='+percent1);
updateProgressBar(percent1, '#load1', '#rocket1');
// Increment second progress bar
response = (await fetch('js/progressBar.php'));
result = await response.text();
jsonData = JSON.parse(result);
let idplayer2 = jsonData[1].idplayer;
percent2 = parseInt(jsonData[1].playertime) + 2;
await fetch('js/updateProgressBar.php?idplayer='+idplayer2+'&playertime='+percent2);
console.log('js/updateProgressBar.php?idplayer='+idplayer2+'&playertime='+percent2);
updateProgressBar(percent2, '#load2', '#rocket2');
if (percent1 >= 100 && percent2 >= 100) {
clearInterval(timerId);
resetProgressBar('#load1');
finishBar('#load1', '#rocket1', '#repondbien1');
resetProgressBar('#load2');
finishBar('#load2', '#rocket2', '#repondbien2');
}
}
}
timerId = setInterval(fetchDataAndUpdate, 2000);
function wait(ms){
var start = new Date().getTime();
var end = start;
while(end < start + ms) {
end = new Date().getTime();
}
}
$('#repondbien1').click(async function() {
let response = (await fetch('js/progressBar.php'));
let result = await response.text();
let jsonData = JSON.parse(result);
let idplayer = jsonData[0].idplayer;
percent1 = parseInt(jsonData[0].playertime) + 20;
await fetch('js/updateProgressBar.php?idplayer='+idplayer+'&playertime='+percent1);
$('#repondbien1').attr('disabled', false);
resetProgressBar('#load1');
updateProgressBar(percent1, '#load1', '#rocket1');
});
$('#repondbien2').click(async function() {
let response = (await fetch('js/progressBar.php'));
let result = await response.text();
let jsonData = JSON.parse(result);
let idplayer = jsonData[1].idplayer;
percent2 = parseInt(jsonData[1].playertime) + 20;
await fetch('js/updateProgressBar.php?idplayer='+idplayer+'&playertime='+percent2);
$('#repondbien2').attr('disabled', false);
resetProgressBar('#load2');
updateProgressBar(percent2, '#load2', '#rocket2');
});
$('#repondmal').click(function() {
isPaused = true;
$('#repondmal').attr('disabled', false);
resetProgressBar('#load1');
resetProgressBar('#load2');
wait(3000);
console.log("test");
isPaused = false;
});
});
/*
if (tempsExport <= 6000) {
percent += 12;
} else if (tempsExport > 6000 && tempsExport <= 12000) {
percent += 11;
} else if (tempsExport > 12000 && tempsExport <= 18000) {
percent += 10;
} else if (tempsExport > 18000 && tempsExport <= 24000) {
percent += 9;
} else {
percent += 8;
}
*/