diff --git a/frontend/src/__apps/painel/main.js b/frontend/src/__apps/painel/main.js index c00e142a2..3a9fbe438 100644 --- a/frontend/src/__apps/painel/main.js +++ b/frontend/src/__apps/painel/main.js @@ -144,6 +144,15 @@ const v = new Vue({ // eslint-disable-line cronometroStart[2] = objeto.cronometro_ordem cronometroStart[3] = objeto.cronometro_consideracoes + this.setTimer() + + if (this.status_cronometro_discurso === 'I') { + this.start(1) + } else if (this.status_cronometro_discurso === 'S') { + this.stop(1) + } + }, + setTimer () { if (time === null) { // Pegar data atual this.cronometro_discurso = new Date() @@ -155,32 +164,33 @@ const v = new Vue({ // eslint-disable-line var temp = new Date() temp.setSeconds(this.cronometro_discurso.getSeconds() + cronometroStart[0]) var res = new Date(temp - this.cronometro_discurso) + res.setHours(temp.getHours() - this.cronometro_discurso.getHours()) this.cronometro_discurso = this.formatTime(res) temp = new Date() temp.setSeconds(this.cronometro_aparte.getSeconds() + cronometroStart[1]) res = new Date(temp - this.cronometro_aparte) + res.setHours(temp.getHours() - this.cronometro_aparte.getHours()) this.cronometro_aparte = this.formatTime(res) temp = new Date() temp.setSeconds(this.cronometro_ordem.getSeconds() + cronometroStart[2]) res = new Date(temp - this.cronometro_ordem) + res.setHours(temp.getHours() - this.cronometro_ordem.getHours()) this.cronometro_ordem = this.formatTime(res) temp = new Date() temp.setSeconds(this.cronometro_consideracoes.getSeconds() + cronometroStart[3]) res = new Date(temp - this.cronometro_consideracoes) + res.setHours(temp.getHours() - this.cronometro_consideracoes.getHours()) this.cronometro_consideracoes = this.formatTime(res) } - if (this.status_cronometro_discurso === 'I') { - this.start(1) - console.log(cronometroStart) - } else if (this.status_cronometro_discurso === 'S') { - this.stop(1) - } }, formatTime (time) { - var tempo = '00:' + time.getMinutes().toLocaleString('en-US', { + var tempo = time.getHours().toLocaleString('en-US', { + minimumIntegerDigits: 2, + useGrouping: false + }) + ':' + time.getMinutes().toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false }) + ':' + time.getSeconds().toLocaleString('en-US', { @@ -203,6 +213,8 @@ const v = new Vue({ // eslint-disable-line time = null clearInterval(this.started) clearInterval(this.stopped) + + this.setTimer() }, clockRunning (crono) { var now = new Date() @@ -240,7 +252,8 @@ const v = new Vue({ // eslint-disable-line } else { timeEnd = new Date() timeEnd.setMinutes(timeEnd.getMinutes() + time.getMinutes()) - timeEnd.setSeconds(timeEnd.getSeconds() + time.getSeconds() + 1) + timeEnd.setSeconds(timeEnd.getSeconds() + time.getSeconds()) + timeEnd.setMilliseconds(timeEnd.getMilliseconds() + time.getMilliseconds()) clearInterval(this.timeStopped) } this.running = crono diff --git a/sapl/painel/views.py b/sapl/painel/views.py index 6741cbaba..42df32f0e 100644 --- a/sapl/painel/views.py +++ b/sapl/painel/views.py @@ -357,7 +357,7 @@ def get_cronometro_status(request): pk = request.POST['pk_sessao'] sessao = SessaoPlenaria.objects.get(id=pk) ligado = json.loads(request.POST['ligado']) - tipo = json.loads(request.POST['teste']) + tipo = json.loads(request.POST['tipo_crono']) if ligado: diff --git a/sapl/templates/sessao/painel.html b/sapl/templates/sessao/painel.html index b33e6a4b4..d02dbcd2a 100644 --- a/sapl/templates/sessao/painel.html +++ b/sapl/templates/sessao/painel.html @@ -355,11 +355,11 @@ function switch_painel(aberto) { } } -function switch_cronometro(ligado, teste){ +function switch_cronometro(ligado, tipo_crono){ var pk_sessao = {{root_pk}}; $.ajax({ - data: {pk_sessao: pk_sessao, ligado: ligado, teste: teste}, + data: {pk_sessao: pk_sessao, ligado: ligado, tipo_crono: tipo_crono}, type: 'POST', url: "{% url 'sapl.painel:get_cronometro_status' %}", headers: {'X-CSRFToken': getCookie('csrftoken')},