Browse Source

WIP2

websockets-2025
Edward Ribeiro 1 week ago
parent
commit
fdd009449e
  1. 8
      frontend/src/__apps/painel/main.js
  2. 9
      frontend/src/components/Cronometro.vue
  3. 15
      frontend/src/components/PainelResultado.vue
  4. 12
      sapl/templates/painel/painel_v2.html

8
frontend/src/__apps/painel/main.js

@ -290,6 +290,14 @@ new Vue({
this.closeWS(); this.closeWS();
}, },
changeFontSize(value) {
for (var name in this.$refs){
if (name.startsWith("sw")) {
const cronometro = this.$refs[name]
cronometro.changeFontSize(value)
}
}
},
startStopwatch() { if (this.isOpen) this.ws.send(JSON.stringify({ type:'notify', stopwatch:'start' })) }, startStopwatch() { if (this.isOpen) this.ws.send(JSON.stringify({ type:'notify', stopwatch:'start' })) },
} }
}) })

9
frontend/src/components/Cronometro.vue

@ -5,7 +5,7 @@
:src="audioSrc" :src="audioSrc"
preload="auto" preload="auto"
></audio> ></audio>
{{ title }}: <span>{{ formatTime(time) }}</span><br/> <span ref="time">{{ title }}: {{ formatTime(time) }}<br/></span>
</div> </div>
</template> </template>
@ -28,6 +28,13 @@ export default {
this.$emit('child-mounted'); // Emit a custom event this.$emit('child-mounted'); // Emit a custom event
}, },
methods: { methods: {
changeFontSize(value) {
const el = this.$refs.time;
if (!el) return;
let fontSize = window.getComputedStyle(el).fontSize;
fontSize = parseFloat(fontSize); // safely convert "16px" 16
el.style.fontSize = (fontSize + value) + 'px';
},
handleStartStop() { handleStartStop() {
this.isRunning = !this.isRunning; this.isRunning = !this.isRunning;

15
frontend/src/components/PainelResultado.vue

@ -2,14 +2,14 @@
<div class="col-md-6 text-left painel" id="resultado_votacao_div" v-if="canRender"> <div class="col-md-6 text-left painel" id="resultado_votacao_div" v-if="canRender">
<div class="d-flex align-items-left justify-content-left mb-2"> <div class="d-flex align-items-left justify-content-left mb-2">
<h2 class="text-subtitle mb-0">Resultado</h2> <h2 class="text-subtitle mb-0">Resultado</h2>
<button class="btn btn-sm btn-secondary ms-2" onclick="changeFontSize('box_votacao', -1)"> <button class="btn btn-sm btn-secondary ms-2" v-on:click="changeFontSize(-1)">
A- A-
</button> </button>
<button class="btn btn-sm btn-secondary ms-2" onclick="changeFontSize('box_votacao', 1)"> <button class="btn btn-sm btn-secondary ms-2" v-on:click="changeFontSize(1)">
A+ A+
</button> </button>
</div> </div>
<div id="box_votacao"> <div ref="votacao" id="box_votacao">
<div id="votacao" class="text-value"> <div id="votacao" class="text-value">
<li>Sim: {{ resultado.numero_votos.votos_sim }}</li> <li>Sim: {{ resultado.numero_votos.votos_sim }}</li>
<li>Não: {{ resultado.numero_votos.votos_nao }}</li> <li>Não: {{ resultado.numero_votos.votos_nao }}</li>
@ -51,6 +51,15 @@ export default {
return this.sessao_aberta && this.painel_aberto; return this.sessao_aberta && this.painel_aberto;
}, },
...mapState(["painel_aberto", "sessao_aberta", "resultado"]) ...mapState(["painel_aberto", "sessao_aberta", "resultado"])
},
methods: {
changeFontSize(value) {
const el = this.$refs.votacao;
if (!el) return;
let fontSize = window.getComputedStyle(el).fontSize;
fontSize = parseFloat(fontSize); // safely convert "16px" 16
el.style.fontSize = (fontSize + value) + 'px';
},
} }
}; };
</script> </script>

12
sapl/templates/painel/painel_v2.html

@ -59,16 +59,16 @@
<h2 class="text-subtitle mb-0">Cronômetros</h2> <h2 class="text-subtitle mb-0">Cronômetros</h2>
</div> </div>
<div class="text-value" id="box_cronometros"> <div class="text-value" id="box_cronometros">
<button class="btn btn-sm btn-secondary ms-2" v-on:click="changeFontSize(-1)">
A-
</button>
<button class="btn btn-sm btn-secondary ms-2" v-on:click="changeFontSize(1)">
A+
</button>
<painel-cronometro ref="sw:discurso" id="sw:discurso" title="Discurso"></painel-cronometro> <painel-cronometro ref="sw:discurso" id="sw:discurso" title="Discurso"></painel-cronometro>
<painel-cronometro ref="sw:aparte" id="sw:aparte" title="Aparte"></painel-cronometro> <painel-cronometro ref="sw:aparte" id="sw:aparte" title="Aparte"></painel-cronometro>
<painel-cronometro ref="sw:questao" id="sw:questao" title="Questão de Ordem"></painel-cronometro> <painel-cronometro ref="sw:questao" id="sw:questao" title="Questão de Ordem"></painel-cronometro>
<painel-cronometro ref="sw:consideracoes" id="sw:consideracoes" title="Considerações Finais"></painel-cronometro> <painel-cronometro ref="sw:consideracoes" id="sw:consideracoes" title="Considerações Finais"></painel-cronometro>
<button class="btn btn-sm btn-secondary ms-2" onclick="changeFontSize('box_cronometros', -1)">
A-
</button>
<button class="btn btn-sm btn-secondary ms-2" onclick="changeFontSize('box_cronometros', 1)">
A+
</button>
</div> </div>
</div> </div>
<!-- <painel-cronometro-list ref="cronometro_list"></painel-cronometro-list>--> <!-- <painel-cronometro-list ref="cronometro_list"></painel-cronometro-list>-->

Loading…
Cancel
Save