Modal de Confirmação ao enviar a solicitação

Solução para adicionar um modal de confirmação antes de ENVIAR/CANCELAR/TRANSFERIR/SALVAR da solicitação para próxima atividade:

$(document).ready(function () {
     // Função para lidar com o clique dos botões
     function handleClick(event, message, actionFunction) {
            event.preventDefault(); // Impede o comportamento padrão

            // Desabilita o botão para evitar múltiplos cliques
            var $button = $(event.currentTarget);
            $button.prop('disabled', true);

            // Mostrar o modal de confirmação
            showConfirmationModal(message, () => {
                // Chama a função de ação diretamente para evitar o duplo clique
                $button.prop('disabled', false); // Reabilita o botão
                actionFunction();
            }, () => {
                // Caso o usuário clique em "Não", reabilita o botão
                $button.prop('disabled', false);
            });
        }

        // Adiciona o listener para o botão ENVIAR - "data-send"
        parent.$('[data-send]').eq(0).on('click', function(event) {
            handleClick(event, 'VOCÊ TEM CERTEZA QUE DESEJA ENVIAR?', function() {
                parent.$('[data-send]').eq(0).off('click').trigger('click');
            });
        });

        // Adiciona o listener para o botão SALVAR - "data-save"
        parent.$('[data-save]').eq(0).on('click', function(event) {
            handleClick(event, 'VOCÊ TEM CERTEZA QUE DESEJA SALVAR ESSA SOLICITAÇÃO?', function() {
                parent.$('[data-save]').eq(0).off('click').trigger('click');
            });
        });

     // Adiciona o listener para o botão CANCELAR - "data-cancel-workflow-request"
        parent.$('[data-cancel-workflow-request]').eq(0).on('click', function(event) {
            handleClick(event, 'VOCÊ TEM CERTEZA QUE DESEJA CANCELAR ESSA SOLICITAÇÃO?', function() {
                parent.$('[data-cancel-workflow-request]').eq(0).off('click').trigger('click');
            });
        });

        // Adiciona o listener para o botão TRANSFERIR"data-transfer"
        parent.$('[data-transfer]').eq(0).on('click', function(event) {
            handleClick(event, 'VOCÊ TEM CERTEZA QUE DESEJA TRANSFERIR ESSA SOLICITAÇÃO?', function() {
                parent.$('[data-transfer]').eq(0).off('click').trigger('click');
            });
        });
});


// Função para mostrar o modal de confirmação
function showConfirmationModal(message, onConfirm, onCancel) {
    FLUIGC.message.confirm({
        message: message,
        title: 'Confirmação',
        size: 'large',
        labelYes: 'Sim',
        labelNo: 'Não'
    }, function(result) {
        if (result) {
            onConfirm();
        } else {
            onCancel();
        }
    });
}
compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags formulario form data-send ou faça a sua própria pergunta.