Temporizador para trocar telas gráficas por usuário específico

Bom dia,

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.

Espero ter ajudado, abraços!