Sugestão: Bloquear dois click do mouse botões ajax

Caros desenvolvedores do scriptcase segue abaixo algumas sugestões de melhorias para novas versões:

  1. Quando for criar um evento ajax ter a opção da gente colocar se quando for executar um ajax eu poder escolher se quero ou não que apareça a mensagem de “Aguarde Processando…” porque na maiorias das vezes os ajax que criamos são somente para ajustes de campos de tela não tendo necessidade de mostrar a mensagem ficando a opção de marcar para mostrar a mensagem somente quando tiver algo que demore mais.

  2. Quando for criar um botão ajax ter a opção também de aparecer ou não a mensagem em ajax bem como também quando for para aparecer o scriptcase gerar códigos para mostrar uma mensagem como deixo o exemplo abaixo com os códigos para poder bloquear dois click do mouse (Já tive esse problema e vocês não me deram solução) e fazendo desse jeito consegui bloquear os dois click do mouse. Ajustar o código abaixo para ser gerado automaticamente.

function css_aguarde($nomeBotao, $posicaoTop = '200px') {
$css = "
<script>
$(function() {
	document.querySelector('#id_div_process').style.visibility = 'hidden';
    document.querySelector('#sc_{$nomeBotao}_bot').onclick = () => { atualizaAguarde(); scBtnFn_{$nomeBotao}(); };
});

function atualizaAguarde() {
	document.querySelector('#id_div_process').classList.add('fundo_aguarde');
	document.querySelector('.scFormProcess').classList.add('mensagem_aguarde');
}
function retiraAguarde() {
	document.querySelector('#id_div_process').classList.remove('fundo_aguarde');
	document.querySelector('.scFormProcess').classList.remove('mensagem_aguarde');
}
</script>
<style>
.fundo_aguarde {
	margin: 0px;
	width: 100%;
	padding: 0px;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.4);
	transition: background-color 0.1s ease 0s;
	visibility: visible !important;
}
.mensagem_aguarde {
	background-color: #fff;
    border-radius: 5px;
    padding: 10px;
    display: inline-block;
    vertical-align: middle;
    position: relative;
    top: $posicaoTop;
}
</style>";
echo $css;
}

Observações1: Depois de criado essa função em bibliotecas externas faço a chamada da função css_aguarde no evento OnLoad do formulário ou controle passando como parâmetro o nome do botão que quero que modifique o css da mensagem de “Aguarde Processando…” e depois para voltar ao normal coloco no final do processamento ajax eu coloco a chamada da macro do próprio scriptcase sc_ajax_java_script(‘retiraAguarde’) para retirar os css alterados.

Observações2: Com isso me ajudou no bloqueio dos dois click quando da execução de rotinas em ajax e também o ajax criado nos campos ocultando a mensagem de “Aguarde. Processando”.
Creio eu que esse códigos melhorados pode ser inseridos na geração dos códigos do scriptcase para facilitar ainda mais a vida do programador. rsrs

Observações3: Se algum colega quiser usar o código até a netmake aceite a sugestão e lance em novas versões fique a vontade e se melhorar o mesmo atualize o mesmo para todos possam usufruir das melhorias.

Olá Ronaldo.

Desativar o duplo click do mouse é para evitar a execução do evento uma segunda vez após o primeiro click?

Se for essa a questão, realmente os eventos ajax do scriptcase são todos assíncronos, liberando a função ajax para outra execução (padrão hoje), ideal seria desabilitar o botão no primeiro click, e após o retorno do ajax reabilitar o botão novamente.

Quanto ao aguarde processamento, acho legal sim ter a opção de desativar/ativar a mensagem, ou uma macro que faça isso.

Grande Mestre Haroldo!

Eu até tentei executando essa opção colocar no código do evento ajax a opção de desabilitar o botão mas como o evento é ajax e demora um tempo até o mesmo ir no servidor o mesmo vai aceitar os dois click do evento e da maneira que conseguimos fazer o código css é executado na tela mesmo travando na maioria dos casos o segundo click. Não testei mas talvez se um computador for meio lento o navegador não consiga desenhar a tela (div) para bloquear o segundo click mas hoje em dia a probabilidade de isso acontecer é pouca! rsrs