function check_progress (base_url, token, to, pwidth) { poll_token(base_url, token, to, pwidth); } function poll_token (base_url, token, to, pwidth) { var a = new Ajax.Request ( base_url + '/progress/get?token=' + token, { method: 'get', onSuccess: function(t) { var s = t.responseText.toString(); if ( s.search(/^(\d+\.\d+)\t(.+)/) > -1 ) { var a = s.match( /^(\d+\.\d+)\t(.+)/ ); var prozent = a[1]; var meldung = a[2]; var p = 1 / (100/prozent); if ( pwidth == null ) { pwidth='200'; } var l = pwidth * p; var r = pwidth * (1 - p); $(to + '_label').innerHTML = meldung + "( " + prozent + "% )"; $(to + '_done').style.width = l.numberFormat('#') + "px"; $(to + '_left').style.width = r.numberFormat('#') + "px"; var f = function () { poll_token(base_url,token,to, pwidth); }; setTimeout(f,500); } else { if ( s.search(/^ok/i) > -1 ) { $(to + '_done').style.width = pwidth + "px"; $(to + '_done').style.background = 'green'; $(to + '_label').style.color = 'green'; $(to + '_label').innerHTML = "abgeschlossen ( 100% )"; $(to + '_left').style.width = "0px"; $(to + '_ok').style.display = 'inline'; return true; } if ( s.search(/^error/i) > -1) { $(to + '_done').style.background = 'red'; $(to + '_label').style.color = 'red'; $(to + '_error').style.display = 'inline'; return false; } var f = function () { poll_token(base_url,token,to, pwidth); }; setTimeout(f,500); } }, onFailure:function(t) { alert('Fehler beim Zugriff auf Webserver: ' + t.status + ' -- ' + t.statusText); }, asynchronous:!check_sync }); }