/** * UzTech Artigos IA - Admin Fila AJAX Polling * Versão: 1.0.19 * * v1.0.19: Simplificado - Apenas Polling de Status * 1. O poller (checkStatus) roda a cada 10s para atualizar a UI. * 2. REMOVIDA a lógica de disparar tarefas ('runTask'). O processamento * agora é feito pelo WP-Cron ou pelo botão manual. */ (function($) { 'use strict'; // Objeto para controlar o polling var uztechFilaPoller = { // Timer timer: null, // Intervalo padrão (10 segundos) interval: 10000, // Intervalo inicial mais curto (2 segundos) initialInterval: 2000, // v1.0.19: Flag 'isTaskRunning' removida /** * Inicia o polling */ init: function() { // Verifica se estamos na página correta if ( $('body.post-type-edit-uztech_fila').length ) { // Roda a primeira verificação após o intervalo inicial mais curto setTimeout(function() { uztechFilaPoller.checkStatus(); // Executa a primeira vez // Depois, configura o timer para o intervalo padrão uztechFilaPoller.timer = setInterval(uztechFilaPoller.checkStatus, uztechFilaPoller.interval); }, uztechFilaPoller.initialInterval); } }, /** * Executa a chamada AJAX (Verificador) */ checkStatus: function() { // Se o timer foi parado, não faz nada if ( !uztechFilaPoller.timer ) { return; } // 1. Coleta os IDs de todos os posts visíveis na tabela var postIDs = []; $('.uztech-ia-status-cell').each(function() { var postId = $(this).data('post-id'); if(postId) { postIDs.push(postId); } }); if ( postIDs.length === 0 ) { // Não há itens na tela, para o timer (poderia ser reativado se a tabela for atualizada) // uztechFilaPoller.stop(); // Melhor deixar rodando caso um item novo apareça via AJAX return; } // 2. Faz a chamada AJAX (Verificador) $.ajax({ url: uztech_ia_fila_ajax.ajax_url, type: 'POST', data: { action: 'uztech_ia_ajax_get_fila_statuses', nonce: uztech_ia_fila_ajax.status_nonce // Nonce de status }, dataType: 'json', success: function(response) { if ( response.success && response.data ) { // 3. Atualiza a tabela $.each(response.data, function(index, statusData) { var cell = $('.uztech-ia-status-cell[data-post-id="' + statusData.id + '"]'); if ( cell.length ) { // Compara o HTML antigo com o novo if ( cell.html() !== statusData.status_html ) { // Atualiza o HTML cell.fadeOut(200, function() { $(this).html(statusData.status_html).fadeIn(200); }); } } }); // v1.0.19: Lógica de disparar 'runTask' removida } }, error: function() { // O poller continua rodando console.log('UzTech IA: Erro ao *verificar* status.'); } }); }, // v1.0.19: Função 'runTask' removida /** * Para o timer */ stop: function() { if ( uztechFilaPoller.timer ) { clearInterval(uztechFilaPoller.timer); uztechFilaPoller.timer = null; // Limpa a referência do timer console.log('UzTech IA Poller stopped.'); // Para debug } } }; // Inicia o processo quando o DOM estiver pronto $(document).ready(function() { uztechFilaPoller.init(); }); })(jQuery);