|
|
@ -170,6 +170,16 @@ |
|
|
audio.play(); |
|
|
audio.play(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function convertValueToDuration(value){ |
|
|
|
|
|
let h = Math.floor((value/1000) / 3600); |
|
|
|
|
|
h = checkTime(h); |
|
|
|
|
|
let m = Math.floor((value/1000) % 3600 / 60); |
|
|
|
|
|
m = checkTime(m); |
|
|
|
|
|
let s = Math.floor((value/1000) % 3600 % 60); |
|
|
|
|
|
s = checkTime(s); |
|
|
|
|
|
return h.toString() + ":" + m.toString() + ":" + s.toString(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
$(document).ready(function() { |
|
|
$(document).ready(function() { |
|
|
//TODO: replace by a fancy jQuery clock |
|
|
//TODO: replace by a fancy jQuery clock |
|
|
startTime(); |
|
|
startTime(); |
|
|
@ -186,23 +196,26 @@ |
|
|
{% for cron in cronometros %} |
|
|
{% for cron in cronometros %} |
|
|
cronometros_previous.push(0); |
|
|
cronometros_previous.push(0); |
|
|
$('#cronometro_' + "{{cron.id}}").runner({ |
|
|
$('#cronometro_' + "{{cron.id}}").runner({ |
|
|
autostart: false, |
|
|
autostart: {% if cron.status == "I"%} true {% else %} false {% endif %}, |
|
|
countdown: true, |
|
|
countdown: true, |
|
|
startAt: parseInt("{{cron.duracao_cronometro|duration_to_seconds}}") * 1000, |
|
|
startAt: |
|
|
|
|
|
{% if cron.status == "R"%} |
|
|
|
|
|
parseInt("{{cron.duracao_cronometro|duration_to_seconds}}") * 1000 |
|
|
|
|
|
{% elif cron.status == "S"%} |
|
|
|
|
|
{% if cron.last_stop_duration %} |
|
|
|
|
|
parseInt("{{cron.last_stop_duration|duration_to_seconds}}") * 1000 |
|
|
|
|
|
{% else %} |
|
|
|
|
|
parseInt("{{cron.duracao_cronometro|duration_to_seconds}}") * 1000 |
|
|
|
|
|
{% endif %} |
|
|
|
|
|
{% elif cron.status == "I" %} |
|
|
|
|
|
parseInt("{{cron.duracao_cronometro|duration_difference:cron.ultima_alteracao_status}}") * 1000 |
|
|
|
|
|
{% endif %}, |
|
|
stopAt: 0, |
|
|
stopAt: 0, |
|
|
milliseconds: false, |
|
|
milliseconds: false, |
|
|
format: function(value) { |
|
|
format: convertValueToDuration |
|
|
let h = Math.floor((value/1000) / 3600); |
|
|
|
|
|
h = checkTime(h); |
|
|
|
|
|
let m = Math.floor((value/1000) % 3600 / 60); |
|
|
|
|
|
m = checkTime(m); |
|
|
|
|
|
let s = Math.floor((value/1000) % 3600 % 60); |
|
|
|
|
|
s = checkTime(s); |
|
|
|
|
|
return h.toString() + ":" + m.toString() + ":" + s.toString(); |
|
|
|
|
|
} |
|
|
|
|
|
}).on('runnerFinish', function(eventObject, info){ |
|
|
}).on('runnerFinish', function(eventObject, info){ |
|
|
playAudioNumVezes(audioAlertFinish, num_vezes_toca_audio); |
|
|
playAudioNumVezes(audioAlertFinish, num_vezes_toca_audio); |
|
|
}) |
|
|
}); |
|
|
{% endfor %} |
|
|
{% endfor %} |
|
|
|
|
|
|
|
|
var tempo_disparo_antecedencia = "{{ painel_config.tempo_disparo_antecedencia }}" |
|
|
var tempo_disparo_antecedencia = "{{ painel_config.tempo_disparo_antecedencia }}" |
|
|
@ -329,6 +342,8 @@ |
|
|
$("#votacao").append('<center>Não há votação, pois não há nenhuma matéria aberta ou já votada.</center>'); |
|
|
$("#votacao").append('<center>Não há votação, pois não há nenhuma matéria aberta ou já votada.</center>'); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// obtém todos os ids em uma lista e |
|
|
|
|
|
// converte os dados do status dos cronômetros de dicionário para uma lista |
|
|
var ids = []; |
|
|
var ids = []; |
|
|
var status_cronometros = []; |
|
|
var status_cronometros = []; |
|
|
for (var key in data['cronometros']) { |
|
|
for (var key in data['cronometros']) { |
|
|
@ -338,26 +353,44 @@ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//var ult_alteracao_cronometros = []; |
|
|
// converte os dados de dicionário para uma lista |
|
|
//for (let id of ids) { |
|
|
var duracao_cronometros = []; |
|
|
// ult_alteracao_cronometros.push(data['ult_alteracao_cronometros'][id]); |
|
|
for (let id of ids) { |
|
|
//} |
|
|
duracao_cronometros.push(data['duracao_cronometros'][id]); |
|
|
|
|
|
} |
|
|
//console.log(data['ult_alteracao_cronometros']); |
|
|
|
|
|
//console.log(ult_alteracao_cronometros); |
|
|
|
|
|
|
|
|
|
|
|
for(let i=0; i<status_cronometros.length; i++){ |
|
|
for(let i=0; i<status_cronometros.length; i++){ |
|
|
if (!cronometros_previous[i]) |
|
|
if (!cronometros_previous[i]){ |
|
|
cronometros_previous[i] = '' |
|
|
cronometros_previous[i] = '' |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// se houve alteração de status |
|
|
if (status_cronometros[i] != cronometros_previous[i]) { |
|
|
if (status_cronometros[i] != cronometros_previous[i]) { |
|
|
$('#cronometro_' + ids[i]).runner(status_cronometros[i]); |
|
|
if(status_cronometros[i] == 'reset'){ |
|
|
|
|
|
// é necessário recriar o cronômetro com o valor da duração original devido a limitações da API |
|
|
|
|
|
$('#cronometro_' + ids[i]).runner({ |
|
|
|
|
|
autostart: false, |
|
|
|
|
|
countdown: true, |
|
|
|
|
|
startAt: parseInt(duracao_cronometros[i]) * 1000, |
|
|
|
|
|
stopAt: 0, |
|
|
|
|
|
milliseconds: false, |
|
|
|
|
|
format: convertValueToDuration |
|
|
|
|
|
}).on('runnerFinish', function(eventObject, info){ |
|
|
|
|
|
playAudioNumVezes(audioAlertFinish, num_vezes_toca_audio); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
// ações de start e stop |
|
|
|
|
|
else{ |
|
|
|
|
|
$('#cronometro_' + ids[i]).runner(status_cronometros[i]); |
|
|
|
|
|
} |
|
|
cronometros_previous[i] = status_cronometros[i]; |
|
|
cronometros_previous[i] = status_cronometros[i]; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if($('#cronometro_' + ids[i]).runner('info').formattedTime == tempo_disparo_antecedencia && |
|
|
// Dispara aviso prévio se estiver configurado |
|
|
"{{ painel_config.disparo_cronometro }}" == "True" ) |
|
|
if($('#cronometro_' + ids[i]).runner('info').formattedTime == tempo_disparo_antecedencia |
|
|
|
|
|
&& "{{ painel_config.disparo_cronometro }}" == "True" ){ |
|
|
audioAlertFinish.play(); |
|
|
audioAlertFinish.play(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|