Possuímos alguns televisores na qual queremos alternar as telas de tempo em tempo para uma melhor gestão. Pesquisamos aqui no fórum e vimos que podemos utilizar o HTML conforme abaixo:
<META http-equiv= "refresh" content="tempo para alternar(s); URL=http:// Tela a ser utilizada >
<p>A questão é que preciso que este temporizador funcione apenas para um usuário especifico ( o que servirá apenas para os televisores).</p>
<p>Tentamos utilizar um html para recuperar o nome de usuário conforme abaixo utiliando comparação, caso usuário fosse o correto executaria o script temporizador, no entanto nao funcionou.</p>
<p>var usuario = document.querySelector(“span.copyTitle > b”).innerHTML.toString();</p>
<p>Alguém possui alguma idéia? poderiam nos ajudar ?</p>
<p>Muito Obrigado.</p>
Existem vários modos de criar um código para alternar entre telas do ScadaBR. Segue abaixo um exemplo de código Javascript+JSP que pode ser inserido no arquivo page.tag (WEB-INF/tags/page.tag) para criar uma lista de telas a serem exibidas:
<script>
/* ------ VARIÁVEIS DE CONTROLE ------ */
// Nome do usuário que irá visualizar as telas
var usuario_telas = "visualiza";
// Tempo (em SEGUNDOS) que cada tela será exibida
var tempo_entre_telas = 15;
// URL relativa de cada tela a ser visualizada (separe por vírgulas)
var telas = [ "views.shtm?viewId=1",
"views.shtm?viewId=2",
"views.shtm?viewId=3",
"views.shtm?viewId=4"
];
/* ------ CÓDIGO PRINCIPAL (faz a mágica acontecer) ------ */
// Verifica se é o usuário que alterna entre as telas:
if ("${sessionUser.username}" == usuario_telas) {
// Verifica em qual tela está atualmente
var tela_atual = -1;
for (var i = 0; i < telas.length; i++) {
if (window.location.href.includes(telas[i])) {
tela_atual = i;
}
}
// Encontra qual deve ser a próxima tela
var nova_tela = 0;
if (tela_atual == (telas.length - 1)) {
// Se estiver na última tela, volta à primeira
nova_tela = 0;
} else {
// Nos outros casos, avança uma tela
nova_tela = tela_atual + 1;
}
if (tela_atual != -1) {
// Cria um timer para mudar de tela automaticamente
window.setTimeout(function() {
window.location = telas[nova_tela];
}, (tempo_entre_telas * 1000));
}
}
</script>
O código acima cria um loop de repetição entre as telas do ScadaBR. Basta fazer login com o usuário escolhido e colocar em qualquer uma das telas especificadas no código, que o ScadaBR irá automaticamente alternar para as próximas da lista.