Eu tenho um formulário onde seleciono os parâmetros para a geração de um relatório PDF que vai ser retornado por uma action do Struts 1.X que vai ser aberto pelo navegador. Isto está funcionando perfeitamente de forma síncrona no sistema.
Mas o que eu preciso, para proteger o sistema de o usuário ficar requisitando o relatório toda hora sem ter terminado, seria colocar um bloqueio no botão para que fosse somente habilitado assim que o relatório fosse gerado.
A minha opção foi criar uma função em AJAX (chamada assíncrona) para que este relatório fosse gerado e enquanto este processo não me retorna resposta eu escondo o botão e mostro o "loading" e assim que tiver o retorno eu mostro o botão e escondo o "loading".
Mas estou tendo problemas diferentes nas duas tentativas:
Na primeira tentativa (código 1) com jQuery o comportamento do botão e do loading são os esperados mas o meu arquivo PDF que retorna no function(data) abaixo não abre na janela de download do navegador:
Na segunda tentativa (código 2) usando Dojo o retorno do arquivo PDF é o esperado mas quando a janela de download do navegador é aberta perco o controle para poder habilitar novamente o botão e desabilitar a imagem de loading.
Existe alguma forma de abrir este arquivo PDF usando jQuery ou controlar minhas DIVs no Dojo?
Obrigado,
Fragmento HTML:
function execute()
{
//It works
$('#button').hide();
$('#loadingImage').show();
var url = "generateReport.do?action=print¶m1=param1";
require(["dojo/io/iframe"], function(ioIframe){
ioIframe.send({
url: url,
handleAs: "html"
}).then(function(data){
//It only works when my page returns the html message "Empty report"
$('#button').show();
$('#loadingImage').hide();
}, function(err){
});
});
}
Pergunta
Thraloc
Olá,
Podem me ajudar com o seguinte problema?
Eu tenho um formulário onde seleciono os parâmetros para a geração de um relatório PDF que vai ser retornado por uma action do Struts 1.X que vai ser aberto pelo navegador. Isto está funcionando perfeitamente de forma síncrona no sistema.
Mas o que eu preciso, para proteger o sistema de o usuário ficar requisitando o relatório toda hora sem ter terminado, seria colocar um bloqueio no botão para que fosse somente habilitado assim que o relatório fosse gerado.
A minha opção foi criar uma função em AJAX (chamada assíncrona) para que este relatório fosse gerado e enquanto este processo não me retorna resposta eu escondo o botão e mostro o "loading" e assim que tiver o retorno eu mostro o botão e escondo o "loading".
Mas estou tendo problemas diferentes nas duas tentativas:
Na primeira tentativa (código 1) com jQuery o comportamento do botão e do loading são os esperados mas o meu arquivo PDF que retorna no function(data) abaixo não abre na janela de download do navegador:
Na segunda tentativa (código 2) usando Dojo o retorno do arquivo PDF é o esperado mas quando a janela de download do navegador é aberta perco o controle para poder habilitar novamente o botão e desabilitar a imagem de loading. Existe alguma forma de abrir este arquivo PDF usando jQuery ou controlar minhas DIVs no Dojo? Obrigado, Fragmento HTML: Código 1 (jQuery): Código 2 (Dojo):Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.