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();
}
});
}