PAINEL DINÂMICO DE SENHAS EM GRAILS
24/11/2016 10:18
0
?Fala, galera.
?Preciso de um help, seguinte:
Estou desenvolvendo (tentando) uma aplicação grails para atendimento de guichê. Onde o Usuário cadastrará o visitante e criará um atendimento para ele. Esse atendimento, ficará com o status de aguardando.
Esse atendimento ficará disponível numa fila de atendimentos, onde o técnico poderá atender e mudar o status desse atendimento, e consequentemente, atualizar a fila de atendimentos.
O que  eu  queria fazer, era ter um painel, sempre aberto, com o próximo atendimento, sendo atualizado constantemente , sempre que algum técnico clicasse em atender, claro, sem precisar dar f5 na página.
Tags: Grails, Angular js, Ajax


0
Se quiser uma solução bem simples, use uma tag meta para recarregar a página inteira periodicamente:
http://www.w3schools.com/tags/att_meta_http_equiv.asp

Se quiser elaborar um pouco mais pode usar por exemplo o javascript setInterval para realizar uma consulta periodicamente, ou se quiser sofisticar ainda mais creio que isso ajudaria:
http://docs.grails.org/latest/guide/single.html#serverSentEvents

Avalie o custo/beneficio de cada solução


0
Eu entendi a abordagem com a tag html5, porém, eu gostaria de executar duas ações ao mesmo tempo.
Por exemplo, quando a ação proximoAtendimento for executada. uma outra uma ação como atualizarSenhaNoPainel seja também chamada, onde ela renderiza um um template com o novo model para a view painel, sem atualizar a pagina, somente a div
24/11/2016 17:49


0
O operador não vai usar o mesmo monitor que exibe as senhas, né?

Pois bem, a sua action proximoAtendimento não vai ser responsavel por atualizar a tela que exibe a fila, essa action apenas vai atualizar os registros internos do aplicativo
Na view da fila vc teria um javascript que usa setInterval para periodicamente realizar um ajax para consultar a situação atual da fila, e à partir daí atualizar o html da página dinamicamente com base no que foi retornado.


0
Isso mesmo, so que eu queria que eu  precisasse essa informação automaticamente, espelhada, como uma trigger mesmo saca? Pensei em usa angular 2 pra fazer o two way data binding com retorno em json. Uma forma de ficar "ouvindo" esse resultada e alterar a view. 
30/11/2016 15:37


0
Para renderizar a informação atual creio que angular é overkill rsrs, eu a princípio teria uma action que renderiza um template com a visão da fila, e no navegador chamaria esta action por ajax, pegaria o seu resultado (que seria um html) e aplicaria numa div qualquer


0
Acho que irei seguir sua recomendação, por favor, vc teria algum exemplo de como eu poderia fazer isso? 
02/12/2016 10:33


0
A parte do javascript para realizar a chamada ajax e atualizar uma div com o retorno da chamada é explicada aqui:
http://stackoverflow.com/questions/18064666/update-div-with-jquery-ajax-response-html

No lado do servidor, é uma action como outra qualquer que irá renderizar um template, algo assim:
class FilaController {
    FilaService filaService
    def posicaoAtual() {
        render template: 'posicaoAtual', model: [fila: filaService.fila]
    }
}

O template será um arquivo /views/fila/_posicaoAtual.gsp

Agora, em que momento vai disparar essa chamada ajax? Aí entra nas opções que te dei, pode usar setInterval no cliente para ficar realizando a chamada periodicamente mesmo se nao houver mudança (eu faria isso), ou pode buscar algo mais sofisticado respondendo a um evento enviado pelo servidor (te passei um link sobre isso antes, mas sinceramente nao seguiria esta abordagem para algo tão simples)


0
Yure, acredito que usando websocket atenderia sua necessidade sem precisar complicar.
Dá uma olhada em : https://plugins.grails.org/plugin/grails-spring-websocket



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto