From 541506439d416f4fd2fd34349d53fde3246e05eb Mon Sep 17 00:00:00 2001 From: AlGouvea Date: Thu, 26 Aug 2021 11:45:26 -0300 Subject: [PATCH] Iniciado os cronometros em VueJS --- frontend/src/__apps/painel/main.js | 45 ++++++++++++++++++++++++++++++ sapl/templates/painel/index.html | 6 ++-- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/frontend/src/__apps/painel/main.js b/frontend/src/__apps/painel/main.js index b06d64b5e..ea6ed1dbf 100644 --- a/frontend/src/__apps/painel/main.js +++ b/frontend/src/__apps/painel/main.js @@ -5,6 +5,11 @@ import axios from 'axios' axios.defaults.xsrfCookieName = 'csrftoken' axios.defaults.xsrfHeaderName = 'X-CSRFToken' +// Variaveis dos cronometros +var timeBegan = null +var running = false +var timeExpected = null + const v = new Vue({ // eslint-disable-line delimiters: ['[[', ']]'], el: '#app-painel', @@ -17,6 +22,7 @@ const v = new Vue({ // eslint-disable-line sessao_plenaria_data: '', sessao_plenaria_hora_inicio: '', brasao: '', + cronometro: '00:10:00', sessao_solene: false, sessao_solene_tema: '', presentes: [], @@ -129,6 +135,45 @@ const v = new Vue({ // eslint-disable-line this.mat_em_votacao = this.msgMateria() }.bind(this)) }, + stop: function stop () { + running = false + timeBegan = null + timeExpected = null + + clearInterval(this.clockRunning) + this.cronometro = '00:10:00' + }, + clockRunning () { + if (running) { + var currentTime = new Date() + var timeRemaining = new Date(timeExpected - currentTime) + + if (timeRemaining > 0) { + this.cronometro = '00:' + timeRemaining.getMinutes().toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false }) + + ':' + timeRemaining.getSeconds().toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false }) + } else { + this.cronometro.style.color = 'red' + this.stop() + } + } else { + this.stop() + } + }, + start: function startStopWatch (time) { + time *= 60 + if (running) return + + if (timeBegan === null) { + timeBegan = new Date() + timeExpected = timeBegan + timeExpected.setSeconds(timeExpected.getSeconds() + time) + } + + this.started = setInterval(() => { + this.clockRunning() + }, 100) + running = true + }, pollData () { this.fetchData() diff --git a/sapl/templates/painel/index.html b/sapl/templates/painel/index.html index c5bc219ea..fc4638709 100644 --- a/sapl/templates/painel/index.html +++ b/sapl/templates/painel/index.html @@ -59,7 +59,7 @@
-
+
@@ -120,7 +120,7 @@

Cronômetros

- Discurso:
+ Discurso: [[ cronometro ]]
Aparte:
Questão de Ordem:
Considerações Finais: @@ -135,7 +135,7 @@
-

Resultado

+

Resultado

  • Sim: [[ numero_votos_sim ]]