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){
});
});
}
Question
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 to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.