Index: branches/unlabeled/unlabeled-1.1.2/kernel/admin_templates/incs/export.js =================================================================== diff -u -r4039 -r4152 --- branches/unlabeled/unlabeled-1.1.2/kernel/admin_templates/incs/export.js (.../export.js) (revision 4039) +++ branches/unlabeled/unlabeled-1.1.2/kernel/admin_templates/incs/export.js (.../export.js) (revision 4152) @@ -21,47 +21,65 @@ return $to_seconds - $from_seconds; } +var $aborting = false; function queryProgress($url, $responce_func) { +// alert('queryProgress'); if ($http_request && $http_request.readyState != 0) { +// alert('aborting'); + $aborting = true; $http_request.abort(); +// alert('After Abort: readyState: '+$http_request.readyState+' status: '+$http_request.status); + $aborting = false; } - - $http_request.onreadystatechange = function() { eval($responce_func + '(\'' + $url + '\',\'' + $responce_func + '\');'); }; + +// alert('opening'); $http_request.open('POST', $url, true); $http_request.setRequestHeader("referer", $url); + $http_request.onreadystatechange = function() { processExportResponce($url, $responce_func); }; +// alert('sending new req'); $http_request.send('is_xml=1'); $last_responce = new Date(); } function setProgress($percent) { $percent = parseInt($percent); - document.getElementById('percent_done').style.width = $percent + '%'; - document.getElementById('percent_left').style.width = (100 - $percent) + '%'; - document.getElementById('progress_display').innerHTML = $percent; + document.getElementById('percent_done').style.width = $percent + '%'; + document.getElementById('percent_left').style.width = (100 - $percent) + '%'; + document.getElementById('progress_display').innerHTML = $percent; document.getElementById('progress_time').innerHTML = '[' + $phrase_LastResponce + ': ' + formatDate($last_responce) + ']'; } function processExportResponce($url, $responce_func) { +// alert('processExportResponce ready: '+$http_request.readyState); + if ($aborting) return; if ($http_request.readyState == 4) { if ($http_request.status == 200) { +// alert('readyState: '+$http_request.readyState+' status: '+$http_request.status); var $progress = parseFloat($http_request.responseText); if ($progress) { setProgress($progress); if ($progress < 100) { // proceed to next import step - queryProgress($url, $responce_func); + //alert('ANOTHER abort'); + //$http_request.abort(); + //alert('After ANOTHER Abort: readyState: '+$http_request.readyState+' status: '+$http_request.status); + setTimeout( function() { +// alert('quering after timeout'); + queryProgress($url, $responce_func); + }, 500) } else { // proceed to finish screen window.location.href = $finish_template; } - } - else { - alert($phrase_ResponceError); - } + } + else { +// alert('progress: '+$progress+' ('+$http_request.responseText+')'); + alert($phrase_ResponceError); + } } - } + } } \ No newline at end of file