diff --git a/scp/js/scp.js b/scp/js/scp.js index 8621a7d79215a2d44837fb51d20f7b0cb0343f7d..1a3e35becf58a540e8eb6a6590bb8e92694210cd 100644 --- a/scp/js/scp.js +++ b/scp/js/scp.js @@ -844,7 +844,7 @@ getConfig = (function() { })(); $(document).on('pjax:click', function(options) { - clearTimeout(window.ticket_refresh); + clearInterval(window.ticket_refresh); // Release ticket lock (maybe) if ($.autoLock !== undefined) $.autoLock.releaseLock(); diff --git a/scp/js/ticket.js b/scp/js/ticket.js index a2a131e0243676586a20277d48db3c71603d3686..7f7b879e7eb8a13f0723ee764dd668398ff5fdca 100644 --- a/scp/js/ticket.js +++ b/scp/js/ticket.js @@ -337,9 +337,19 @@ $.showImagesInline = function(urls, thread_id) { }); }; -$.refreshTicketView = function() { - if (0 === $('.dialog:visible').length) - $.pjax({url: document.location.href, container:'#pjax-container'}); +$.refreshTicketView = function(interval) { + var refresh = + window.ticket_refresh = setInterval(function() { + if ($('table.list input.ckb[name=tids\\[\\]]:checked').length) + // Skip the refresh b/c items are checked + return; + else if (0 < $('.dialog:visible').length) + // Dialog open — skip refresh + return; + + clearInterval(refresh); + $.pjax({url: document.location.href, container:'#pjax-container'}); + }, interval); } var ticket_onload = function($) { diff --git a/scp/tickets.php b/scp/tickets.php index d7320c29595c0819aafa79d28b960a1cbe8491a0..3dc2d0f9ce2cd6935e47d7c02440f82adce71a19 100644 --- a/scp/tickets.php +++ b/scp/tickets.php @@ -538,10 +538,8 @@ if($ticket) { $nav->setActiveSubMenu(-1); //set refresh rate if the user has it configured - if(!$_POST && !$_REQUEST['a'] && ($min=$thisstaff->getRefreshRate())) { - $js = "clearTimeout(window.ticket_refresh); - window.ticket_refresh = setTimeout($.refreshTicketView," - .($min*60000).");"; + if(!$_POST && !$_REQUEST['a'] && ($min=(int)$thisstaff->getRefreshRate())) { + $js = "$.refreshTicketView({$min}*60000);"; $ost->addExtraHeader('<script type="text/javascript">'.$js.'</script>', $js); }