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();
},
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' })) },
}
})

9
frontend/src/components/Cronometro.vue

@ -5,7 +5,7 @@
:src="audioSrc"
preload="auto"
></audio>
{{ title }}: <span>{{ formatTime(time) }}</span><br/>
<span ref="time">{{ title }}: {{ formatTime(time) }}<br/></span>
</div>
</template>
@ -28,6 +28,13 @@ export default {
this.$emit('child-mounted'); // Emit a custom event
},
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() {
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="d-flex align-items-left justify-content-left mb-2">
<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-
</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+
</button>
</div>
<div id="box_votacao">
<div ref="votacao" id="box_votacao">
<div id="votacao" class="text-value">
<li>Sim: {{ resultado.numero_votos.votos_sim }}</li>
<li>Não: {{ resultado.numero_votos.votos_nao }}</li>
@ -51,6 +51,15 @@ export default {
return this.sessao_aberta && this.painel_aberto;
},
...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>

12
sapl/templates/painel/painel_v2.html

@ -59,16 +59,16 @@
<h2 class="text-subtitle mb-0">Cronômetros</h2>
</div>
<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: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: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>
<!-- <painel-cronometro-list ref="cronometro_list"></painel-cronometro-list>-->

Loading…
Cancel
Save